From e490e0f8a7d19de641eac029f6d7bdac91e9cfcf Mon Sep 17 00:00:00 2001 From: zhaohe Date: Mon, 29 Jul 2024 17:41:59 +0800 Subject: [PATCH] V521 --- a8000_protocol | 2 +- .../mini_servo_motor/mini_servo_motor_ctrl_module.cpp | 4 ++-- .../step_motor_ctrl_module/step_motor_ctrl_module.cpp | 1 + sdk/components/xy_robot_ctrl_module/xy_robot_ctrl_module.cpp | 8 +++++--- sdk/components/xy_robot_ctrl_module/xy_robot_ctrl_module.hpp | 4 ++-- usrc/project_configs.h | 2 +- usrc/public_service/ext_board_impl.cpp | 10 ++++++++-- usrc/public_service/ext_board_impl.hpp | 2 ++ 8 files changed, 22 insertions(+), 11 deletions(-) diff --git a/a8000_protocol b/a8000_protocol index ae58e9e..9ece9bf 160000 --- a/a8000_protocol +++ b/a8000_protocol @@ -1 +1 @@ -Subproject commit ae58e9ee275d6abdaa78ba2f519d1d87b6e2bf3c +Subproject commit 9ece9bfe4e730bd668cdd6c4da0a3071de7ede14 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 4d1f207..778de15 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 @@ -28,7 +28,7 @@ int32_t MiniServoCtrlModule::getid(int32_t *id) { } int32_t MiniServoCtrlModule::module_xxx_reg(int32_t param_id, bool read, int32_t &val) { switch (param_id) { - MODULE_COMMON_PROCESS_REG_CB(); + PROCESS_REG(kreg_mini_servo_is_enable, REG_GET(m_state.enable), ACTION_NONE); PROCESS_REG(kreg_mini_servo_pos, mini_servo_read_pos(&val), ACTION_NONE); 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)); @@ -212,7 +212,7 @@ void MiniServoCtrlModule::befor_motor_move() { void MiniServoCtrlModule::after_motor_move() { if (creg.module_errorcode != 0) { creg.module_status = 2; - }else { + } else { creg.module_status = 0; } } diff --git a/sdk/components/step_motor_ctrl_module/step_motor_ctrl_module.cpp b/sdk/components/step_motor_ctrl_module/step_motor_ctrl_module.cpp index 1d3fd68..90a4eb9 100644 --- a/sdk/components/step_motor_ctrl_module/step_motor_ctrl_module.cpp +++ b/sdk/components/step_motor_ctrl_module/step_motor_ctrl_module.cpp @@ -85,6 +85,7 @@ int32_t StepMotorCtrlModule::pri_module_xxx_reg(int32_t param_id, bool read, int switch (param_id) { MODULE_COMMON_PROCESS_REG_CB(); PROCESS_REG(kreg_step_motor_pos, getnowpos(val), ACTION_NONE); + PROCESS_REG(kreg_step_motor_is_enable, REG_GET(m_state.enable), ACTION_NONE); PROCESS_REG(kreg_step_motor_dpos, REG_GET(m_state.dpos), ACTION_NONE); PROCESS_REG(kreg_step_motor_shaft, REG_GET(m_cfg.motor_shaft), REG_SET(m_cfg.motor_shaft)); diff --git a/sdk/components/xy_robot_ctrl_module/xy_robot_ctrl_module.cpp b/sdk/components/xy_robot_ctrl_module/xy_robot_ctrl_module.cpp index c6d2a9f..659e2d4 100644 --- a/sdk/components/xy_robot_ctrl_module/xy_robot_ctrl_module.cpp +++ b/sdk/components/xy_robot_ctrl_module/xy_robot_ctrl_module.cpp @@ -51,11 +51,11 @@ int32_t XYRobotCtrlModule::xymotor_enable(int32_t enable) { ZLOGI(TAG, "enable:%d", enable); m_stepM1->enable(enable); m_stepM2->enable(enable); - m_state.enable = enable; + m_state.is_enable = enable; return 0; } int32_t XYRobotCtrlModule::do_public_check() { - if (!m_state.enable) { + if (!m_state.is_enable) { return err::kxymotor_not_enable; } return 0; @@ -92,7 +92,7 @@ int32_t XYRobotCtrlModule::module_active_cfg() { m_stepM2->set_tzerowait(m_cfg.tzerowait); m_stepM2->set_enc_resolution(m_cfg.enc_resolution); - if (m_state.enable) { + if (m_state.is_enable) { m_stepM1->enable(true); m_stepM2->enable(true); } @@ -151,6 +151,7 @@ int32_t XYRobotCtrlModule::xymotor_read_pos(int32_t* x, int32_t* y) { } #define UPDATE_CFG(key) PROCESS_REG(kreg_xyrobot_##key, REG_GET(m_cfg.key), REG_SET(m_cfg.key)) +#define READ_STATE(key) PROCESS_REG(kreg_xyrobot_##key, REG_GET(m_state.key),ACTION_NONE) int32_t XYRobotCtrlModule::module_xxx_reg(int32_t param_id, bool read, int32_t& val) { int32_t ret = __module_xxx_reg(param_id, read, val); if (ret != 0) { @@ -196,6 +197,7 @@ int32_t XYRobotCtrlModule::__module_xxx_reg(int32_t param_id, bool read, int32_t UPDATE_CFG(pos_devi_tolerance); UPDATE_CFG(io_trigger_append_distance); + READ_STATE(is_enable); default: return err::kmodule_not_find_reg; break; diff --git a/sdk/components/xy_robot_ctrl_module/xy_robot_ctrl_module.hpp b/sdk/components/xy_robot_ctrl_module/xy_robot_ctrl_module.hpp index d276527..89195f8 100644 --- a/sdk/components/xy_robot_ctrl_module/xy_robot_ctrl_module.hpp +++ b/sdk/components/xy_robot_ctrl_module/xy_robot_ctrl_module.hpp @@ -57,7 +57,7 @@ class XYRobotCtrlModule : public ZIXYMotor, public ZIModule { int32_t before_x; int32_t before_y; - bool enable; + int32_t is_enable; int32_t hassync; } state_t; @@ -109,7 +109,7 @@ class XYRobotCtrlModule : public ZIXYMotor, public ZIModule { virtual int32_t xymotor_read_enc_direct(int32_t* enc1, int32_t* enc2) override; public: - virtual int32_t waiting_for_stop(function condition_fn,bool checkWhenLoop, int32_t delay); + virtual int32_t waiting_for_stop(function condition_fn, bool checkWhenLoop, int32_t delay); private: int32_t do_public_check(); diff --git a/usrc/project_configs.h b/usrc/project_configs.h index af00fc5..725cfd5 100644 --- a/usrc/project_configs.h +++ b/usrc/project_configs.h @@ -1,5 +1,5 @@ #pragma once -#define PC_VERSION 520 +#define PC_VERSION 521 #define PC_MANUFACTURER "http://www.iflytop.com/" #define PC_PROJECT_NAME "a8000_subboard" #define PC_IFLYTOP_ENABLE_OS 1 diff --git a/usrc/public_service/ext_board_impl.cpp b/usrc/public_service/ext_board_impl.cpp index 083072b..89097ba 100644 --- a/usrc/public_service/ext_board_impl.cpp +++ b/usrc/public_service/ext_board_impl.cpp @@ -12,7 +12,14 @@ int32_t ExtBoardImpl::getid(int32_t *id) { *id = getmoduleId(0); return 0; } -int32_t ExtBoardImpl::module_xxx_reg(int32_t param_id, bool read, int32_t &val) { return err::kmodule_not_find_reg; } +int32_t ExtBoardImpl::module_xxx_reg(int32_t param_id, bool read, int32_t &val) { + switch (param_id) { + PROCESS_REG(kreg_extboard_resetflag, REG_GET(resetflag), REG_SET(resetflag)); + default: + return err::kmodule_not_find_reg; + } + return 0; +} int32_t ExtBoardImpl::extboard_read_inio(int32_t ioindex, int32_t *val) { if (ioindex < 0 || ioindex >= ZARRAY_SIZE(IO)) return err::kparam_out_of_range; *val = IO[ioindex].getState(); @@ -34,7 +41,6 @@ int32_t ExtBoardImpl::extboard_read_inio_index_in_stm32(int32_t ioindex, int32_t return 0; } - int32_t ExtBoardImpl::kextboard_write_outio(int32_t ioindex, int32_t val) { if (ioindex < 0 || ioindex >= ZARRAY_SIZE(IO)) return err::kparam_out_of_range; OutputIO[ioindex].setState(val); diff --git a/usrc/public_service/ext_board_impl.hpp b/usrc/public_service/ext_board_impl.hpp index ea7cfa9..4734d05 100644 --- a/usrc/public_service/ext_board_impl.hpp +++ b/usrc/public_service/ext_board_impl.hpp @@ -19,6 +19,8 @@ class ExtBoardImpl : public ZIBoard, public ZIModule { ZGPIO IO[EXT_READ_IO_NUM]; ZGPIO OutputIO[EXT_WRITE_IO_NUM]; + int32_t resetflag = 1; + public: ExtBoardImpl(/* args */); ~ExtBoardImpl();