|
@ -13,13 +13,15 @@ class I_PipetteModule { |
|
|
public: |
|
|
public: |
|
|
#pragma pack(1)
|
|
|
#pragma pack(1)
|
|
|
|
|
|
|
|
|
ZSTRUCT(base_param_t, int16_t pad;); |
|
|
|
|
|
|
|
|
ZSTRUCT(base_param_t, s16 pad;); |
|
|
|
|
|
|
|
|
typedef struct { |
|
|
typedef struct { |
|
|
uint8_t status; // 设备状态
|
|
|
|
|
|
uint8_t io_state; // IO0:z_zero_io/IO1:hastip/
|
|
|
|
|
|
int16_t zpos_mm; // z轴位置
|
|
|
|
|
|
int16_t pipette_ul; // 移液枪液量
|
|
|
|
|
|
|
|
|
u8 status; // 模块状态
|
|
|
|
|
|
u8 pipette_gun_status; // 移液枪状态
|
|
|
|
|
|
u8 io_state; // IO0:z_zero_io
|
|
|
|
|
|
u8 has_tip; // 是否有tip
|
|
|
|
|
|
s16 zpos_mm; // z轴位置,如果有tip,则自动加上tip高度
|
|
|
|
|
|
s16 pipette_ul; // 移液枪液量
|
|
|
} status_t; |
|
|
} status_t; |
|
|
|
|
|
|
|
|
#pragma pack()
|
|
|
#pragma pack()
|
|
@ -32,14 +34,25 @@ class I_PipetteModule { |
|
|
virtual int32_t zero_pos_calibrate(action_cb_status_t status_cb) = 0; |
|
|
virtual int32_t zero_pos_calibrate(action_cb_status_t status_cb) = 0; |
|
|
virtual int32_t reset_device(action_cb_status_t status_cb) = 0; |
|
|
virtual int32_t reset_device(action_cb_status_t status_cb) = 0; |
|
|
|
|
|
|
|
|
virtual int32_t take_tip(action_cb_status_t status_cb) = 0; |
|
|
|
|
|
virtual int32_t remove_tip(action_cb_status_t status_cb) = 0; |
|
|
|
|
|
// 取液(平台参数,试管参数, 取样体积,取样高度,摇匀次数,摇匀体积)
|
|
|
|
|
|
virtual int32_t take_and_split_liquid(u8 tube_id, s16 liquid_volume, s16 zhight, s16 abs_zhight, s16 shake_times, s16 shake_volume, action_cb_status_t status_cb) = 0; |
|
|
|
|
|
|
|
|
virtual int32_t take_tip(s16 vel, s16 height_mm, s16 tip_hight_mm, action_cb_status_t status_cb) = 0; |
|
|
|
|
|
virtual int32_t remove_tip(s16 vel, s16 height_mm, action_cb_status_t status_cb) = 0; |
|
|
|
|
|
|
|
|
virtual int32_t set_base_param(const base_param_t &base_param) = 0; |
|
|
|
|
|
virtual int32_t get_base_param(base_param_t &base_param) = 0; |
|
|
|
|
|
|
|
|
virtual int32_t move_to(s16 vel, s16 height_mm, action_cb_status_t status_cb) = 0; |
|
|
|
|
|
virtual int32_t move_to_with_lld(s16 vel, s16 lld_cap_thr, s16 lld_max_hight_mm, s16 lld_rela_hight_mm, action_cb_status_t status_cb) = 0; |
|
|
|
|
|
virtual int32_t shake_volume(s16 shake_times, s16 shake_volume, action_cb_status_t status_cb) = 0; |
|
|
|
|
|
virtual int32_t take_and_split_liquid(s16 take_volume_mm, action_cb_status_t status_cb) = 0; |
|
|
|
|
|
|
|
|
|
|
|
/*******************************************************************************
|
|
|
|
|
|
* ReadStatus * |
|
|
|
|
|
*******************************************************************************/ |
|
|
virtual int32_t get_status(status_t &status) = 0; |
|
|
virtual int32_t get_status(status_t &status) = 0; |
|
|
|
|
|
|
|
|
|
|
|
/*******************************************************************************
|
|
|
|
|
|
* SETTING * |
|
|
|
|
|
*******************************************************************************/ |
|
|
|
|
|
virtual int32_t set_z_motor_para(const I_StepMotorCtrlModule::base_param_t &z_motor_param) = 0; |
|
|
|
|
|
virtual int32_t get_z_motor_para(I_StepMotorCtrlModule::base_param_t &z_motor_param) = 0; |
|
|
|
|
|
virtual int32_t set_base_param(const base_param_t &base_param) = 0; |
|
|
|
|
|
virtual int32_t get_base_param(base_param_t &base_param) = 0; |
|
|
}; |
|
|
}; |
|
|
} // namespace iflytop
|
|
|
} // namespace iflytop
|