|
@@ -63,6 +63,8 @@ def check_topic(topic:str, pattern:str) -> bool:
|
|
]
|
|
]
|
|
}
|
|
}
|
|
"""
|
|
"""
|
|
|
|
+
|
|
|
|
+
|
|
# 处理来自设备的实时消息: /dev/{device_id}/dsp_data
|
|
# 处理来自设备的实时消息: /dev/{device_id}/dsp_data
|
|
def deal_dsp_data(msg:mqtt.MQTTMessage):
|
|
def deal_dsp_data(msg:mqtt.MQTTMessage):
|
|
try:
|
|
try:
|
|
@@ -100,6 +102,43 @@ def deal_dsp_data(msg:mqtt.MQTTMessage):
|
|
LOGERR(f"[{frame.filename}:{frame.lineno}] @{frame.name}(), error: {e}")
|
|
LOGERR(f"[{frame.filename}:{frame.lineno}] @{frame.name}(), error: {e}")
|
|
|
|
|
|
|
|
|
|
|
|
+# 处理来自设备的实时数据: /dev/{device_id}/tracker_targets
|
|
|
|
+def deal_tracker_targets(msg:mqtt.MQTTMessage):
|
|
|
|
+ try:
|
|
|
|
+ parts = msg.topic.split('/')
|
|
|
|
+ dev_id = parts[2]
|
|
|
|
+
|
|
|
|
+ device: Device = g_Dev.g_dev_mgr.find_dev_map(dev_id)
|
|
|
|
+ if not g_Dev.g_dev_mgr.find_dev_map(dev_id):
|
|
|
|
+ device = Device(dev_id)
|
|
|
|
+ g_Dev.g_dev_mgr.push_dev_map(dev_id, device)
|
|
|
|
+
|
|
|
|
+ payload = json.loads(msg.payload.decode('utf-8'))
|
|
|
|
+
|
|
|
|
+ # 处理 target
|
|
|
|
+ if ("tracker_targets" in payload):
|
|
|
|
+ tracker_targets = payload["tracker_targets"]
|
|
|
|
+
|
|
|
|
+ timestamp = get_utc_time_s()
|
|
|
|
+ pose = POSE_E.POSE_4.value
|
|
|
|
+ rtd_unit = {
|
|
|
|
+ "timestamp": timestamp,
|
|
|
|
+ "pose": pose,
|
|
|
|
+ "target_point": tracker_targets
|
|
|
|
+ }
|
|
|
|
+ device.put_rtd_unit(rtd_unit)
|
|
|
|
+ device.update_keepalive(timestamp)
|
|
|
|
+
|
|
|
|
+ except json.JSONDecodeError as e:
|
|
|
|
+ tb_info = traceback.extract_tb(e.__traceback__)
|
|
|
|
+ for frame in tb_info:
|
|
|
|
+ LOGERR(f"[{frame.filename}:{frame.lineno}] @{frame.name}(), error:{e}, {e.doc}")
|
|
|
|
+ except Exception as e:
|
|
|
|
+ tb_info = traceback.extract_tb(e.__traceback__)
|
|
|
|
+ for frame in tb_info:
|
|
|
|
+ LOGERR(f"[{frame.filename}:{frame.lineno}] @{frame.name}(), error: {e}")
|
|
|
|
+
|
|
|
|
+
|
|
# 实时位置姿态
|
|
# 实时位置姿态
|
|
def deal_realtime_pos(msg:mqtt.MQTTMessage):
|
|
def deal_realtime_pos(msg:mqtt.MQTTMessage):
|
|
try:
|
|
try:
|
|
@@ -175,8 +214,13 @@ def deal_dev_msg(client:mqtt.Client, userdaata, msg:mqtt.MQTTMessage):
|
|
|
|
|
|
# 设备实时数据
|
|
# 设备实时数据
|
|
elif (check_topic(topic,Topic_Pattern.dev_dsp_data)):
|
|
elif (check_topic(topic,Topic_Pattern.dev_dsp_data)):
|
|
|
|
+ return
|
|
deal_dsp_data(msg)
|
|
deal_dsp_data(msg)
|
|
|
|
|
|
|
|
+ # 设备实时数据
|
|
|
|
+ elif (check_topic(topic,Topic_Pattern.dev_tracker_targets)):
|
|
|
|
+ deal_tracker_targets(msg)
|
|
|
|
+
|
|
# 点云数据
|
|
# 点云数据
|
|
elif (check_topic(topic,Topic_Pattern.dev_cloudpoint)):
|
|
elif (check_topic(topic,Topic_Pattern.dev_cloudpoint)):
|
|
return
|
|
return
|