update
This commit is contained in:
parent
c00f2c2c62
commit
86a4fa3265
8
MQTT.py
8
MQTT.py
|
@ -1,4 +1,4 @@
|
||||||
|
import subprocess
|
||||||
import time
|
import time
|
||||||
|
|
||||||
import paho.mqtt.client as mqtt
|
import paho.mqtt.client as mqtt
|
||||||
|
@ -34,6 +34,8 @@ class MQTTClient:
|
||||||
self.client.subscribe(self.topic)
|
self.client.subscribe(self.topic)
|
||||||
client.publish(info_topic, payload=publish_payload(code=200, msg='成功订阅' + self.topic),
|
client.publish(info_topic, payload=publish_payload(code=200, msg='成功订阅' + self.topic),
|
||||||
qos=0)
|
qos=0)
|
||||||
|
# 关闭摄像机电
|
||||||
|
subprocess.Popen(['sudo /usr/bin/python close_led.py'], shell=True)
|
||||||
|
|
||||||
def on_message(self, client, userdata, msg):
|
def on_message(self, client, userdata, msg):
|
||||||
if not valid(msg, client):
|
if not valid(msg, client):
|
||||||
|
@ -65,6 +67,10 @@ class MQTTClient:
|
||||||
elif data == "status":
|
elif data == "status":
|
||||||
# 查看运行状态
|
# 查看运行状态
|
||||||
get_status(client)
|
get_status(client)
|
||||||
|
elif data == "open_led":
|
||||||
|
open_led()
|
||||||
|
elif data == "close_led":
|
||||||
|
close_led()
|
||||||
else:
|
else:
|
||||||
# 错误类型
|
# 错误类型
|
||||||
client.publish(info_topic, payload=publish_payload(code=404, msg='No Such Msg Type'), qos=0)
|
client.publish(info_topic, payload=publish_payload(code=404, msg='No Such Msg Type'), qos=0)
|
||||||
|
|
6
test.py
6
test.py
|
@ -8,8 +8,6 @@ import paho.mqtt.client as mqtt
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class MQTTClient:
|
class MQTTClient:
|
||||||
def __init__(self, broker, port, topic, username, password):
|
def __init__(self, broker, port, topic, username, password):
|
||||||
self.broker = broker
|
self.broker = broker
|
||||||
|
@ -22,12 +20,16 @@ class MQTTClient:
|
||||||
self.client.username_pw_set(self.username, self.password)
|
self.client.username_pw_set(self.username, self.password)
|
||||||
|
|
||||||
def push(self):
|
def push(self):
|
||||||
|
self.client.publish(self.topic, payload=json.dumps({"msg": "open_led"}, ensure_ascii=False),
|
||||||
|
qos=0)
|
||||||
self.client.publish(self.topic, payload=json.dumps({"msg": "push_stream"}, ensure_ascii=False),
|
self.client.publish(self.topic, payload=json.dumps({"msg": "push_stream"}, ensure_ascii=False),
|
||||||
qos=0)
|
qos=0)
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
self.client.publish(self.topic, payload=json.dumps({"msg": "close_stream"}, ensure_ascii=False),
|
self.client.publish(self.topic, payload=json.dumps({"msg": "close_stream"}, ensure_ascii=False),
|
||||||
qos=0)
|
qos=0)
|
||||||
|
self.client.publish(self.topic, payload=json.dumps({"msg": "close_led"}, ensure_ascii=False),
|
||||||
|
qos=0)
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
self.client.connect(self.broker, self.port)
|
self.client.connect(self.broker, self.port)
|
||||||
|
|
18
tool.py
18
tool.py
|
@ -60,11 +60,11 @@ def exec_sh(msg, client):
|
||||||
client.publish(info_topic, payload=publish_payload(code=200, msg='reloading'), qos=0)
|
client.publish(info_topic, payload=publish_payload(code=200, msg='reloading'), qos=0)
|
||||||
subprocess.Popen([cmd], shell=True)
|
subprocess.Popen([cmd], shell=True)
|
||||||
return
|
return
|
||||||
subprocess.Popen([cmd], shell=True)
|
# subprocess.Popen([cmd], shell=True)
|
||||||
# p = subprocess.Popen([cmd], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
p = subprocess.Popen([cmd], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
# out, err = p.communicate()
|
out, err = p.communicate()
|
||||||
# output = out.decode('utf-8').strip()
|
output = out.decode('utf-8').strip()
|
||||||
# client.publish(info_topic, payload=publish_payload(code=200, msg=output), qos=0)
|
client.publish(info_topic, payload=publish_payload(code=200, msg=output), qos=0)
|
||||||
|
|
||||||
|
|
||||||
def get_status(client):
|
def get_status(client):
|
||||||
|
@ -120,3 +120,11 @@ def up(msg, client):
|
||||||
|
|
||||||
def get_record(msg, client):
|
def get_record(msg, client):
|
||||||
threading.Thread(target=up, args=(msg, client)).start()
|
threading.Thread(target=up, args=(msg, client)).start()
|
||||||
|
|
||||||
|
|
||||||
|
def open_led():
|
||||||
|
subprocess.Popen(['sudo /usr/bin/python open_led.py'], shell=True)
|
||||||
|
|
||||||
|
|
||||||
|
def close_led():
|
||||||
|
subprocess.Popen(['sudo /usr/bin/python close_led.py'], shell=True)
|
||||||
|
|
Loading…
Reference in New Issue