databasethread.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #ifndef DATABASETHREAD_H
  2. #define DATABASETHREAD_H
  3. #include <QThread>
  4. #include <QDateTime>
  5. #include <QSqlDatabase>
  6. #include <QSqlQuery>
  7. #include <QSqlError>
  8. #include <QVariant>
  9. #include <QStringList>
  10. #include <QList>
  11. #include <qmqtt.h>
  12. #include "AlarmReport.h"
  13. class UiPoint{
  14. public:
  15. explicit UiPoint(quint64 code=0, int com=0, quint64 point=0, quint64 sta=0, uint t=0){
  16. DeviceCode = code;
  17. ComIdx = com;
  18. PointIdx = point;
  19. Status = sta;
  20. T = t;
  21. }
  22. quint64 DeviceCode;
  23. int ComIdx;
  24. quint64 PointIdx;
  25. quint64 Status;
  26. uint T;
  27. };
  28. class SyncData {
  29. public:
  30. explicit SyncData(quint64 add=0, QByteArray data=nullptr){
  31. srcAddress=add;
  32. Data=data;
  33. }
  34. quint64 srcAddress;
  35. QByteArray Data;
  36. };
  37. class BaoDev {
  38. public:
  39. explicit BaoDev(quint64 id=0, quint64 baoid=0){
  40. devid = id;
  41. bao_id = baoid;
  42. }
  43. quint64 devid;
  44. quint64 bao_id;
  45. };
  46. class DataBaseThread : public QThread
  47. {
  48. Q_OBJECT
  49. public:
  50. explicit DataBaseThread(QObject *parent = nullptr);
  51. void appendSql(QString sql);
  52. void appendAlarm(AlarmRep rep);
  53. void appendSta(UiPoint sta);
  54. void run();
  55. void check_devlist();
  56. void check_sysconf();
  57. bool check_dev(qulonglong devId);
  58. bool check_pushreport(qulonglong devid);
  59. quint16 get_method(qulonglong devId);
  60. int getRecId(qulonglong devId);
  61. void getSyncData(quint64 srcAddr, QByteArray data);
  62. void chk_baodevlist();
  63. void check_mqttdev();
  64. quint64 inBaoList(quint64 addr);
  65. signals:
  66. void SqlAction(QString sql);
  67. void AlarmReport(quint64 addr, quint64 insertid, QString type, QString time, QString name, quint64 port=0, QString address="");
  68. void MqttInfo(QString infoStr,QString alarmStr,QString statusStr,QString topic1,QString topic2,QString topic3);
  69. void MqttInit(QString ip,QString port,QString name,QString passwd);
  70. public slots:
  71. private:
  72. int chk_hour;
  73. QSqlDatabase db;
  74. QStringList sqlList;
  75. QList<AlarmRep> alarmRepList;
  76. QList<UiPoint> uiPointList;
  77. QList<UiPoint> uiPStatusList;
  78. QList<SyncData> syncDataList;
  79. QList<BaoDev> baoDevList;
  80. };
  81. #endif // DATABASETHREAD_H