123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- #ifndef GLOBAL_H
- #define GLOBAL_H
- #include <QString>
- #include <QUrl>
- #include <QUrlQuery>
- #include "../mqtt/mqttclient.h"
- #include "../utils/logger.h"
- extern MqttClient* mainMqttClient;
- /* global variables which can configured in config file */
- extern QUrl apiBackendUrl; // 声明全局变量
- extern QString firewidgetPort; // 点火装置串口号
- extern QString gpsPort; // gps串口号
- extern QString databaseHost; // pc数据库地址
- extern QString mqttClientId; // mqtt客户端ID
- extern QString MQTT_TOPIC_COMPANY_PROJECTS_SUB; // 每个部署点(公司)唯一地址
- extern QString MQTT_TOPIC_COMPANY_PROJECTS_PUBLISH; // 发布工程的topic
- extern QString COMPANY_CODE;
- extern bool isShowTriggeringWidget; // 是否显示点火装置触发中调试组件
- extern bool isFaceVerificationEnabled; // 是否启用人脸识别
- // 用来获取雷管参数
- extern QString DET_PARAM_XMBH; // 项目编号
- extern QString DET_PARAM_DWDM; // 单位代码
- extern QString DET_PARAM_HTID; // 合同ID
- extern QString DET_PARAM_SBBH; // 设备编号
- extern void loadConfig(); // 声明全局函数
- extern QString globalAuthority;
- extern QString labLat; // 新增的全局变量声明
- extern QString labLon; // 新增的全局变量声明
- // BlastingProjManager namespace for managing blasting projects
- namespace BlastingProjManager {
- inline std::vector<QString> blastingProjectUuids;
- inline void addBlastingProject(const QString& uuid) { blastingProjectUuids.push_back(uuid); }
- inline void removeBlastingProject(const QString& uuid) {
- auto it = std::find(blastingProjectUuids.begin(), blastingProjectUuids.end(), uuid);
- if (it != blastingProjectUuids.end()) {
- blastingProjectUuids.erase(it);
- }
- }
- inline int getBlastingProjectCount() { return blastingProjectUuids.size(); }
- inline const std::vector<QString>& getBlastingProjectUuids() { return blastingProjectUuids; }
- } // namespace BlastingProjManager
- /* BlastStatus*/
- namespace BlastStatus {
- const QString Created = "1";
- const QString Registered = "2";
- const QString Blasted = "3";
- const QString ErrorOccurred = "4";
- } // namespace BlastStatus
- namespace BlastStatusNames {
- const QString Created = "未注册";
- const QString Registered = "已注册";
- const QString Blasted = "爆破完成";
- const QString ErrorOccurred = "爆破异常";
- } // namespace BlastStatusNames
- namespace ErrorBlastStatus {
- // Error code constants
- const int DEV_ERROR = 0xA0;
- const int BUS_SHORT = 0xA1;
- const int BUS_VOLTAGE_ERR = 0xA2;
- const int DET_OFFLINE_ERR = 0xA3;
- // Internal function to get the error map (lazy initialization)
- inline const std::map<int, QString>& getErrorMap() {
- static const std::map<int, QString> errorMap = {{DEV_ERROR, "设备异常"},
- {BUS_SHORT, "总线短路"},
- {BUS_VOLTAGE_ERR, "总线电压异常"},
- {DET_OFFLINE_ERR, "雷管掉线"}};
- return errorMap;
- }
- // Check if a status code exists in the error list
- inline bool isErrorStatus(int code) { return getErrorMap().find(code) != getErrorMap().end(); }
- // Get error message for a status code
- inline QString getErrorMessage(int code) {
- const auto& map = getErrorMap();
- auto it = map.find(code);
- return (it != map.end()) ? it->second : "Unknown error";
- }
- } // namespace ErrorBlastStatus
- // namespace FiringStages
- namespace FiringStages {
- const static int Starting = 0;
- const static int QuickTesting = 1; // 起爆检测测试中
- const static int QuickTestFinished = 2; // 起爆检测测试完成
- const static int NetCharging = 3; // 起爆检测充电中
- const static int NetChargingFinished = 4; // 起爆检测充电完成
- const static int Blasting = 5; // 爆破中
- const static int BlastFinished = 6; // 爆破完成
- const static int CancelConfirmed = 7; // 确认取消
- const static int PendingTriggerButtonClick = 10; // 待触发按钮触发起爆
- const static int ForceCanceled = 11; // 强制取消
- } // namespace FiringStages
- // namespace FiringStages
- static QString GetFiringStageName(int stage) {
- switch (stage) {
- case FiringStages::Starting:
- return "待起爆";
- case FiringStages::QuickTesting:
- return "起爆检测中";
- case FiringStages::QuickTestFinished:
- return "检测完成";
- case FiringStages::NetCharging:
- return "充电中";
- case FiringStages::NetChargingFinished:
- return "充电完成";
- case FiringStages::Blasting:
- return "起爆中";
- case FiringStages::BlastFinished:
- return "起爆完成";
- case FiringStages::CancelConfirmed:
- return "已取消";
- case FiringStages::PendingTriggerButtonClick:
- return "按下双键起爆...";
- case FiringStages::ForceCanceled:
- return "已强制取消";
- default:
- return "未知状态";
- }
- }
- #endif // GLOBAL_H
|