projection_node.py 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. import sys
  2. from PyQt5.QtWidgets import QWidget, QApplication,QMainWindow,QLabel
  3. from PyQt5.QtCore import Qt
  4. import window_screen_pyqt as ws
  5. import async_communication as CM
  6. import led
  7. import json
  8. import google.protobuf.text_format as tf
  9. import message_pb2 as message
  10. with open("./ui_config.json",'r',encoding='utf-8') as fp:
  11. config=json.load(fp)
  12. # led_cfg=config["led"]
  13. # db_cfg=config["db"]
  14. rabbitmq_cfg=config["rabbitmq"]
  15. terminal_id=config["terminal_id"]
  16. import_id=config["import_id"]
  17. unit=config["unit"]
  18. prj_parameter=config.get("prj")
  19. #启动入口单片机,向rabbitmq发送数据,并接收关门请求
  20. #[消息服务器ip,port,用户,密码,状态交换机名称,状态消息key]
  21. statu_ex_keys=[["statu_ex","dispatch_%d_statu_port"%unit],
  22. ["statu_ex","measure_%d_statu_port"%terminal_id],
  23. ["statu_ex","terminal_node_%d_statu_port"%terminal_id],
  24. ["statu_ex","entrance_update_%d_port"%terminal_id]
  25. ]
  26. dispatch_ex,dispatch_key=statu_ex_keys[0]
  27. measure_ex,measure_key=statu_ex_keys[1]
  28. terminal_ex,terminal_key=statu_ex_keys[2]
  29. entrance_ex,entrance_key=statu_ex_keys[3]
  30. g_rabbitmq=CM.RabbitAsyncCommunicator(rabbitmq_cfg["ip"],rabbitmq_cfg["port"],
  31. rabbitmq_cfg["user"],rabbitmq_cfg["password"])
  32. g_rabbitmq.Init(None,statu_ex_keys)
  33. g_rabbitmq.start()
  34. #启动界面
  35. #绑定单片机与界面
  36. images={"传感器超时":"./Resource/arrows/传感器超时.png",
  37. "测绘超时":"./Resource/arrows/测绘超时.png",
  38. "正确文字":"./Resource/arrows/正确文字.png",
  39. "正确图片":"./Resource/arrows/正确图片.png",
  40. "超宽车辆":"./Resource/arrows/超宽车辆.png",
  41. "超高车辆": "./Resource/arrows/超高车辆.png",
  42. "轴距超差":"./Resource/arrows/轴距超差.png",
  43. "请调整":"./Resource/arrows/请调整.png",
  44. "向前调整":"./Resource/arrows/向前调整.png",
  45. "向后调整":"./Resource/arrows/向后调整.png",
  46. "向左调整":"./Resource/arrows/向左调整.png",
  47. "向右调整":"./Resource/arrows/向右调整.png",
  48. "左前调整":"./Resource/arrows/左前调整.png",
  49. "左后调整":"./Resource/arrows/左后调整.png",
  50. "右前调整":"./Resource/arrows/右前调整.png",
  51. "右后调整":"./Resource/arrows/右后调整.png",
  52. "向左旋转":"./Resource/arrows/向左旋转.png",
  53. "向右旋转":"./Resource/arrows/向右旋转.png",
  54. "空闲":"./Resource/arrows/空闲.png",
  55. "回正方向盘":"./Resource/arrows/回正方向盘.png",
  56. "检查杂物":"./Resource/arrows/检查杂物.png"}
  57. app = QApplication(sys.argv)
  58. desktop = QApplication.desktop()
  59. frame = ws.Frame(import_id,images,prj_parameter,True)
  60. frame.resize(600, 900)
  61. frame.setWindowTitle("贵阳万寿竹路智能停车库 %d 引导"%terminal_id)
  62. frame.setWindowFlags(Qt.WindowMaximizeButtonHint|Qt.WindowCloseButtonHint)
  63. screen_count = desktop.screenCount()
  64. screen = desktop.screen(screen_count-1)
  65. frame.move(screen.geometry().x(), screen.geometry().y())
  66. frame.showMaximized()
  67. g_rabbitmq.bind_statu_callback(dispatch_ex,dispatch_key,frame.receive_dispatch)
  68. g_rabbitmq.bind_statu_callback(measure_ex,measure_key,frame.receive_measureInfo)
  69. g_rabbitmq.bind_statu_callback(terminal_ex,terminal_key,frame.receive_terminal)
  70. g_rabbitmq.bind_statu_callback(entrance_ex,entrance_key,frame.receive_entrance_update)
  71. app.exec()
  72. g_rabbitmq.close()
  73. g_rabbitmq.join()