firingwidget.h 3.1 KB

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