Browse Source

update

master
zhaohe 1 year ago
parent
commit
0916e80da6
  1. 2
      a8000_protocol
  2. 12
      sdk/components/step_motor_ctrl_module/step_motor_ctrl_module.cpp
  3. 1
      sdk/components/step_motor_ctrl_module/step_motor_ctrl_module.hpp

2
a8000_protocol

@ -1 +1 @@
Subproject commit 826f05973b88e7f311373d9f7d1ce74a2554512f
Subproject commit f27f273732bc2e98dbee3ff88897c1db054ae10d

12
sdk/components/step_motor_ctrl_module/step_motor_ctrl_module.cpp

@ -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(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_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: default:
return err::kmodule_not_find_reg; 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; 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()) { if (m_thread.getExitFlag()) {
ZLOGW(TAG, "break move to zero thread exit"); ZLOGW(TAG, "break move to zero thread exit");
return true; return true;
@ -605,10 +614,11 @@ int32_t StepMotorCtrlModule::do_step_motor_easy_move_to_zero() {
break; break;
} }
moveToZeroSuc = true; moveToZeroSuc = true;
} while (false); } while (false);
after_motor_move(); after_motor_move();
if (moveToZeroSuc) { if (moveToZeroSuc) {
setnowpos(0 + m_cfg.motor_dzero);
setnowpos(0 + m_cfg.motor_dzero - m_cfg.io_trigger_append_distance);
} }
}, },
[this]() { m_stepM1->stop(); }); [this]() { m_stepM1->stop(); });

1
sdk/components/step_motor_ctrl_module/step_motor_ctrl_module.hpp

@ -34,6 +34,7 @@ class StepMotorCtrlModule : public ZIModule, public ZIStepMotor {
int32_t motor_enable_enc; int32_t motor_enable_enc;
int32_t motor_dzero; // 零点偏移 int32_t motor_dzero; // 零点偏移
int32_t pos_devi_tolerance; int32_t pos_devi_tolerance;
int32_t io_trigger_append_distance;
} config_t; } config_t;
typedef struct { typedef struct {

Loading…
Cancel
Save