userinfoprocesscore.h 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. #ifndef USERINFOPROCESSCORE_H
  2. #define USERINFOPROCESSCORE_H
  3. //#define SyncIface
  4. #define JdxfDb
  5. //#define SubCenter
  6. #include <QObject>
  7. #include <QSqlDatabase>
  8. #include <QTcpServer>
  9. #include <QTcpSocket>
  10. #include <QHostAddress>
  11. #include <QUrl>
  12. #include <QTimer>
  13. #include <json-c/json.h>
  14. #include "userinfocommthread.h"
  15. #include "databasethread.h"
  16. //#include "reportsender.h"
  17. #include "logthread.h"
  18. #include "wssserver.h"
  19. #ifdef SyncIface
  20. //#include "changningsyncthread.h"
  21. #include "syncchangning.h"
  22. #endif
  23. #include "wechartthreads.h"
  24. #include "ttsthreads.h"
  25. //#include "RepThread.h"
  26. class AlarmSet {
  27. public:
  28. AlarmSet(unsigned int idx, QString name="", QString data="", quint8 type=0, uint time=0, quint8 enabled=0){
  29. DeviceIdx = idx;
  30. DevName = name;
  31. AlarmData = data;
  32. dwType = type;
  33. AlarmTime = time;
  34. Enabled = enabled;
  35. }
  36. unsigned int DeviceIdx;
  37. quint8 dwType;
  38. QString DevName;
  39. QString AlarmData;
  40. uint AlarmTime;
  41. quint8 Enabled;
  42. };
  43. class UserInfoProcessCore : public QObject
  44. {
  45. Q_OBJECT
  46. public:
  47. explicit UserInfoProcessCore(QObject *parent = nullptr);
  48. bool chk1byte(quint8 d, quint8 v);
  49. bool chk2byte(quint16 d, quint16 v);
  50. bool chk4byte(quint32 d, quint32 v);
  51. bool check_dev(qulonglong devId);
  52. quint16 get_method(qulonglong devId);
  53. QString getMAddr(quint64 devid, quint16 method, quint8 sysAddr, quint64 uaddr);
  54. qint16 getDeviceIdx(quint64 addr);
  55. QString getSysStructType(quint8 stype);
  56. QString getUnitType(quint8 utype);
  57. QString devNumStr(quint64 addr);
  58. QString getOwnerAddr(quint64 devid, quint8 sysAddr, quint32 areaid, quint32 point, quint32 hostNum);
  59. void start();
  60. void appendReportCount(quint64 srcAddr, quint8 repType);
  61. void getBuildingFireCtrlSysStatusReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,quint8 sysType,quint8 sysAddr,quint16 sysStatus,QDateTime sendTime,QDateTime reportTime);
  62. void getBuildingFireCtrlSysStatusRestoreReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,quint8 sysType,quint8 sysAddr,quint16 sysStatus,QDateTime sendTime,QDateTime reportTime);
  63. void getBuildingFireCtrlUintStatusRestoreReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,quint8 sysType,quint8 sysAddr,quint8 unitType, quint32 unitAddr,quint16 uintStatus,QString unitNote,QDateTime sendTime,QDateTime reportTime);
  64. void getBuildingFireCtrlUintStatusReport2(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,quint8 sysType,quint8 sysAddr,quint8 unitType, quint32 unitAddr,quint32 uintStatus,QString unitNote,QDateTime sendTime,QDateTime reportTime);
  65. void getBuildingFireCtrlUintStatusRestoreReport2(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,quint8 sysType,quint8 sysAddr,quint8 unitType, quint32 unitAddr,quint32 uintStatus,QString unitNote,QDateTime sendTime,QDateTime reportTime);
  66. void getBuildingFireCtrlUintDateReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,quint8 sysType,quint8 sysAddr,quint8 unitType, quint32 unitAddr,quint8 unitDataType,qint16 uintData,QDateTime sendTime, QDateTime reportTime);
  67. void getBuildingFireCtrlOperationReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,quint8 sysType,quint8 sysAddr,quint8 operationType, quint8 userId,QDateTime sendTime,QDateTime reportTime);
  68. void getBuildingFireCtrlVersionReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,quint8 sysType,quint8 sysAddr,quint16 version,QDateTime sendTime);
  69. void getBuildingFireCtrlSystemNoteReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,quint8 sysType,quint8 sysAddr,QString sysNote,QDateTime sendTime);
  70. void getBuildingFireCtrlUintNoteReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,quint8 sysType,quint8 sysAddr,quint8 unitType, quint32 unitAddr,QString unitNote,QDateTime sendTime);
  71. void getBuildingFireCtrlTimeReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,quint8 sysType,quint8 sysAddr,QDateTime sendTime,QDateTime reportTime);
  72. void getBuildingFireUserinfoStaReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,quint8 userinfoStatus,QDateTime sendTime,QDateTime reportTime);
  73. void getBuildingFireUserinfoStaRestoreReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,quint8 userinfoStatus,QDateTime sendTime,QDateTime reportTime);
  74. void getBuildingFireUserinfoVersionReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,quint16 version,QDateTime sendTime);
  75. void getBuildingFireUserinfoParamNoteReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,QString pNote,QDateTime sendTime);
  76. void getBuildingFireUserinfoTimeReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,QDateTime sendTime,QDateTime uiTime);
  77. void getBuildingFireUserinfoManuDateReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,QDateTime sendTime,QDateTime manuTime);
  78. void getBuildingFireUserinfoSignupTimeReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,QDateTime sendTime,QDateTime signupTime);
  79. void getBuildingFireUserinfoBootReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,quint8 userId,QDateTime sendTime,QDateTime bootTime);
  80. void getBuildingFireUserinfoShutdownReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,quint8 userId,QDateTime sendTime,QDateTime shutdownTime);
  81. void getBuildingFireCtrlSysBootReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,quint8 sysType,quint8 sysAddr,QDateTime sendTime,QDateTime bootTime);
  82. void getBuildingFireCtrlSysShutdownReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,quint8 sysType,quint8 sysAddr,QDateTime sendTime,QDateTime shutdownTime);
  83. void getBuildingFireUserinfoCommStaReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 commSta, QDateTime sendTime, QDateTime reportTime);
  84. void getBuildingFireUserinfoCommStaRestoreReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 commSta, QDateTime sendTime, QDateTime reportTime);
  85. void getBuildingFireUserinfoPostsoutReport(quint16 sn, quint64 srcAddr, quint64 destAddr, quint8 dataType, quint8 userId, QDateTime sendTime, QDateTime reportTime);
  86. void getBuildingFireCtrlUintFireTypeReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,quint8 sysType,quint8 sysAddr,quint8 unitType, quint32 unitAddr,quint16 fireType,QString unitNote,QDateTime sendTime,QDateTime reportTime);
  87. void getBuildingFireCtrlSysActStatusReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,quint8 sysType,quint8 sysAddr,quint16 actStatus,QDateTime sendTime,QDateTime reportTime);
  88. void getBuildingFireUserinfoOptTimeReport(quint16 sn,quint64 srcAddr,quint64 destAddr,quint8 dataType,quint8 userId,QDateTime sendTime,QDateTime reportTime);
  89. bool check_voicealarm(qulonglong devid);
  90. // void getSyncData(quint64 srcAddr, QByteArray data);
  91. void OnConnected();
  92. signals:
  93. public slots:
  94. void new_incomming();
  95. // void ui_incomming();
  96. // void get_cmd();
  97. void getOnLine(quint64 srcAddr, bool sta);
  98. void getOffLine(quint64 srcAddr);
  99. void getBuildingFireCtrlReport(quint8 dataType, QString ip, void *data);
  100. void time_out();
  101. void appendLOg(QString log);
  102. void CommData(QString deviceid, int dir, QString data);
  103. void getWrongData(QString data);
  104. void AlarmReport(quint64 addr, quint64 insertid, QString type, QString time, QString name,quint64 port=0, QString address="");
  105. void getHaertBeat(quint64 srcAddr);
  106. void wxchart(quint16 idx, QDateTime t, QString data, bool dirflag);
  107. void ttslog(quint16 idx, QDateTime t, QString data, bool dirflag);
  108. void replog(quint16 idx, QDateTime t, QString data, bool dirflag);
  109. void wsslog(quint16 idx, QDateTime t, QString data, bool dirflag);
  110. void getSyncData(quint64 srcAddr, QByteArray data);
  111. void MqttInfo(QString infoStr,QString alarmStr,QString statusStr,QString topic1,QString topic2,QString topic3);
  112. void MqttConnect(QString ip,QString port,QString name,QString passwd);
  113. private:
  114. QTcpServer *sr;//, *usr;
  115. DataBaseThread *dbThread;
  116. LogThread *logthread;
  117. QTimer *timer;
  118. quint32 CurrentIdx;
  119. quint8 wxcur,ttscur,repcur;
  120. WechartThreads *wxThreads[2][16];
  121. ttsThreads *voiceThreads[16];
  122. ttsThreads *repThread[16],*wssThread[16];
  123. QSqlDatabase db;
  124. WssServer *wssServer;
  125. QMQTT::Client *m_client;
  126. quint16 idx1;
  127. quint16 idx2;
  128. quint16 idx3;
  129. #ifdef SubCenter
  130. bool SyncWorking;
  131. uint SyncTime_T;
  132. uint lastSyncTime_T;
  133. QTcpSocket *syncSo;
  134. #endif
  135. //#ifdef JdxfDb
  136. // ReportSender *wxSender1, *wxSender2;
  137. //#endif
  138. #ifdef SyncIface
  139. SyncChangning *syncThread;
  140. #endif
  141. // SyncChangning *syncThread[16];
  142. };
  143. #endif // USERINFOPROCESSCORE_H