|
|
@ -113,6 +113,7 @@ int32_t StepMotorCtrlModule::pri_module_xxx_reg(int32_t param_id, bool read, int |
|
|
|
PROCESS_REG(kreg_step_motor_dzero_pos, REG_GET(m_cfg.motor_dzero), update_dzero(m_cfg.motor_dzero)); |
|
|
|
|
|
|
|
PROCESS_REG(kret_step_motor_pos_devi_tolerance, REG_GET(m_cfg.pos_devi_tolerance), REG_SET(m_cfg.pos_devi_tolerance)); |
|
|
|
PROCESS_REG(kret_step_motor_io_trigger_append_distance, REG_GET(m_cfg.io_trigger_append_distance), REG_SET(m_cfg.io_trigger_append_distance)); |
|
|
|
|
|
|
|
default: |
|
|
|
return err::kmodule_not_find_reg; |
|
|
@ -381,6 +382,14 @@ bool StepMotorCtrlModule::exec_move_to_io_task(int32_t ioindex, int32_t directio |
|
|
|
|
|
|
|
if (!check_when_run()) return false; |
|
|
|
|
|
|
|
//
|
|
|
|
int32_t targetpos = getnowpos() + m_cfg.io_trigger_append_distance; |
|
|
|
if (direction < 0) { |
|
|
|
targetpos = getnowpos() - m_cfg.io_trigger_append_distance; |
|
|
|
} |
|
|
|
moveTo(targetpos, m_cfg.motor_default_velocity); |
|
|
|
waitforstop(nullptr); |
|
|
|
|
|
|
|
if (m_thread.getExitFlag()) { |
|
|
|
ZLOGW(TAG, "break move to zero thread exit"); |
|
|
|
return true; |
|
|
@ -605,10 +614,11 @@ int32_t StepMotorCtrlModule::do_step_motor_easy_move_to_zero() { |
|
|
|
break; |
|
|
|
} |
|
|
|
moveToZeroSuc = true; |
|
|
|
|
|
|
|
} while (false); |
|
|
|
after_motor_move(); |
|
|
|
if (moveToZeroSuc) { |
|
|
|
setnowpos(0 + m_cfg.motor_dzero); |
|
|
|
setnowpos(0 + m_cfg.motor_dzero - m_cfg.io_trigger_append_distance); |
|
|
|
} |
|
|
|
}, |
|
|
|
[this]() { m_stepM1->stop(); }); |
|
|
|