firingwidget.h 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #ifndef FIRINGWIDGET_H
  2. #define FIRINGWIDGET_H
  3. #include "navprogress.h"
  4. #include "../mqtt/mqttclient.h"
  5. #include "../blastRecord/hblastrecord.h"
  6. #include "../blastRecord/hblastrecorddao.h"
  7. #include "../blastRecordDet/hblastrecorddetdao.h"
  8. #include "../blastRegRecord/hblastregrecorddao.h"
  9. #include "../databasemanager.h"
  10. #include <QWidget>
  11. #include <QJsonDocument>
  12. #include <QJsonObject>
  13. #include "../des3encryption.h"
  14. #include "../mqttthread.h"
  15. #include "../serial/serialtool.h"
  16. namespace Ui {
  17. class firingWidget;
  18. }
  19. class firingWidget : public QWidget
  20. {
  21. Q_OBJECT
  22. public:
  23. explicit firingWidget(const int& row ,const bool& select ,const QString& uuid = "",QWidget *parent = nullptr);
  24. ~firingWidget();
  25. void cancelBlasting();
  26. public slots:
  27. void onCountdownFinished(const QString &topic, const QString &message);
  28. private slots:
  29. void on_pushButton_2_clicked();
  30. void on_sendTest_4_clicked();
  31. void handleMessageAndTopic(const QByteArray &message, const QMqttTopicName &topic);
  32. signals:
  33. void progressChanged(int value,int row);
  34. void lastStageChanged(int newStage);
  35. void updateBlastStatus(int status,int row);
  36. void selectSignal(QString uuid);
  37. void updateButton(int status,int row);
  38. void updateProjectStatus(QString uuid);
  39. void updateData(const QJsonObject &jsonObj);
  40. void countdown(QString uuid,const QString &topic,const QString &message);
  41. void closeFiring(QString uuid);
  42. private slots:
  43. // 处理 MQTT 连接成功的槽函数
  44. void onMqttConnected();
  45. //双键按下
  46. void onButtonPressedReceived(const QString &topic,const QString &message);
  47. void onLastStageChanged(int newStage);
  48. void updateWebData(const QJsonObject &data);
  49. private:
  50. bool addRegData(const QJsonObject &jsonObj);
  51. bool addDetData(const QJsonObject &jsonObj);
  52. bool danUpload(const QJsonObject &jsonObj);
  53. void sendMqttMessage(const QString &topic, const QByteArray &message);
  54. void startBlasting();
  55. private:
  56. Ui::firingWidget *ui;
  57. MqttClient *pcPorjectBC;
  58. HBlastRecordDao dao;
  59. HBlastRecordDetDao daoDet;
  60. HBlastRegRecordDao daoReg;
  61. NavProgress *navProgress;
  62. MqttThread* mqttThread;
  63. SerialTool* serialTool=nullptr;
  64. QString m_uuid; // 用于存储 uuid
  65. QString reg_uuid; // 用于存储 uuid
  66. QString blast_uuid; // 用于存储 uuid
  67. QString topic;
  68. int m_row;
  69. int lastStage = -1; // 用于记录上一次的 stage 状态
  70. bool m_isMqttConnected = false;
  71. bool m_select;
  72. QMetaObject::Connection connection; // 声明 connection 变量
  73. QMetaObject::Connection connectionPress;
  74. QString lat;
  75. QString lon;
  76. };
  77. #endif // FIRINGWIDGET_H