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.

64 lines
2.7 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. #pragma once
  2. #include <stdint.h>
  3. #include <functional>
  4. #include "basic_type.hpp"
  5. #include "i_step_motor_ctrl_module.hpp"
  6. //
  7. namespace iflytop {
  8. using namespace std;
  9. class I_PipetteModule {
  10. public:
  11. #pragma pack(1)
  12. ZSTRUCT(base_param_t, s16 pad;);
  13. typedef struct {
  14. u8 status; // ģ��״̬
  15. u8 pipette_gun_status; // ��Һǹ״̬
  16. u8 io_state; // IO0:z_zero_io
  17. u8 has_tip; // �Ƿ���tip
  18. s16 zpos_mm; // z��λ�ã�������tip,���Զ�����tip�߶�
  19. s16 pipette_ul; // ��ҺǹҺ��
  20. } status_t;
  21. #pragma pack()
  22. // ZSTRUCT(action_cb_status_t, u8 exec_status;);
  23. virtual int32_t enable(u8 enable) = 0;
  24. virtual int32_t stop(u8 stop_type) = 0;
  25. virtual int32_t zero_pos_calibrate(action_cb_status_t status_cb) = 0;
  26. // virtual int32_t reset_device(action_cb_status_t status_cb) = 0;
  27. virtual int32_t zmotor_reset(action_cb_status_t status_cb) = 0;
  28. virtual int32_t pipette_reset(action_cb_status_t status_cb) = 0;
  29. virtual int32_t take_tip(s16 vel, s16 height_mm, s16 tip_hight_mm, action_cb_status_t status_cb) = 0;
  30. virtual int32_t remove_tip(s16 vel, s16 height_mm, action_cb_status_t status_cb) = 0;
  31. virtual int32_t move_to(s16 vel, s16 height_mm, action_cb_status_t status_cb) = 0;
  32. 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;
  33. virtual int32_t shake(s16 shake_times, s16 shake_volume, action_cb_status_t status_cb) = 0;
  34. virtual int32_t pipette_move_to_ul(s16 take_volume_mm, action_cb_status_t status_cb) = 0;
  35. /*******************************************************************************
  36. * ReadStatus *
  37. *******************************************************************************/
  38. virtual int32_t get_status(status_t &status) = 0;
  39. /*******************************************************************************
  40. * SETTING *
  41. *******************************************************************************/
  42. virtual int32_t set_z_motor_para(const I_StepMotorCtrlModule::base_param_t &z_motor_param) = 0;
  43. virtual int32_t get_z_motor_para(I_StepMotorCtrlModule::base_param_t &z_motor_param) = 0;
  44. virtual int32_t set_base_param(const base_param_t &base_param) = 0;
  45. virtual int32_t get_base_param(base_param_t &base_param) = 0;
  46. virtual ~I_PipetteModule() {}
  47. };
  48. } // namespace iflytop