From a4600dcdc2561fc58ddf81d333c97f67448bf387 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Sun, 2 Jun 2024 23:24:36 +0800 Subject: [PATCH] update --- api/api.hpp | 4 ++- api/apibasic/cmdid.hpp | 57 +++++++++++++++++++++++++------------- api/apibasic/errorcode.hpp | 1 + api/apibasic/module_type_index.hpp | 2 +- api/apibasic/reg_index.hpp | 14 +++++----- api/zi_board.hpp | 16 +++++++++++ 6 files changed, 66 insertions(+), 28 deletions(-) create mode 100644 api/zi_board.hpp diff --git a/api/api.hpp b/api/api.hpp index 471fcf0..c99ddf5 100644 --- a/api/api.hpp +++ b/api/api.hpp @@ -15,4 +15,6 @@ // #include "zi_pipette_ctrl_module.hpp" // -#include "zi_mini_servo.hpp" \ No newline at end of file +#include "zi_mini_servo.hpp" +// +#include "zi_board.hpp" \ No newline at end of file diff --git a/api/apibasic/cmdid.hpp b/api/apibasic/cmdid.hpp index ce44510..cc2a40c 100644 --- a/api/apibasic/cmdid.hpp +++ b/api/apibasic/cmdid.hpp @@ -2,6 +2,8 @@ #define CMDID(cmdid, cmdSubId) ((cmdid << 8) + cmdSubId) +#define NEW_CMDID(cmdid, cmdSubId) ((cmdid * 100) + cmdSubId) + namespace iflytop { namespace zcr { typedef enum { @@ -46,32 +48,49 @@ typedef enum { ka8000_optical_read_laster_adc_val = CMDID(6, 6), // para:{4}, ack:{4} ka8000_optical_scan_current_point_amp_adc_val = CMDID(6, 7), // para:{4,4,4,4}, ack:{4,4} + + + /*********************************************************************************************************************************************** + * NEW * + * NEW * + * NEW * + * NEW * + * NEW * + ***********************************************************************************************************************************************/ + + /*********************************************************************************************************************** * STEP_MOTOR * ***********************************************************************************************************************/ - kstep_motor_enable = CMDID(10, 1), // para:{1}, ack:{} - kstep_motor_read_pos = CMDID(10, 2), // para:{}, ack:{4} - kstep_motor_easy_rotate = CMDID(10, 3), // para:{4}, ack:{} - kstep_motor_easy_move_by = CMDID(10, 4), // para:{4}, ack:{} - kstep_motor_easy_move_to = CMDID(10, 5), // para:{4}, ack:{} - kstep_motor_easy_move_to_zero = CMDID(10, 6), // para:{1}, ack:{} - kstep_motor_easy_set_current_pos = CMDID(10, 7), // para:{4}, ack:{} - kstep_motor_easy_move_to_io = CMDID(10, 8), // para:{4,4}, ack:{} - kstep_motor_active_cfg = CMDID(10, 9), // para:{4,4}, ack:{} - kstep_motor_stop = CMDID(10, 10), // para:{4}, ack:{} - kstep_motor_read_io_state = CMDID(10, 11), // para:{4}, ack:{} + kstep_motor_enable = NEW_CMDID(101, 1), // para:{1}, ack:{} + kstep_motor_read_pos = NEW_CMDID(101, 2), // para:{}, ack:{4} + kstep_motor_easy_rotate = NEW_CMDID(101, 3), // para:{4}, ack:{} + kstep_motor_easy_move_by = NEW_CMDID(101, 4), // para:{4}, ack:{} + kstep_motor_easy_move_to = NEW_CMDID(101, 5), // para:{4}, ack:{} + kstep_motor_easy_move_to_zero = NEW_CMDID(101, 6), // para:{1}, ack:{} + kstep_motor_easy_set_current_pos = NEW_CMDID(101, 7), // para:{4}, ack:{} + kstep_motor_easy_move_to_io = NEW_CMDID(101, 8), // para:{4,4}, ack:{} + kstep_motor_active_cfg = NEW_CMDID(101, 9), // para:{4,4}, ack:{} + kstep_motor_stop = NEW_CMDID(101, 10), // para:{4}, ack:{} + kstep_motor_read_io_state = NEW_CMDID(101, 11), // para:{4}, ack:{} /*********************************************************************************************************************** * MINI_SERVO * ***********************************************************************************************************************/ - kmini_servo_enable = CMDID(11, 1), - kmini_servo_read_pos = CMDID(11, 2), - kmini_servo_active_cfg = CMDID(11, 3), - kmini_servo_stop = CMDID(11, 4), - kmini_servo_rotate = CMDID(11, 5), - kmini_servo_move_to = CMDID(11, 6), - kmini_servo_set_mid_point = CMDID(11, 7), - kmini_servo_read_io_state = CMDID(11, 8), + kmini_servo_enable = NEW_CMDID(102, 1), + kmini_servo_read_pos = NEW_CMDID(102, 2), + kmini_servo_active_cfg = NEW_CMDID(102, 3), + kmini_servo_stop = NEW_CMDID(102, 4), + kmini_servo_rotate = NEW_CMDID(102, 5), + kmini_servo_move_to = NEW_CMDID(102, 6), + kmini_servo_set_mid_point = NEW_CMDID(102, 7), + kmini_servo_read_io_state = NEW_CMDID(102, 8), + + /*********************************************************************************************************************** + * BOARD * + ***********************************************************************************************************************/ + kboard_read_io = NEW_CMDID(103, 1), // para:{}, ack:{4} + kboard_write_io = NEW_CMDID(103, 2), // para:{}, ack:{4} } cmdid_t; diff --git a/api/apibasic/errorcode.hpp b/api/apibasic/errorcode.hpp index f4fd5e5..f7458b4 100644 --- a/api/apibasic/errorcode.hpp +++ b/api/apibasic/errorcode.hpp @@ -54,6 +54,7 @@ typedef enum { 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 diff --git a/api/apibasic/module_type_index.hpp b/api/apibasic/module_type_index.hpp index 8e72e94..083b8bf 100644 --- a/api/apibasic/module_type_index.hpp +++ b/api/apibasic/module_type_index.hpp @@ -15,6 +15,6 @@ typedef enum { ktmc_step_motor = 10, // 步进电机 kmini_servo_motor_module = 11, // 舵机 - + kboard = 12, // 舵机 } module_type_t; } \ No newline at end of file diff --git a/api/apibasic/reg_index.hpp b/api/apibasic/reg_index.hpp index c6d6463..5ed4f70 100644 --- a/api/apibasic/reg_index.hpp +++ b/api/apibasic/reg_index.hpp @@ -13,9 +13,6 @@ typedef enum { kreg_module_type = REG_INDEX(0, 0, 1), // 模块类型 kreg_module_status = REG_INDEX(0, 0, 2), // 0idle,1busy,2error kreg_module_errorcode = REG_INDEX(0, 0, 3), // inited_flag - // kreg_module_raw_sector_size = REG_INDEX(0, 0, 10), // sector_size - // kreg_module_raw_sector_num = REG_INDEX(0, 0, 11), // - /******************************************************************************* * SENSOR * *******************************************************************************/ @@ -183,11 +180,14 @@ typedef enum { * MINI_STEP_MOTOR * ***********************************************************************************************************************/ - kreg_mini_servo_pos = REG_INDEX(101, 0, 1), // 位置 - kreg_mini_servo_limit_velocity = REG_INDEX(101, 50, 1), // 限制速度 - kreg_mini_servo_limit_torque = REG_INDEX(101, 50, 2), // 限制扭矩 - kreg_mini_servo_protective_torque = REG_INDEX(101, 50, 3), // 保护扭矩 + kreg_mini_servo_pos = REG_INDEX(102, 0, 1), // 位置 + kreg_mini_servo_limit_velocity = REG_INDEX(102, 50, 1), // 限制速度 + kreg_mini_servo_limit_torque = REG_INDEX(102, 50, 2), // 限制扭矩 + kreg_mini_servo_protective_torque = REG_INDEX(102, 50, 3), // 保护扭矩 + /*********************************************************************************************************************** + * BOARD * + ***********************************************************************************************************************/ } reg_index_t; } // namespace iflytop diff --git a/api/zi_board.hpp b/api/zi_board.hpp new file mode 100644 index 0000000..ed210ef --- /dev/null +++ b/api/zi_board.hpp @@ -0,0 +1,16 @@ +#pragma once +#include + +#include + +#include "apibasic/basic.hpp" + +namespace iflytop { +using namespace std; +class ZIBoard { + public: + virtual ~ZIBoard() {} + virtual int32_t board_read_io(int32_t ioindex, int32_t *val) = 0; + virtual int32_t board_write_io(int32_t ioindex, int32_t val) = 0; +}; +} // namespace iflytop \ No newline at end of file