浏览代码

第一版20201124

hanzhengyi 4 年之前
父节点
当前提交
3f9f724d36
共有 5 个文件被更改,包括 244 次插入0 次删除
  1. 32 0
      h/logthread.h
  2. 104 0
      h/smartlightcommthread.h
  3. 57 0
      h/smartlightcommthread.h.bak
  4. 41 0
      h/smartlightserver.h
  5. 10 0
      h/smartlightshm.h

+ 32 - 0
h/logthread.h

@@ -0,0 +1,32 @@
+#ifndef LOGTHREAD_H
+#define LOGTHREAD_H
+
+#include <QThread>
+#include <QStringList>
+#include <QDate>
+#include <QDir>
+#include <QFile>
+
+class LogThread : public QThread
+{
+    Q_OBJECT
+public:
+    explicit LogThread(QObject *parent = nullptr);
+    void appendData(QString data);
+    void appendWrongData(QString data);
+    void run();
+    void stop();
+
+signals:
+
+public slots:
+
+private:
+    QFile *file,*wfile;
+    QStringList dataList;
+    QStringList wrongList;
+    int day;
+    bool keep;
+};
+
+#endif // LOGTHREAD_H

+ 104 - 0
h/smartlightcommthread.h

@@ -0,0 +1,104 @@
+#ifndef SMARTLIGHTCOMMTHREAD_H
+#define SMARTLIGHTCOMMTHREAD_H
+
+#include <QThread>
+#include <QHostAddress>
+#include <QTcpSocket>
+#include <QString>
+#include <QDateTime>
+#include <QStringList>
+#include <QList>
+#include <QObject>
+
+class SmartLightCommThread : public QThread
+{
+    Q_OBJECT
+public:
+    explicit SmartLightCommThread(qintptr socketDescriptor, QObject *parent = nullptr);
+    ~SmartLightCommThread() override;
+    void run() override;
+    void close_self(QTcpSocket *so);
+    void stop();
+    void readData(QTcpSocket *so);
+    bool checkDataFrame(QTcpSocket *so, QByteArray dat);
+    bool checkDataBody(QTcpSocket *so, QByteArray body);
+    QByteArray mkDataFrame(QByteArray body);
+    QByteArray resetDataFrame(QByteArray body);
+    quint16 chk_crcc(QByteArray buff, int len);
+    void confirm_report(QTcpSocket *so);
+    void reset_command(QString deviceId);
+    void query_parameters_command(QString deviceId,int parameterType, int pseq);
+    void query_parameters_commandf9(QString deviceId,int parameterType);
+    void query_parameters_command_parameter(QString deviceId,int parameterType,int pn,int number,QString dataList);
+    void request_real_time_data_command(QString deviceId,int parameterType);
+    void request_real_time_data_command2(QString deviceId, int parameterType, int pn, int queryNumber, int startPoint);
+    void request_control_command(QString deviceId, int parameterType, int pn, int controlType, int economizeGear);
+    void request_set_parameters_command(QString deviceId, int parameterType, QString tmp);
+    void request_control_command_time(QString deviceId, int parameterType, QString control_time);
+    void request_control_command_no_parameters(QString deviceId, int parameterType);
+    void request_control_command_appointment(QString deviceId, int parameterType, int pn,int configure, int controlType, int economizeGear,QString control_time);
+    void request_historical_data_command(QString deviceId, int parameterType, int pn, int dataFreezingDensity, int dataPoints,QString start_time);
+    void request_set_parameters_communication_command(QString deviceId, int parameterType, int timeOut,int retransmissionsNumber, int realTimeData, int historicalData, int eventData, int heartbeatCycle);
+    void request_set_parameters_ip_command(QString deviceId, int parameterType, int address1,int address2, int address3, int address4, int port, QString apn);
+    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);
+    void request_event_data_command(QString deviceId, int parameterType, int pm, int pn);
+    void check_idx();
+    float get_repValue(int type, QByteArray dat);
+    QString deviceID();
+    void mk_EventList_qry(QString deviceId, quint8 type, quint8 cur, quint8 num);
+    void mk_hisData_qry(QString deviceId, quint16 f_pno, quint16 f_fno, QDateTime t1, QDateTime t2, quint8 sep, quint8 num);
+    int get_fp_byte(int num);
+    quint8 hexstr_to_byte(QString dat);
+    QByteArray mkB01datetime(QDateTime dt);
+    QByteArray mkB02float(float d, int g);
+    QByteArray mkB03integer(int d, int g);
+    QByteArray mkB04integer(int d, int s0);
+    QByteArray mkB05float(float d);
+    QByteArray mkB06float(float d);
+    QByteArray mkB07float(float d);
+    QByteArray mkB08integer(int d);
+    QByteArray mkB09float(float d);
+    QByteArray mkB10integer(int d);
+    QByteArray mkB11double(double d);
+    QByteArray mkB12longlong(long long d);
+    QByteArray mkB13float(float d);
+    QByteArray mkB14double(double d);
+    QByteArray mkB15datetime(QDateTime dt);
+    QByteArray mkB16datetime(QDateTime dt);
+    QByteArray mkB17datetime(QDateTime dt);
+    QByteArray mkB18datetime(QDateTime dt);
+    QByteArray mkB19time(QTime t);
+    QByteArray mkB20date(QDate d);
+    QByteArray mkB21date(QDate d);
+    QByteArray mkB22integer(int d);
+    QByteArray mkB23float(float d);
+    QByteArray mkB24datetime(QDateTime dt);
+    QByteArray mkB25float(float d);
+    QByteArray mkB26float(float d);
+    QByteArray mkB27integer(int d);
+    QByteArray mkB28double(double d, int g);
+
+signals:
+    void CommData(QString deviceid, int dir, QString data);
+    void getEAlarm(QString DeviceCode, int erc, int sta, int arg1, int arg2, int arg3, float value, float v2, QString others, QDateTime t);
+    void getEAnalogValue(QString DeviceCode, int point, float ave, float rtv, QDateTime t, float maxv, QDateTime maxt, float minv, QDateTime mint);
+    void getERealtimeValue(QString DeviceCode, int point, float rtv, QDateTime t);
+    void getNewDev(QString DeviceCode);
+
+public slots:
+
+private:
+    qintptr SocketDescriptor;
+    bool keepcomm;
+    bool WaitEcho;
+    quint16 WaitCount;
+    qint16 DevType;
+    int err_count;
+    QString DeviceID;
+    int ErrorCount[2];
+    int WirelessSignal;
+    int idx;
+    QList<QByteArray> CmdList;
+};
+
+#endif // SMARTLIGHTCOMMTHREAD_H

