smartlightcommthread.h 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #ifndef SMARTLIGHTCOMMTHREAD_H
  2. #define SMARTLIGHTCOMMTHREAD_H
  3. #include <QThread>
  4. #include <QHostAddress>
  5. #include <QTcpSocket>
  6. #include <QString>
  7. #include <QDateTime>
  8. #include <QStringList>
  9. #include <QList>
  10. #include <QObject>
  11. class SmartLightCommThread : public QThread
  12. {
  13. Q_OBJECT
  14. public:
  15. explicit SmartLightCommThread(qintptr socketDescriptor, QObject *parent = nullptr);
  16. ~SmartLightCommThread() override;
  17. void run() override;
  18. void close_self(QTcpSocket *so);
  19. void stop();
  20. void readData(QTcpSocket *so);
  21. bool checkDataFrame(QTcpSocket *so, QByteArray dat);
  22. bool checkDataBody(QTcpSocket *so, QByteArray body);
  23. QByteArray mkDataFrame(QByteArray body);
  24. QByteArray resetDataFrame(QByteArray body);
  25. quint16 chk_crcc(QByteArray buff, int len);
  26. void confirm_report(QTcpSocket *so);
  27. void reset_command(QString deviceId);
  28. void query_parameters_command(QString deviceId,int parameterType, int pseq);
  29. void query_parameters_commandf9(QString deviceId,int parameterType);
  30. void query_parameters_command_parameter(QString deviceId,int parameterType,int pn,int number,QString dataList);
  31. void request_real_time_data_command(QString deviceId,int parameterType);
  32. void request_real_time_data_command2(QString deviceId, int parameterType, int pn, int queryNumber, int startPoint);
  33. void request_control_command(QString deviceId, int parameterType, int pn, int controlType, int economizeGear);
  34. void request_set_parameters_command(QString deviceId, int parameterType, QString tmp);
  35. void request_control_command_time(QString deviceId, int parameterType, QString control_time);
  36. void request_control_command_no_parameters(QString deviceId, int parameterType);
  37. void request_control_command_appointment(QString deviceId, int parameterType, int pn,int configure, int controlType, int economizeGear,QString control_time);
  38. void request_historical_data_command(QString deviceId, int parameterType, int pn, int dataFreezingDensity, int dataPoints,QString start_time);
  39. void request_set_parameters_communication_command(QString deviceId, int parameterType, int timeOut,int retransmissionsNumber, int realTimeData, int historicalData, int eventData, int heartbeatCycle);
  40. void request_set_parameters_ip_command(QString deviceId, int parameterType, int address1,int address2, int address3, int address4, int port, QString apn);
  41. void request_set_parameters_event_detection_command(QString deviceId, int parameterType, int excessiveCurrent,int excessiveCurrentRecovery,int lowCurrent, int lowCurrentRecovery, int capacitorFailure, int capacitorFailureRecovery, int lampFailure, int lampFailureRecovery, int fuseFailure, int fuseFailureRecovery);
  42. void request_event_data_command(QString deviceId, int parameterType, int pm, int pn);
  43. void check_idx();
  44. float get_repValue(int type, QByteArray dat);
  45. QString deviceID();
  46. void mk_EventList_qry(QString deviceId, quint8 type, quint8 cur, quint8 num);
  47. void mk_hisData_qry(QString deviceId, quint16 f_pno, quint16 f_fno, QDateTime t1, QDateTime t2, quint8 sep, quint8 num);
  48. int get_fp_byte(int num);
  49. quint8 hexstr_to_byte(QString dat);
  50. QByteArray mkB01datetime(QDateTime dt);
  51. QByteArray mkB02float(float d, int g);
  52. QByteArray mkB03integer(int d, int g);
  53. QByteArray mkB04integer(int d, int s0);
  54. QByteArray mkB05float(float d);
  55. QByteArray mkB06float(float d);
  56. QByteArray mkB07float(float d);
  57. QByteArray mkB08integer(int d);
  58. QByteArray mkB09float(float d);
  59. QByteArray mkB10integer(int d);
  60. QByteArray mkB11double(double d);
  61. QByteArray mkB12longlong(long long d);
  62. QByteArray mkB13float(float d);
  63. QByteArray mkB14double(double d);
  64. QByteArray mkB15datetime(QDateTime dt);
  65. QByteArray mkB16datetime(QDateTime dt);
  66. QByteArray mkB17datetime(QDateTime dt);
  67. QByteArray mkB18datetime(QDateTime dt);
  68. QByteArray mkB19time(QTime t);
  69. QByteArray mkB20date(QDate d);
  70. QByteArray mkB21date(QDate d);
  71. QByteArray mkB22integer(int d);
  72. QByteArray mkB23float(float d);
  73. QByteArray mkB24datetime(QDateTime dt);
  74. QByteArray mkB25float(float d);
  75. QByteArray mkB26float(float d);
  76. QByteArray mkB27integer(int d);
  77. QByteArray mkB28double(double d, int g);
  78. signals:
  79. void CommData(QString deviceid, int dir, QString data);
  80. void getEAlarm(QString DeviceCode, int erc, int sta, int arg1, int arg2, int arg3, float value, float v2, QString others, QDateTime t);
  81. void getEAnalogValue(QString DeviceCode, int point, float ave, float rtv, QDateTime t, float maxv, QDateTime maxt, float minv, QDateTime mint);
  82. void getERealtimeValue(QString DeviceCode, int point, float rtv, QDateTime t);
  83. void getNewDev(QString DeviceCode);
  84. public slots:
  85. private:
  86. qintptr SocketDescriptor;
  87. bool keepcomm;
  88. bool WaitEcho;
  89. quint16 WaitCount;
  90. qint16 DevType;
  91. int err_count;
  92. QString DeviceID;
  93. int ErrorCount[2];
  94. int WirelessSignal;
  95. int idx;
  96. QList<QByteArray> CmdList;
  97. };
  98. #endif // SMARTLIGHTCOMMTHREAD_H