You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

549 lines
32 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. #pragma once
  2. #include <stdint.h>
  3. #include "basic.hpp"
  4. namespace iflytop {
  5. namespace zcr {
  6. typedef enum {
  7. kcmd_ping = CMDID(0, 0),
  8. kcmd_read_io = CMDID(1, 0),
  9. kcmd_set_io = CMDID(2, 0),
  10. kcmd_readadc_raw = CMDID(3, 0),
  11. kcmd_m211887_operation = CMDID(1000, 0), // ��������������
  12. kcmd_read_presure_sensor = CMDID(1001, 0), // ѹ��������
  13. kcmd_triple_warning_light_ctl = CMDID(1002, 0), // ��ɫ��ʾ�ƿ���
  14. kcmd_high_power_electrical_ctl = CMDID(1003, 0), // �����ʵ�Դ����
  15. kcmd_peristaltic_pump_ctl = CMDID(1004, 0), // Һ�ÿ���
  16. kcmd_read_huacheng_pressure_sensor = CMDID(1005, 0), // ����ѹ��������
  17. /*******************************************************************************
  18. * |Module_1006:XYRobot˿ģ *
  19. *******************************************************************************/
  20. kcmd_xy_robot_ctrl_enable = CMDID(1006, 0), // ������ʹ��
  21. kcmd_xy_robot_ctrl_stop = CMDID(1006, 1), // ������ֹͣ
  22. kcmd_xy_robot_ctrl_move_to_zero = CMDID(1006, 2), // �����˻���
  23. kcmd_xy_robot_ctrl_move_to_zero_with_calibrate = CMDID(1006, 3), // �����˻��㲢�궨
  24. kcmd_xy_robot_ctrl_move_to = CMDID(1006, 4), // �������ƶ���ָ��λ��
  25. kcmd_xy_robot_ctrl_move_by = CMDID(1006, 5), // �������ƶ�ָ������
  26. kcmd_xy_robot_ctrl_read_version = CMDID(1006, 50), // ��ȡģ���ͺŰ汾��Ϣ
  27. kcmd_xy_robot_ctrl_read_status = CMDID(1006, 51), // ��ȡģ�龫��״̬��Ϣ
  28. kcmd_xy_robot_ctrl_read_debug_info = CMDID(1006, 52), // ��ȡģ����ϸ״̬��Ϣ
  29. kcmd_xy_robot_ctrl_set_run_param = CMDID(1006, 100), // ���������
  30. kcmd_xy_robot_ctrl_set_warning_limit_param = CMDID(1006, 101), // ���ÿ������Ʋ���
  31. kcmd_xy_robot_ctrl_set_run_to_zero_param = CMDID(1006, 102), // ���ù�������
  32. /*******************************************************************************
  33. * |Module_1007:ģ *
  34. *******************************************************************************/
  35. kcmd_step_motor_ctrl_enable = CMDID(1007, 0), // ʹ��
  36. kcmd_step_motor_ctrl_stop = CMDID(1007, 1), // ֹͣ
  37. kcmd_step_motor_ctrl_move_to_zero = CMDID(1007, 2), // ����
  38. kcmd_step_motor_ctrl_move_to_zero_with_calibrate = CMDID(1007, 3), // ���㲢У׼
  39. kcmd_step_motor_ctrl_move_to = CMDID(1007, 4), // �ƶ���
  40. kcmd_step_motor_ctrl_move_by = CMDID(1007, 5), // �����ƶ�
  41. kcmd_step_motor_ctrl_rotate = CMDID(1007, 6), // �����ƶ�
  42. kcmd_step_motor_ctrl_read_version = CMDID(1007, 50), // ��ȡģ���ͺŰ汾��Ϣ
  43. kcmd_step_motor_ctrl_read_status = CMDID(1007, 51), // ��ȡģ�龫��״̬��Ϣ
  44. kcmd_step_motor_ctrl_read_debug_info = CMDID(1007, 52), // ��ȡģ����ϸ״̬��Ϣ
  45. kcmd_step_motor_ctrl_set_run_param = CMDID(1007, 100), // ���������
  46. kcmd_step_motor_ctrl_set_warning_limit_param = CMDID(1007, 101), // ���þ������Ʋ���
  47. kcmd_step_motor_ctrl_set_run_to_zero_param = CMDID(1007, 102), // ���ù�������
  48. /*******************************************************************************
  49. * |Module_1008: *
  50. *******************************************************************************/
  51. kcmd_mini_servo_ctrl_enable = CMDID(1008, 0), // ʹ��
  52. kcmd_mini_servo_ctrl_stop = CMDID(1008, 1), // ֹͣ
  53. kcmd_mini_servo_ctrl_position_calibrate = CMDID(1008, 2), // У׼
  54. kcmd_mini_servo_ctrl_rotate = CMDID(1008, 3), // �ٶ�ģʽ
  55. kcmd_mini_servo_ctrl_move_to = CMDID(1008, 4), // λ��ģʽ����
  56. kcmd_mini_servo_ctrl_move_by = CMDID(1008, 5), // λ��ģʽ����
  57. kcmd_mini_servo_ctrl_run_with_torque = CMDID(1008, 6), // ����Ť��ģʽ
  58. kcmd_mini_servo_ctrl_move_by_nolimit = CMDID(1008, 7), // �����ƶ�,λ��ģʽ������,�ƶ���������λ�ú���Сλ�����ƣ����޷���ȡ����ǰλ��
  59. kcmd_mini_servo_ctrl_read_version = CMDID(1008, 50), // ��ȡģ���ͺŰ汾��Ϣ
  60. kcmd_mini_servo_ctrl_read_status = CMDID(1008, 51), // ��ȡģ�龫��״̬��Ϣ
  61. kcmd_mini_servo_ctrl_read_debug_info = CMDID(1008, 52), // ��ȡģ����ϸ״̬��Ϣ
  62. kcmd_mini_servo_ctrl_set_run_param = CMDID(1008, 100), // λ������ ����λ�ã���Сλ��
  63. kcmd_mini_servo_ctrl_set_warning_limit_param = CMDID(1008, 101), // ��ѹ�������� ������ѹ ��С��ѹ
  64. /*******************************************************************************
  65. * |Module_1009:EEPROM *
  66. *******************************************************************************/
  67. kcmd_eeprom_read_block = CMDID(1009, 0), // ��ȡEEPROM
  68. kcmd_eeprom_write_block = CMDID(1009, 1), // �EEPROM
  69. /*******************************************************************************
  70. * |Module_1010:ɨ *
  71. *******************************************************************************/
  72. kcmd_barcode_reader_start_scan = CMDID(1010, 0), // ��ȡɨ����
  73. kcmd_barcode_reader_stop_scan = CMDID(1010, 1), // ֹͣ��ȡɨ����
  74. /*******************************************************************************
  75. * |Module_1011:-ˮ-ȿϵͳ *
  76. *******************************************************************************/
  77. // ����Ŀ���¶�
  78. kcmd_heater_ctrl_module_start_ctrl_temperature = CMDID(1011, 0), // ����Ŀ���¶�
  79. kcmd_heater_ctrl_module_read_stop_temperature = CMDID(1011, 1), // ��ȡֹͣ�¶�
  80. kcmd_heater_ctrl_module_read_version = CMDID(1011, 50), // ��ȡģ���ͺŰ汾��Ϣ
  81. kcmd_heater_ctrl_module_read_status = CMDID(1011, 51), // ��ȡģ�龫��״̬��Ϣ
  82. kcmd_heater_ctrl_module_read_debug_info = CMDID(1011, 52), // ��ȡģ����ϸ״̬��Ϣ
  83. kcmd_heater_ctrl_module_set_run_param = CMDID(1011, 100), // ���������
  84. kcmd_heater_ctrl_module_set_warning_limit_param = CMDID(1011, 101), // �������Ʋ���
  85. /*******************************************************************************
  86. * |Module_1012:ѧģɨ *
  87. *******************************************************************************/
  88. kcmd_optical_barcode_reader_start_scan = CMDID(1012, 0), // ��ʼɨ��
  89. kcmd_optical_barcode_reader_stop_scan = CMDID(1012, 1), // ֹͣɨ��
  90. kcmd_optical_barcode_reader_motor_move_to = CMDID(1012, 4), // ˮƽ�����ƶ���
  91. kcmd_optical_barcode_reader_motor_move_to_zero = CMDID(1012, 6), // ����У׼
  92. kcmd_optical_barcode_reader_motor_move_to_zero_with_calibrate = CMDID(1012, 7), // ����У׼
  93. kcmd_optical_barcode_reader_motor_stop = CMDID(1012, 8), // ����ֹͣ
  94. kcmd_optical_barcode_reader_motor_enable = CMDID(1012, 9), // ����ʹ��
  95. kcmd_optical_barcode_reader_read_version = CMDID(1012, 50), // ��ȡģ���ͺŰ汾��Ϣ
  96. kcmd_optical_barcode_reader_read_status = CMDID(1012, 51), // ��ȡģ�龫��״̬��Ϣ
  97. kcmd_optical_barcode_reader_read_debug_info = CMDID(1012, 52), // ��ȡģ����ϸ״̬��Ϣ
  98. kcmd_optical_barcode_reader_set_run_param = CMDID(1012, 100), // ���������
  99. kcmd_optical_barcode_reader_set_warning_limit_param = CMDID(1012, 101), // �������Ʋ���
  100. kcmd_optical_barcode_reader_set_run_to_zero_param = CMDID(1012, 102), // ���ù�������
  101. /*******************************************************************************
  102. * |Module_1013:в *
  103. *******************************************************************************/
  104. kcmd_board_clamp_module_push_and_scan = CMDID(1013, 0), // �Ƴ���Ӧ�岢ɨ��
  105. kcmd_board_clamp_module_moter_move_to = CMDID(1013, 1), // �����ƶ���
  106. kcmd_board_clamp_module_moter_move_by = CMDID(1013, 2), // �����ƶ���
  107. kcmd_board_clamp_module_moter_move_to_zero = CMDID(1013, 3), // ��������
  108. kcmd_board_clamp_module_moter_move_to_zero_with_calibrate = CMDID(1013, 4), // �������㲢У׼
  109. kcmd_board_clamp_module_moter_stop = CMDID(1013, 5), // ����ֹͣ
  110. kcmd_board_clamp_module_moter_enable = CMDID(1013, 6), // ����ʹ��
  111. kcmd_board_clamp_module_read_version = CMDID(1013, 50), // ��ȡģ���ͺŰ汾��Ϣ
  112. kcmd_board_clamp_module_read_status = CMDID(1013, 51), // ��ȡģ�龫��״̬��Ϣ
  113. kcmd_board_clamp_module_read_debug_info = CMDID(1013, 52), // ��ȡģ����ϸ״̬��Ϣ
  114. kcmd_board_clamp_module_set_run_param = CMDID(1013, 100), // ���������
  115. kcmd_board_clamp_module_set_warning_limit_param = CMDID(1013, 101), // �������Ʋ���
  116. kcmd_board_clamp_module_set_run_to_zero_param = CMDID(1013, 102), // ���ù�������
  117. // ����
  118. /*******************************************************************************
  119. * |Module_1014: *
  120. *******************************************************************************/
  121. kcmd_fan_module_fan_ctrl = CMDID(1014, 0), // ���ȿ���
  122. kcmd_fan_module_fan_read_status = CMDID(1014, 50), // ��ȡģ�龫��״̬��Ϣ
  123. kcmd_fan_module_fan_read_debug_info = CMDID(1014, 51), // ��ȡģ����ϸ״̬��Ϣ
  124. // ����͸��
  125. /*******************************************************************************
  126. * |Module_1015:͸ *
  127. *******************************************************************************/
  128. kcmd_serial_module_send_data = CMDID(1015, 0), // ����͸����������
  129. kcmd_serial_module_start_read_data = CMDID(1015, 1), // ����͸����ȡ����
  130. kcmd_serial_module_start_stop_data = CMDID(1015, 2), // ����͸��ֹͣ��ȡ����
  131. kcmd_serial_module_read_status = CMDID(1015, 50), // ��ȡģ��״̬��Ϣ
  132. kcmd_serial_module_set_cfg = CMDID(1015, 100), // ����͸����������
  133. // ��Һǹ����
  134. /*******************************************************************************
  135. * |Module_1016:Һǹ *
  136. *******************************************************************************/
  137. kcmd_pipette_module_z_motor_enable = CMDID(1016, 0), // ʹ��
  138. kcmd_pipette_module_z_motor_move_to = CMDID(1016, 1), // �ƶ���
  139. kcmd_pipette_module_z_motor_move_to_zero = CMDID(1016, 2), // ����
  140. kcmd_pipette_module_z_motor_move_to_zero_with_calibrate = CMDID(1016, 3), // ���㲢У׼
  141. kcmd_pipette_module_z_motor_stop = CMDID(1016, 4), // ֹͣ
  142. kcmd_pipette_module_take_liquid = CMDID(1016, 4), // ȡҺ��
  143. kcmd_pipette_module_split_liquid = CMDID(1016, 5), // ��Һ��
  144. kcmd_pipette_module_take_tip = CMDID(1016, 6), // ȡtip
  145. kcmd_pipette_module_remove_tip = CMDID(1016, 7), // �Ƴ�tip
  146. kcmd_pipette_module_read_version = CMDID(1016, 50), // ��ȡģ���ͺŰ汾��Ϣ
  147. kcmd_pipette_module_read_status = CMDID(1016, 51), // ��ȡģ�龫��״̬��Ϣ
  148. kcmd_pipette_module_read_debug_info = CMDID(1016, 52), // ��ȡģ����ϸ״̬��Ϣ
  149. kcmd_pipette_module_set_run_param = CMDID(1016, 100), // ���������
  150. kcmd_pipette_module_set_warning_limit_param = CMDID(1016, 101), // �������Ʋ���
  151. kcmd_pipette_module_set_run_to_zero_param = CMDID(1016, 102), // ���ù�������
  152. } CmdID_t;
  153. #pragma pack(push, 1)
  154. ZPACKET_CMD_ACK(kcmd_ping, //
  155. CMD(u8 boardid;), //
  156. ACK(u8 boardid;));
  157. ZPACKET_CMD_ACK(kcmd_read_io, //
  158. CMD(u8 ioid;), //
  159. ACK(u8 ioid; u8 val;));
  160. ZPACKET_CMD_ACK(kcmd_set_io, //
  161. CMD(u8 ioid; u8 val;), //
  162. ACK(u8 ioid; u8 val;));
  163. ZPACKET_CMD_ACK(kcmd_readadc_raw, //
  164. CMD(u8 sensorid;), //
  165. ACK(u8 sensorid; s32 val;));
  166. /*******************************************************************************
  167. * |Module_1006:XYRobot˿ģ *
  168. *******************************************************************************/
  169. // ACTION
  170. ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_enable,
  171. CMD(u8 id; u8 enable;), //
  172. ACK(u8 id;));
  173. ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_stop,
  174. CMD(u8 id; u8 stop_type;), //
  175. ACK(u8 id;));
  176. ZPACKET_CMD_ACK_AND_REPORT(kcmd_xy_robot_ctrl_move_to_zero,
  177. CMD(u8 id;), //
  178. ACK(u8 id;), //
  179. REPORT(u8 id; u8 status;));
  180. ZPACKET_CMD_ACK_AND_REPORT(kcmd_xy_robot_ctrl_move_to_zero_with_calibrate,
  181. CMD(u8 id; s32 nowx; s32 nowy;), //
  182. ACK(u8 id;), //
  183. REPORT(u8 id; u8 status; s32 zero_shift_x; s32 zero_shift_y;));
  184. ZPACKET_CMD_ACK_AND_REPORT(kcmd_xy_robot_ctrl_move_to,
  185. CMD(u8 id; s32 x; s32 y; s32 speed;), //
  186. ACK(u8 id;), //
  187. REPORT(u8 id; u8 status; s32 x; s32 y;));
  188. ZPACKET_CMD_ACK_AND_REPORT(kcmd_xy_robot_ctrl_move_by,
  189. CMD(u8 id; s32 dx; s32 dy; s32 speed;), //
  190. ACK(u8 id;), //
  191. REPORT(u8 id; u8 status; s32 dx; s32 dy;));
  192. // READ
  193. ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_read_version, //
  194. CMD(u8 id;), //
  195. ACK(u8 id; u32 version;));
  196. ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_read_status, //
  197. CMD(u8 id;), //
  198. ACK(u8 id; u8 status; s32 x; s32 y;));
  199. ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_read_debug_info, //
  200. CMD(u8 id;), //
  201. ACK(u8 id; u8 status; s32 x; s32 y;));
  202. // SET
  203. ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_set_run_param, //
  204. CMD(u8 id; u8 opt_type; u8 shaft; s32 distance_scale; s32 shift_x; s32 shift_y; s32 acc; s32 dec; s32 maxspeed; s32 min_x; s32 max_x; s32 min_y;
  205. s32 max_y;), //
  206. ACK(u8 id; u8 opt_type; u8 shaft; s32 distance_scale; s32 shift_x; s32 shift_y; s32 acc; s32 dec; s32 maxspeed; s32 min_x; s32 max_x; s32 min_y;
  207. s32 max_y;));
  208. ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_set_warning_limit_param, //
  209. CMD(u8 id; u8 opt_type;), //
  210. ACK(u8 id; u8 opt_type;));
  211. ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_set_run_to_zero_param, //
  212. CMD(u8 id; u8 opt_type; u32 move_to_zero_max_d; u32 leave_from_zero_max_d; u32 speed; u32 dec;), //
  213. ACK(u8 id; u8 opt_type; u32 move_to_zero_max_d; u32 leave_from_zero_max_d; u32 speed; u32 dec;));
  214. /*******************************************************************************
  215. * |Module_1007:ģ *
  216. *******************************************************************************/
  217. ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_enable,
  218. CMD(u8 id; u8 enable;), //
  219. ACK(u8 id;));
  220. ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_stop,
  221. CMD(u8 id; u8 stop_type;), //
  222. ACK(u8 id;));
  223. ZPACKET_CMD_ACK_AND_REPORT(kcmd_step_motor_ctrl_move_to_zero,
  224. CMD(u8 id;), //
  225. ACK(u8 id;), //
  226. REPORT(u8 id; u8 status;));
  227. ZPACKET_CMD_ACK_AND_REPORT(kcmd_step_motor_ctrl_move_to_zero_with_calibrate,
  228. CMD(u8 id; s32 nowx; s32 nowy;), //
  229. ACK(u8 id;), //
  230. REPORT(u8 id; u8 status; s32 zero_shift_x;));
  231. ZPACKET_CMD_ACK_AND_REPORT(kcmd_step_motor_ctrl_move_to,
  232. CMD(u8 id; s32 x; s32 speed;), //
  233. ACK(u8 id;), //
  234. REPORT(u8 id; u8 status; u32 x;));
  235. ZPACKET_CMD_ACK_AND_REPORT(kcmd_step_motor_ctrl_move_by,
  236. CMD(u8 id; s32 dx; s32 speed;), //
  237. ACK(u8 id;), //
  238. REPORT(u8 id; u8 status; s32 dx;));
  239. ZPACKET_CMD_ACK_AND_REPORT(kcmd_step_motor_ctrl_rotate,
  240. CMD(u8 id; s32 speed; s32 run_time;), //
  241. ACK(u8 id;), //
  242. REPORT(u8 id; u8 status; s32 has_run_time;));
  243. ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_read_version, //
  244. CMD(u8 id;), //
  245. ACK(u8 id;));
  246. ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_read_status, //
  247. CMD(u8 id;), //
  248. ACK(u8 id; u8 status; s32 x; s32 velocity;));
  249. ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_read_debug_info, //
  250. CMD(u8 id;), //
  251. ACK(u8 id; u8 status; s32 x; s32 velocity; s32 acc; s32 dec; s32 speed;));
  252. ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_set_run_param, //
  253. CMD(u8 id; u8 opt_type; u8 shaft; s32 d_scale; s32 x_shift; s32 acc; s32 dec; s32 breakdec; s32 maxv; s32 minpos; s32 maxpos;), //
  254. ACK(u8 id; u8 opt_type; u8 shaft; s32 d_scale; s32 x_shift; s32 acc; s32 dec; s32 breakdec; s32 maxv; s32 minpos; s32 maxpos;));
  255. ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_set_warning_limit_param, //
  256. CMD(u8 id; u8 opt_type; s32 pad;), //
  257. ACK(u8 id; u8 opt_type; s32 pad;));
  258. ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_set_run_to_zero_param, //
  259. CMD(u8 id; u8 opt_type; u32 move_to_zero_max_d; u32 leave_from_zero_max_d; u32 speed; u32 dec;), //
  260. ACK(u8 id; u8 opt_type; u32 move_to_zero_max_d; u32 leave_from_zero_max_d; u32 speed; u32 dec;));
  261. /*******************************************************************************
  262. * |Module_1008: *
  263. *******************************************************************************/
  264. ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_enable,
  265. CMD(u8 id; u8 enable;), //
  266. ACK(u8 id;));
  267. ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_stop,
  268. CMD(u8 id; u8 stop_type;), //
  269. ACK(u8 id;));
  270. ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_position_calibrate,
  271. CMD(u8 id; s32 calibrate_pos;), //
  272. ACK(u8 id;));
  273. ZPACKET_CMD_ACK_AND_REPORT(kcmd_mini_servo_ctrl_rotate,
  274. CMD(u8 id; s32 speed; s32 run_time;), //
  275. ACK(u8 id;), //
  276. REPORT(u8 id; u8 status; s32 has_run_time;));
  277. ZPACKET_CMD_ACK_AND_REPORT(kcmd_mini_servo_ctrl_move_to,
  278. CMD(u8 id; s32 pos; s32 speed; s32 torque;), //
  279. ACK(u8 id;), //
  280. REPORT(u8 id; u8 status; s32 pos;));
  281. ZPACKET_CMD_ACK_AND_REPORT(kcmd_mini_servo_ctrl_move_by,
  282. CMD(u8 id; s32 pos; s32 speed; s32 torque;), //
  283. ACK(u8 id;), //
  284. REPORT(u8 id; u8 status; s32 pos;));
  285. ZPACKET_CMD_ACK_AND_REPORT(kcmd_mini_servo_ctrl_run_with_torque,
  286. CMD(u8 id; s32 torque; s32 run_time;), //
  287. ACK(u8 id;), //
  288. REPORT(u8 id; u8 status; s32 has_run_time;));
  289. ZPACKET_CMD_ACK_AND_REPORT(kcmd_mini_servo_ctrl_move_by_nolimit,
  290. CMD(u8 id; s32 pos; s32 speed; s32 torque;), //
  291. ACK(u8 id;), //
  292. REPORT(u8 id; u8 status; s32 pos;));
  293. /*******************************************************************************
  294. * |Module_1009:EEPROM *
  295. *******************************************************************************/
  296. ZPACKET_CMD_ACK(kcmd_eeprom_read_block,
  297. CMD(u8 id; u16 addr; u16 len;), //
  298. ACK(u8 id; u16 addr; u16 len; u8 data[0];));
  299. ZPACKET_CMD_ACK(kcmd_eeprom_write_block,
  300. CMD(u8 id; u16 addr; u16 len; u8 data[0];), //
  301. ACK(u8 id; u16 addr; u16 len;));
  302. /*******************************************************************************
  303. * |Module_1010:ɨ *
  304. *******************************************************************************/
  305. ZPACKET_CMD_ACK_AND_REPORT(kcmd_barcode_reader_start_scan,
  306. CMD(u8 id;), //
  307. ACK(u8 id;), //
  308. REPORT(u8 id; u8 status; u16 barcodelen; u8 barcode[0];));
  309. ZPACKET_CMD_ACK(kcmd_barcode_reader_stop_scan,
  310. CMD(u8 id;), //
  311. ACK(u8 id;));
  312. /*******************************************************************************
  313. * |Module_1011:-ˮ-ȿϵͳ *
  314. *******************************************************************************/
  315. ZPACKET_CMD_ACK(kcmd_heater_ctrl_module_start_ctrl_temperature,
  316. CMD(u8 id; s32 target_temperature;), //
  317. ACK(u8 id;));
  318. ZPACKET_CMD_ACK(kcmd_heater_ctrl_module_read_stop_temperature,
  319. CMD(u8 id;), //
  320. ACK(u8 id;));
  321. ZPACKET_CMD_ACK(kcmd_heater_ctrl_module_read_version,
  322. CMD(u8 id;), //
  323. ACK(u8 id; uint32_t version;));
  324. ZPACKET_CMD_ACK(kcmd_heater_ctrl_module_read_status,
  325. CMD(u8 id;), //
  326. ACK(u8 id; u8 status; s32 temperature;));
  327. ZPACKET_CMD_ACK(kcmd_heater_ctrl_module_read_debug_info,
  328. CMD(u8 id;), //
  329. ACK(u8 id; u8 status; s32 temperature;));
  330. ZPACKET_CMD_ACK(kcmd_heater_ctrl_module_set_run_param,
  331. CMD(u8 id; u8 opt_type; s32 kp; s32 ki; s32 kd; s32 max_pwm; s32 min_temperature; s32 max_temperature;), //
  332. ACK(u8 id; u8 opt_type; s32 kp; s32 ki; s32 kd; s32 max_pwm; s32 min_temperature; s32 max_temperature;));
  333. ZPACKET_CMD_ACK(kcmd_heater_ctrl_module_set_warning_limit_param,
  334. CMD(u8 id; u8 opt_type;), //
  335. ACK(u8 id; u8 opt_type;));
  336. /*******************************************************************************
  337. * |Module_1012:ѧģɨ *
  338. *******************************************************************************/
  339. ZPACKET_CMD_ACK_AND_REPORT(kcmd_optical_barcode_reader_start_scan,
  340. CMD(u8 id;), //
  341. ACK(u8 id;), //
  342. REPORT(u8 id; u8 status; u16 codelen; u16 code[0];));
  343. ZPACKET_CMD_ACK(kcmd_optical_barcode_reader_stop_scan,
  344. CMD(u8 id;), //
  345. ACK(u8 id;));
  346. ZPACKET_CMD_ACK_AND_REPORT(kcmd_optical_barcode_reader_motor_move_to,
  347. CMD(u8 id; u8 motor_id; s32 pos; s32 speed;), //
  348. ACK(u8 id;), //
  349. REPORT(u8 id; u8 status; s32 pos;));
  350. ZPACKET_CMD_ACK_AND_REPORT(kcmd_optical_barcode_reader_motor_move_to_zero,
  351. CMD(u8 id; u8 motor_id;), //
  352. ACK(u8 id;), //
  353. REPORT(u8 id; u8 status;));
  354. ZPACKET_CMD_ACK_AND_REPORT(kcmd_optical_barcode_reader_motor_move_to_zero_with_calibrate,
  355. CMD(u8 id; u8 motor_id; s32 now_pos;), //
  356. ACK(u8 id;), //
  357. REPORT(u8 id; u8 status; s32 zero_shift;));
  358. ZPACKET_CMD_ACK(kcmd_optical_barcode_reader_motor_stop,
  359. CMD(u8 id; u8 motor_id;), //
  360. ACK(u8 id;));
  361. ZPACKET_CMD_ACK(kcmd_optical_barcode_reader_read_version,
  362. CMD(u8 id;), //
  363. ACK(u8 id;));
  364. ZPACKET_CMD_ACK(kcmd_optical_barcode_reader_read_status,
  365. CMD(u8 id;), //
  366. ACK(u8 id; u8 status; u8 hasmove2zero[2]; s32 pos[2];));
  367. ZPACKET_CMD_ACK(kcmd_optical_barcode_reader_read_debug_info,
  368. CMD(u8 id;), //
  369. ACK(u8 id; u8 status; u8 hasmove2zero[2]; s32 pos[2]; s32 acc[2]; s32 speed[2];));
  370. ZPACKET_CMD_ACK(kcmd_optical_barcode_reader_set_run_param, //
  371. CMD(u8 id; u8 opt_type; s32 acc[2]; s32 dec[2]; s32 max_speed[2]; s32 min_pos[2]; s32 max_pos[2];), //
  372. ACK(u8 id; u8 opt_type; s32 acc[2]; s32 dec[2]; s32 max_speed[2]; s32 min_pos[2]; s32 max_pos[2];));
  373. ZPACKET_CMD_ACK(kcmd_optical_barcode_reader_set_warning_limit_param,
  374. CMD(u8 id; u8 opt_type; s32 pad;), //
  375. ACK(u8 id; u8 opt_type; s32 pad;));
  376. ZPACKET_CMD_ACK(kcmd_optical_barcode_reader_set_run_to_zero_param,
  377. CMD(u8 id; u8 opt_type; s32 move_to_zero_max_d[2]; s32 leave_from_zero_max_d[2]; s32 speed[2]; s32 dec[2];), //
  378. ACK(u8 id; u8 opt_type; s32 move_to_zero_max_d[2]; s32 leave_from_zero_max_d[2]; s32 speed[2]; s32 dec[2];));
  379. /*******************************************************************************
  380. * Module_1013:в *
  381. *******************************************************************************/
  382. ZPACKET_CMD_ACK_AND_REPORT(kcmd_board_clamp_module_push_and_scan,
  383. CMD(u8 id;), //
  384. ACK(u8 id;), //
  385. REPORT(u8 id; u8 status; u16 barcodelen; u8 barcode[0];));
  386. ZPACKET_CMD_ACK_AND_REPORT(kcmd_board_clamp_module_moter_move_to,
  387. CMD(u8 id; u8 motor_id; s32 pos; s32 speed;), //
  388. ACK(u8 id;), //
  389. REPORT(u8 id; u8 status; s32 pos;));
  390. ZPACKET_CMD_ACK_AND_REPORT(kcmd_board_clamp_module_moter_move_by,
  391. CMD(u8 id; u8 motor_id; s32 pos; s32 speed;), //
  392. ACK(u8 id;), //
  393. REPORT(u8 id; u8 status; s32 pos;));
  394. ZPACKET_CMD_ACK_AND_REPORT(kcmd_board_clamp_module_moter_move_to_zero,
  395. CMD(u8 id; u8 motor_id;), //
  396. ACK(u8 id;), //
  397. REPORT(u8 id; u8 status;));
  398. ZPACKET_CMD_ACK_AND_REPORT(kcmd_board_clamp_module_moter_move_to_zero_with_calibrate,
  399. CMD(u8 id; u8 motor_id; s32 now_pos;), //
  400. ACK(u8 id;), //
  401. REPORT(u8 id; u8 status; s32 zero_shift;));
  402. ZPACKET_CMD_ACK(kcmd_board_clamp_module_moter_stop,
  403. CMD(u8 id; u8 motor_id;), //
  404. ACK(u8 id;));
  405. ZPACKET_CMD_ACK(kcmd_board_clamp_module_read_version,
  406. CMD(u8 id;), //
  407. ACK(u8 id;));
  408. ZPACKET_CMD_ACK(kcmd_board_clamp_module_read_status,
  409. CMD(u8 id;), //
  410. ACK(u8 id; u8 status; u8 hasmove2zero[2]; s32 pos[2];));
  411. ZPACKET_CMD_ACK(kcmd_board_clamp_module_read_debug_info,
  412. CMD(u8 id;), //
  413. ACK(u8 id; u8 status; u8 hasmove2zero[2]; s32 pos[2]; s32 acc[2]; s32 speed[2];));
  414. ZPACKET_CMD_ACK(kcmd_board_clamp_module_set_run_param, //
  415. CMD(u8 id; u8 opt_type; s32 acc[2]; s32 dec[2]; s32 max_speed[2]; s32 min_pos[2]; s32 max_pos[2];), //
  416. ACK(u8 id; u8 opt_type; s32 acc[2]; s32 dec[2]; s32 max_speed[2]; s32 min_pos[2]; s32 max_pos[2];));
  417. ZPACKET_CMD_ACK(kcmd_board_clamp_module_set_warning_limit_param,
  418. CMD(u8 id; u8 opt_type; s32 pad;), //
  419. ACK(u8 id; u8 opt_type; s32 pad;));
  420. ZPACKET_CMD_ACK(kcmd_board_clamp_module_set_run_to_zero_param,
  421. CMD(u8 id; u8 opt_type; s32 move_to_zero_max_d[2]; s32 leave_from_zero_max_d[2]; s32 speed[2]; s32 dec[2];), //
  422. ACK(u8 id; u8 opt_type; s32 move_to_zero_max_d[2]; s32 leave_from_zero_max_d[2]; s32 speed[2]; s32 dec[2];));
  423. /*******************************************************************************
  424. * |Module_1014: *
  425. *******************************************************************************/
  426. ZPACKET_CMD_ACK(kcmd_fan_module_fan_ctrl,
  427. CMD(u8 id; u8 level;), //
  428. ACK(u8 id;));
  429. ZPACKET_CMD_ACK(kcmd_fan_module_fan_read_status,
  430. CMD(u8 id;), //
  431. ACK(u8 id; u8 status; u8 level;));
  432. ZPACKET_CMD_ACK(kcmd_fan_module_fan_read_debug_info,
  433. CMD(u8 id;), //
  434. ACK(u8 id; u8 status; u8 level; int16_t fbcount;));
  435. /*******************************************************************************
  436. * |Module_1016:Һǹ *
  437. *******************************************************************************/
  438. ZPACKET_CMD_ACK(kcmd_pipette_module_motor_enable,
  439. CMD(u8 id; u8 enable;), //
  440. ACK(u8 id;));
  441. ZPACKET_CMD_ACK_AND_REPORT(kcmd_pipette_module_motor_move_to,
  442. CMD(u8 id; u8 motor_id; s32 pos; s32 speed;), //
  443. ACK(u8 id;), //
  444. REPORT(u8 id; u8 status; s32 pos;));
  445. ZPACKET_CMD_ACK_AND_REPORT(kcmd_pipette_module_motor_move_to_zero,
  446. CMD(u8 id; u8 motor_id;), //
  447. ACK(u8 id;), //
  448. REPORT(u8 id; u8 status;));
  449. ZPACKET_CMD_ACK_AND_REPORT(kcmd_pipette_module_motor_move_to_zero_with_calibrate,
  450. CMD(u8 id; u8 motor_id; s32 now_pos;), //
  451. ACK(u8 id;), //
  452. REPORT(u8 id; u8 status; s32 zero_shift;));
  453. ZPACKET_CMD_ACK(kcmd_pipette_module_motor_stop,
  454. CMD(u8 id; u8 motor_id;), //
  455. ACK(u8 id;));
  456. ZPACKET_CMD_ACK(kcmd_pipette_module_take_liquid,
  457. CMD(u8 id; u8 motor_id; s32 speed; s32 pos;), //
  458. ACK(u8 id;));
  459. ZPACKET_CMD_ACK(kcmd_pipette_module_split_liquid,
  460. CMD(u8 id; u8 motor_id; s32 speed; s32 pos;), //
  461. ACK(u8 id;));
  462. ZPACKET_CMD_ACK(kcmd_pipette_module_take_tip,
  463. CMD(u8 id; u8 motor_id; s32 speed; s32 pos;), //
  464. ACK(u8 id;));
  465. ZPACKET_CMD_ACK(kcmd_pipette_module_remove_tip,
  466. CMD(u8 id; u8 motor_id; s32 speed; s32 pos;), //
  467. ACK(u8 id;));
  468. #if 0
  469. kcmd_pipette_module_read_status = CMDID(1016, 51), // ��ȡģ�龫��״̬��Ϣ
  470. kcmd_pipette_module_read_debug_info = CMDID(1016, 52), // ��ȡģ����ϸ״̬��Ϣ
  471. kcmd_pipette_module_set_run_param = CMDID(1016, 100), // ���������
  472. kcmd_pipette_module_set_warning_limit_param = CMDID(1016, 101), // �������Ʋ���
  473. kcmd_pipette_module_set_run_to_zero_param = CMDID(1016, 102), // ���ù�������
  474. #endif
  475. ZPACKET_CMD_ACK(kcmd_pipette_module_read_version,
  476. CMD(u8 id;), //
  477. ACK(u8 id;));
  478. ZPACKET_CMD_ACK(kcmd_pipette_module_read_status,
  479. CMD(u8 id;), //
  480. ACK(u8 id; u8 status; s32 pos[2];));
  481. ZPACKET_CMD_ACK(kcmd_pipette_module_read_debug_info,
  482. CMD(u8 id;), //
  483. ACK(u8 id; u8 status; s32 pos[2]; s32 acc[2]; s32 speed[2];));
  484. ZPACKET_CMD_ACK(kcmd_pipette_module_set_run_param,
  485. CMD(u8 id; u8 opt_type; s32 acc[2]; s32 dec[2]; s32 max_speed[2]; s32 min_pos[2]; s32 max_pos[2];), //
  486. ACK(u8 id; u8 opt_type; s32 acc[2]; s32 dec[2]; s32 max_speed[2]; s32 min_pos[2]; s32 max_pos[2];));
  487. ZPACKET_CMD_ACK(kcmd_pipette_module_set_warning_limit_param,
  488. CMD(u8 id; u8 opt_type; s32 pad;), //
  489. ACK(u8 id; u8 opt_type; s32 pad;));
  490. #pragma pack(pop)
  491. } // namespace zcr
  492. } // namespace iflytop