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.

189 lines
11 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
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
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 <map>
  3. #include "api/api.hpp"
  4. #include "api/i_zcan_cmder_master.hpp"
  5. #include "cmdid.hpp"
  6. namespace iflytop {
  7. class ZIProtocolProxy : public ZIMotor, //
  8. public ZIXYMotor, //
  9. public ZIModule,
  10. public ZIPipetteCtrlModule,
  11. public ZIA8000OpticalModule {
  12. private:
  13. IZcanCmderMaster *m_cancmder;
  14. int32_t m_id = 0;
  15. public:
  16. void initialize(int32_t moduleId, IZcanCmderMaster *cancmder) {
  17. m_cancmder = cancmder;
  18. m_id = moduleId;
  19. }
  20. virtual int32_t getid(int32_t *id) {
  21. *id = m_id;
  22. return 0;
  23. };
  24. /*******************************************************************************
  25. * ZIModule *
  26. *******************************************************************************/
  27. #if 0
  28. #endif
  29. virtual int32_t module_ping() override;
  30. virtual int32_t module_stop() override;
  31. virtual int32_t module_break() override;
  32. virtual int32_t module_start() override;
  33. virtual int32_t module_get_last_exec_status(int32_t *status) override;
  34. virtual int32_t module_get_status(int32_t *status) override;
  35. virtual int32_t module_set_reg(int32_t param_id, int32_t param_value) override;
  36. virtual int32_t module_get_reg(int32_t param_id, int32_t *param_value) override;
  37. virtual int32_t module_readio(int32_t *io) override;
  38. virtual int32_t module_writeio(int32_t ioindex, int32_t io) override;
  39. virtual int32_t module_read_adc(int32_t adcindex, int32_t *adc) override;
  40. virtual int32_t module_get_error(int32_t *iserror) override;
  41. virtual int32_t module_clear_error() override;
  42. virtual int32_t module_set_inited_flag(int32_t flag) override;
  43. virtual int32_t module_get_inited_flag(int32_t *flag) override;
  44. virtual int32_t module_factory_reset() override;
  45. virtual int32_t module_flush_cfg() override;
  46. virtual int32_t module_active_cfg() override;
  47. virtual int32_t module_read_raw(int32_t startadd, uint8_t *data, int32_t *len) override;
  48. virtual int32_t module_enable(int32_t enable) override;
  49. /*******************************************************************************
  50. * ZIMotor *
  51. *******************************************************************************/
  52. #if 0
  53. virtual int32_t motor_enable(int32_t enable) { return err::koperation_not_support; }
  54. virtual int32_t motor_rotate(int32_t direction, int32_t motor_velocity, int32_t acc) { return err::koperation_not_support; }
  55. virtual int32_t motor_move_by(int32_t distance, int32_t motor_velocity, int32_t acc) { return err::koperation_not_support; }
  56. virtual int32_t motor_move_to(int32_t position, int32_t motor_velocity, int32_t acc) { return err::koperation_not_support; }
  57. virtual int32_t motor_rotate_acctime(int32_t direction, int32_t motor_velocity, int32_t acctime) { return err::koperation_not_support; }
  58. virtual int32_t motor_move_by_acctime(int32_t distance, int32_t motor_velocity, int32_t acctime) { return err::koperation_not_support; }
  59. virtual int32_t motor_move_to_acctime(int32_t position, int32_t motor_velocity, int32_t acctime) { return err::koperation_not_support; }
  60. virtual int32_t motor_rotate_with_torque(int32_t direction, int32_t torque) { return err::koperation_not_support; }
  61. virtual int32_t motor_move_to_torque(int32_t pos, int32_t torque, int32_t overtime) { return err::koperation_not_support; }
  62. virtual int32_t motor_move_to_zero_forward(int32_t findzerospeed, int32_t findzeroedge_speed, int32_t acc, int32_t overtime) { return err::koperation_not_support; }
  63. virtual int32_t motor_move_to_zero_backward(int32_t findzerospeed, int32_t findzeroedge_speed, int32_t acc, int32_t overtime) { return err::koperation_not_support; }
  64. virtual int32_t motor_move_to_zero_forward_and_calculated_shift(int32_t findzerospeed, int32_t findzeroedge_speed, int32_t acc, int32_t overtime) { return err::koperation_not_support; }
  65. virtual int32_t motor_move_to_zero_backward_and_calculated_shift(int32_t findzerospeed, int32_t findzeroedge_speed, int32_t acc, int32_t overtime) { return err::koperation_not_support; }
  66. virtual int32_t motor_read_pos(int32_t* pos) { return err::koperation_not_support; }
  67. virtual int32_t motor_set_current_pos_by_change_shift(int32_t pos) { return err::koperation_not_support; } // һ�����ڶ���?
  68. virtual int32_t motor_calculated_pos_by_move_to_zero() { return err::koperation_not_support; }
  69. virtual int32_t motor_easy_rotate(int32_t direction) { return err::koperation_not_support; };
  70. virtual int32_t motor_easy_move_by(int32_t distance) { return err::koperation_not_support; };
  71. virtual int32_t motor_easy_move_to(int32_t position) { return err::koperation_not_support; };
  72. virtual int32_t motor_easy_move_to_zero(int32_t direction) { return err::koperation_not_support; };
  73. virtual int32_t motor_easy_set_current_pos(int32_t pos) { return err::koperation_not_support; };
  74. #endif
  75. virtual int32_t motor_enable(int32_t enable) override;
  76. virtual int32_t motor_rotate(int32_t direction, int32_t motor_velocity, int32_t acc) override;
  77. virtual int32_t motor_move_by(int32_t direction, int32_t motor_velocity, int32_t acc) override;
  78. virtual int32_t motor_move_to(int32_t direction, int32_t motor_velocity, int32_t acc) override;
  79. virtual int32_t motor_rotate_with_torque(int32_t direction, int32_t torque) override;
  80. virtual int32_t motor_rotate_acctime(int32_t direction, int32_t motor_velocity, int32_t acctime) override;
  81. virtual int32_t motor_move_by_acctime(int32_t distance, int32_t motor_velocity, int32_t acctime) override;
  82. virtual int32_t motor_move_to_acctime(int32_t position, int32_t motor_velocity, int32_t acctime) override;
  83. virtual int32_t motor_move_to_zero_forward(int32_t findzerospeed, int32_t findzeroedge_speed, int32_t acc, int32_t overtime) override;
  84. virtual int32_t motor_move_to_zero_backward(int32_t findzerospeed, int32_t findzeroedge_speed, int32_t acc, int32_t overtime) override;
  85. virtual int32_t motor_read_pos(int32_t *pos) override;
  86. virtual int32_t motor_set_current_pos_by_change_shift(int32_t pos) override;
  87. virtual int32_t motor_move_to_zero_forward_and_calculated_shift(int32_t findzerospeed, int32_t findzeroedge_speed, int32_t acc, int32_t overtime) override;
  88. virtual int32_t motor_move_to_zero_backward_and_calculated_shift(int32_t findzerospeed, int32_t findzeroedge_speed, int32_t acc, int32_t overtime) override;
  89. virtual int32_t motor_move_to_torque(int32_t pos, int32_t torque, int32_t overtime) override;
  90. virtual int32_t motor_calculated_pos_by_move_to_zero() override;
  91. virtual int32_t motor_easy_rotate(int32_t direction) override;
  92. virtual int32_t motor_easy_move_by(int32_t distance) override;
  93. virtual int32_t motor_easy_move_to(int32_t position) override;
  94. virtual int32_t motor_easy_move_to_zero(int32_t direction) override;
  95. virtual int32_t motor_easy_set_current_pos(int32_t pos) override;
  96. /*******************************************************************************
  97. * ZIXYMotor *
  98. *******************************************************************************/
  99. #if 0
  100. virtual ~ZIXYMotor() {}
  101. virtual int32_t xymotor_enable(int32_t enable) { return err::koperation_not_support; }
  102. virtual int32_t xymotor_move_by(int32_t dx, int32_t dy, int32_t motor_velocity) { return err::koperation_not_support; }
  103. virtual int32_t xymotor_move_to(int32_t x, int32_t y, int32_t motor_velocity) { return err::koperation_not_support; }
  104. virtual int32_t xymotor_move_to_zero() { return err::koperation_not_support; }
  105. virtual int32_t xymotor_move_to_zero_and_calculated_shift() { return err::koperation_not_support; }
  106. virtual int32_t xymotor_read_pos(int32_t *x, int32_t *y) { return err::koperation_not_support; }
  107. virtual int32_t xymotor_calculated_pos_by_move_to_zero() { return err::koperation_not_support; }
  108. #endif
  109. virtual int32_t xymotor_enable(int32_t enable) override;
  110. virtual int32_t xymotor_move_by(int32_t dx, int32_t dy, int32_t motor_velocity) override;
  111. virtual int32_t xymotor_move_to(int32_t x, int32_t y, int32_t motor_velocity) override;
  112. virtual int32_t xymotor_move_to_zero() override;
  113. virtual int32_t xymotor_move_to_zero_and_calculated_shift() override;
  114. virtual int32_t xymotor_read_pos(int32_t *x, int32_t *y) override;
  115. virtual int32_t xymotor_calculated_pos_by_move_to_zero() override;
  116. /*******************************************************************************
  117. * ZICodeScaner *
  118. *******************************************************************************/
  119. #if 0
  120. virtual int32_t code_scaner_start_scan() { return err::koperation_not_support; }
  121. virtual int32_t code_scaner_stop_scan() { return err::koperation_not_support; }
  122. virtual int32_t code_scaner_read_scaner_result(int32_t startadd, uint8_t *data, int32_t *len) { return err::koperation_not_support; }
  123. virtual int32_t code_scaner_start_scan() override;
  124. virtual int32_t code_scaner_stop_scan() override;
  125. virtual int32_t code_scaner_read_scaner_result(int32_t startadd, uint8_t *data, int32_t *len) override;
  126. #endif
  127. #if 0
  128. virtual int32_t pipette_ctrl_init_device() { return err::koperation_not_support; };
  129. virtual int32_t pipette_ctrl_put_tip() { return err::koperation_not_support; };
  130. virtual int32_t pipette_ctrl_move_to_ul(int32_t ul) { return err::koperation_not_support; };
  131. #endif
  132. virtual int32_t pipette_ctrl_init_device() override;
  133. virtual int32_t pipette_ctrl_put_tip() override;
  134. virtual int32_t pipette_ctrl_move_to_ul(int32_t ul) override;
  135. #if 0
  136. virtual int32_t a8000_optical_module_power_ctrl(int32_t state) = 0;
  137. virtual int32_t a8000_optical_open_laser(int32_t type) = 0;
  138. virtual int32_t a8000_optical_close_laser(int32_t type) = 0;
  139. virtual int32_t a8000_optical_set_laster_gain(int32_t type, int32_t gain) = 0;
  140. virtual int32_t a8000_optical_set_scan_amp_gain(int32_t type, int32_t gain) = 0;
  141. virtual int32_t a8000_optical_read_scanner_adc_val(int32_t type, int32_t* adcval) = 0;
  142. virtual int32_t a8000_optical_read_laster_adc_val(int32_t type, int32_t* adcval) = 0;
  143. virtual int32_t a8000_optical_scan_current_point_amp_adc_val(int32_t type, int32_t lastergain, int32_t ampgain, int32_t* laster_fb_val, int32_t* adcval) = 0;
  144. #endif
  145. virtual int32_t a8000_optical_module_power_ctrl(int32_t state) override;
  146. virtual int32_t a8000_optical_open_laser(int32_t type) override;
  147. virtual int32_t a8000_optical_close_laser(int32_t type) override;
  148. virtual int32_t a8000_optical_set_laster_gain(int32_t type, int32_t gain) override;
  149. virtual int32_t a8000_optical_set_scan_amp_gain(int32_t type, int32_t gain) override;
  150. virtual int32_t a8000_optical_read_scanner_adc_val(int32_t type, int32_t *adcval) override;
  151. virtual int32_t a8000_optical_read_laster_adc_val(int32_t type, int32_t *adcval) override;
  152. virtual int32_t a8000_optical_scan_current_point_amp_adc_val(int32_t type, int32_t lastergain, int32_t ampgain, int32_t *laster_fb_val, int32_t *adcval) override;
  153. };
  154. } // namespace iflytop