+ 57 - 0
h/smartlightcommthread.h.bak

@@ -0,0 +1,57 @@
+#ifndef SMARTLIGHTCOMMTHREAD_H
+#define SMARTLIGHTCOMMTHREAD_H
+
+#include <QThread>
+#include <QHostAddress>
+#include <QTcpSocket>
+#include <QString>
+#include <QDateTime>
+#include <QStringList>
+#include <QList>
+
+class SmartLightCommThread : public QThread
+{
+    Q_OBJECT
+public:
+    explicit SmartLightCommThread(qintptr socketDescriptor, QObject *parent = nullptr);
+    ~SmartLightCommThread() override;
+    void run() override;
+    void close_self(QTcpSocket *so);
+    void stop();
+    void readData(QTcpSocket *so);
+    bool checkDataFrame(QTcpSocket *so, QByteArray dat);
+    bool checkDataBody(QTcpSocket *so, QByteArray body);
+    QByteArray mkDataFrame(QByteArray body);
+    quint16 chk_crcc(QByteArray buff, int len);
+    void confirm_report(QTcpSocket *so);
+    void check_idx();
+    float get_repValue(int type, QByteArray dat);
+    QString deviceID();
+    void mk_EventList_qry(QString deviceId, quint8 type, quint8 cur, quint8 num);
+    void mk_hisData_qry(QString deviceId, quint16 f_pno, quint16 f_fno, QDateTime t1, QDateTime t2, quint8 sep, quint8 num);
+    int get_fp_byte(int num);
+
+signals:
+    void CommData(QString deviceid, int dir, QString data);
+    void getEAlarm(QString DeviceCode, int erc, int sta, int arg1, int arg2, int arg3, float value, float v2, QString others, QDateTime t);
+    void getEAnalogValue(QString DeviceCode, int point, float ave, float rtv, QDateTime t, float maxv, QDateTime maxt, float minv, QDateTime mint);
+    void getERealtimeValue(QString DeviceCode, int point, float rtv, QDateTime t);
+    void getNewDev(QString DeviceCode);
+
+public slots:
+
+private:
+    qintptr SocketDescriptor;
+    bool keepcomm;
+    bool WaitEcho;
+    quint16 WaitCount;
+    qint16 DevType;
+    int err_count;
+    QString DeviceID;
+    int ErrorCount[2];
+    int WirelessSignal;
+    int idx;
+    QList<QByteArray> CmdList;
+};
+
+#endif // SMARTLIGHTCOMMTHREAD_H

