Browse Source

update

master
zhaohe 1 year ago
parent
commit
9d8c71e2be
  1. 14
      components/step_motor_ctrl_module/step_motor_ctrl_module.cpp
  2. 3
      components/step_motor_ctrl_module/step_motor_ctrl_module.hpp
  3. 4
      components/tmc/ic/ztmc5130.hpp
  4. 6
      components/zcancmder/zcan_protocol_parser.cpp
  5. 2
      components/zcancmder/zcan_protocol_parser.hpp

14
components/step_motor_ctrl_module/step_motor_ctrl_module.cpp

@ -70,7 +70,7 @@ int32_t StepMotorCtrlModule::module_xxx_reg(int32_t param_id, bool read, int32_t
case kreg_step_motor_iholddelay: case kreg_step_motor_iholddelay:
case kreg_step_motor_max_d: case kreg_step_motor_max_d:
case kreg_step_motor_min_d: case kreg_step_motor_min_d:
return 0;
return 0;
} }
return suc; return suc;
} }
@ -150,8 +150,14 @@ int32_t StepMotorCtrlModule::step_motor_read_io_state(int32_t ioindex, int32_t*
return 0; return 0;
} }
int32_t StepMotorCtrlModule::step_motor_read_motoric_status(int32_t* errorflag) {
*errorflag = m_state.motorStatus;
int32_t StepMotorCtrlModule::step_motor_read_tmc5130_status(int32_t* status) {
// *errorflag = m_state.motorStatus;
TMC5130* tmc5130 = dynamic_cast<TMC5130*>(m_stepM1);
if (tmc5130) {
static_assert(sizeof(TMC5130::DevStatusReg_t) == 4);
auto devStatus = tmc5130->getDevStatus();
memcpy(status, &devStatus, sizeof(int32_t));
}
return 0; return 0;
} }
@ -203,7 +209,7 @@ void StepMotorCtrlModule::dumpTMC5130Status(TMC5130::DevStatusReg_t* status) {
void StepMotorCtrlModule::setErrorFlag(int32_t ecode, uint32_t motorStatue) { void StepMotorCtrlModule::setErrorFlag(int32_t ecode, uint32_t motorStatue) {
creg.module_errorcode = ecode; creg.module_errorcode = ecode;
m_state.motorStatus = motorStatue;
// m_state.motorStatus = motorStatue;
} }
bool StepMotorCtrlModule::check_when_run() { bool StepMotorCtrlModule::check_when_run() {

3
components/step_motor_ctrl_module/step_motor_ctrl_module.hpp

@ -35,7 +35,6 @@ class StepMotorCtrlModule : public ZIModule, public ZIStepMotor {
int32_t after_move_pos; int32_t after_move_pos;
int32_t before_move_pos; int32_t before_move_pos;
int32_t enable; int32_t enable;
uint32_t motorStatus;
} state_t; } state_t;
private: private:
@ -83,7 +82,7 @@ class StepMotorCtrlModule : public ZIModule, public ZIStepMotor {
virtual int32_t step_motor_active_cfg() override; virtual int32_t step_motor_active_cfg() override;
virtual int32_t step_motor_read_io_state(int32_t ioindex, int32_t* state) override; virtual int32_t step_motor_read_io_state(int32_t ioindex, int32_t* state) override;
virtual int32_t step_motor_read_motoric_status(int32_t* errorflag) override;
virtual int32_t step_motor_read_tmc5130_status(int32_t* errorflag) override;
public: public:
IStepperMotor* getMotor() { return m_stepM1; } IStepperMotor* getMotor() { return m_stepM1; }

4
components/tmc/ic/ztmc5130.hpp

@ -126,12 +126,12 @@ class TMC5130 : public IStepperMotor {
virtual void setNoAccLimit(bool enable) override; virtual void setNoAccLimit(bool enable) override;
public: public:
DevStatusReg_t getDevStatus() {
DevStatusReg_t getDevStatus() { // R 读后不清
static_assert(sizeof(DevStatusReg_t) == 4); static_assert(sizeof(DevStatusReg_t) == 4);
uint32_t value = readInt(TMC5130_DRVSTATUS); uint32_t value = readInt(TMC5130_DRVSTATUS);
return *(DevStatusReg_t *)&value; return *(DevStatusReg_t *)&value;
} }
GState_t getGState() {
GState_t getGState() { // R+C 读后自动清除
static_assert(sizeof(GState_t) == 4); static_assert(sizeof(GState_t) == 4);
uint32_t value = readInt(TMC5130_GSTAT); uint32_t value = readInt(TMC5130_GSTAT);
return *(GState_t *)&value; return *(GState_t *)&value;

6
components/zcancmder/zcan_protocol_parser.cpp

@ -33,7 +33,7 @@ void ZCanProtocolParser::initialize(IZCanReceiver* cancmder) {
REGFN(step_motor_active_cfg); REGFN(step_motor_active_cfg);
REGFN(step_motor_stop); REGFN(step_motor_stop);
REGFN(step_motor_read_io_state); REGFN(step_motor_read_io_state);
REGFN(step_motor_read_motoric_status);
REGFN(step_motor_read_tmc5130_status);
REGFN(mini_servo_enable); REGFN(mini_servo_enable);
REGFN(mini_servo_read_pos); REGFN(mini_servo_read_pos);
@ -247,11 +247,11 @@ int32_t ZCanProtocolParser::step_motor_read_io_state(cmdcontxt_t* cxt) {
return module->step_motor_read_io_state(cxt->params[0], ack); return module->step_motor_read_io_state(cxt->params[0], ack);
} }
int32_t ZCanProtocolParser::step_motor_read_motoric_status(cmdcontxt_t* cxt) {
int32_t ZCanProtocolParser::step_motor_read_tmc5130_status(cmdcontxt_t* cxt) {
CHECK_AND_GET_MODULE(0); CHECK_AND_GET_MODULE(0);
int32_t* ack = (int32_t*)cxt->ackbuf; int32_t* ack = (int32_t*)cxt->ackbuf;
cxt->acklen = 4; cxt->acklen = 4;
return module->step_motor_read_motoric_status(&ack[0]);
return module->step_motor_read_tmc5130_status(&ack[0]);
} }
#undef MODULE_CLASS #undef MODULE_CLASS

2
components/zcancmder/zcan_protocol_parser.hpp

@ -68,7 +68,7 @@ class ZCanProtocolParser : public IZCanReceiverListener {
static int32_t step_motor_easy_move_to_io(cmdcontxt_t* cxt); static int32_t step_motor_easy_move_to_io(cmdcontxt_t* cxt);
static int32_t step_motor_active_cfg(cmdcontxt_t* cxt); static int32_t step_motor_active_cfg(cmdcontxt_t* cxt);
static int32_t step_motor_read_io_state(cmdcontxt_t* cxt); static int32_t step_motor_read_io_state(cmdcontxt_t* cxt);
static int32_t step_motor_read_motoric_status(cmdcontxt_t* cxt);
static int32_t step_motor_read_tmc5130_status(cmdcontxt_t* cxt);
static int32_t mini_servo_enable(cmdcontxt_t* cxt); static int32_t mini_servo_enable(cmdcontxt_t* cxt);

Loading…
Cancel
Save