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.

355 lines
24 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
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
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
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
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
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
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
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
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_eeprom.hpp"
  5. #include "api/i_mini_servo_module.hpp"
  6. #include "api/i_pipette_module.hpp"
  7. #include "api/i_step_motor_ctrl_module.hpp"
  8. #include "api/i_xyrobot_ctrl_module.hpp"
  9. #include "zcancmder_protocol_basic.hpp"
  10. namespace iflytop {
  11. namespace zcr {
  12. typedef enum {
  13. kcmd_ping = CMDID(0, 0),
  14. kcmd_read_io = CMDID(1, 0),
  15. kcmd_set_io = CMDID(2, 0),
  16. kcmd_readadc_raw = CMDID(3, 0),
  17. kcmd_m211887_operation = CMDID(1000, 0), // ��������������
  18. kcmd_read_presure_sensor = CMDID(1001, 0), // ѹ��������
  19. kcmd_triple_warning_light_ctl = CMDID(1002, 0), // ��ɫ��ʾ�ƿ���
  20. kcmd_high_power_electrical_ctl = CMDID(1003, 0), // �����ʵ�Դ����
  21. kcmd_peristaltic_pump_ctl = CMDID(1004, 0), // Һ�ÿ���
  22. kcmd_read_huacheng_pressure_sensor = CMDID(1005, 0), // ����ѹ��������
  23. /*******************************************************************************
  24. * |Module_1006:XYRobot˿ģ *
  25. *******************************************************************************/
  26. kcmd_xy_robot_ctrl_enable = CMDID(1006, 0), // ������ʹ��
  27. kcmd_xy_robot_ctrl_stop = CMDID(1006, 1), // ������ֹͣ
  28. kcmd_xy_robot_ctrl_move_to_zero = CMDID(1006, 2), // �����˻���
  29. kcmd_xy_robot_ctrl_move_to_zero_with_calibrate = CMDID(1006, 3), // �����˻��㲢�궨
  30. kcmd_xy_robot_ctrl_move_to = CMDID(1006, 4), // �������ƶ���ָ��λ��
  31. kcmd_xy_robot_ctrl_move_by = CMDID(1006, 5), // �������ƶ�ָ������
  32. kcmd_xy_robot_ctrl_force_change_current_pos = CMDID(1006, 6), // ǿ���޸ĵ�ǰλ��
  33. kcmd_xy_robot_ctrl_move_by_no_limit = CMDID(1006, 7), // �����������ƶ���û������
  34. // kcmd_xy_robot_ctrl_read_pos_by_move2zero = CMDID(1006, 8), // ��������ִ�й��㶯����Ȼ����ȡλ��ƫ���������ʱ�������꣬Ȼ�����ƶ���һ��ʼ��λ�á�
  35. kcmd_xy_robot_ctrl_read_version = CMDID(1006, 50), // ��ȡģ���ͺŰ汾��Ϣ
  36. kcmd_xy_robot_ctrl_read_status = CMDID(1006, 51), // ��ȡģ�龫��״̬��Ϣ
  37. kcmd_xy_robot_ctrl_read_detailed_status = CMDID(1006, 52), // ��ȡģ����ϸ״̬��Ϣ
  38. // kcmd_xy_robot_ctrl_read_read_pos_by_move2zero_exec_state = CMDID(1006, 53), // ��������ִ�й��㶯����Ȼ����ȡλ��ƫ���������ʱ�������꣬Ȼ�����ƶ���һ��ʼ��λ�á�
  39. kcmd_xy_robot_ctrl_set_base_param = CMDID(1006, 100), // ���������
  40. kcmd_xy_robot_ctrl_get_base_param = CMDID(1006, 101), // ���������
  41. kcmd_xy_robot_ctrl_flush = CMDID(1006, 110), // �洢������flash��
  42. kcmd_xy_robot_ctrl_factory_reset = CMDID(1006, 111), // �ָ���������
  43. // kcmd_xy_robot_ctrl_set_warning_limit_param = CMDID(1006, 101), // ���ÿ������Ʋ���
  44. // kcmd_xy_robot_ctrl_set_run_to_zero_param = CMDID(1006, 102), // ���ù�������
  45. /*******************************************************************************
  46. * |Module_1007:ģ *
  47. *******************************************************************************/
  48. kcmd_step_motor_ctrl_enable = CMDID(1007, 0), // ʹ��
  49. kcmd_step_motor_ctrl_stop = CMDID(1007, 1), // ֹͣ
  50. kcmd_step_motor_ctrl_move_to_zero = CMDID(1007, 2), // ����
  51. kcmd_step_motor_ctrl_move_to_zero_with_calibrate = CMDID(1007, 3), // ���㲢У׼
  52. kcmd_step_motor_ctrl_move_to = CMDID(1007, 4), // �ƶ���
  53. kcmd_step_motor_ctrl_move_by = CMDID(1007, 5), // �����ƶ�
  54. kcmd_step_motor_ctrl_force_change_current_pos = CMDID(1007, 6), // �����ƶ�
  55. kcmd_step_motor_ctrl_rotate = CMDID(1007, 7), // �����ƶ�
  56. kcmd_step_motor_ctrl_move_to_logic_point = CMDID(1007, 8), // �ƶ����߼���
  57. kcmd_step_motor_ctrl_read_version = CMDID(1007, 50), // ��ȡģ���ͺŰ汾��Ϣ
  58. kcmd_step_motor_ctrl_read_status = CMDID(1007, 51), // ��ȡģ�龫��״̬��Ϣ
  59. kcmd_step_motor_ctrl_read_detailed_status = CMDID(1007, 52), // ��ȡģ����ϸ״̬��Ϣ
  60. kcmd_step_motor_ctrl_set_base_param = CMDID(1007, 100), // ���������
  61. kcmd_step_motor_ctrl_get_base_param = CMDID(1007, 101), // ���������
  62. kcmd_step_motor_ctrl_set_logic_point = CMDID(1007, 102), // �����߼���
  63. kcmd_step_motor_ctrl_get_logic_point = CMDID(1007, 103), // ��ȡ�߼���
  64. kcmd_step_motor_ctrl_flush = CMDID(1007, 110), // �洢������flash��
  65. kcmd_step_motor_ctrl_factory_reset = CMDID(1007, 111), // �ָ���������
  66. /*******************************************************************************
  67. * |Module_1008: *
  68. *******************************************************************************/
  69. kcmd_mini_servo_ctrl_enable = CMDID(1008, 0), // ʹ��
  70. kcmd_mini_servo_ctrl_stop = CMDID(1008, 1), // ֹͣ
  71. kcmd_mini_servo_ctrl_position_calibrate = CMDID(1008, 2), // У׼
  72. kcmd_mini_servo_ctrl_rotate = CMDID(1008, 3), // �ٶ�ģʽ
  73. kcmd_mini_servo_ctrl_move_to = CMDID(1008, 4), // λ��ģʽ����
  74. kcmd_mini_servo_ctrl_move_by = CMDID(1008, 5), // λ��ģʽ����
  75. kcmd_mini_servo_ctrl_run_with_torque = CMDID(1008, 6), // ����Ť��ģʽ
  76. kcmd_mini_servo_ctrl_move_by_nolimit = CMDID(1008, 7), // �����ƶ�,λ��ģʽ������,�ƶ���������λ�ú���Сλ�����ƣ����޷���ȡ����ǰλ��
  77. kcmd_mini_servo_ctrl_read_version = CMDID(1008, 50), // ��ȡģ���ͺŰ汾��Ϣ
  78. kcmd_mini_servo_ctrl_read_status = CMDID(1008, 51), // ��ȡģ�龫��״̬��Ϣ
  79. kcmd_mini_servo_ctrl_read_detailed_status = CMDID(1008, 52), // ��ȡģ����ϸ״̬��Ϣ
  80. kcmd_mini_servo_ctrl_set_run_param = CMDID(1008, 100),
  81. kcmd_mini_servo_ctrl_get_run_param = CMDID(1008, 101),
  82. kcmd_mini_servo_ctrl_set_warning_limit_param = CMDID(1008, 102),
  83. kcmd_mini_servo_ctrl_get_warning_limit_param = CMDID(1008, 103),
  84. kcmd_mini_servo_ctrl_set_basic_param = CMDID(1008, 104),
  85. kcmd_mini_servo_ctrl_get_basic_param = CMDID(1008, 105),
  86. /*******************************************************************************
  87. * |Module_1009:EEPROM *
  88. *******************************************************************************/
  89. kcmd_eeprom_start_monitor_status = CMDID(1009, 0), // ����EEPROM״̬
  90. kcmd_eeprom_stop_monitor_status = CMDID(1009, 1), // ֹͣ����EEPROM״̬
  91. kcmd_eeprom_read_block = CMDID(1009, 2), // ��ȡEEPROM
  92. kcmd_eeprom_write_block = CMDID(1009, 3), // �EEPROM
  93. /*******************************************************************************
  94. * |Module_1010:ɨ *
  95. *******************************************************************************/
  96. kcmd_barcode_reader_start_scan = CMDID(1010, 0), // ��ȡɨ����
  97. kcmd_barcode_reader_stop_scan = CMDID(1010, 1), // ֹͣ��ȡɨ����
  98. /*******************************************************************************
  99. * |Module_1011:-ˮ-ȿϵͳ *
  100. *******************************************************************************/
  101. // ����Ŀ���¶�
  102. kcmd_heater_ctrl_module_start_ctrl_temperature = CMDID(1011, 0), // ����Ŀ���¶�
  103. kcmd_heater_ctrl_module_stop_temperature = CMDID(1011, 1), // ��ȡֹͣ�¶�
  104. kcmd_heater_ctrl_module_read_status = CMDID(1011, 50), // ��ȡģ�龫��״̬��Ϣ
  105. kcmd_heater_ctrl_module_read_detail_status = CMDID(1011, 50), // ��ȡģ�龫��״̬��Ϣ
  106. kcmd_heater_ctrl_module_set_base_param = CMDID(1011, 100), // ���������
  107. kcmd_heater_ctrl_module_get_base_param = CMDID(1011, 101), // �������Ʋ���
  108. /*******************************************************************************
  109. * |Module_1012:ɨ *
  110. *******************************************************************************/
  111. kcmd_motor_laser_code_scanner_scan = CMDID(1012, 1), // ��ʼɨ��
  112. kcmd_motor_laser_code_scanner_stop_scan = CMDID(1012, 2), // ֹͣɨ��
  113. kcmd_motor_laser_code_scanner_get_scan_result = CMDID(1012, 3), // ��ȡɨ������
  114. /*******************************************************************************
  115. * |Module_1013:в *
  116. *******************************************************************************/
  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. #if 0
  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. #endif
  134. // ��Һǹ����
  135. /*******************************************************************************
  136. * |Module_1016:Һǹ *
  137. *******************************************************************************/
  138. kcmd_pipette_module_enable = CMDID(1016, 0), // ʹ��
  139. kcmd_pipette_module_stop = CMDID(1016, 1), // ֹͣ
  140. kcmd_pipette_module_zero_pos_calibrate = CMDID(1016, 2), // ���㲢У׼
  141. kcmd_pipeete_module_zmotor_reset = CMDID(1016, 3), // Z�Ḵλ
  142. kcmd_pipeete_module_pipette_reset = CMDID(1016, 4), // ��Һǹ��λ
  143. kcmd_pipette_module_take_tip = CMDID(1016, 5), // ȡtip
  144. kcmd_pipette_module_remove_tip = CMDID(1016, 6), // �Ƴ�tip
  145. kcmd_pipette_module_move_to = CMDID(1016, 7), // �ƶ���
  146. kcmd_pipette_module_move_to_with_lld = CMDID(1016, 8), // �ƶ���
  147. kcmd_pipette_module_shake = CMDID(1016, 9), // ����ҡ��
  148. kcmd_pipette_module_pipette_move_to_ul = CMDID(1016, 10), // ȡҺ
  149. kcmd_pipette_module_get_status = CMDID(1016, 50), // ��ȡģ�龫��״̬��Ϣ
  150. kcmd_pipette_module_set_z_motor_para = CMDID(1016, 100), // ����Z����������
  151. kcmd_pipette_module_get_z_motor_para = CMDID(1016, 101), // ��ȡZ����������
  152. kcmd_pipette_module_set_base_param = CMDID(1016, 102), // ���������
  153. kcmd_pipette_module_get_base_param = CMDID(1016, 103), // ��ȡ���в���
  154. } CmdID_t;
  155. #pragma pack(push, 1)
  156. ZPACKET_CMD_ACK(kcmd_ping, //
  157. CMD(u8 boardid;), //
  158. ACK(u8 boardid;));
  159. ZPACKET_CMD_ACK(kcmd_read_io, //
  160. CMD(u8 ioid;), //
  161. ACK(u8 ioid; u8 val;));
  162. ZPACKET_CMD_ACK(kcmd_set_io, //
  163. CMD(u8 ioid; u8 val;), //
  164. ACK(u8 ioid; u8 val;));
  165. ZPACKET_CMD_ACK(kcmd_readadc_raw, //
  166. CMD(u8 sensorid;), //
  167. ACK(u8 sensorid; s32 val;));
  168. /*******************************************************************************
  169. * |Module_1006:XYRobot˿ģ *
  170. *******************************************************************************/
  171. // ACTION
  172. ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_enable, CMD(u16 id; u8 enable;), ACK(u8 pad;));
  173. ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_stop, CMD(u16 id; u8 stop_type;), ACK(u8 pad;));
  174. ZPACKET_CMD_ACK_AND_REPORT(kcmd_xy_robot_ctrl_move_to_zero, CMD(u16 id;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  175. ZPACKET_CMD_ACK_AND_REPORT(kcmd_xy_robot_ctrl_move_to_zero_with_calibrate, CMD(u16 id; s32 nowx; s32 nowy;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  176. ZPACKET_CMD_ACK_AND_REPORT(kcmd_xy_robot_ctrl_move_to, CMD(u16 id; s32 x; s32 y; s32 speed;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  177. ZPACKET_CMD_ACK_AND_REPORT(kcmd_xy_robot_ctrl_move_by, CMD(u16 id; s32 dx; s32 dy; s32 speed;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  178. ZPACKET_CMD_ACK_AND_REPORT(kcmd_xy_robot_ctrl_move_by_no_limit, CMD(u16 id; s32 dx; s32 dy; s32 speed;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  179. ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_force_change_current_pos, CMD(u16 id; s32 x; s32 y;), ACK(u8 pad;));
  180. // READ
  181. ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_read_version, CMD(u16 id;), ACK(I_XYRobotCtrlModule::version_t ack;));
  182. ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_read_status, CMD(u16 id;), ACK(I_XYRobotCtrlModule::status_t ack;));
  183. ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_read_detailed_status, CMD(u16 id;), ACK(I_XYRobotCtrlModule::detailed_status_t ack;));
  184. // SET
  185. ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_set_base_param, CMD(u16 id; I_XYRobotCtrlModule::base_param_t param;), ACK(u8 pad;));
  186. ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_get_base_param, CMD(u16 id;), ACK(I_XYRobotCtrlModule::base_param_t ack;));
  187. ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_flush, CMD(u16 id;), ACK(u8 pad;));
  188. ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_factory_reset, CMD(u16 id;), ACK(u8 pad;));
  189. // ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_set_warning_limit_param, CMD(u16 id; u8 opt_type; I_XYRobotCtrlModule::warning_limit_param_t param;), ACK( I_XYRobotCtrlModule::warning_limit_param_t ack;));
  190. // ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_set_run_to_zero_param, CMD(u16 id; u8 opt_type; I_XYRobotCtrlModule::run_to_zero_param_t param;), ACK( I_XYRobotCtrlModule::run_to_zero_param_t ack;));
  191. /*******************************************************************************
  192. * |Module_1007:ģ *
  193. *******************************************************************************/
  194. ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_enable, CMD(u16 id; u8 enable;), ACK(u8 pad;));
  195. ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_stop, CMD(u16 id; u8 stop_type;), ACK(u8 pad;));
  196. ZPACKET_CMD_ACK_AND_REPORT(kcmd_step_motor_ctrl_move_to_zero, CMD(u16 id;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  197. ZPACKET_CMD_ACK_AND_REPORT(kcmd_step_motor_ctrl_move_to_zero_with_calibrate, CMD(u16 id; s32 x;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  198. ZPACKET_CMD_ACK_AND_REPORT(kcmd_step_motor_ctrl_move_to, CMD(u16 id; s32 x; s32 speed;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  199. ZPACKET_CMD_ACK_AND_REPORT(kcmd_step_motor_ctrl_move_by, CMD(u16 id; s32 dx; s32 speed;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  200. ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_force_change_current_pos, CMD(u16 id; s32 x;), ACK(u8 pad;));
  201. ZPACKET_CMD_ACK_AND_REPORT(kcmd_step_motor_ctrl_rotate, CMD(u16 id; s32 speed; s32 run_time;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  202. ZPACKET_CMD_ACK_AND_REPORT(kcmd_step_motor_ctrl_move_to_logic_point, CMD(u16 id; u8 logic_point_num;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  203. // READ
  204. ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_read_version, CMD(u16 id;), ACK(I_StepMotorCtrlModule::version_t ack;));
  205. ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_read_status, CMD(u16 id;), ACK(I_StepMotorCtrlModule::status_t ack;));
  206. ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_read_detailed_status, CMD(u16 id;), ACK(I_StepMotorCtrlModule::detailed_status_t ack;));
  207. // SET
  208. ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_set_base_param, CMD(u16 id; I_StepMotorCtrlModule::base_param_t param;), ACK(u8 pad;));
  209. ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_get_base_param, CMD(u16 id;), ACK(I_StepMotorCtrlModule::base_param_t ack;));
  210. ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_set_logic_point, CMD(u16 id; u8 index; s32 acc; s32 dec; s32 velocity; s32 x;), ACK(u8 pad;));
  211. ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_get_logic_point, CMD(u16 id; u8 logic_point_num;), ACK(I_StepMotorCtrlModule::logic_point_t ack;));
  212. ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_flush, CMD(u16 id;), ACK(u8 pad;));
  213. ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_factory_reset, CMD(u16 id;), ACK(u8 pad;));
  214. /*******************************************************************************
  215. * |Module_1008: *
  216. *******************************************************************************/
  217. ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_enable, CMD(u16 id; u8 enable;), ACK(u8 pad;));
  218. ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_stop, CMD(u16 id; u8 stop_type;), ACK(u8 pad;));
  219. ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_position_calibrate, CMD(u16 id; s32 calibrate_pos;), ACK(u8 pad;));
  220. ZPACKET_CMD_ACK_AND_REPORT(kcmd_mini_servo_ctrl_rotate, CMD(u16 id; s32 speed; s32 torque; s32 run_time;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  221. ZPACKET_CMD_ACK_AND_REPORT(kcmd_mini_servo_ctrl_move_to, CMD(u16 id; s32 pos; s32 speed; s32 torque;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  222. ZPACKET_CMD_ACK_AND_REPORT(kcmd_mini_servo_ctrl_move_by, CMD(u16 id; s32 pos; s32 speed; s32 torque;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  223. ZPACKET_CMD_ACK_AND_REPORT(kcmd_mini_servo_ctrl_run_with_torque, CMD(u16 id; s32 torque; s32 run_time;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  224. ZPACKET_CMD_ACK_AND_REPORT(kcmd_mini_servo_ctrl_move_by_nolimit, CMD(u16 id; s32 pos; s32 speed; s32 torque;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  225. ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_read_version, CMD(u16 id;), ACK(I_MiniServoModule::version_t ack;));
  226. ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_read_status, CMD(u16 id;), ACK(I_MiniServoModule::status_t ack;));
  227. ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_read_detailed_status, CMD(u16 id;), ACK(I_MiniServoModule::detailed_status_t ack;));
  228. ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_set_run_param, CMD(u16 id; u8 opt_type; I_MiniServoModule::run_param_t param;), ACK(I_MiniServoModule::run_param_t ack;));
  229. ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_set_basic_param, CMD(u16 id; u8 opt_type; I_MiniServoModule::basic_param_t param;), ACK(I_MiniServoModule::basic_param_t ack;));
  230. ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_set_warning_limit_param, CMD(u16 id; u8 opt_type; I_MiniServoModule::warning_limit_param_t param;), ACK(I_MiniServoModule::warning_limit_param_t ack;));
  231. ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_get_run_param, CMD(u16 id; u8 opt_type;), ACK(I_MiniServoModule::run_param_t ack;));
  232. ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_get_basic_param, CMD(u16 id; u8 opt_type;), ACK(I_MiniServoModule::basic_param_t ack;));
  233. ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_get_warning_limit_param, CMD(u16 id; u8 opt_type;), ACK(I_MiniServoModule::warning_limit_param_t ack;));
  234. /*******************************************************************************
  235. * |Module_1009:EEPROM *
  236. *******************************************************************************/
  237. ZPACKET_CMD_ACK_AND_REPORT(kcmd_eeprom_start_monitor_status, CMD(u16 id;), ACK(u8 pad;), REPORT(I_EEPROMModule::eeprom_status_t status;));
  238. ZPACKET_CMD_ACK(kcmd_eeprom_stop_monitor_status, CMD(u16 id;), ACK(u8 pad;));
  239. ZPACKET_CMD_ACK(kcmd_eeprom_read_block,
  240. CMD(u16 id; u16 sector_index; u16 sector_size;), //
  241. ACK(zcancmder_read_ram_ack_t ack;));
  242. /*******************************************************************************
  243. * |Module_1010:ɨ *
  244. *******************************************************************************/
  245. ZPACKET_CMD_ACK_AND_REPORT(kcmd_barcode_reader_start_scan,
  246. CMD(u16 id;), //
  247. ACK(u8 pad;), //
  248. REPORT(u8 status; u16 barcodelen; u8 barcode[0];));
  249. ZPACKET_CMD_ACK(kcmd_barcode_reader_stop_scan,
  250. CMD(u16 id;), //
  251. ACK(u8 pad;));
  252. /*******************************************************************************
  253. * |Module_1011:-ˮ-ȿϵͳ *
  254. *******************************************************************************/
  255. /*******************************************************************************
  256. * |Module_1012:ɨ *
  257. *******************************************************************************/
  258. ZPACKET_CMD_ACK_AND_REPORT(kcmd_motor_laser_code_scanner_scan,
  259. CMD(u8 id; //
  260. s32 moveby_distance; //
  261. s32 scan_interval_distance; //
  262. s32 each_sample_times; //
  263. s32 transmitting_tube_amplification; // 0.001
  264. s32 receiving_tube_amplification; // 0.001
  265. ),
  266. ACK(u8 pad;), REPORT(int32_t exec_status;));
  267. ZPACKET_CMD_ACK(kcmd_motor_laser_code_scanner_stop_scan, CMD(u16 id;), ACK(u8 pad;));
  268. ZPACKET_CMD_ACK(kcmd_motor_laser_code_scanner_get_scan_result, CMD(u16 id; u16 sector_index; u16 sector_size;), ACK(zcancmder_read_ram_ack_t ack;));
  269. /*******************************************************************************
  270. * Module_1013:в *
  271. *******************************************************************************/
  272. /*******************************************************************************
  273. * |Module_1014: *
  274. *******************************************************************************/
  275. /*******************************************************************************
  276. * |Module_1016:Һǹ *
  277. *******************************************************************************/
  278. ZPACKET_CMD_ACK(kcmd_pipette_module_enable, CMD(u16 id; u8 enable;), ACK(u8 pad;));
  279. ZPACKET_CMD_ACK(kcmd_pipette_module_stop, CMD(u16 id; u8 stop_type;), ACK(u8 pad;));
  280. ZPACKET_CMD_ACK_AND_REPORT(kcmd_pipette_module_zero_pos_calibrate, CMD(u16 id;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  281. ZPACKET_CMD_ACK_AND_REPORT(kcmd_pipeete_module_zmotor_reset, CMD(u16 id;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  282. ZPACKET_CMD_ACK_AND_REPORT(kcmd_pipeete_module_pipette_reset, CMD(u16 id;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  283. ZPACKET_CMD_ACK_AND_REPORT(kcmd_pipette_module_take_tip, CMD(u16 id; s16 vel; s16 height_mm; s16 tip_hight_mm;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  284. ZPACKET_CMD_ACK_AND_REPORT(kcmd_pipette_module_remove_tip, CMD(u16 id; s16 vel; s16 height_mm;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  285. ZPACKET_CMD_ACK_AND_REPORT(kcmd_pipette_module_move_to, CMD(u16 id; s16 vel; s16 height_mm;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  286. ZPACKET_CMD_ACK_AND_REPORT(kcmd_pipette_module_move_to_with_lld, CMD(u16 id; s16 vel; s16 lld_cap_thr; s16 lld_max_hight_mm; s16 lld_rela_hight_mm;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  287. ZPACKET_CMD_ACK_AND_REPORT(kcmd_pipette_module_shake, CMD(u16 id; s16 shake_times; s16 shake_volume;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  288. ZPACKET_CMD_ACK_AND_REPORT(kcmd_pipette_module_pipette_move_to_ul, CMD(u16 id; s16 take_volume_mm;), ACK(u8 pad;), REPORT(int32_t exec_status;));
  289. ZPACKET_CMD_ACK(kcmd_pipette_module_get_status, CMD(u16 id;), ACK(I_PipetteModule::status_t ack;));
  290. ZPACKET_CMD_ACK(kcmd_pipette_module_set_z_motor_para, CMD(u16 id; I_StepMotorCtrlModule::base_param_t param;), ACK(u8 pad;));
  291. ZPACKET_CMD_ACK(kcmd_pipette_module_get_z_motor_para, CMD(u16 id;), ACK(I_StepMotorCtrlModule::base_param_t ack;));
  292. ZPACKET_CMD_ACK(kcmd_pipette_module_set_base_param, CMD(u16 id; I_PipetteModule::base_param_t param;), ACK(u8 pad;));
  293. ZPACKET_CMD_ACK(kcmd_pipette_module_get_base_param, CMD(u16 id;), ACK(I_PipetteModule::base_param_t ack;));
  294. #pragma pack(pop)
  295. } // namespace zcr
  296. } // namespace iflytop