|
|
@ -45,6 +45,29 @@ void StepMotorCtrlModule::create_default_cfg(config_t& cfg) { |
|
|
|
* EXT * |
|
|
|
***********************************************************************************************************************/ |
|
|
|
int32_t StepMotorCtrlModule::module_xxx_reg(int32_t param_id, bool read, int32_t& val) { |
|
|
|
int32_t suc = pri_module_xxx_reg(param_id, read, val); |
|
|
|
if (suc != 0) return suc; |
|
|
|
switch (param_id) { |
|
|
|
case kreg_step_motor_shaft: |
|
|
|
case kreg_step_motor_one_circle_pulse: |
|
|
|
case kreg_step_motor_one_circle_pulse_denominator: |
|
|
|
case kreg_step_motor_default_velocity: |
|
|
|
case kreg_step_motor_default_acc: |
|
|
|
case kreg_step_motor_default_dec: |
|
|
|
case kreg_step_motor_run_to_zero_speed: |
|
|
|
case kreg_step_motor_run_to_zero_dec: |
|
|
|
case kreg_step_motor_look_zero_edge_speed: |
|
|
|
case kreg_step_motor_look_zero_edge_dec: |
|
|
|
case kreg_step_motor_ihold: |
|
|
|
case kreg_step_motor_irun: |
|
|
|
case kreg_step_motor_iholddelay: |
|
|
|
case kreg_step_motor_max_d: |
|
|
|
case kreg_step_motor_min_d: |
|
|
|
step_motor_active_cfg(); |
|
|
|
} |
|
|
|
return suc; |
|
|
|
} |
|
|
|
int32_t StepMotorCtrlModule::pri_module_xxx_reg(int32_t param_id, bool read, int32_t& val) { |
|
|
|
switch (param_id) { |
|
|
|
MODULE_COMMON_PROCESS_REG_CB(); |
|
|
|
PROCESS_REG(kreg_step_motor_pos, inter_get_pos(val), ACTION_NONE); |
|
|
@ -71,6 +94,7 @@ int32_t StepMotorCtrlModule::module_xxx_reg(int32_t param_id, bool read, int32_t |
|
|
|
} |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
int32_t StepMotorCtrlModule::step_motor_enable(int32_t enable) { |
|
|
|
ZLOGI(TAG, "m%d motor_enable %ld", m_id, enable); |
|
|
|
m_stepM1->enable(enable); |
|
|
@ -215,11 +239,16 @@ int32_t StepMotorCtrlModule::step_motor_easy_set_current_pos(int32_t pos) { |
|
|
|
} |
|
|
|
|
|
|
|
int32_t StepMotorCtrlModule::step_motor_active_cfg() { |
|
|
|
ZLOGI(TAG, "m%d motor_active_cfg", m_id); |
|
|
|
m_stepM1->enable(false); |
|
|
|
m_stepM1->setIHOLD_IRUN(m_cfg.stepmotor_ihold, m_cfg.stepmotor_irun, m_cfg.stepmotor_iholddelay); |
|
|
|
m_stepM1->setScale(m_cfg.motor_one_circle_pulse); |
|
|
|
m_stepM1->setScaleDenominator(m_cfg.motor_one_circle_pulse_denominator); |
|
|
|
m_stepM1->setMotorShaft(m_cfg.motor_shaft); |
|
|
|
if (m_state.enable) { |
|
|
|
m_stepM1->enable(true); |
|
|
|
} |
|
|
|
|
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|