diff --git a/api/apibasic/cmdid.cpp b/api/apibasic/cmdid.cpp index 808e3fa..218aa7c 100644 --- a/api/apibasic/cmdid.cpp +++ b/api/apibasic/cmdid.cpp @@ -4,8 +4,7 @@ namespace iflytop { namespace zcr { -#define CMD_ITERM(enum) \ - { enum, #enum } +#define CMD_ITERM(enum) {enum, #enum} static cmdinfo_t table[] = { CMD_ITERM(kboard_reset), @@ -32,25 +31,25 @@ static cmdinfo_t table[] = { CMD_ITERM(kxymotor_motor_move_by_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_open_laser), @@ -141,6 +140,34 @@ static cmdinfo_t table[] = { CMD_ITERM(kplate_code_scaner_adc_readraw), CMD_ITERM(kplate_code_scaner_open_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) { diff --git a/api/apibasic/cmdid.hpp b/api/apibasic/cmdid.hpp index c549611..804b0d0 100644 --- a/api/apibasic/cmdid.hpp +++ b/api/apibasic/cmdid.hpp @@ -36,25 +36,25 @@ typedef enum { kxymotor_motor_move_by_direct = 0x030a, // 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_open_laser = 0x0601, // @@ -143,6 +143,36 @@ typedef enum { kplate_code_scaner_open_laser = 0x7307, // 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; typedef struct { diff --git a/api/apibasic/errorcode.hpp b/api/apibasic/errorcode.hpp index e96ac5e..b22f135 100644 --- a/api/apibasic/errorcode.hpp +++ b/api/apibasic/errorcode.hpp @@ -78,6 +78,12 @@ typedef enum { kstep_motor_not_found_point_edge = 1610, kstep_motor_lost_step = 1611, 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_mode_not_support = 1701, diff --git a/api/apibasic/reg_index.cpp b/api/apibasic/reg_index.cpp index a9526cf..5ac71df 100644 --- a/api/apibasic/reg_index.cpp +++ b/api/apibasic/reg_index.cpp @@ -43,12 +43,12 @@ static reginfo_t table[] = { REG_ITERM(kreg_pipette_pump_vstart), REG_ITERM(kreg_pipette_pump_vstop), 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_motor_vel_rpm), REG_ITERM(kreg_pipette_lld_detect_period_ms), 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_f_pos_offset), diff --git a/api/apibasic/reg_index.hpp b/api/apibasic/reg_index.hpp index 7a313a4..175929f 100644 --- a/api/apibasic/reg_index.hpp +++ b/api/apibasic/reg_index.hpp @@ -53,12 +53,12 @@ typedef enum { kreg_pipette_pump_vstart = 4054, // kreg_pipette_pump_vstop = 4055, // 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_motor_vel_rpm = 4059, // kreg_pipette_lld_detect_period_ms = 4060, // kreg_pipette_lld_prepare_pos = 4061, // - kreg_pipette_lld_prepare_distribut_pos = 4062, // + kreg_pipette_lld_prepare_pre_distribut_ul = 4062, // /** * @brief diff --git a/api/zi_module.hpp b/api/zi_module.hpp index 8f29739..e1d57a3 100644 --- a/api/zi_module.hpp +++ b/api/zi_module.hpp @@ -70,6 +70,11 @@ class ZIModule { virtual int32_t getid(int32_t *id) = 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: 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);