新版布局
This commit is contained in:
+33
-23
@@ -60,21 +60,23 @@ HomePage::HomePage(AppContext* ctx, QWidget* parent)
|
||||
grid->setContentsMargins(0, 0, 0, 0);
|
||||
|
||||
m_chassisCard = new DataCard("底盘", center);
|
||||
m_chassisCard->addField("电量", "85%");
|
||||
m_chassisCard->addField("电压", "360V");
|
||||
m_chassisCard->addField("故障", "无");
|
||||
m_chassisCard->addField("底盘电量SOC", "--");
|
||||
m_chassisCard->addField("底盘电压U", "--");
|
||||
|
||||
m_armCard = new DataCard("机械臂", center);
|
||||
m_armCard->addField("末端位置", "XYZ");
|
||||
m_armCard->addField("姿态", "RX/RY/RZ");
|
||||
// 位置/姿态两行的数值最长约 554px,超出 2×2 卡片的内容区 522px,单独把字号收小一号
|
||||
m_armCard->setValueFontPx(38);
|
||||
m_armCard->addField("末端位置", "--");
|
||||
m_armCard->addField("末端姿态", "--");
|
||||
|
||||
m_washCard = new DataCard("洗消", center);
|
||||
m_washCard->addField("A液位", "100L");
|
||||
m_washCard->addField("泡沫液位", "30L");
|
||||
m_washCard->addField("A组分/清水液位", "--");
|
||||
m_washCard->addField("泡沫箱液位", "--");
|
||||
|
||||
m_gasCard = new DataCard("气体检测仪", center);
|
||||
m_gasCard->addField("主机状态", "待机");
|
||||
m_gasCard->addField("浓度", "0 ppb");
|
||||
m_gasCard->addField("主机状态", "--");
|
||||
m_gasCard->addField("有毒物种类", "--");
|
||||
m_gasCard->addField("有毒物等级", "--");
|
||||
|
||||
// 左列 底盘/机械臂,右列 洗消/气体检测仪
|
||||
grid->addWidget(m_chassisCard, 0, 0);
|
||||
@@ -113,8 +115,7 @@ HomePage::HomePage(AppContext* ctx, QWidget* parent)
|
||||
root->addLayout(main, 1);
|
||||
|
||||
m_statusStrip = new StatusStrip(ctx, this);
|
||||
m_statusStrip->setBackVisible(false);
|
||||
m_statusStrip->setModeVisible(false); // 本页不显示模式徽标(菜单已移到左右两列)
|
||||
m_statusStrip->setBackVisible(false); // 本页「返回」在右侧按钮列,底条不重复放
|
||||
root->addWidget(m_statusStrip);
|
||||
|
||||
connect(ctx->comm(), &CarCommunication::telemetryUpdated, this, &HomePage::refresh);
|
||||
@@ -124,26 +125,35 @@ HomePage::HomePage(AppContext* ctx, QWidget* parent)
|
||||
void HomePage::refresh()
|
||||
{
|
||||
const Telemetry& t = ctx()->telemetry;
|
||||
m_chassisCard->setField(0, QString("%1%").arg(t.soc));
|
||||
m_chassisCard->setField(1, QString("%1V").arg(t.volt, 0, 'f', 0));
|
||||
m_chassisCard->setField(2, t.chassisFaults.isEmpty() ? "无" : t.chassisFaults.join(";"));
|
||||
m_chassisCard->setAlarm(2, !t.chassisFaults.isEmpty());
|
||||
|
||||
// 未收到对应报文的数值统一显示 "--"(dashIf)
|
||||
m_chassisCard->setField(0, dashIf(t.hasBattery, QString("%1%").arg(t.soc)));
|
||||
m_chassisCard->setField(1, dashIf(t.hasBattery, QString("%1V").arg(t.volt, 0, 'f', 0)));
|
||||
m_chassisCard->setFaults(t.chassisFaults);
|
||||
|
||||
m_armCard->setField(0, t.pos);
|
||||
m_armCard->setField(1, t.pose);
|
||||
// 机械臂卡没有故障行:协议里机械臂那四帧只有位置/姿态/关节角,没有故障信号
|
||||
|
||||
m_washCard->setField(0, QString("%1L").arg(t.levelA, 0, 'f', 0));
|
||||
m_washCard->setField(1, QString("%1L").arg(t.levelFoam, 0, 'f', 0));
|
||||
m_washCard->setField(0, dashIf(t.hasWash, QString("%1L").arg(t.levelA, 0, 'f', 0)));
|
||||
m_washCard->setField(1, dashIf(t.hasWash, QString("%1L").arg(t.levelFoam, 0, 'f', 0)));
|
||||
m_washCard->setAlarm(0, t.levelALow);
|
||||
m_washCard->setAlarm(1, t.levelBLow);
|
||||
m_washCard->setFaults(washCardFaults(t));
|
||||
|
||||
m_gasCard->setField(0, t.gasHost == "detecting" ? "检测中" : (t.gasHost == "fault" ? "故障" : "待机"));
|
||||
m_gasCard->setField(1, QString("%1 ppb").arg(t.gasConc, 0, 'f', 0));
|
||||
m_gasCard->setAlarm(1, t.gasConc > 500.0);
|
||||
m_gasCard->setField(0, gasHostLabel(t));
|
||||
m_gasCard->setField(1, t.gasType); // 有毒物种类,未收到报文时本身就是 "--"
|
||||
m_gasCard->setField(2, t.gasLevel); // 有毒物等级
|
||||
m_gasCard->setAlarm(0, t.gasHost == "fault");
|
||||
m_gasCard->setFaults(t.detectorFaults);
|
||||
}
|
||||
|
||||
void HomePage::onHelp()
|
||||
{
|
||||
// 正文按 2+1 断句。字号 34 时最长一行 918px,正文区 944px,不会被 wordWrap 二次折行
|
||||
ConfirmDialog::message(this, "操作说明",
|
||||
"系统自检将依次检测:通信系统、底盘通信、机械臂通信、洗消通信、"
|
||||
"传感器信号、清水液位及电动球阀 D1/D2 的开启与关闭。\n"
|
||||
"全部正常后方可进入作业选择界面。");
|
||||
"自检过程主要检测各分系统通信、传感器信号数据是否正常、\n"
|
||||
"电动球阀D1~D2是否能正常开启和关闭。\n"
|
||||
"自检正常或人为点击“忽略故障”,则进入“系统首页面”。",
|
||||
1000, 34);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user