Browse Source

update protocol

change_pipette_api
zhaohe 11 months ago
parent
commit
c025f34164
  1. 69
      api/apibasic/cmdid.cpp
  2. 68
      api/apibasic/cmdid.hpp
  3. 6
      api/apibasic/errorcode.hpp
  4. 4
      api/apibasic/reg_index.cpp
  5. 4
      api/apibasic/reg_index.hpp
  6. 5
      api/zi_module.hpp

69
api/apibasic/cmdid.cpp

@ -4,8 +4,7 @@
namespace iflytop { namespace iflytop {
namespace zcr { namespace zcr {
#define CMD_ITERM(enum) \
{ enum, #enum }
#define CMD_ITERM(enum) {enum, #enum}
static cmdinfo_t table[] = { static cmdinfo_t table[] = {
CMD_ITERM(kboard_reset), CMD_ITERM(kboard_reset),
@ -32,25 +31,25 @@ static cmdinfo_t table[] = {
CMD_ITERM(kxymotor_motor_move_by_direct), CMD_ITERM(kxymotor_motor_move_by_direct),
CMD_ITERM(kxymotor_read_enc_direct), CMD_ITERM(kxymotor_read_enc_direct),
CMD_ITERM(kpipette_ctrl_init_device),
CMD_ITERM(kpipette_ctrl_put_tip),
CMD_ITERM(kpipette_ctrl_move_to_ul),
CMD_ITERM(kpipette_lld_prepare),
CMD_ITERM(kpipette_plld),
CMD_ITERM(kpipette_clld),
CMD_ITERM(kpipette_mlld),
CMD_ITERM(kpipette_lld_is_detect_liquid),
CMD_ITERM(kpipette_aspirate),
CMD_ITERM(kpipette_distribut),
CMD_ITERM(kpipette_shake_up),
CMD_ITERM(kpipette_enable_zmotor),
CMD_ITERM(kpipette_write_cmd_direct),
CMD_ITERM(kpipette_get_sensor_sample_data),
CMD_ITERM(kpipette_get_sensor_sample_data_num),
CMD_ITERM(kpipette_sensor_sample_data_report),
CMD_ITERM(kpipette_aspirate_llf),
CMD_ITERM(kpipette_distribut_llf),
CMD_ITERM(kpipette_shake_up_llf),
// CMD_ITERM(kpipette_ctrl_init_device),
// CMD_ITERM(kpipette_ctrl_put_tip),
// CMD_ITERM(kpipette_ctrl_move_to_ul),
// CMD_ITERM(kpipette_lld_prepare),
// CMD_ITERM(kpipette_plld),
// CMD_ITERM(kpipette_clld),
// CMD_ITERM(kpipette_mlld),
// CMD_ITERM(kpipette_lld_is_detect_liquid),
// CMD_ITERM(kpipette_aspirate),
// CMD_ITERM(kpipette_distribut),
// CMD_ITERM(kpipette_shake_up),
// CMD_ITERM(kpipette_enable_zmotor),
// CMD_ITERM(kpipette_write_cmd_direct),
// CMD_ITERM(kpipette_get_sensor_sample_data),
// CMD_ITERM(kpipette_get_sensor_sample_data_num),
// CMD_ITERM(kpipette_sensor_sample_data_report),
// CMD_ITERM(kpipette_aspirate_llf),
// CMD_ITERM(kpipette_distribut_llf),
// CMD_ITERM(kpipette_shake_up_llf),
CMD_ITERM(ka8000_optical_module_power_ctrl), CMD_ITERM(ka8000_optical_module_power_ctrl),
CMD_ITERM(ka8000_optical_open_laser), CMD_ITERM(ka8000_optical_open_laser),
@ -141,6 +140,34 @@ static cmdinfo_t table[] = {
CMD_ITERM(kplate_code_scaner_adc_readraw), CMD_ITERM(kplate_code_scaner_adc_readraw),
CMD_ITERM(kplate_code_scaner_open_laser), CMD_ITERM(kplate_code_scaner_open_laser),
CMD_ITERM(kplate_code_scaner_close_laser), CMD_ITERM(kplate_code_scaner_close_laser),
CMD_ITERM(kpipette_zmotor_move_zero),
CMD_ITERM(kpipette_zmotor_move_to_zero_point_quick),
CMD_ITERM(kpipette_zmotor_measure_distance),
CMD_ITERM(kpipette_zmotor_read_measure_distance_result),
CMD_ITERM(kpipette_zmotor_move_by),
CMD_ITERM(kpipette_zmotor_move_to),
CMD_ITERM(kpipette_init_device),
CMD_ITERM(kpipette_put_tip),
CMD_ITERM(kpipette_lld_prepare),
CMD_ITERM(kpipette_lld),
CMD_ITERM(kpipette_aspirate_prepare),
CMD_ITERM(kpipette_aspirate_set_llf_velocity),
CMD_ITERM(kpipette_aspirate_set_operation_verifi_p_thre),
CMD_ITERM(kpipette_aspirate_set_operation_verifi_eigen_time),
CMD_ITERM(kpipette_aspirate_set_operation_verifi_tolerance),
CMD_ITERM(kpipette_aspirate),
CMD_ITERM(kpipette_aspirate_and_verify),
CMD_ITERM(kpipette_shake_up),
CMD_ITERM(kpipette_aspirate_infer_pressure),
CMD_ITERM(kpipette_aspirate_infer_eigen_time),
CMD_ITERM(kpipette_get_aspirate_infer_pressure_result),
CMD_ITERM(kpipette_get_aspirate_infer_eigen_time_result),
CMD_ITERM(kpipette_get_sensor_sample_data),
CMD_ITERM(kpipette_get_sensor_sample_data_num),
CMD_ITERM(kpipette_zmotor_read_zero_point_state),
CMD_ITERM(kpipette_zmotor_read_dev_status_cache),
}; };
const char* cmdid2str(int32_t code) { const char* cmdid2str(int32_t code) {

68
api/apibasic/cmdid.hpp

@ -36,25 +36,25 @@ typedef enum {
kxymotor_motor_move_by_direct = 0x030a, // kxymotor_motor_move_by_direct = 0x030a, //
kxymotor_read_enc_direct = 0x030b, // kxymotor_read_enc_direct = 0x030b, //
kpipette_ctrl_init_device = 0x7201, // param:(void)
kpipette_ctrl_put_tip = 0x7202, // param:(void)
kpipette_ctrl_move_to_ul = 0x7203, // param:(int32_t ul)
kpipette_lld_prepare = 0x7204, // param:(void)
kpipette_plld = 0x7205, // param:(int32_t zdpos, int32_t p_threshold)
kpipette_clld = 0x7206, // param:(int32_t zdpos, int32_t c_threshold)
kpipette_mlld = 0x7207, // param:(int32_t zdpos, int32_t c_threshold, int32_t p_threshold)
kpipette_lld_is_detect_liquid = 0x7208, // param:(void) ack(int32_t isdetect)
kpipette_aspirate = 0x7209, // param:(int32_t ul)
kpipette_distribut = 0x720a, // param:(int32_t ul)
kpipette_shake_up = 0x720b, // param:(int32_t ul, int32_t times)
kpipette_enable_zmotor = 0x7214, // param:(int32_t ul, int32_t zmotor_v)
kpipette_write_cmd_direct = 0x7215, // param:(int32_t ul, int32_t zmotor_v)
kpipette_get_sensor_sample_data = 0x7216, // param:(int32_t ul, int32_t zmotor_v, int32_t times)
kpipette_get_sensor_sample_data_num = 0x7217, // para:{enable}, ack:{}
kpipette_sensor_sample_data_report = 0x7232, // para:{strbuf}, ack:{strbuf}
kpipette_aspirate_llf = 0x720c, // para:{index} , ack:{motor_pos,cval,pval}
kpipette_distribut_llf = 0x720d, // para:{} , ack:{num}
kpipette_shake_up_llf = 0x720e, // val{regindex, oldval, toval}
// kpipette_ctrl_init_device = 0x7201, // param:(void)
// kpipette_ctrl_put_tip = 0x7202, // param:(void)
// kpipette_ctrl_move_to_ul = 0x7203, // param:(int32_t ul)
// kpipette_lld_prepare = 0x7204, // param:(void)
// kpipette_plld = 0x7205, // param:(int32_t zdpos, int32_t p_threshold)
// kpipette_clld = 0x7206, // param:(int32_t zdpos, int32_t c_threshold)
// kpipette_mlld = 0x7207, // param:(int32_t zdpos, int32_t c_threshold, int32_t p_threshold)
// kpipette_lld_is_detect_liquid = 0x7208, // param:(void) ack(int32_t isdetect)
// kpipette_aspirate = 0x7209, // param:(int32_t ul)
// kpipette_distribut = 0x720a, // param:(int32_t ul)
// kpipette_shake_up = 0x720b, // param:(int32_t ul, int32_t times)
// kpipette_enable_zmotor = 0x7214, // param:(int32_t ul, int32_t zmotor_v)
// kpipette_write_cmd_direct = 0x7215, // param:(int32_t ul, int32_t zmotor_v)
// kpipette_get_sensor_sample_data = 0x7216, // param:(int32_t ul, int32_t zmotor_v, int32_t times)
// kpipette_get_sensor_sample_data_num = 0x7217, // para:{enable}, ack:{}
// kpipette_sensor_sample_data_report = 0x7232, // para:{strbuf}, ack:{strbuf}
// kpipette_aspirate_llf = 0x720c, // para:{index} , ack:{motor_pos,cval,pval}
// kpipette_distribut_llf = 0x720d, // para:{} , ack:{num}
// kpipette_shake_up_llf = 0x720e, // val{regindex, oldval, toval}
ka8000_optical_module_power_ctrl = 0x0600, // ka8000_optical_module_power_ctrl = 0x0600, //
ka8000_optical_open_laser = 0x0601, // ka8000_optical_open_laser = 0x0601, //
@ -143,6 +143,36 @@ typedef enum {
kplate_code_scaner_open_laser = 0x7307, // kplate_code_scaner_open_laser = 0x7307, //
kplate_code_scaner_close_laser = 0x7308, // kplate_code_scaner_close_laser = 0x7308, //
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
kpipette_zmotor_move_zero = 0x7401,
kpipette_zmotor_move_to_zero_point_quick = 0x7402,
kpipette_zmotor_measure_distance = 0x7403,
kpipette_zmotor_read_measure_distance_result = 0x7404,
kpipette_zmotor_move_by = 0x7405,
kpipette_zmotor_move_to = 0x7406,
kpipette_init_device = 0x7407,
kpipette_put_tip = 0x7408,
kpipette_lld_prepare = 0x7409,
kpipette_lld = 0x740A,
kpipette_aspirate_prepare = 0x740B,
kpipette_aspirate_set_llf_velocity = 0x740C,
kpipette_aspirate_set_operation_verifi_p_thre = 0x740D,
kpipette_aspirate_set_operation_verifi_eigen_time = 0x740E,
kpipette_aspirate_set_operation_verifi_tolerance = 0x740F,
kpipette_aspirate = 0x7410,
kpipette_aspirate_and_verify = 0x7411,
kpipette_shake_up = 0x7412,
kpipette_aspirate_infer_pressure = 0x7413,
kpipette_aspirate_infer_eigen_time = 0x7414,
kpipette_get_aspirate_infer_pressure_result = 0x7415,
kpipette_get_aspirate_infer_eigen_time_result = 0x7416,
kpipette_get_sensor_sample_data = 0x7417,
kpipette_get_sensor_sample_data_num = 0x7418,
kpipette_zmotor_read_zero_point_state = 0x7419,
kpipette_zmotor_read_dev_status_cache = 0x741A,
} cmdid_t; } cmdid_t;
typedef struct { typedef struct {

6
api/apibasic/errorcode.hpp

@ -78,6 +78,12 @@ typedef enum {
kstep_motor_not_found_point_edge = 1610, kstep_motor_not_found_point_edge = 1610,
kstep_motor_lost_step = 1611, kstep_motor_lost_step = 1611,
kstep_motor_not_move_to_zero = 1612, kstep_motor_not_move_to_zero = 1612,
kstep_motor_ot = 1613,
kstep_motor_otpw = 1614,
kstep_motor_s2ga = 1615,
kstep_motor_s2gb = 1616,
kstep_motor_ola = 1617,
kstep_motor_olb = 1618,
kmini_servo_not_enable = 1700, kmini_servo_not_enable = 1700,
kmini_servo_mode_not_support = 1701, kmini_servo_mode_not_support = 1701,

4
api/apibasic/reg_index.cpp

@ -43,12 +43,12 @@ static reginfo_t table[] = {
REG_ITERM(kreg_pipette_pump_vstart), REG_ITERM(kreg_pipette_pump_vstart),
REG_ITERM(kreg_pipette_pump_vstop), REG_ITERM(kreg_pipette_pump_vstop),
REG_ITERM(kreg_pipette_pump_vmax), REG_ITERM(kreg_pipette_pump_vmax),
REG_ITERM(kreg_pipette_aspirate_distribut_pump_vel),
REG_ITERM(kreg_pipette_aspirate_pump_vel),
REG_ITERM(kreg_pipette_lld_pump_vel), REG_ITERM(kreg_pipette_lld_pump_vel),
REG_ITERM(kreg_pipette_lld_motor_vel_rpm), REG_ITERM(kreg_pipette_lld_motor_vel_rpm),
REG_ITERM(kreg_pipette_lld_detect_period_ms), REG_ITERM(kreg_pipette_lld_detect_period_ms),
REG_ITERM(kreg_pipette_lld_prepare_pos), REG_ITERM(kreg_pipette_lld_prepare_pos),
REG_ITERM(kreg_pipette_lld_prepare_distribut_pos),
REG_ITERM(kreg_pipette_lld_prepare_pre_distribut_ul),
REG_ITERM(kreg_a8k_opt_t_pos_offset), REG_ITERM(kreg_a8k_opt_t_pos_offset),
REG_ITERM(kreg_a8k_opt_f_pos_offset), REG_ITERM(kreg_a8k_opt_f_pos_offset),

4
api/apibasic/reg_index.hpp

@ -53,12 +53,12 @@ typedef enum {
kreg_pipette_pump_vstart = 4054, // kreg_pipette_pump_vstart = 4054, //
kreg_pipette_pump_vstop = 4055, // kreg_pipette_pump_vstop = 4055, //
kreg_pipette_pump_vmax = 4056, // kreg_pipette_pump_vmax = 4056, //
kreg_pipette_aspirate_distribut_pump_vel = 4057, //
kreg_pipette_aspirate_pump_vel = 4057, //
kreg_pipette_lld_pump_vel = 4058, // kreg_pipette_lld_pump_vel = 4058, //
kreg_pipette_lld_motor_vel_rpm = 4059, // kreg_pipette_lld_motor_vel_rpm = 4059, //
kreg_pipette_lld_detect_period_ms = 4060, // kreg_pipette_lld_detect_period_ms = 4060, //
kreg_pipette_lld_prepare_pos = 4061, // kreg_pipette_lld_prepare_pos = 4061, //
kreg_pipette_lld_prepare_distribut_pos = 4062, //
kreg_pipette_lld_prepare_pre_distribut_ul = 4062, //
/** /**
* @brief * @brief

5
api/zi_module.hpp

@ -70,6 +70,11 @@ class ZIModule {
virtual int32_t getid(int32_t *id) = 0; virtual int32_t getid(int32_t *id) = 0;
virtual int32_t module_xxx_reg(int32_t param_id, bool read, int32_t &val) = 0; virtual int32_t module_xxx_reg(int32_t param_id, bool read, int32_t &val) = 0;
public:
// slice
virtual int32_t bfcall(int32_t cmdid, uint8_t *param, int32_t len) { return 0; };
virtual void aftercall(int32_t val) {};
protected: protected:
virtual int32_t _module_set_reg(int32_t regoff, int32_t *regval, int32_t val, int32_t min = INT32_MIN, int32_t max = INT32_MAX); virtual int32_t _module_set_reg(int32_t regoff, int32_t *regval, int32_t val, int32_t min = INT32_MIN, int32_t max = INT32_MAX);
virtual int32_t _module_get_reg(int32_t regoff, int32_t regval, int32_t &val); virtual int32_t _module_get_reg(int32_t regoff, int32_t regval, int32_t &val);

Loading…
Cancel
Save