mqtt_send.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. '''
  2. 处理mqtt发送的消息
  3. '''
  4. import queue
  5. import json
  6. from enum import Enum
  7. import numpy
  8. import g_config
  9. import common.sys_comm as sys_comm
  10. from common.sys_comm import LOGDBG, LOGINFO, LOGWARN, LOGERR
  11. from common.sys_comm import POSE_CLASS_E, POSE_E
  12. from mqtt.mqtt_topics import TOPICS
  13. import mqtt.mqtt_process as mp
  14. # 消息类型
  15. class MSG_TYPE(Enum):
  16. MSG_DEV_STATUS = 0 # 设备状态变更
  17. MSG_DEV_RAW_POINTS = 1 # 实时点云
  18. MSG_REALTIME_TARGET = 2 # 实时目标位置
  19. MSG_EVENT_FALL = 3 # 跌倒事件
  20. MSG_EVENT_EXIST = 4 # 存在事件
  21. # 准备将消息通过 MQTT 发送
  22. def send_msg(topic:str, format_json:dict, qos:int=0):
  23. try:
  24. parts = topic.split('/')
  25. model = parts[1]
  26. if model != "dev":
  27. with sys_comm.g_sys_conf_mtx:
  28. format_json["sp_id"] = g_config.g_sys_conf["sp_id"]
  29. content:str = json.dumps(format_json)
  30. mqtt_msg = {
  31. "topic": topic,
  32. "msg": content,
  33. "qos": qos
  34. }
  35. mp.g_mqtt_client.send_msg(mqtt_msg)
  36. LOGINFO(f"send_msg, {topic}")
  37. except Exception as e:
  38. LOGERR(f"send_msg error: {e}")
  39. # 告警事件
  40. def alarm_event(
  41. dev_id: str,
  42. dev_name: str,
  43. uuid: str,
  44. plan_uuid: str,
  45. event_type: str,
  46. info: dict,
  47. linkage_action: dict,
  48. table: str):
  49. format_json = dict()
  50. format_json["dev_id"] = dev_id
  51. format_json["dev_name"] = dev_name
  52. format_json["uuid"] = uuid
  53. format_json["plan_uuid"] =plan_uuid
  54. format_json["event_type"] = event_type
  55. format_json["info"] = info
  56. format_json["linkage_action"] = linkage_action
  57. format_json["table"] = table
  58. send_msg(TOPICS.las_alarm_event, format_json, 2)
  59. # 测试
  60. def las_test_resp():
  61. module_name = g_config.g_sys_conf["module_name"]
  62. platform = g_config.g_sys_conf["platform"]
  63. host_ip = g_config.g_sys_conf["host_ip"]
  64. max_log_files = g_config.g_sys_conf["max_log_files"]
  65. max_log_size = g_config.g_sys_conf["max_log_size"]
  66. log_lvl = g_config.g_sys_conf["log_lvl"]
  67. sp_id = g_config.g_sys_conf["sp_id"]
  68. format_json = dict()
  69. format_json["module_name"] = module_name
  70. format_json["platform"] = platform
  71. format_json["host_ip"] = host_ip
  72. format_json["max_log_files"] = max_log_files
  73. format_json["max_log_size"] = max_log_size
  74. format_json["log_lvl"] = log_lvl
  75. format_json["sp_id"] = sp_id
  76. send_msg(TOPICS.las_test_resp, format_json, 2)
  77. # 测试
  78. def las_debug_info(plans_info:list):
  79. sp_id = g_config.g_sys_conf["sp_id"]
  80. format_json = dict()
  81. format_json["plans_info"] = plans_info
  82. format_json["plans_total"] = len(plans_info)
  83. format_json["sp_id"] = sp_id
  84. send_msg(TOPICS.las_debug_info, format_json, 0)