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.

49 lines
1.4 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,
int16_t take_tip_height_mm; //
int16_t remove_tip_height_mm; //
int16_t transfer_height_mm; //
int16_t tiphight;);
typedef struct {
uint8_t status; // 设备状态
uint8_t io_state; // IO0:z_zero_io/IO1:hastip/
int16_t zpos_mm; // z轴位置
int16_t 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(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 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 get_status(status_t &status) = 0;
};
} // namespace iflytop