diff --git a/a8000_protocol b/a8000_protocol index 9ec492b..644059e 160000 --- a/a8000_protocol +++ b/a8000_protocol @@ -1 +1 @@ -Subproject commit 9ec492b5981174c6cc2db3dbfeeb6e9c68bc0a42 +Subproject commit 644059e79fd881d2a6c0d2f9b6ddc1098d9fabe4 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 99e2432..1508db2 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 @@ -98,6 +98,7 @@ int32_t StepMotorCtrlModule::pri_module_xxx_reg(int32_t param_id, bool read, int 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_has_move_zero, REG_GET(m_state.has_move_to_zero), ACTION_NONE); + PROCESS_REG(kreg_step_motor_lost_step, REG_GET(m_state.lost_step), 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)); @@ -253,6 +254,7 @@ void StepMotorCtrlModule::befor_motor_move() { // getnowpos(m_state.before_move_pos); creg.module_status = 1; creg.module_errorcode = 0; + m_state.lost_step = 0; m_stepM1->enable(1); } void StepMotorCtrlModule::after_motor_move() { @@ -295,7 +297,7 @@ bool StepMotorCtrlModule::check_when_run() { vPortExitCritical(); int32_t dm1 = abs(m1enc - m1pos); - + m_state.lost_step = dm1; if (m_cfg.pos_devi_tolerance != 0) { if (dm1 > m_cfg.pos_devi_tolerance) { ZLOGE(TAG, "motor pos devi %d", dm1); @@ -704,8 +706,9 @@ int32_t StepMotorCtrlModule::do_step_motor_easy_move_to_io(int32_t ioindex, int3 int32_t StepMotorCtrlModule::do_step_motor_easy_move_to_end_point() { return do_step_motor_easy_move_to_io(1, 1); } void StepMotorCtrlModule::checkdpos(int32_t expect_dpos) { - int32_t dpos = getnowpos() - m_state.before_move_pos; - if (m_cfg.pos_devi_tolerance != 0 && (abs(expect_dpos - dpos) > m_cfg.pos_devi_tolerance)) { + int32_t dpos = getnowpos() - m_state.before_move_pos; + m_state.lost_step = expect_dpos - dpos; + if (m_cfg.pos_devi_tolerance != 0 && (abs(m_state.lost_step) > m_cfg.pos_devi_tolerance)) { ZLOGE(TAG, "check pos devi tolerance fail.... dpos%d,expectation_dpos:%d", dpos, expect_dpos); setErrorFlag(err::kstep_motor_lost_step); } else { diff --git a/sdk/components/step_motor_ctrl_module/step_motor_ctrl_module.hpp b/sdk/components/step_motor_ctrl_module/step_motor_ctrl_module.hpp index 0bd57c2..54d73b1 100644 --- a/sdk/components/step_motor_ctrl_module/step_motor_ctrl_module.hpp +++ b/sdk/components/step_motor_ctrl_module/step_motor_ctrl_module.hpp @@ -44,6 +44,7 @@ class StepMotorCtrlModule : public ZIModule { int32_t dpos; int32_t after_move_pos; int32_t before_move_pos; + int32_t lost_step; int32_t enable; int32_t debugmode; int32_t has_move_to_zero; diff --git a/usrc/version.h b/usrc/version.h index 3774596..5cdd200 100644 --- a/usrc/version.h +++ b/usrc/version.h @@ -1,2 +1,2 @@ #pragma once -#define PC_VERSION 1011 +#define PC_VERSION 1012