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.
58 lines
2.5 KiB
58 lines
2.5 KiB
|
|
#pragma once
|
|
#include <stdint.h>
|
|
|
|
#include <functional>
|
|
|
|
#include "basic_type.hpp"
|
|
//
|
|
|
|
namespace iflytop {
|
|
using namespace std;
|
|
class I_PipetteModule {
|
|
public:
|
|
#pragma pack(1)
|
|
|
|
ZSTRUCT(base_param_t, s16 pad;);
|
|
|
|
typedef struct {
|
|
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;
|
|
|
|
#pragma pack()
|
|
|
|
// ZSTRUCT(action_cb_status_t, u8 exec_status;);
|
|
|
|
virtual int32_t enable(u8 enable) = 0;
|
|
virtual int32_t stop(u8 stop_type) = 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 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 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;
|
|
|
|
/*******************************************************************************
|
|
* 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
|