Browse Source

v1014 |通用模块添加 detail_error_code寄存器,添加舵机运行时错误检测

master
zhaohe 4 months ago
parent
commit
6b8bff2cb8
  1. 2
      a8000_protocol
  2. 13
      sdk/components/api/zi_module.cpp
  3. 1
      sdk/components/api/zi_module.hpp
  4. 4
      sdk/components/mini_servo_motor/mini_servo_motor_ctrl_module.cpp
  5. 2
      usrc/version.h

2
a8000_protocol

@ -1 +1 @@
Subproject commit a16732b2c0be0cec93c0099b56643befe27fe411
Subproject commit ad9e845df37276be1f32322dace4c35790bed570

13
sdk/components/api/zi_module.cpp

@ -50,6 +50,17 @@ int32_t ZIModule::_module_xxx_reg(int32_t param_id, bool read, int32_t &val) {
val = creg.module_errorcode;
return 0;
} else {
val = 0;
return 0;
}
}
else if (param_id == kreg_module_detail_errorcode) {
if (read) {
val = creg.module_detail_errorcode;
return 0;
} else {
val = 0;
return 0;
}
}
@ -86,7 +97,7 @@ int32_t ZIModule::module_get_error(int32_t *iserror) {
}
int32_t ZIModule::module_clear_error() {
creg.module_errorcode = 0;
creg.module_status = 0;
creg.module_status = 0;
return 0;
}

1
sdk/components/api/zi_module.hpp

@ -38,6 +38,7 @@ using namespace std;
typedef struct {
int32_t module_errorcode;
int32_t module_detail_errorcode;
int32_t module_status;
} module_common_reg_t;

4
sdk/components/mini_servo_motor/mini_servo_motor_ctrl_module.cpp

@ -272,16 +272,20 @@ bool MiniServoCtrlModule::check_when_run(servo_status_t *status) {
int32_t nowpos = 0;
bool suc = m_bus->isMove(m_idinbus, &moveflag);
if (!suc) {
creg.module_errorcode = err::ksubdevice_overtime;
return false;
}
suc = m_bus->getPos(m_idinbus, &nowpos);
if (!suc) {
creg.module_errorcode = err::ksubdevice_overtime;
return false;
}
if (m_bus->getStatus(m_idinbus) != 0) {
status->status = m_bus->getStatus(m_idinbus);
ZLOGE(TAG, "check fail, status = %x", status->status);
creg.module_status = status->status;
creg.module_errorcode = err::kmini_servo_status_is_error;
return false;
}

2
usrc/version.h

@ -1,2 +1,2 @@
#pragma once
#define PC_VERSION 1013
#define PC_VERSION 1014
Loading…
Cancel
Save