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

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. //
  6. namespace iflytop {
  7. using namespace std;
  8. class I_PipetteModule {
  9. public:
  10. #pragma pack(1)
  11. ZSTRUCT(base_param_t,
  12. int16_t take_tip_height_mm; //
  13. int16_t remove_tip_height_mm; //
  14. int16_t transfer_height_mm; //
  15. int16_t tiphight;);
  16. typedef struct {
  17. uint8_t status; // �豸״̬
  18. uint8_t io_state; // IO0:z_zero_io/IO1:hastip/
  19. int16_t zpos_mm; // z���
  20. int16_t pipette_ul; // ��ҺǹҺ��
  21. } status_t;
  22. #pragma pack()
  23. // ZSTRUCT(action_cb_status_t, u8 exec_status;);
  24. virtual int32_t enable(u8 enable) = 0;
  25. virtual int32_t stop(u8 stop_type) = 0;
  26. virtual int32_t zero_pos_calibrate(action_cb_status_t status_cb) = 0;
  27. virtual int32_t reset_device(action_cb_status_t status_cb) = 0;
  28. virtual int32_t take_tip(action_cb_status_t status_cb) = 0;
  29. virtual int32_t remove_tip(action_cb_status_t status_cb) = 0;
  30. // ȡҺ(ƽ̨�������Թܲ���, ȡ��������ȡ���߶ȣ�ҡ�ȴ�����ҡ������)
  31. 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;
  32. virtual int32_t set_base_param(const base_param_t &base_param) = 0;
  33. virtual int32_t get_base_param(base_param_t &base_param) = 0;
  34. virtual int32_t get_status(status_t &status) = 0;
  35. };
  36. } // namespace iflytop