diff --git a/a8000_protocol b/a8000_protocol
index a85673b..7bfd98c 160000
--- a/a8000_protocol
+++ b/a8000_protocol
@@ -1 +1 @@
-Subproject commit a85673b9c1b9a54c0e91a3e3f4299106a749e56d
+Subproject commit 7bfd98cff4587d08a048aff876d8130bcb31d919
diff --git a/src/mainwindow.ui b/src/mainwindow.ui
index dae0778..44c8437 100644
--- a/src/mainwindow.ui
+++ b/src/mainwindow.ui
@@ -819,6 +819,20 @@ QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
-
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+
+
+ -
@@ -910,20 +924,6 @@ QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
-
-
-
-
- 0
- 0
-
-
-
-
-
-
-
-
- -
Qt::Vertical
diff --git a/src/tab/module_opera_tab.cpp b/src/tab/module_opera_tab.cpp
index 46d6c85..bfc8da2 100644
--- a/src/tab/module_opera_tab.cpp
+++ b/src/tab/module_opera_tab.cpp
@@ -85,12 +85,14 @@ void ModuleOperaTab::construct(QWidget *parent) {
IflytopCanbusMaster::ins()->ping(i);
int moduleType;
+ int moduleVersion;
IflytopCanbusMaster::ins()->readreg(i, kreg_module_type, &moduleType);
+ IflytopCanbusMaster::ins()->readreg(i, kreg_module_version, &moduleVersion);
if (i % 10 == 0) {
ZQUI::ins()->ishow("");
}
- ZQUI::ins()->ishow("module :%d isOnline type:%s", i, module_type2_str(moduleType));
+ ZQUI::ins()->ishow("module :%d isOnline type:%10s v(%d)", i, module_type2_str(moduleType),moduleVersion);
} catch (const zexception &e) {
if (e.ecode() != ke_overtime) {
ZQUI::ins()->ishow("%s", e.what());
diff --git a/src/tab/step_motor_ctrl_tab.cpp b/src/tab/step_motor_ctrl_tab.cpp
index ed38e35..2ef2b6f 100644
--- a/src/tab/step_motor_ctrl_tab.cpp
+++ b/src/tab/step_motor_ctrl_tab.cpp
@@ -65,6 +65,29 @@ void StepMotorCtrlTab::construct(QTabWidget *fathertab) {
ICM->step_motor_read_io_state(getDeviceId(), atoi(args[0]), &io);
ZQUI::ins()->ishow("IO:%d", io);
});
+
+ box->newFunc("读取5130电机详细状态", {"ioindex"}, [this](int argn, const char **args) {
+ ICM->callcmd0(getDeviceId(), kstep_motor_read_tmc5130_status);
+
+ TMC5130MotorStatus_t status;
+ static_assert(sizeof(status) == 4, "sizeof(TMC5130MotorStatus_t) != 4");
+
+ memcpy(&status, ICM->getAckBuf(), 4);
+
+ ZQUI::ins()->ishow("sg_result :%d", status.sg_result);
+ ZQUI::ins()->ishow("reserved0 :%d", status.reserved0);
+ ZQUI::ins()->ishow("fsactive :%d", status.fsactive);
+ ZQUI::ins()->ishow("cs_actual :%d", status.cs_actual);
+ ZQUI::ins()->ishow("reserved1 :%d", status.reserved1);
+ ZQUI::ins()->ishow("stallguard :%d", status.stallguard);
+ ZQUI::ins()->ishow("ot :%d", status.ot);
+ ZQUI::ins()->ishow("otpw :%d", status.otpw);
+ ZQUI::ins()->ishow("s2ga :%d", status.s2ga);
+ ZQUI::ins()->ishow("s2gb :%d", status.s2gb);
+ ZQUI::ins()->ishow("ola :%d", status.ola);
+ ZQUI::ins()->ishow("olb :%d", status.olb);
+ ZQUI::ins()->ishow("stst :%d", status.stst);
+ });
}
tab->addSpacer();
}