firingwidget.h 3.4 KB

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