From 401929fd52d0b2c1f37a962edd8410c753551ab5 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Wed, 24 Jul 2024 11:06:28 +0800 Subject: [PATCH] update --- a8000_protocol | 2 +- sdk/components/mini_servo_motor/feite_servo_motor.cpp | 5 +++-- .../mini_servo_motor/mini_servo_motor_ctrl_module.cpp | 10 ++++++++++ .../mini_servo_motor/mini_servo_motor_ctrl_module.hpp | 2 ++ .../subboard30_shake_module/subboard30_shake_module.cpp | 2 +- 5 files changed, 17 insertions(+), 4 deletions(-) diff --git a/a8000_protocol b/a8000_protocol index ad55d44..5598b81 160000 --- a/a8000_protocol +++ b/a8000_protocol @@ -1 +1 @@ -Subproject commit ad55d4474d5fe39585c788d2f5d73832cf782e94 +Subproject commit 5598b81844f8ca2e8373db46455e35aa6a5ae4f4 diff --git a/sdk/components/mini_servo_motor/feite_servo_motor.cpp b/sdk/components/mini_servo_motor/feite_servo_motor.cpp index 1ef62a3..df701c0 100644 --- a/sdk/components/mini_servo_motor/feite_servo_motor.cpp +++ b/sdk/components/mini_servo_motor/feite_servo_motor.cpp @@ -709,15 +709,16 @@ bool FeiTeServoMotor::read_regs(uint8_t id, uint8_t add, uint8_t* data, uint8_t return false; } memcpy(data, receipt_header->data, len); + osDelay(10); return true; } bool FeiTeServoMotor::tx_and_rx(uint8_t* tx, uint8_t txdatalen, uint8_t* rx, uint8_t expectrxsize, int32_t overtimems) { - for (int i = 0; i < 3; i++) { + for (int i = 0; i < 5; i++) { bool suc = _tx_and_rx(tx, txdatalen, rx, expectrxsize, overtimems); if (suc) { return true; } - osDelay(1); + osDelay(100); } return false; } diff --git a/sdk/components/mini_servo_motor/mini_servo_motor_ctrl_module.cpp b/sdk/components/mini_servo_motor/mini_servo_motor_ctrl_module.cpp index 5895fa8..d7a9e81 100644 --- a/sdk/components/mini_servo_motor/mini_servo_motor_ctrl_module.cpp +++ b/sdk/components/mini_servo_motor/mini_servo_motor_ctrl_module.cpp @@ -33,6 +33,8 @@ int32_t MiniServoCtrlModule::module_xxx_reg(int32_t param_id, bool read, int32_t PROCESS_REG(kreg_mini_servo_limit_velocity, REG_GET(m_cfg.limit_velocity), REG_SET(m_cfg.limit_velocity)); PROCESS_REG(kreg_mini_servo_limit_torque, REG_GET(m_cfg.limit_torque), REG_SET(m_cfg.limit_torque)); PROCESS_REG(kreg_mini_servo_protective_torque, REG_GET(m_cfg.protective_torque), REG_SET(m_cfg.protective_torque)); + PROCESS_REG(kreg_mini_servo_is_move, mini_servo_is_move(&val), ACTION_NONE); + default: return err::kmodule_not_find_reg; break; @@ -195,6 +197,14 @@ int32_t MiniServoCtrlModule::mini_servo_set_cur_pos(int32_t pos) { return 0; } +int32_t MiniServoCtrlModule::mini_servo_is_move(int32_t *isMove) { + bool suc = m_bus->isMove(m_idinbus, isMove); + if (!suc) { + return err::ksubdevice_overtime; + } + return 0; +} + void MiniServoCtrlModule::befor_motor_move() { creg.module_status = 1; creg.module_errorcode = 0; diff --git a/sdk/components/mini_servo_motor/mini_servo_motor_ctrl_module.hpp b/sdk/components/mini_servo_motor/mini_servo_motor_ctrl_module.hpp index a7eb9ce..3c18bdd 100644 --- a/sdk/components/mini_servo_motor/mini_servo_motor_ctrl_module.hpp +++ b/sdk/components/mini_servo_motor/mini_servo_motor_ctrl_module.hpp @@ -60,6 +60,8 @@ class MiniServoCtrlModule : public ZIModule, public ZIMiniServo { void after_motor_move(); bool check_when_run(); + int32_t mini_servo_is_move(int32_t *isMove); + int32_t inter_mini_servo_stop(int32_t breakstop); }; } // namespace iflytop \ No newline at end of file diff --git a/usrc/subboards/subboard30_shake_module/subboard30_shake_module.cpp b/usrc/subboards/subboard30_shake_module/subboard30_shake_module.cpp index a34016f..ca85447 100644 --- a/usrc/subboards/subboard30_shake_module/subboard30_shake_module.cpp +++ b/usrc/subboards/subboard30_shake_module/subboard30_shake_module.cpp @@ -51,7 +51,7 @@ void Subboard30ShakeModule::initialize() { int subid = 5; int subidInBus = 2; - feiteservomotor_bus.regServo(subidInBus, feite::ksts5420m_c001, false); + feiteservomotor_bus.regServo(subidInBus, feite::ksts5420m_c001, true); module.create_default_config(cfg); module.initialize(getmoduleId(subid), &feiteservomotor_bus, subidInBus, &cfg);