12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- #ifndef FIRINGWIDGET_H
- #define FIRINGWIDGET_H
- #include <QJsonDocument>
- #include <QJsonObject>
- #include <QMqttSubscription>
- #include <QWidget>
- #include "../blastRecord/hblastrecord.h"
- #include "../blastRecord/hblastrecorddao.h"
- #include "../blastRecordDet/hblastrecorddetdao.h"
- #include "../blastRegRecord/hblastregrecorddao.h"
- #include "../mqtt/mqttclient.h"
- #include "../serial/serialtool.h"
- #include "../utils/backendapimanager.h"
- #include "../utils/databasemanager.h"
- #include "../utils/logger.h"
- #include "navprogress.h"
- /* ref: 起爆器端协议
- public class Reply{
- private int status=0;
- private String msg = "”;
- private int regcount = 0;
- private int errorCount =0;
- private int busVoltage = 0;
- private int buscurrent =0;
- private int stage = 1;//起爆检测中,起爆检测完成,充电中,充电完成, 起爆中,起爆完成
- }
- */
- namespace Ui {
- class firingWidget;
- }
- // Error status codes for device and bus issues
- class firingWidget : public QWidget {
- Q_OBJECT
- public:
- explicit firingWidget(const int &row, const bool &select, const QString &uuid = "", QWidget *parent = nullptr);
- ~firingWidget();
- void sendCancelFiringMsg();
- void testOnBlastSuccess(const QJsonObject &data);
- void startBlasting();
- public slots:
- void onCountdownFinished(const QString &topic, const QString &message);
- private slots:
- void handleProjectFiringMqttMessage(const QMqttMessage &qmessage);
- void onMqttConnected();
- void onMqttDisconnected();
- // 双键按下
- void onButtonPressedReceived(const QString &topic, const QString &message);
- void handleFiringStageChanged(int newStage);
- signals:
- void progressChanged(int value, int row);
- void lastStageChanged(int newStage);
- void projSafeCheckSuccess(QString projectUuid);
- void updatefiringStage(int status, int row);
- void batchFiringSignal(QString uuid);
- void updateProjectStatus(QString uuid, QString status);
- void safeChecked(const QJsonObject &jsonObj);
- void countdown(QString uuid, const QString &topic, const QString &message);
- void closeFiring(QString uuid, int row);
- private:
- void checkBlasterConnection();
- void sendMqttMessage(const QString &topic, const QByteArray &message);
- void onSafeChecked(const QString projectUuid);
- private:
- Ui::firingWidget *ui;
- MqttClient *pcPorjectBC;
- HBlastRecordDao daoProj;
- HBlastRecordDetDao daoDet;
- HBlastRegRecordDao daoReg;
- NavProgress *navProgress;
- SerialTool *serialTool = nullptr;
- QString m_curProjUuid;
- QString m_topic; // firingwidget对应的 MQTT 主题
- int m_row;
- int m_lastStage = -1; // 用于记录上一次的 stage 状态
- bool m_select;
- QMetaObject::Connection connection; // 声明 connection 变量
- QMetaObject::Connection connectionPress;
- QString m_latitude;
- QString m_longitude;
- QDateTime m_lastMsgTime;
- QTimer *m_connectionCheckTimer;
- QMqttSubscription *m_subscription; // 用于订阅 MQTT 消息
- bool m_isDestroying = false; // Flag to prevent operations during destruction
- };
- #endif // FIRINGWIDGET_H
|