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.

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