Browse Source

update

change_pipette_api
zhaohe 1 year ago
parent
commit
ba9d9901d6
  1. 6
      api/api.hpp
  2. 4
      api/apibasic/cmdid.cpp
  3. 11
      api/apibasic/cmdid.hpp
  4. 40
      api/apibasic/errorcode.cpp
  5. 112
      api/apibasic/errorcode.hpp
  6. 20
      api/apibasic/reg_index.cpp
  7. 27
      api/apibasic/reg_index.hpp
  8. 16
      api/zi_a8000_optical_module.hpp
  9. 14
      api/zi_fan_ctrl.hpp
  10. 6
      api/zi_pipette_ctrl_module.hpp
  11. 15
      api/zi_water_cooling_temperature_controler.hpp
  12. 14
      api/zi_xymotor.hpp

6
api/api.hpp

@ -19,4 +19,8 @@
//
#include "zi_board.hpp"
//
#include "zi_code_scaner.hpp"
#include "zi_code_scaner.hpp"
//
#include "zi_fan_ctrl.hpp"
//
#include "zi_water_cooling_temperature_controler.hpp"

4
api/apibasic/cmdid.cpp

@ -76,6 +76,10 @@ static cmdinfo_t table[] = {
CMD_ITERM(kcode_scaner_read_scaner_result),
CMD_ITERM(kcode_scaner_get_result_length),
CMD_ITERM(kfan_controler_set_speed),
CMD_ITERM(kwater_cooling_temp_start_hearting),
CMD_ITERM(kwater_cooling_temp_stop_hearting),
};
const char* cmdid2str(int32_t code) {

11
api/apibasic/cmdid.hpp

@ -101,6 +101,17 @@ typedef enum {
kcode_scaner_read_scaner_result = CMDID(104, 4), // para:{}, ack:{X}
kcode_scaner_get_result_length = CMDID(104, 5), // para:{}, ack:{X}
/***********************************************************************************************************************
* FAN_CTRL *
***********************************************************************************************************************/
kfan_controler_set_speed = CMDID(0x69, 0),
/***********************************************************************************************************************
* WATER_COOLING_TEMPERATURE *
***********************************************************************************************************************/
kwater_cooling_temp_start_hearting = CMDID(0x70, 0),
kwater_cooling_temp_stop_hearting = CMDID(0x70, 1),
} cmdid_t;
typedef struct {

40
api/apibasic/errorcode.cpp

@ -11,55 +11,25 @@ namespace err {
{ enum, #enum }
static ecode_table_item_t table[] = {
ERR_ITERM(ksucc),
ERR_ITERM(kfail),
ERR_ITERM(kparam_out_of_range),
ERR_ITERM(koperation_not_support),
ERR_ITERM(kcmd_not_support),
ERR_ITERM(kdevice_is_busy),
ERR_ITERM(kdevice_is_offline),
ERR_ITERM(kovertime),
ERR_ITERM(knoack),
ERR_ITERM(kerrorack),
ERR_ITERM(kdevice_offline),
ERR_ITERM(kparse_json_err),
ERR_ITERM(ksubdevice_overtime),
ERR_ITERM(kbuffer_not_enough),
ERR_ITERM(kcmd_not_found),
ERR_ITERM(kcmd_param_num_error),
ERR_ITERM(kcheckcode_is_error),
ERR_ITERM(kcatch_exception),
ERR_ITERM(khwardware_error_fan_error),
ERR_ITERM(khwardware_error),
ERR_ITERM(ksys_error),
ERR_ITERM(ksys_create_file_error),
ERR_ITERM(ksys_create_dir_error),
ERR_ITERM(ksys_open_file_error),
ERR_ITERM(ksys_open_dir_error),
ERR_ITERM(ksys_read_file_error),
ERR_ITERM(ksys_write_file_error),
ERR_ITERM(ksys_close_file_error),
ERR_ITERM(ksys_close_dir_error),
ERR_ITERM(ksys_delete_file_error),
ERR_ITERM(ksys_delete_dir_error),
ERR_ITERM(ksys_copy_file_error),
ERR_ITERM(kmodule_not_inited),
ERR_ITERM(kmodule_not_found),
ERR_ITERM(kmodule_opeation_break_by_user),
ERR_ITERM(kmodule_error),
ERR_ITERM(kmodule_not_find_config_index),
ERR_ITERM(kmodule_not_find_state_index),
ERR_ITERM(kmodule_not_support_action),
ERR_ITERM(kmodule_not_find_reg),
ERR_ITERM(kmotor_not_found_zero_point),
ERR_ITERM(kmotor_did_not_go_zero),
ERR_ITERM(kmotor_over_temperature),
ERR_ITERM(kmotor_over_voltage),
ERR_ITERM(kxymotor_not_found_x_zero_point),
ERR_ITERM(kxymotor_not_found_y_zero_point),
ERR_ITERM(kxymotor_x_find_zero_edge_fail),
ERR_ITERM(kxymotor_y_find_zero_edge_fail),
ERR_ITERM(kmotor_run_overtime),
ERR_ITERM(kmotor_not_enable),
ERR_ITERM(kSMTP2_NoError),
ERR_ITERM(kSMTP2_InitFail),
ERR_ITERM(kSMTP2_InvalidCmd),
@ -82,10 +52,6 @@ static ecode_table_item_t table[] = {
ERR_ITERM(kSMTP2_VolumeError),
ERR_ITERM(kSMTP2_TipAlreadyLoad),
ERR_ITERM(kSMTP2_TipLoadFail),
ERR_ITERM(kmicro_noErr),
ERR_ITERM(kmicro_uartSendFail),
ERR_ITERM(kmicro_uartRecvFail),
ERR_ITERM(kmicro_adcRecvFail),
ERR_ITERM(kstep_motor_not_found_zero_point),
ERR_ITERM(kstep_motor_not_go_zero),
ERR_ITERM(kstep_motor_over_temperature),
@ -99,6 +65,8 @@ static ecode_table_item_t table[] = {
ERR_ITERM(kstep_motor_not_found_point_edge),
ERR_ITERM(kmini_servo_not_enable),
ERR_ITERM(kmini_servo_mode_not_support),
ERR_ITERM(kfan_hardware_fault),
};
const char* error2str(int32_t code) {

112
api/apibasic/errorcode.hpp

@ -8,71 +8,40 @@ using namespace std;
#define ERROR_CODE(errortype, suberrorcode) (errortype + suberrorcode)
typedef enum {
ksucc = ERROR_CODE(0, 0),
kfail = ERROR_CODE(0, 1),
kparam_out_of_range = ERROR_CODE(0, 2), // 参数超出范围
koperation_not_support = ERROR_CODE(0, 3), // 操作不支持
kdevice_is_busy = ERROR_CODE(0, 4), // 设备忙
kdevice_is_offline = ERROR_CODE(0, 5), // 设备离线
kovertime = ERROR_CODE(0, 6),
knoack = ERROR_CODE(0, 7),
kerrorack = ERROR_CODE(0, 8),
kdevice_offline = ERROR_CODE(0, 9),
kparse_json_err = ERROR_CODE(0, 10),
ksubdevice_overtime = ERROR_CODE(0, 11),
kbuffer_not_enough = ERROR_CODE(0, 12),
kcmd_not_found = ERROR_CODE(0, 13),
kcmd_param_num_error = ERROR_CODE(0, 14),
kcheckcode_is_error = ERROR_CODE(0, 15),
kcatch_exception = ERROR_CODE(0, 16),
khwardware_error_fan_error = ERROR_CODE(0, 17),
khwardware_error = ERROR_CODE(0, 18),
/**
* @brief
*/
ksys_error = ERROR_CODE(100, 0),
ksys_create_file_error = ERROR_CODE(100, 1),
ksys_create_dir_error = ERROR_CODE(100, 2),
ksys_open_file_error = ERROR_CODE(100, 3),
ksys_open_dir_error = ERROR_CODE(100, 4),
ksys_read_file_error = ERROR_CODE(100, 5),
ksys_write_file_error = ERROR_CODE(100, 6),
ksys_close_file_error = ERROR_CODE(100, 7),
ksys_close_dir_error = ERROR_CODE(100, 8),
ksys_delete_file_error = ERROR_CODE(100, 9),
ksys_delete_dir_error = ERROR_CODE(100, 10),
ksys_copy_file_error = ERROR_CODE(100, 11),
ksucc = ERROR_CODE(0, 0),
kfail = ERROR_CODE(0, 1),
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
kparam_out_of_range = ERROR_CODE(100, 2), // 参数超出范围
kcmd_not_support = ERROR_CODE(100, 3), // 操作不支持
kdevice_is_busy = ERROR_CODE(100, 4), // 设备忙
kdevice_is_offline = ERROR_CODE(100, 5), // 设备离线
kovertime = ERROR_CODE(100, 6),
knoack = ERROR_CODE(100, 7),
kerrorack = ERROR_CODE(100, 8),
kdevice_offline = ERROR_CODE(100, 9),
ksubdevice_overtime = ERROR_CODE(100, 11),
kbuffer_not_enough = ERROR_CODE(100, 12),
kcmd_param_num_error = ERROR_CODE(100, 14),
kcheckcode_is_error = ERROR_CODE(100, 15),
/**
* @brief module error
*/
kmodule_not_inited = ERROR_CODE(200, 0),
kmodule_not_found = ERROR_CODE(200, 1),
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
kmodule_opeation_break_by_user = ERROR_CODE(200, 2), // 用户中断
kmodule_error = ERROR_CODE(200, 3), // 未知错误
kmodule_not_find_config_index = ERROR_CODE(200, 4), // 未找到配置索引
kmodule_not_find_state_index = ERROR_CODE(200, 5), // 未找到配置索引
kmodule_not_support_action = ERROR_CODE(200, 6), // 未找到配置索引
kmodule_not_find_reg = ERROR_CODE(200, 7), // 未找到配置索引
/**
* @brief motor error
*/
kmotor_not_found_zero_point = ERROR_CODE(300, 0), // 未找到零点
kmotor_did_not_go_zero = ERROR_CODE(300, 1), // 设备未归零
kmotor_over_temperature = ERROR_CODE(300, 2), // 过温
kmotor_over_voltage = ERROR_CODE(300, 3), // 过压
kxymotor_not_found_x_zero_point = ERROR_CODE(300, 4), // 未找到零点
kxymotor_not_found_y_zero_point = ERROR_CODE(300, 5), // 未找到零点
kxymotor_x_find_zero_edge_fail = ERROR_CODE(300, 6), // 离开零点失败
kxymotor_y_find_zero_edge_fail = ERROR_CODE(300, 7), // 离开零点失败
kmotor_run_overtime = ERROR_CODE(300, 8), // 运行超时
kmotor_not_enable = ERROR_CODE(300, 9), // 电机未使能
/***********************************************************************************************************************
* XY电机驱动错误码 *
***********************************************************************************************************************/
kxymotor_x_find_zero_edge_fail = ERROR_CODE(300, 6), // 离开零点失败
kxymotor_y_find_zero_edge_fail = ERROR_CODE(300, 7), // 离开零点失败
/**
* @brief STMP2错误
*/
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
kSMTP2_NoError = ERROR_CODE(400, 0), // 无错误
kSMTP2_InitFail = ERROR_CODE(400, 1), // 初始化失败
kSMTP2_InvalidCmd = ERROR_CODE(400, 2), // 无效命令
@ -96,17 +65,9 @@ typedef enum {
kSMTP2_TipAlreadyLoad = ERROR_CODE(400, 20), // Tip已经装载
kSMTP2_TipLoadFail = ERROR_CODE(400, 21),
/**
* @brief
*/
kmicro_noErr = ERROR_CODE(500, 0), //
kmicro_uartSendFail = ERROR_CODE(500, 1), //
kmicro_uartRecvFail = ERROR_CODE(500, 2), //
kmicro_adcRecvFail = ERROR_CODE(500, 3), //
/**
* @brief step motor error
*/
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
kstep_motor_not_found_zero_point = ERROR_CODE(600, 0), // 未找到零点
kstep_motor_not_go_zero = ERROR_CODE(600, 1), // 设备未归零
kstep_motor_over_temperature = ERROR_CODE(600, 2), // 过温
@ -119,12 +80,17 @@ typedef enum {
kstep_motor_uv_cp = ERROR_CODE(600, 9), // 驱动器异常
kstep_motor_not_found_point_edge = ERROR_CODE(600, 10), // 未找到零点
/**
* @brief mini servo error
*/
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
kmini_servo_not_enable = ERROR_CODE(700, 0), //
kmini_servo_mode_not_support = ERROR_CODE(700, 1), //
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
kfan_hardware_fault = ERROR_CODE(800, 0), //
} error_t;
typedef struct {

20
api/apibasic/reg_index.cpp

@ -29,26 +29,6 @@ static reginfo_t table[] = {
REG_ITERM(kreg_pid_min_integral),
REG_ITERM(kreg_error_limit),
REG_ITERM(kreg_compute_interval),
REG_ITERM(kreg_fan0_ctrl_speed_level),
REG_ITERM(kreg_fan1_ctrl_speed_level),
REG_ITERM(kreg_fan2_ctrl_speed_level),
REG_ITERM(kreg_fan3_ctrl_speed_level),
REG_ITERM(kreg_fan4_ctrl_speed_level),
REG_ITERM(kreg_fan0_speed_level),
REG_ITERM(kreg_fan1_speed_level),
REG_ITERM(kreg_fan2_speed_level),
REG_ITERM(kreg_fan3_speed_level),
REG_ITERM(kreg_fan4_speed_level),
REG_ITERM(kreg_pwm_pump0_ctrl_speed_level),
REG_ITERM(kreg_pwm_pump1_ctrl_speed_level),
REG_ITERM(kreg_pwm_pump2_ctrl_speed_level),
REG_ITERM(kreg_pwm_pump3_ctrl_speed_level),
REG_ITERM(kreg_pwm_pump4_ctrl_speed_level),
REG_ITERM(kreg_pwm_pump0_speed_level),
REG_ITERM(kreg_pwm_pump1_speed_level),
REG_ITERM(kreg_pwm_pump2_speed_level),
REG_ITERM(kreg_pwm_pump3_speed_level),
REG_ITERM(kreg_pwm_pump4_speed_level),
REG_ITERM(kreg_pipette_pos_ul),
REG_ITERM(kreg_pipette_capactitance_val),
REG_ITERM(kreg_pipette_tip_state),

27
api/apibasic/reg_index.hpp

@ -46,33 +46,6 @@ typedef enum {
kreg_compute_interval = REG_INDEX(30, 50, 8), // 计算间隔
/*******************************************************************************
* *
*******************************************************************************/
kreg_fan0_ctrl_speed_level = REG_INDEX(31, 0, 0), // 风扇转速0,1,2,3
kreg_fan1_ctrl_speed_level = REG_INDEX(31, 0, 1), // 风扇转速0,1,2,3
kreg_fan2_ctrl_speed_level = REG_INDEX(31, 0, 2), // 风扇转速0,1,2,3
kreg_fan3_ctrl_speed_level = REG_INDEX(31, 0, 3), // 风扇转速0,1,2,3
kreg_fan4_ctrl_speed_level = REG_INDEX(31, 0, 4), // 风扇转速0,1,2,3
kreg_fan0_speed_level = REG_INDEX(31, 10, 0), // 风扇实时转速0,1,2,3
kreg_fan1_speed_level = REG_INDEX(31, 10, 1), // 风扇实时转速0,1,2,3
kreg_fan2_speed_level = REG_INDEX(31, 10, 2), // 风扇实时转速0,1,2,3
kreg_fan3_speed_level = REG_INDEX(31, 10, 3), // 风扇实时转速0,1,2,3
kreg_fan4_speed_level = REG_INDEX(31, 10, 4), // 风扇实时转速0,1,2,3
kreg_pwm_pump0_ctrl_speed_level = REG_INDEX(32, 0, 0), // PWM水泵0,1,2,3
kreg_pwm_pump1_ctrl_speed_level = REG_INDEX(32, 0, 1), // PWM水泵0,1,2,3
kreg_pwm_pump2_ctrl_speed_level = REG_INDEX(32, 0, 2), // PWM水泵0,1,2,3
kreg_pwm_pump3_ctrl_speed_level = REG_INDEX(32, 0, 3), // PWM水泵0,1,2,3
kreg_pwm_pump4_ctrl_speed_level = REG_INDEX(32, 0, 4), // PWM水泵0,1,2,3
kreg_pwm_pump0_speed_level = REG_INDEX(32, 10, 0), // PWM水泵0,1,2,3
kreg_pwm_pump1_speed_level = REG_INDEX(32, 10, 1), // PWM水泵0,1,2,3
kreg_pwm_pump2_speed_level = REG_INDEX(32, 10, 2), // PWM水泵0,1,2,3
kreg_pwm_pump3_speed_level = REG_INDEX(32, 10, 3), // PWM水泵0,1,2,3
kreg_pwm_pump4_speed_level = REG_INDEX(32, 10, 4), // PWM水泵0,1,2,3
/*******************************************************************************
* *
*******************************************************************************/
kreg_pipette_pos_ul = REG_INDEX(40, 0, 0), // 移液枪位置

16
api/zi_a8000_optical_module.hpp

@ -27,13 +27,13 @@ class ZIA8000OpticalModule {
* 1.
* 2. 使
*/
virtual int32_t a8000_optical_module_power_ctrl(int32_t state) { return err::kmodule_not_support_action; }
virtual int32_t a8000_optical_open_laser(int32_t type) { return err::kmodule_not_support_action; }
virtual int32_t a8000_optical_close_laser(int32_t type) { return err::kmodule_not_support_action; }
virtual int32_t a8000_optical_set_laster_gain(int32_t type, int32_t gain) { return err::kmodule_not_support_action; }
virtual int32_t a8000_optical_set_scan_amp_gain(int32_t type, int32_t gain) { return err::kmodule_not_support_action; }
virtual int32_t a8000_optical_read_scanner_adc_val(int32_t type, int32_t* adcval) { return err::kmodule_not_support_action; }
virtual int32_t a8000_optical_read_laster_adc_val(int32_t type, int32_t* adcval) { return err::kmodule_not_support_action; }
virtual int32_t a8000_optical_module_power_ctrl(int32_t state) { return err::kcmd_not_support; }
virtual int32_t a8000_optical_open_laser(int32_t type) { return err::kcmd_not_support; }
virtual int32_t a8000_optical_close_laser(int32_t type) { return err::kcmd_not_support; }
virtual int32_t a8000_optical_set_laster_gain(int32_t type, int32_t gain) { return err::kcmd_not_support; }
virtual int32_t a8000_optical_set_scan_amp_gain(int32_t type, int32_t gain) { return err::kcmd_not_support; }
virtual int32_t a8000_optical_read_scanner_adc_val(int32_t type, int32_t* adcval) { return err::kcmd_not_support; }
virtual int32_t a8000_optical_read_laster_adc_val(int32_t type, int32_t* adcval) { return err::kcmd_not_support; }
/**
* @brief
*
@ -41,6 +41,6 @@ class ZIA8000OpticalModule {
* @param adcval
* @return int32_t
*/
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) { return err::kmodule_not_support_action; }
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) { return err::kcmd_not_support; }
};
} // namespace iflytop

14
api/zi_fan_ctrl.hpp

@ -0,0 +1,14 @@
#pragma once
#include <stdint.h>
#include <functional>
#include "apibasic/basic.hpp"
namespace iflytop {
using namespace std;
class ZIFanControler {
public:
virtual int32_t fan_controler_set_speed(int32_t targetTemperature) = 0;
};
} // namespace iflytop

6
api/zi_pipette_ctrl_module.hpp

@ -10,8 +10,8 @@ namespace iflytop {
using namespace std;
class ZIPipetteCtrlModule {
public:
virtual int32_t pipette_ctrl_init_device() { return err::koperation_not_support; };
virtual int32_t pipette_ctrl_put_tip() { return err::koperation_not_support; };
virtual int32_t pipette_ctrl_move_to_ul(int32_t ul) { return err::koperation_not_support; };
virtual int32_t pipette_ctrl_init_device() { return err::kcmd_not_support; };
virtual int32_t pipette_ctrl_put_tip() { return err::kcmd_not_support; };
virtual int32_t pipette_ctrl_move_to_ul(int32_t ul) { return err::kcmd_not_support; };
};
} // namespace iflytop

15
api/zi_water_cooling_temperature_controler.hpp

@ -0,0 +1,15 @@
#pragma once
#include <stdint.h>
#include <functional>
#include "apibasic/basic.hpp"
namespace iflytop {
using namespace std;
class ZI_WaterCoolingTemperatureControler {
public:
virtual int32_t water_cooling_temp_start_hearting(int32_t targetTemperature) = 0;
virtual int32_t water_cooling_temp_stop_hearting() = 0;
};
} // namespace iflytop

14
api/zi_xymotor.hpp

@ -11,12 +11,12 @@ using namespace std;
class ZIXYMotor {
public:
virtual ~ZIXYMotor() {}
virtual int32_t xymotor_enable(int32_t enable) { return err::koperation_not_support; }
virtual int32_t xymotor_move_by(int32_t dx, int32_t dy, int32_t motor_velocity) { return err::koperation_not_support; }
virtual int32_t xymotor_move_to(int32_t x, int32_t y, int32_t motor_velocity) { return err::koperation_not_support; }
virtual int32_t xymotor_move_to_zero() { return err::koperation_not_support; }
virtual int32_t xymotor_move_to_zero_and_calculated_shift() { return err::koperation_not_support; }
virtual int32_t xymotor_read_pos(int32_t *x, int32_t *y) { return err::koperation_not_support; }
virtual int32_t xymotor_calculated_pos_by_move_to_zero() { return err::koperation_not_support; }
virtual int32_t xymotor_enable(int32_t enable) { return err::kcmd_not_support; }
virtual int32_t xymotor_move_by(int32_t dx, int32_t dy, int32_t motor_velocity) { return err::kcmd_not_support; }
virtual int32_t xymotor_move_to(int32_t x, int32_t y, int32_t motor_velocity) { return err::kcmd_not_support; }
virtual int32_t xymotor_move_to_zero() { return err::kcmd_not_support; }
virtual int32_t xymotor_move_to_zero_and_calculated_shift() { return err::kcmd_not_support; }
virtual int32_t xymotor_read_pos(int32_t *x, int32_t *y) { return err::kcmd_not_support; }
virtual int32_t xymotor_calculated_pos_by_move_to_zero() { return err::kcmd_not_support; }
};
} // namespace iflytop
Loading…
Cancel
Save