conifg_info.py 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. # 地址、正负、类型(整数、浮点)、精度(0.01)、数据(6个字节)、是否只读
  2. CONFIG_METADATA = {}
  3. IS_TIPS = True
  4. def set_key_int(_key, _addr, _tips="", _type="int", _precision=0, _readonly=False):
  5. if _key in CONFIG_METADATA:
  6. print("{} is exist".format(_key))
  7. raise 111
  8. if IS_TIPS:
  9. CONFIG_METADATA[_key] = {
  10. "tips": _tips if IS_TIPS else "",
  11. "addr": _addr, # 寄存器起始地址(word 地址)
  12. "type": _type, # "int" 或 "float","bool"
  13. "precision": 0, # 精度(用于 UI 显示或缩放)0表示整数,1表示0.1,2表示0.02
  14. "readonly": _readonly # 是否只读 True为只读
  15. }
  16. else:
  17. CONFIG_METADATA[_key] = {
  18. "addr": _addr, # 寄存器起始地址(word 地址)
  19. "type": _type, # "int" 或 "float","bool"
  20. "precision": 0, # 精度(用于 UI 显示或缩放)0表示整数,1表示0.1,2表示0.02
  21. "readonly": _readonly # 是否只读 True为只读
  22. }
  23. def set_key_float(_key, _addr, _tips="", _type="float", _precision=1, _readonly=False):
  24. if _key in CONFIG_METADATA:
  25. print("{} is exist".format(_key))
  26. raise 111
  27. if IS_TIPS:
  28. CONFIG_METADATA[_key] = {
  29. "tips": _tips if IS_TIPS else "",
  30. "addr": _addr, # 寄存器起始地址(word 地址)
  31. "type": _type, # "int" 或 "float","bool"
  32. "precision": _precision, # 精度(用于 UI 显示或缩放)0表示整数,1表示0.1,2表示0.02
  33. "readonly": _readonly # 是否只读 True为只读
  34. }
  35. else:
  36. CONFIG_METADATA[_key] = {
  37. "addr": _addr, # 寄存器起始地址(word 地址)
  38. "type": _type, # "int" 或 "float","bool"
  39. "precision": _precision, # 精度(用于 UI 显示或缩放)0表示整数,1表示0.1,2表示0.02
  40. "readonly": _readonly # 是否只读 True为只读
  41. }
  42. test_key1 = 0.5
  43. set_key_float(_key="test_key1", _addr=1, _precision=2)
  44. test_key2 = 1
  45. set_key_int(_key="test_key2", _addr=2, _tips="测试-2", )
  46. # 升降机上次命令位置
  47. camera_high_motor_target_value = 0
  48. set_key_float(_key="camera_high_motor_target_value", _addr=3, _tips="升降机当前位置", _readonly=True)
  49. # 相机角度上次命令位置
  50. camera_steering_target_value = 0
  51. set_key_float(_key="camera_steering_target_value", _addr=4, _tips="相机角度上次命令位置", _readonly=True)
  52. # ---------------------50开始处理--------------------
  53. # 升降机当前实时位置
  54. camera_high_motor_current_value = 0
  55. set_key_float(_key="camera_high_motor_current_value", _addr=51, _tips="升降机当前实时位置", _readonly=True)
  56. # 相机角度当前实时位置
  57. camera_steering_current_value = 0
  58. set_key_float(_key="camera_steering_current_value", _addr=52, _tips="相机角度当前实时位置", _readonly=True)
  59. # 转盘角度当前实时位置
  60. turntable_steering_current_value = 0
  61. set_key_float(_key="turntable_steering_current_value", _addr=53, _tips="转盘角度当前实时位置", _readonly=True)
  62. # 转盘前后当前实时位置
  63. move_turntable_steering_current_value = 0
  64. set_key_float(_key="move_turntable_steering_current_value", _addr=54, _tips="转盘前后当前实时位置", _readonly=True)
  65. # 翻板通讯是否正常
  66. over_steering_is_online = 0
  67. set_key_int(_key="over_steering_is_online", _addr=55, _tips="翻板是否在线", _readonly=True)
  68. # --------------------------基础设置--------------从ID 100开始
  69. # 自动关机时间;单位秒
  70. auto_power_off_diff_time = 7200
  71. set_key_int(_key="auto_power_off_diff_time", _addr=101, _tips="自动关机时间单位秒", )
  72. # 自动去使能;单位秒 MOTOR_TO_DISABLE
  73. auto_motor_disable_diff_time = 180
  74. set_key_int(_key="auto_motor_disable_diff_time", _addr=102, _tips="自动去使能时间单位秒", )
  75. # 220V继电器是否转换方向
  76. relay_220v_is_change_dir = 0
  77. set_key_int(_key="relay_220v_is_change_dir", _addr=103, _tips="220V继电器是否转换方向", )
  78. # 伺服急停继电器是否转换方向
  79. relay_motor_stop_is_change_dir = 0
  80. set_key_int(_key="relay_motor_stop_is_change_dir", _addr=104, _tips="伺服急停继电器是否转换方向", )
  81. # 刹车继电器是否转换方向
  82. relay_brake_is_change_dir = 0
  83. set_key_int(_key="relay_brake_is_change_dir", _addr=105, _tips="刹车继电器是否转换方向", )
  84. # 增加升降的限位高度,单位mm
  85. camera_high_motor_max_height = 387
  86. set_key_int(_key="camera_high_motor_max_height", _addr=106, _tips="升降的限位高度", )
  87. # 是否检查设备是否在线
  88. is_check_motor_online = 1
  89. set_key_int(_key="is_check_motor_online", _addr=107, _tips="是否检查设备是否在线", )
  90. # 是否检查设备是否堵转
  91. is_check_motor_blocked = 1
  92. set_key_int(_key="is_check_motor_blocked", _addr=108, _tips="是否检查设备是否堵转", )
  93. # 是否完成设备自动参数设定
  94. has_been_set_motor_config = 0
  95. set_key_int(_key="has_been_set_motor_config", _addr=109, _tips="是否完成设备自动参数设定", )
  96. # 校准角度方向
  97. angle_diff_dir = 0
  98. set_key_int(_key="angle_diff_dir", _addr=110, _tips="校准角度方向", )
  99. # LED的默认亮度
  100. led_default_brightness = 60
  101. set_key_int(_key="led_default_brightness", _addr=111, _tips="LED的默认亮度", )
  102. # 是否自动关闭使能
  103. is_auto_motor_to_disable = 1
  104. set_key_int(_key="is_auto_motor_to_disable", _addr=112, _tips="是否自动关闭使能", )
  105. # 转盘转速比
  106. turntable_steering_angle_ratio = 35.6
  107. set_key_float(_key="turntable_steering_angle_ratio", _addr=113, _tips="转盘转速比", )
  108. # LED灯的数量
  109. led_count = 20
  110. set_key_int(_key="led_count", _addr=114, _tips="LED灯的数量", )
  111. # 转盘前后移动设备的初始化模式 1表示碰撞 0表示限位
  112. turntable_move_to_init_mode = 0
  113. set_key_int(_key="turntable_move_to_init_mode", _addr=115, _tips="转盘前后移动设备的初始化模式 1表示碰撞 0表示限位", )
  114. # 是否测试
  115. is_test = 0
  116. set_key_int(_key="is_test", _addr=116, _tips="is_test", )
  117. # 电机停止速度检测
  118. low_speed = 300
  119. set_key_int(_key="low_speed", _addr=117, _tips="电机停止速度检测", )
  120. # 自动发送基础信息
  121. is_auto_send_base_info = 0
  122. set_key_int(_key="is_auto_send_base_info", _addr=118, _tips="自动发送基础信息", )
  123. # 失去使能升降自动归零
  124. disable_camera_high_to_zero = 0
  125. set_key_int(_key="disable_camera_high_to_zero", _addr=119, _tips="失去使能升降自动归零", )
  126. # 前后移动电机初始化后距离
  127. front_rear_motor_init_distance = 0
  128. set_key_int(_key="front_rear_motor_init_distance", _addr=120, _tips="前后移动电机初始化后距离", )
  129. # 每秒自动检查电机是否停止
  130. auto_check_motor_stop = 0
  131. set_key_int(_key="auto_check_motor_stop", _addr=121, _tips="每秒自动检查电机是否停止", )
  132. # 前后移动电机是否存在
  133. turntable_move_is_exist = 1
  134. set_key_int(_key="turntable_move_is_exist", _addr=122, _tips="前后移动电机是否存在", )
  135. # -------------------------------------
  136. # 转盘偏移角度 单位1度
  137. turntable_steering_deviation = 0
  138. set_key_float(_key="turntable_steering_deviation", _addr=200, _tips="转盘偏移角度", )
  139. # 相机偏移角度 单位1度
  140. camera_steering_deviation = 0
  141. set_key_float(_key="camera_steering_deviation", _addr=201, _tips="相机偏移角度", )
  142. # 升降偏移距离mm
  143. camera_high_motor_deviation = 0
  144. set_key_int(_key="camera_high_motor_deviation", _addr=202, _tips="升降偏移距离mm", )
  145. # 翻板中位 单位1度
  146. overturn_steering_middle = 95
  147. set_key_float(_key="overturn_steering_middle", _addr=203, _tips="翻板中位 单位0.1度", )
  148. # 翻板高位 单位1度
  149. overturn_steering_high = 150
  150. set_key_float(_key="overturn_steering_high", _addr=204, _tips="翻板高位 单位0.1度", )
  151. # 翻板上升速度
  152. overturn_steering_up_speed = 2
  153. set_key_int(_key="overturn_steering_up_speed", _addr=205, _tips="翻板上升速度", )
  154. # 翻板下降速度
  155. overturn_steering_down_speed = 4
  156. set_key_int(_key="overturn_steering_down_speed", _addr=206, _tips="翻板下降速度", )
  157. # 是否完成初始化
  158. has_been_set = 0
  159. set_key_int(_key="has_been_set", _addr=207, _tips="是否完成初始化", _readonly=True)
  160. # 相机调焦功能支持
  161. camera_has_focal = 0
  162. set_key_int(_key="camera_has_focal", _addr=208, _tips="相机调焦功能支持", )
  163. # 相机最大焦段
  164. camera_max_focal = 55
  165. set_key_int(_key="camera_max_focal", _addr=209, _tips="相机最大焦段", )
  166. # 相机最小焦段
  167. camera_min_focal = 15
  168. set_key_int(_key="camera_min_focal", _addr=210, _tips="相机最小焦段", )
  169. # 相机焦段步进ratio
  170. camera_focal_ratio = 0.0
  171. set_key_float(_key="camera_focal_ratio", _addr=211, _tips="相机焦段步进ratio", )
  172. # 相机焦段步进自动归零
  173. camera_zoom_auto_to_zero = 1
  174. set_key_float(_key="camera_zoom_auto_to_zero", _addr=212, _tips="相机焦段步进自动归零", )
  175. # 相机焦段当前实时位置
  176. camera_zoom_motor_current_value = 0
  177. set_key_float(_key="camera_zoom_motor_current_value", _addr=213, _tips="相机焦段当前实时位置", _readonly=True)
  178. # =====================================================
  179. # 获取剩余内存
  180. get_memory = 0
  181. set_key_float(_key="get_memory", _addr=300, _tips="获取剩余内存", _readonly=True)
  182. # =====================================================
  183. # ===============调试用======================
  184. # 相机焦段功能设置
  185. camera_focal_set = 0
  186. set_key_float(_key="camera_focal_set", _addr=400, _tips="相机焦段功能设置", _readonly=True)
  187. # 生成一个以addr为key的字典
  188. CONFIG_METADATA_BY_ADDR = {}
  189. for key, meta in CONFIG_METADATA.items():
  190. addr = meta["addr"]
  191. if addr in CONFIG_METADATA_BY_ADDR:
  192. print("{} 有重复".format(addr))
  193. raise "11111111"
  194. CONFIG_METADATA_BY_ADDR[addr] = key
  195. # CONFIG_METADATA_BY_ADDR[addr]["key_name"] = key
  196. # print(CONFIG_METADATA)