From ba9d9901d640255796df949d24351064c1994bc8 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Sat, 8 Jun 2024 15:41:08 +0800 Subject: [PATCH] update --- api/api.hpp | 6 +- api/apibasic/cmdid.cpp | 4 + api/apibasic/cmdid.hpp | 11 +++ api/apibasic/errorcode.cpp | 40 +-------- api/apibasic/errorcode.hpp | 112 +++++++++---------------- api/apibasic/reg_index.cpp | 20 ----- api/apibasic/reg_index.hpp | 27 ------ api/zi_a8000_optical_module.hpp | 16 ++-- api/zi_fan_ctrl.hpp | 14 ++++ api/zi_pipette_ctrl_module.hpp | 6 +- api/zi_water_cooling_temperature_controler.hpp | 15 ++++ api/zi_xymotor.hpp | 14 ++-- 12 files changed, 110 insertions(+), 175 deletions(-) create mode 100644 api/zi_fan_ctrl.hpp create mode 100644 api/zi_water_cooling_temperature_controler.hpp diff --git a/api/api.hpp b/api/api.hpp index 0657174..896a476 100644 --- a/api/api.hpp +++ b/api/api.hpp @@ -19,4 +19,8 @@ // #include "zi_board.hpp" // -#include "zi_code_scaner.hpp" \ No newline at end of file +#include "zi_code_scaner.hpp" +// +#include "zi_fan_ctrl.hpp" +// +#include "zi_water_cooling_temperature_controler.hpp" \ No newline at end of file diff --git a/api/apibasic/cmdid.cpp b/api/apibasic/cmdid.cpp index 3cd5943..12496d1 100644 --- a/api/apibasic/cmdid.cpp +++ b/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) { diff --git a/api/apibasic/cmdid.hpp b/api/apibasic/cmdid.hpp index 0841777..c4994ee 100644 --- a/api/apibasic/cmdid.hpp +++ b/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 { diff --git a/api/apibasic/errorcode.cpp b/api/apibasic/errorcode.cpp index b258173..5f08ec7 100644 --- a/api/apibasic/errorcode.cpp +++ b/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) { diff --git a/api/apibasic/errorcode.hpp b/api/apibasic/errorcode.hpp index 0d3691d..b3f4e55 100644 --- a/api/apibasic/errorcode.hpp +++ b/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 { diff --git a/api/apibasic/reg_index.cpp b/api/apibasic/reg_index.cpp index 3aaf6a3..ffc60a2 100644 --- a/api/apibasic/reg_index.cpp +++ b/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), diff --git a/api/apibasic/reg_index.hpp b/api/apibasic/reg_index.hpp index 95cf5b8..c738a69 100644 --- a/api/apibasic/reg_index.hpp +++ b/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), // 移液枪位置 diff --git a/api/zi_a8000_optical_module.hpp b/api/zi_a8000_optical_module.hpp index eb425b6..dadea97 100644 --- a/api/zi_a8000_optical_module.hpp +++ b/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 diff --git a/api/zi_fan_ctrl.hpp b/api/zi_fan_ctrl.hpp new file mode 100644 index 0000000..6caf03a --- /dev/null +++ b/api/zi_fan_ctrl.hpp @@ -0,0 +1,14 @@ +#pragma once +#include + +#include + +#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 \ No newline at end of file diff --git a/api/zi_pipette_ctrl_module.hpp b/api/zi_pipette_ctrl_module.hpp index 3a39ca7..6d5600a 100644 --- a/api/zi_pipette_ctrl_module.hpp +++ b/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 \ No newline at end of file diff --git a/api/zi_water_cooling_temperature_controler.hpp b/api/zi_water_cooling_temperature_controler.hpp new file mode 100644 index 0000000..ae5f7ee --- /dev/null +++ b/api/zi_water_cooling_temperature_controler.hpp @@ -0,0 +1,15 @@ +#pragma once +#include + +#include + +#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 \ No newline at end of file diff --git a/api/zi_xymotor.hpp b/api/zi_xymotor.hpp index c0341ef..d5962f4 100644 --- a/api/zi_xymotor.hpp +++ b/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 \ No newline at end of file