Files
QT_wuhan_YT/app/global.h
T

125 lines
5.1 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#ifndef GLOBAL_H
#define GLOBAL_H
#include <QString>
#include <QStringList>
#include <QVector>
#include <QWidget>
#include <QTimer>
#include <QVariant>
// ===================== 画布与全局常量 =====================
// 屏幕分辨率(1920×1080 横屏);若部署在更低分辨率屏,可按同一比例整体缩放
static const int SCREEN_W = 1920;
static const int SCREEN_H = 1080;
// ===================== 工业风格配色体系(QSS 十六进制) =====================
namespace C {
const QString BG = "#161C23"; // 主背景:窗口画布底色
const QString PANEL = "#242E3A"; // 面板背景:卡片/弹窗/顶条/底条
const QString PANEL_HI = "#2D3947"; // 面板亮色:按钮常态、表头、进度条底
const QString BORDER = "#3D4A59"; // 分割线:边框、表格线
const QString TEXT = "#E6EDF3"; // 主文字:标题、正文、数值
const QString TEXT_SUB = "#9AA7B4"; // 次文字:说明、单位、标签
const QString PRIMARY = "#3D8BFD"; // 强调主色:主按钮、选中、焦点、进度条
const QString SUCCESS = "#36C75A"; // 成功/运行:运行、开启、到位
const QString WARNING = "#F5A623"; // 警告:提醒、待确认
const QString DANGER = "#E5484D"; // 危险/故障:急停、故障、警示
const QString DISABLED = "#56636F"; // 禁用:不可操作控件底色
const QString DISABLED_T = "#6B7A88"; // 禁用文字
}
// ===================== 操作模式 =====================
// 面板机械旋钮切换:行车模式 / 机械臂模式
enum class Mode { Drive = 0, Arm = 1 };
// ===================== 页面枚举(QStackedWidget 索引) =====================
enum PageId {
PageBoot = 0, // ③ 开机密码
PageWarning, // 密码警告
PageMgmtLogin, // 密码管理登录
PageMgmt, // 密码管理
PageReset, // 密码重置
PageSelfCheck, // ④ 自检
PageJob, // ⑤ 作业选择
PageChassis, // ⑥ 机器人底盘
PageArm, // ⑦ 机械臂
PageGas, // ⑧ 气体检测仪
PageClean, // ⑨ 手动消除
PageDisinfect, // ⑩ 手动消毒
PageDebug, // ⑪ 调试维护
PageFault, // ⑫ 故障查询
PageCount
};
// ===================== 遥测数据(车载端 → UI) =====================
// 由通信层解析 UDP 报文后填充,页面 500ms 定时读取刷新
struct Telemetry {
// 底盘
int soc = 85; // 电量 %
double volt = 360.0; // 电压 V
double speed = 3.45; // 车速 km/h
bool handbrake = true; // 手刹
QStringList chassisFaults; // 底盘故障(多条 2s 轮换)
// 机械臂
QVector<double> js{30, 20, 0, 90, 45, 0}; // 关节角 J1~J6(°)
QString pos = "--"; // 末端位置 XYZ
QString pose = "--"; // 姿态 RX/RY/RZ
double vel = 0.0; // 末端速度
QString returnState = "idle";// 回位状态 idle/returning/done/fault
bool armHomed = false; // 是否已回位(用于底盘“机械臂未回位”告警)
// 洗消
QString washMode = "--"; // 手动消除 / 手动消毒
double flowA = 0.0; // A 药剂流量 L/min
double flowB = 0.0; // B 药剂流量 L/min
double gasFlow = 0.0; // 气体流量 L/min
double press = 0.0; // 管路压力 MPa
double airPress = 0.0; // 空压机压力 MPa
double foam = 0.0; // 发泡倍数
QStringList washFaults; // 洗消故障代码
// 液位
double levelA = 100.0; // 清水/药剂液位 L
double levelFoam = 30.0; // 泡沫液位 L
// 气体检测仪
QString gasHost = "standby"; // 主机状态 standby/detecting/fault
QString gasType = "--"; // 有毒物种类
QString gasLevel = "--"; // 有毒物等级
double gasConc = 0.0; // 有毒物浓度 ppb
// 球阀 D1/D2
bool d1open = false; // D1 开启到位
bool d1close = true; // D1 关闭到位
bool d2open = false; // D2 开启到位
bool d2close = true; // D2 关闭到位
QString valveFault; // 球阀故障码
// 泵
bool plunger = false; // 柱塞泵上电
bool air = false; // 空压机上电
bool leaf = false; // 叶片泵上电
QStringList pumpFaults; // 泵故障代码
// 全局
bool commOk = true; // 通信状态
bool estop = false; // 急停触发
};
// ===================== 工具函数 =====================
// 启动 500ms 闪烁:每 500ms 切换一次 QSS 动态属性(40% ↔ 100% 透明度由 QSS 规则体现)
QTimer* startBlink(QWidget* w, const char* prop = "blink");
// 关闭闪烁定时器并复位属性
void stopBlink(QWidget* w, const char* prop = "blink");
// 退出/取消按钮预设样式:被选中(悬停/按下/焦点)时红底白字
QString cancelButtonStyle(int fontPx = 60);
// 全局 QSS 样式表
QString appStyleSheet();
#endif // GLOBAL_H