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.

523 lines
31 KiB

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