MessageListener.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. from hub import methods, Global
  2. import threading
  3. import traceback
  4. import time
  5. import json
  6. import os
  7. class MessageListener:
  8. """
  9. """
  10. @classmethod
  11. def run(cls, background_is=True):
  12. from lib.UserWorkRecord import UserWorkRecord
  13. UserWorkRecord.init()
  14. # from lib.MessageListenerZJV1 import subscribe_Veh0533
  15. # from lib.MessageListenerZJV2 import subscribe_Veh0534
  16. # from lib.MessageListenerZJV3 import subscribe_Veh0535
  17. # from lib.MessageListenerZJV4 import subscribe_Veh0537
  18. # from lib.MessageListenerZJV5 import subscribe_Veh0538
  19. # todo 创建多个实例,根据不同项目现场,创建不同的监听消息的话题,以及指定对应解析使用的方法;
  20. try:
  21. from lib.TopicListener import TopicListener
  22. t1 = TopicListener('Cockpit/CanBus/CanId001/Cop001', 'method_c001')
  23. t2 = TopicListener('Vehicle/ControlVehicle/Veh001', 'method_v001')
  24. thread_list = [
  25. threading.Thread(target=t1.subscribe),
  26. threading.Thread(target=t2.subscribe),
  27. # threading.Thread(target=subscribe_Veh0533),
  28. # threading.Thread(target=subscribe_Veh0534),
  29. # threading.Thread(target=subscribe_Veh0535),
  30. # threading.Thread(target=subscribe_Veh0537),
  31. # threading.Thread(target=subscribe_Veh0538),
  32. ]
  33. for thread in thread_list:
  34. thread.setDaemon(True)
  35. thread.start()
  36. if background_is:
  37. return
  38. for thread in thread_list:
  39. thread.join()
  40. except Exception as exception:
  41. methods.debug_log("app.xxxxxxxxxxxxxxx", f"#exception: {exception.__class__.__name__}")
  42. methods.debug_log("app.xxxxxxxxxxxxxxx", f"#traceback: {traceback.format_exc()}")
  43. if __name__ == '__main__':
  44. # --- test ---
  45. MessageListener.run()