From ea1fb6d3e263feffbbaf0d6fb69c482cc4d6d9bc Mon Sep 17 00:00:00 2001 From: zhaohe Date: Fri, 13 Oct 2023 14:51:57 +0800 Subject: [PATCH] update --- api/i_mini_servo_module.hpp | 73 ++++++++++++--------------------------------- zcancmder_protocol.hpp | 8 ++--- 2 files changed, 23 insertions(+), 58 deletions(-) diff --git a/api/i_mini_servo_module.hpp b/api/i_mini_servo_module.hpp index 9267984..a06cd10 100644 --- a/api/i_mini_servo_module.hpp +++ b/api/i_mini_servo_module.hpp @@ -12,32 +12,6 @@ class I_MiniServoModule { public: typedef enum { kNormalStop, kBreakStop } StopType_t; #pragma pack(1) -#if 0 - typedef struct { - s32 exec_status; - s32 has_run_time; - } rotate_cb_status_t; - - typedef struct { - s32 exec_status; - s32 pos; - } move_to_cb_status_t; - - typedef struct { - s32 exec_status; - s32 dpos; - } move_by_cb_status_t; - - typedef struct { - s32 exec_status; - s32 has_run_time; - } run_with_torque_cb_status_t; - - typedef struct { - s32 exec_status; - s32 pos; - } move_by_nolimit_cb_status_t; -#endif /******************************************************************************* * READ * @@ -47,16 +21,16 @@ class I_MiniServoModule { } version_t; typedef struct { - uint8_t status; // 0:normal 1:运行中 2:offline 3:故障 - uint8_t io_state; // - int16_t torque; // - int16_t speed; // - int16_t pos; // + uint8_t status; // 0:normal 1:运行中 2:offline 3:故障 + uint8_t ioState; // + int16_t torque; // + int16_t speed; // + int16_t pos; // } status_t; typedef struct { uint8_t status; - uint8_t io_state; + uint8_t ioState; int16_t torque; int16_t speed; int16_t pos; @@ -64,7 +38,6 @@ class I_MiniServoModule { int16_t current; int16_t temperature; int16_t error_flag; - } detailed_status_t; /******************************************************************************* @@ -72,23 +45,16 @@ class I_MiniServoModule { *******************************************************************************/ typedef struct { - s16 pos_calibrate; + u16 posCalibrate; + u16 minlimit; + u16 maxlimit; + u16 maxtemp; + u16 minvoltage; + u16 maxvoltage; + u16 protectCurrent; + u16 protectTorque; } basic_param_t; - typedef struct { - s16 minlimit; - s16 maxlimit; - } run_param_t; - - typedef struct { - s16 mintemp; - s16 maxtemp; - s16 minvoltage; - s16 maxvoltage; - s16 mincurrent; - s16 maxcurrent; - } warning_limit_param_t; - #pragma pack() public: @@ -102,17 +68,16 @@ class I_MiniServoModule { virtual int32_t run_with_torque(s32 torque, s32 run_time, action_cb_status_t status_cb) = 0; virtual int32_t move_by_nolimit(s32 pos, s32 speed, s32 torque, action_cb_status_t status_cb) = 0; + virtual int32_t move_forward(s32 torque) = 0; + virtual int32_t move_backward(s32 torque) = 0; + virtual int32_t read_version(version_t& version) = 0; virtual int32_t read_status(status_t& status) = 0; virtual int32_t read_detailed_status(detailed_status_t& debug_info) = 0; - virtual int32_t set_run_param(run_param_t& param) = 0; - virtual int32_t set_basic_param(basic_param_t& param) = 0; - virtual int32_t set_warning_limit_param(warning_limit_param_t& param) = 0; + virtual int32_t set_basic_param(basic_param_t& param) = 0; - virtual int32_t get_run_param(run_param_t& param) = 0; - virtual int32_t get_basic_param(basic_param_t& param) = 0; - virtual int32_t get_warning_limit_param(warning_limit_param_t& param) = 0; + virtual int32_t get_basic_param(basic_param_t& param) = 0; virtual ~I_MiniServoModule() {} }; diff --git a/zcancmder_protocol.hpp b/zcancmder_protocol.hpp index b5ecbe7..23836f6 100644 --- a/zcancmder_protocol.hpp +++ b/zcancmder_protocol.hpp @@ -269,13 +269,13 @@ ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_read_version, CMD(u16 id;), ACK(I_MiniServo ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_read_status, CMD(u16 id;), ACK(I_MiniServoModule::status_t ack;)); ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_read_detailed_status, CMD(u16 id;), ACK(I_MiniServoModule::detailed_status_t ack;)); -ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_set_run_param, CMD(u16 id; u8 opt_type; I_MiniServoModule::run_param_t param;), ACK(I_MiniServoModule::run_param_t ack;)); + ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_set_basic_param, CMD(u16 id; u8 opt_type; I_MiniServoModule::basic_param_t param;), ACK(I_MiniServoModule::basic_param_t ack;)); -ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_set_warning_limit_param, CMD(u16 id; u8 opt_type; I_MiniServoModule::warning_limit_param_t param;), ACK(I_MiniServoModule::warning_limit_param_t ack;)); -ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_get_run_param, CMD(u16 id; u8 opt_type;), ACK(I_MiniServoModule::run_param_t ack;)); + + ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_get_basic_param, CMD(u16 id; u8 opt_type;), ACK(I_MiniServoModule::basic_param_t ack;)); -ZPACKET_CMD_ACK(kcmd_mini_servo_ctrl_get_warning_limit_param, CMD(u16 id; u8 opt_type;), ACK(I_MiniServoModule::warning_limit_param_t ack;)); + /******************************************************************************* * |Module_1009:EEPROM *