调试初版

This commit is contained in:
xu
2026-10-14 18:22:41 +08:00
parent d3a355bd3f
commit e5efdea06e
26 changed files with 289 additions and 140 deletions
+8 -21
View File
@@ -22,7 +22,6 @@
#include <QStackedWidget>
#include <QLabel>
#include <QVBoxLayout>
#include <QKeyEvent>
MainWindow::MainWindow(QWidget* parent)
: QMainWindow(parent)
@@ -55,12 +54,8 @@ MainWindow::MainWindow(QWidget* parent)
m_ctx->comm()->start();
m_ctx->rc()->start(); // 遥控器接收(独立端口)
// 初始页面:开机密码
// m_stack->setCurrentIndex(PageBoot);
// 免密码直接进自检页
// m_stack->setCurrentIndex(PageSelfCheck);
// 免登录直接进作业选择页(恢复原流程时改回上面的 PageBoot)
m_stack->setCurrentIndex(PageJob);
// 初始页面:开机密码 →(验证通过)自检 →(自检结束)系统首页面
m_stack->setCurrentIndex(PageBoot);
}
MainWindow::~MainWindow()
@@ -94,6 +89,7 @@ void MainWindow::buildPages()
add(PageFault, new FaultQueryPage(m_ctx));
m_faultPage = qobject_cast<FaultQueryPage*>(page(PageFault));
m_debugPage = qobject_cast<DebugMaintainPage*>(page(PageDebug));
}
void MainWindow::onNavigate(PageId id)
@@ -106,6 +102,11 @@ void MainWindow::onNavigate(PageId id)
else
m_faultPage->setReturnPage(PageJob);
}
// 调试维护有两个入口(系统首页 / 作业选择),同样原路返回
if (id == PageDebug && m_debugPage) {
PageId cur = static_cast<PageId>(m_stack->currentIndex());
m_debugPage->setReturnPage(cur == PageHome ? PageHome : PageJob);
}
if (id >= 0 && id < PageCount)
m_stack->setCurrentIndex(id);
}
@@ -115,17 +116,3 @@ void MainWindow::onEstopChanged(bool triggered)
m_estopBanner->setVisible(triggered);
m_estopBanner->raise();
}
void MainWindow::keyPressEvent(QKeyEvent* ev)
{
// 演示用快捷键:M 切换行车/机械臂模式。
// 遥控器在线时模式由遥控器报文决定,此处不抢(与底盘页 showEvent 同一规则)。
switch (ev->key()) {
case Qt::Key_M:
if (!m_ctx->rc()->linkOk())
m_ctx->setMode(m_ctx->mode == Mode::Drive ? Mode::Arm : Mode::Drive);
break;
default:
QMainWindow::keyPressEvent(ev);
}
}