linx5o commited on
Commit
c20c614
·
1 Parent(s): ca61c8d
Files changed (2) hide show
  1. app.py +65 -0
  2. requirements.txt +1 -0
app.py ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import paho.mqtt.client as mqtt
2
+ import os
3
+ import gradio as gr
4
+ import json
5
+ import time
6
+
7
+ HOST = os.environ.get("host")
8
+ PORT = int(os.environ.get("port"))
9
+ USERNAME = os.environ.get("username")
10
+ PASSWORD = os.environ.get("password")
11
+
12
+ client = None
13
+ bed_temp = gr.Number()
14
+ nozzle_temp = gr.Number()
15
+ status = gr.Textbox()
16
+ update_time = gr.Textbox()
17
+
18
+ def create_client(host, port, username, password):
19
+ print(host, port, username, password)
20
+ client = mqtt.Client()
21
+ client.username_pw_set(username, password)
22
+ client.tls_set(tls_version=mqtt.ssl.PROTOCOL_TLS)
23
+ client.on_connect = on_connect
24
+ client.connect(host, port)
25
+ client.loop_start()
26
+ return client
27
+
28
+ def on_connect(client, userdata, flags, rc):
29
+ print("Connected with result code "+str(rc))
30
+
31
+ def on_message(client, userdata, message):
32
+ global bed_temp, nozzle_temp, status, update_time
33
+ data = json.loads(message.payload)
34
+ bed_temp = data["bed_temperature"]
35
+ nozzle_temp = data["nozzle_temperature"]
36
+ status = data["status"]
37
+ update_time = str(time.time())
38
+
39
+
40
+ def get_data(serial):
41
+ global client
42
+ if client is None:
43
+ client = create_client(HOST, PORT, USERNAME, PASSWORD)
44
+ client.publish(f"bambu_a1_mini/request/{serial}", json.dumps("HI"))
45
+ return
46
+
47
+ with gr.Blocks() as blocks:
48
+ serial = gr.Input("text", label="Serial Number")
49
+ send_button = gr.Button(text="Send")
50
+
51
+ status_text = gr.Textbox(label="Status", interactive=False)
52
+ bed_temp_text = gr.Textbox(label="Bed Temperature", interactive=False)
53
+ nozzle_temp_text = gr.Textbox(label="Nozzle Temperature", interactive=False)
54
+
55
+ send_button.click(
56
+ fn=get_data,
57
+ # outputs=[status_text, bed_temp_text, nozzle_temp_text],
58
+ )
59
+
60
+ status.change(lambda: status, status_text, status_text)
61
+ bed_temp.change(lambda: bed_temp, bed_temp_text, bed_temp_text)
62
+ nozzle_temp.change(lambda: nozzle_temp, nozzle_temp_text, nozzle_temp_text)
63
+
64
+
65
+ blocks.launch()
requirements.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ paho_mqtt