+ 41 - 0
h/smartlightserver.h

@@ -0,0 +1,41 @@
+#ifndef SMARTLIGHTSERVER_H
+#define SMARTLIGHTSERVER_H
+
+#include <QTcpServer>
+#include <QDateTime>
+#include <QList>
+
+#include "smartlightcommthread.h"
+
+class SmartLightServer : public QTcpServer
+{
+    Q_OBJECT
+public:
+    explicit SmartLightServer(QObject *parent = nullptr);
+    void start();
+    void mk_EventList_qry(QString deviceId, quint8 type, quint8 cur, quint8 num);
+    void mk_ResetList_qry(QString deviceId, int commandType, int parameterType, int pseq);
+    void mk_realtime_qry(QString deviceId, int commandType, int parameterType, int pn, int queryNumber, int startPoint);
+    void mk_set_parameters_qry(QString deviceId, int commandType, int parameterType, QString data_list);
+    void mk_hisData_qry(QString deviceId, quint16 f_pno, quint16 f_fno, QDateTime t1, QDateTime t2, quint8 sep, quint8 num);
+
+signals:
+    void CommData(QString DeviceID, int dir, QString data);
+    void getEAlarm(QString DeviceCode, int erc, int sta, int arg1, int arg2, int arg3, float value, float v2, QString others, QDateTime t);
+    void getEAnalogValue(QString DeviceCode, int point, float ave, float rtv, QDateTime t, float maxv, QDateTime maxt, float minv, QDateTime mint);
+    void getERealtimeValue(QString DeviceCode, int point, float rtv, QDateTime t);
+
+public slots:
+    void incomingConnection(qintptr socketDescriptor) override;
+    void eCommData(QString DeviceID, int dir, QString data);
+    void egetEAlarm(QString DeviceCode, int erc, int sta, int arg1, int arg2, int arg3, float value, float v2, QString others, QDateTime t);
+    void egetEAnalogValue(QString DeviceCode, int point, float ave, float rtv, QDateTime t, float maxv, QDateTime maxt, float minv, QDateTime mint);
+    void egetERealtimeValue(QString DeviceCode, int point, float rtv, QDateTime t);
+    void closeThread();
+
+private:
+    QList<SmartLightCommThread *> threadList;
+
+};
+
+#endif // SMARTLIGHTSERVER_H

+ 10 - 0
h/smartlightshm.h

@@ -0,0 +1,10 @@
+#ifndef SMARTLIGHTSHM_H
+#define SMARTLIGHTSHM_H
+
+#include "../ytSmartLightDog/ytslshm.h"
+#include "../../WebInterface/WebDataCore/WebDataShm.h"
+
+extern SL_Shm *slShm;
+extern WebDataShm *webData;
+
+#endif // SMARTLIGHTSHM_H