node.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import sys
  2. sys.path.append("..")
  3. import sys
  4. import time
  5. import mytool.json_helper.parse_json as parse_json
  6. import async_communication as CM
  7. import led_control_XmSgj as led_XmSgj
  8. import led_control_GyBhhy as led_GyBhhy
  9. if __name__ == "__main__":
  10. # 读取文件
  11. config = parse_json.parse_json_with_comments('./config.json')
  12. # 数据库配置
  13. db_config = config['db_config']
  14. # rabbitmq配置
  15. mq_config = config['mq_config']
  16. # LED配置
  17. led_config = config['led_config']
  18. led_list_all_config = led_config['led_list_all']
  19. area_list_all_config = led_config['area_list_all']
  20. p_unit_id = led_config['unit']
  21. p_channel = led_config['channel']
  22. if len(sys.argv) == 3:
  23. p_unit_id = int(sys.argv[1])
  24. p_channel = int(sys.argv[2])
  25. g_rabbitmq = CM.RabbitAsyncCommunicator(mq_config['mq_ip'], mq_config['mq_port'], mq_config['mq_user'], mq_config['mq_password'])
  26. for list in mq_config['mq_statu_exchange_keys']:
  27. if list[1].find(str(p_unit_id)) >= 0:
  28. g_rabbitmq.Init(None, [list],"export_%d_led"%p_channel)
  29. if config['project_name'] == 'xm_sgj':
  30. led = led_XmSgj.led_control(p_unit_id, p_channel,led_list_all_config[str(p_unit_id)][p_channel - 1],
  31. area_list_all_config[str(p_unit_id)][p_channel - 1], db_config)
  32. elif config['project_name'] == 'gy_bhhy':
  33. led = led_GyBhhy.led_control(p_unit_id,p_channel, led_list_all_config[str(p_unit_id)][p_channel - 1],
  34. area_list_all_config[str(p_unit_id)][p_channel - 1], db_config)
  35. led.start()
  36. for ex,key in mq_config['mq_statu_exchange_keys']:
  37. g_rabbitmq.bind_statu_callback(ex,key,led.receive_dispatch_statu)
  38. g_rabbitmq.start()
  39. g_rabbitmq.join()
  40. led.join()