增加通讯协议
This commit is contained in:
+25
-19
@@ -1,6 +1,6 @@
|
||||
#include "mainwindow.h"
|
||||
#include "appcontext.h"
|
||||
#include "udpcommunication.h"
|
||||
#include "car.h"
|
||||
#include "confirmdialog.h"
|
||||
|
||||
#include "base.h"
|
||||
@@ -10,12 +10,12 @@
|
||||
#include "passwordmgmt.h"
|
||||
#include "passwordreset.h"
|
||||
#include "selfcheck.h"
|
||||
#include "home.h"
|
||||
#include "jobselect.h"
|
||||
#include "chassis.h"
|
||||
#include "arm.h"
|
||||
#include "gasdetector.h"
|
||||
#include "manualclean.h"
|
||||
#include "manualdisinfect.h"
|
||||
#include "washpage.h"
|
||||
#include "debugmaintain.h"
|
||||
#include "faultquery.h"
|
||||
|
||||
@@ -29,7 +29,7 @@ MainWindow::MainWindow(QWidget* parent)
|
||||
{
|
||||
m_ctx = AppContext::instance();
|
||||
|
||||
setWindowTitle("玉兔工业无线遥控器 YTZT6K8EART2-aL25");
|
||||
setWindowTitle("玉兔工业无线遥控器");
|
||||
setWindowFlags(Qt::FramelessWindowHint | Qt::Window);
|
||||
setFixedSize(SCREEN_W, SCREEN_H);
|
||||
|
||||
@@ -40,11 +40,12 @@ MainWindow::MainWindow(QWidget* parent)
|
||||
|
||||
buildPages();
|
||||
|
||||
// 全局急停横幅(覆盖于页面之上)
|
||||
m_estopBanner = new QLabel("急停已触发,请复位", this);
|
||||
// 全局急停横幅(覆盖于页面之上):仅作提示。
|
||||
// 急停与复位都由遥控器 bit4 下发,面板不提供复位控件。
|
||||
m_estopBanner = new QLabel("急停已触发,请用遥控器复位!", this);
|
||||
m_estopBanner->setAlignment(Qt::AlignCenter);
|
||||
m_estopBanner->setStyleSheet(
|
||||
"background-color:#E5484D;color:#FFFFFF;font-size:30px;font-weight:700;");
|
||||
"background-color:#E5484D;color:#FFFFFF;font-size:50px;font-weight:700;");
|
||||
m_estopBanner->setGeometry(0, 98, SCREEN_W, 64);
|
||||
m_estopBanner->hide();
|
||||
|
||||
@@ -52,11 +53,14 @@ MainWindow::MainWindow(QWidget* parent)
|
||||
|
||||
// 启动通信层(UDP 收包发包)
|
||||
m_ctx->comm()->start();
|
||||
m_ctx->rc()->start(); // 遥控器接收(独立端口)
|
||||
|
||||
// 初始页面:开机密码
|
||||
// m_stack->setCurrentIndex(PageBoot);
|
||||
// 免密码直接进自检页(恢复原流程时改回上面的 PageBoot)
|
||||
m_stack->setCurrentIndex(PageSelfCheck);
|
||||
// 免密码直接进自检页
|
||||
// m_stack->setCurrentIndex(PageSelfCheck);
|
||||
// 免登录直接进作业选择页(恢复原流程时改回上面的 PageBoot)
|
||||
m_stack->setCurrentIndex(PageJob);
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
@@ -79,12 +83,13 @@ void MainWindow::buildPages()
|
||||
add(PageMgmt, new PasswordMgmtPage(m_ctx));
|
||||
add(PageReset, new PasswordResetPage(m_ctx));
|
||||
add(PageSelfCheck, new SelfCheckPage(m_ctx));
|
||||
add(PageHome, new HomePage(m_ctx));
|
||||
add(PageJob, new JobSelectPage(m_ctx));
|
||||
add(PageChassis, new ChassisPage(m_ctx));
|
||||
add(PageArm, new ArmPage(m_ctx));
|
||||
add(PageGas, new GasDetectorPage(m_ctx));
|
||||
add(PageClean, new ManualCleanPage(m_ctx));
|
||||
add(PageDisinfect, new ManualDisinfectPage(m_ctx));
|
||||
add(PageClean, new WashPage(m_ctx, WashPage::Clean));
|
||||
add(PageDisinfect, new WashPage(m_ctx, WashPage::Disinfect));
|
||||
add(PageDebug, new DebugMaintainPage(m_ctx));
|
||||
add(PageFault, new FaultQueryPage(m_ctx));
|
||||
|
||||
@@ -93,10 +98,13 @@ void MainWindow::buildPages()
|
||||
|
||||
void MainWindow::onNavigate(PageId id)
|
||||
{
|
||||
// 记录故障查询返回来源
|
||||
// 记录故障查询返回来源(自检页 / 系统首页面 进入时原路返回,其它一律回作业选择页)
|
||||
if (id == PageFault && m_faultPage) {
|
||||
PageId cur = static_cast<PageId>(m_stack->currentIndex());
|
||||
m_faultPage->setReturnPage((cur == PageSelfCheck) ? PageSelfCheck : PageJob);
|
||||
if (cur == PageSelfCheck || cur == PageHome)
|
||||
m_faultPage->setReturnPage(cur);
|
||||
else
|
||||
m_faultPage->setReturnPage(PageJob);
|
||||
}
|
||||
if (id >= 0 && id < PageCount)
|
||||
m_stack->setCurrentIndex(id);
|
||||
@@ -110,14 +118,12 @@ void MainWindow::onEstopChanged(bool triggered)
|
||||
|
||||
void MainWindow::keyPressEvent(QKeyEvent* ev)
|
||||
{
|
||||
// 演示用快捷键:M 切换行车/机械臂模式,E 触发/复位急停
|
||||
// 演示用快捷键:M 切换行车/机械臂模式。
|
||||
// 遥控器在线时模式由遥控器报文决定,此处不抢(与底盘页 showEvent 同一规则)。
|
||||
switch (ev->key()) {
|
||||
case Qt::Key_M:
|
||||
m_ctx->setMode(m_ctx->mode == Mode::Drive ? Mode::Arm : Mode::Drive);
|
||||
break;
|
||||
case Qt::Key_E:
|
||||
if (m_ctx->estopTriggered) m_ctx->resetEstop();
|
||||
else m_ctx->triggerEstop();
|
||||
if (!m_ctx->rc()->linkOk())
|
||||
m_ctx->setMode(m_ctx->mode == Mode::Drive ? Mode::Arm : Mode::Drive);
|
||||
break;
|
||||
default:
|
||||
QMainWindow::keyPressEvent(ev);
|
||||
|
||||
Reference in New Issue
Block a user