Browse Source

update

master
zhaohe 2 years ago
parent
commit
358d158302
  1. 6
      api/basic_type.hpp
  2. 13
      api/i_pipette_module.hpp
  3. 45
      api/i_step_motor_ctrl_module.hpp
  4. 10
      zcancmder_protocol.hpp

6
api/basic_type.hpp

@ -1,5 +1,7 @@
#pragma once #pragma once
#include <stdint.h> #include <stdint.h>
#include <functional>
namespace iflytop { namespace iflytop {
typedef uint8_t u8; typedef uint8_t u8;
typedef uint16_t u16; typedef uint16_t u16;
@ -38,4 +40,6 @@ typedef enum {
#endif #endif
} // namespace iflytop
typedef std::function<void(int32_t status)> action_cb_status_t;
} // namespace iflytop

13
api/i_pipette_module.hpp

@ -34,18 +34,17 @@ class I_PipetteModule {
ZSTRUCT(tippara_t, uint8_t id; int16_t tiphight;); ZSTRUCT(tippara_t, uint8_t id; int16_t tiphight;);
ZSTRUCT(platformpara_t, uint8_t id; int16_t take_tip_height_mm; int16_t remove_tip_height_mm; int16_t transfer_height_mm;); ZSTRUCT(platformpara_t, uint8_t id; int16_t take_tip_height_mm; int16_t remove_tip_height_mm; int16_t transfer_height_mm;);
ZSTRUCT(action_cb_status_t, u8 exec_status;);
// ZSTRUCT(action_cb_status_t, u8 exec_status;);
virtual int32_t enable(u8 enable) = 0; virtual int32_t enable(u8 enable) = 0;
virtual int32_t stop(u8 stop_type) = 0; virtual int32_t stop(u8 stop_type) = 0;
virtual int32_t zero_pos_calibrate(function<void(action_cb_status_t status)> exec_complete_cb) = 0;
virtual int32_t reset_device(function<void(action_cb_status_t status)> exec_complete_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 take_tip(int tipid, function<void(action_cb_status_t status)> exec_complete_cb) = 0;
virtual int32_t remove_tip(function<void(action_cb_status_t status)> exec_complete_cb) = 0;
virtual int32_t take_tip(int tipid, 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, //
function<void(action_cb_status_t status)> exec_complete_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;
}; };
} // namespace iflytop } // namespace iflytop

45
api/i_step_motor_ctrl_module.hpp

@ -17,30 +17,6 @@ class I_StepMotorCtrlModule {
* ACTION * * ACTION *
*******************************************************************************/ *******************************************************************************/
#pragma pack(1) #pragma pack(1)
typedef struct {
int32_t exec_status;
int32_t tox;
} move_to_cb_status_t;
typedef struct {
int32_t exec_status;
int32_t dx;
} move_by_cb_status_t;
typedef struct {
int32_t exec_status;
} move_to_zero_cb_status_t;
typedef struct {
int32_t exec_status;
int32_t zero_shift_x;
} move_to_zero_with_calibrate_cb_status_t;
typedef struct {
int32_t exec_status;
int32_t lastforms;
} rotate_cb_status_t;
/******************************************************************************* /*******************************************************************************
* READ * * READ *
*******************************************************************************/ *******************************************************************************/
@ -91,16 +67,17 @@ class I_StepMotorCtrlModule {
#pragma pack() #pragma pack()
public: public:
virtual bool isbusy() = 0;
virtual int32_t move_to(int32_t x, function<void(move_to_cb_status_t& status)> status_cb) = 0;
virtual int32_t move_by(int32_t dx, function<void(move_by_cb_status_t& status)> status_cb) = 0;
virtual int32_t move_to_zero(function<void(move_to_zero_cb_status_t& status)> status_cb) = 0;
virtual int32_t move_to_zero_with_calibrate(int32_t x, function<void(move_to_zero_with_calibrate_cb_status_t& status)> status_cb) = 0;
virtual int32_t enable(bool venable) = 0;
virtual int32_t stop(uint8_t stopType) = 0;
virtual int32_t force_change_current_pos(int32_t x) = 0;
virtual int32_t rotate(int32_t speed, int32_t lastforms, function<void(rotate_cb_status_t& status)> status_cb) = 0;
virtual bool isbusy() = 0;
virtual int32_t get_last_exec_status() = 0;
virtual int32_t move_to(int32_t x, action_cb_status_t status_cb) = 0;
virtual int32_t move_by(int32_t dx, action_cb_status_t status_cb) = 0;
virtual int32_t move_to_zero(action_cb_status_t status_cb) = 0;
virtual int32_t move_to_zero_with_calibrate(int32_t x, action_cb_status_t status_cb) = 0;
virtual int32_t rotate(int32_t speed, int32_t lastforms, action_cb_status_t status_cb) = 0;
virtual int32_t enable(bool venable) = 0;
virtual int32_t stop(uint8_t stopType) = 0;
virtual int32_t force_change_current_pos(int32_t x) = 0;
virtual int32_t read_version(version_t& version) = 0; virtual int32_t read_version(version_t& version) = 0;
virtual int32_t read_status(status_t& status) = 0; virtual int32_t read_status(status_t& status) = 0;

10
zcancmder_protocol.hpp

@ -236,12 +236,12 @@ ZPACKET_CMD_ACK(kcmd_xy_robot_ctrl_set_run_to_zero_param, CMD(u8 id; u8 opt_type
ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_enable, CMD(u8 id; u8 enable;), ACK(u8 id;)); ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_enable, CMD(u8 id; u8 enable;), ACK(u8 id;));
ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_stop, CMD(u8 id; u8 stop_type;), ACK(u8 id;)); ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_stop, CMD(u8 id; u8 stop_type;), ACK(u8 id;));
ZPACKET_CMD_ACK_AND_REPORT(kcmd_step_motor_ctrl_move_to_zero, CMD(u8 id;), ACK(u8 id;), REPORT(u8 id; I_StepMotorCtrlModule::move_to_zero_cb_status_t status;));
ZPACKET_CMD_ACK_AND_REPORT(kcmd_step_motor_ctrl_move_to_zero_with_calibrate, CMD(u8 id; s32 nowx; s32 nowy;), ACK(u8 id;), REPORT(u8 id; I_StepMotorCtrlModule::move_to_zero_with_calibrate_cb_status_t status;));
ZPACKET_CMD_ACK_AND_REPORT(kcmd_step_motor_ctrl_move_to, CMD(u8 id; s32 x; s32 speed;), ACK(u8 id;), REPORT(u8 id; I_StepMotorCtrlModule::move_to_cb_status_t status;));
ZPACKET_CMD_ACK_AND_REPORT(kcmd_step_motor_ctrl_move_by, CMD(u8 id; s32 dx; s32 speed;), ACK(u8 id;), REPORT(u8 id; I_StepMotorCtrlModule::move_by_cb_status_t status;));
ZPACKET_CMD_ACK_AND_REPORT(kcmd_step_motor_ctrl_move_to_zero, CMD(u8 id;), ACK(u8 id;), REPORT(u8 id; int32_t exec_status;));
ZPACKET_CMD_ACK_AND_REPORT(kcmd_step_motor_ctrl_move_to_zero_with_calibrate, CMD(u8 id; s32 nowx; s32 nowy;), ACK(u8 id;), REPORT(u8 id; int32_t exec_status;));
ZPACKET_CMD_ACK_AND_REPORT(kcmd_step_motor_ctrl_move_to, CMD(u8 id; s32 x; s32 speed;), ACK(u8 id;), REPORT(u8 id; int32_t exec_status;));
ZPACKET_CMD_ACK_AND_REPORT(kcmd_step_motor_ctrl_move_by, CMD(u8 id; s32 dx; s32 speed;), ACK(u8 id;), REPORT(u8 id; int32_t exec_status;));
ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_force_change_current_pos, CMD(u8 id; s32 x;), ACK(u8 id;)); ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_force_change_current_pos, CMD(u8 id; s32 x;), ACK(u8 id;));
ZPACKET_CMD_ACK_AND_REPORT(kcmd_step_motor_ctrl_rotate, CMD(u8 id; s32 speed; s32 run_time;), ACK(u8 id;), REPORT(u8 id; I_StepMotorCtrlModule::rotate_cb_status_t status;));
ZPACKET_CMD_ACK_AND_REPORT(kcmd_step_motor_ctrl_rotate, CMD(u8 id; s32 speed; s32 run_time;), ACK(u8 id;), REPORT(u8 id; int32_t exec_status;));
// READ // READ
ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_read_version, CMD(u8 id;), ACK(u8 id; I_StepMotorCtrlModule::version_t ack;)); ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_read_version, CMD(u8 id;), ACK(u8 id; I_StepMotorCtrlModule::version_t ack;));
ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_read_status, CMD(u8 id;), ACK(u8 id; I_StepMotorCtrlModule::status_t ack;)); ZPACKET_CMD_ACK(kcmd_step_motor_ctrl_read_status, CMD(u8 id;), ACK(u8 id; I_StepMotorCtrlModule::status_t ack;));

Loading…
Cancel
Save