From 64f6eb93f3a9e04bd00fdf1c9667937c6538983d Mon Sep 17 00:00:00 2001 From: zhaohe Date: Sun, 12 Nov 2023 18:55:05 +0800 Subject: [PATCH] update --- .../mini_servo_motor_ctrl_module.cpp | 26 ++++++++++++++++------ .../mini_servo_motor_ctrl_module.hpp | 8 +++---- components/zprotocols/zcancmder_v2 | 2 +- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/components/mini_servo_motor/mini_servo_motor_ctrl_module.cpp b/components/mini_servo_motor/mini_servo_motor_ctrl_module.cpp index 1d38615..f68b8b0 100644 --- a/components/mini_servo_motor/mini_servo_motor_ctrl_module.cpp +++ b/components/mini_servo_motor/mini_servo_motor_ctrl_module.cpp @@ -272,7 +272,7 @@ int32_t MiniRobotCtrlModule::get_basic_param(basic_param_t ¶m) { } void MiniRobotCtrlModule::call_status_cb(action_cb_status_t cb, int32_t status) { - m_last_exec_status = status; + m_com_reg.module_last_cmd_exec_status = status; if (cb) cb(status); } @@ -293,7 +293,7 @@ int32_t MiniRobotCtrlModule::module_break() { return stop(0); } int32_t MiniRobotCtrlModule::module_get_last_exec_status(int32_t *status) { - *status = m_last_exec_status; + *status = m_com_reg.module_last_cmd_exec_status; return 0; } int32_t MiniRobotCtrlModule::module_get_status(int32_t *status) { @@ -305,16 +305,16 @@ int32_t MiniRobotCtrlModule::module_get_error(int32_t *iserror) { * @brief TODO: * Ìí¼Ó¹ýÔØ¼ì²â */ - *iserror = m_errorcode; + *iserror = m_com_reg.module_errorcode; return 0; } int32_t MiniRobotCtrlModule::module_clear_error() { - m_errorcode = 0; + m_com_reg.module_errorcode = 0; return 0; } -int32_t MiniRobotCtrlModule::module_set_reg(int32_t param_id, int32_t param_value) { return err::kmodule_not_find_config_index; } -int32_t MiniRobotCtrlModule::module_get_reg(int32_t param_id, int32_t *param_value) { return err::kmodule_not_find_config_index; } +int32_t MiniRobotCtrlModule::module_set_reg(int32_t param_id, int32_t param_value) { return module_xxx_reg(param_id, false, param_value); } +int32_t MiniRobotCtrlModule::module_get_reg(int32_t param_id, int32_t *param_value) { return module_xxx_reg(param_id, true, *param_value); } int32_t MiniRobotCtrlModule::module_readio(int32_t *io) { *io = 0; return 0; @@ -323,6 +323,18 @@ int32_t MiniRobotCtrlModule::module_read_adc(int32_t adcindex, int32_t *adc) { *adc = 0; return 0; } +int32_t MiniRobotCtrlModule::module_xxx_reg(int32_t param_id, bool read, int32_t &val) { + switch (param_id) { + MODULE_COMMON_PROCESS_REG_CB(); + PROCESS_REG(kreg_module_input_state, module_readio(&val), ACTION_NONE); + PROCESS_REG(kreg_robot_pos, motor_read_pos(&val), ACTION_NONE); + default: + return err::kmodule_not_find_config_index; + break; + } + return 0; +} +int32_t MiniRobotCtrlModule::do_action(int32_t actioncode) { return 0; } /******************************************************************************* * Motor * @@ -338,7 +350,7 @@ int32_t MiniRobotCtrlModule::motor_rotate_with_torque(int32_t direction, int32_t return move_backward(torque); } } -void MiniRobotCtrlModule::set_errorcode(int32_t errorcode) { m_errorcode = errorcode; } +void MiniRobotCtrlModule::set_errorcode(int32_t errorcode) { m_com_reg.module_errorcode = errorcode; } int32_t MiniRobotCtrlModule::getdpos(int32_t targetpos) { int32_t nowpos = 0; diff --git a/components/mini_servo_motor/mini_servo_motor_ctrl_module.hpp b/components/mini_servo_motor/mini_servo_motor_ctrl_module.hpp index 45bb932..2de4d0e 100644 --- a/components/mini_servo_motor/mini_servo_motor_ctrl_module.hpp +++ b/components/mini_servo_motor/mini_servo_motor_ctrl_module.hpp @@ -8,16 +8,14 @@ namespace iflytop { class MiniRobotCtrlModule : public I_MiniServoModule, public ZIModule, public ZIMotor { + ENABLE_MODULE(StepMotorCtrlModule, kmini_servo_motor_module, 0x0001); + FeiTeServoMotor *m_bus; uint8_t m_id; uint16_t m_module_id; ZThread m_thread; s32 m_pos_shift; - s32 m_last_exec_status = 0; - - int32_t m_errorcode = 0; - public: void initialize(uint16_t module_id, FeiTeServoMotor *bus, uint8_t idinbus); @@ -86,5 +84,7 @@ class MiniRobotCtrlModule : public I_MiniServoModule, public ZIModule, public ZI void call_status_cb(action_cb_status_t cb, int32_t status); void set_errorcode(int32_t errorcode); int32_t getdpos(int32_t targetpos); + int32_t module_xxx_reg(int32_t param_id, bool read, int32_t &val); + int32_t do_action(int32_t actioncode); }; } // namespace iflytop \ No newline at end of file diff --git a/components/zprotocols/zcancmder_v2 b/components/zprotocols/zcancmder_v2 index 5abdb1d..9265a6c 160000 --- a/components/zprotocols/zcancmder_v2 +++ b/components/zprotocols/zcancmder_v2 @@ -1 +1 @@ -Subproject commit 5abdb1de50d15b2c6fc811da71cab6654b497e64 +Subproject commit 9265a6c2718afb6ab8c4877a729e73c6d05416ed