hanzhengyi před 4 roky
rodič
revize
1fc14e2d98
5 změnil soubory, kde provedl 196 přidání a 0 odebrání
  1. 36 0
      h/core.h
  2. 41 0
      h/databasethread.h
  3. 35 0
      h/interfaceserver.h
  4. 35 0
      h/interfaceserver.h.autosave
  5. 49 0
      h/interfacethread.h

+ 36 - 0
h/core.h

@@ -0,0 +1,36 @@
+#ifndef CORE_H
+#define CORE_H
+
+#include <QObject>
+#include "smartlightserver.h"
+#include "interfaceserver.h"
+#include "logthread.h"
+#include "wssserver.h"
+#include "databasethread.h"
+
+class Core : public QObject
+{
+    Q_OBJECT
+public:
+    explicit Core(QObject *parent = nullptr);
+    void start();
+
+signals:
+
+public slots:
+    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 sql_log(QString log);
+    void resetRequest(QString deviceID, int commandType, int parameterType, int pseq);
+    void requestRealTimeData(QString deviceID, int commandType, int parameterType, int pn, int queryNumber, int startPoint);
+    void requestSetParameters(QString deviceID, int commandType, int parameterType, QString tmp);
+
+private:
+    SmartLightServer *server;
+    InterfaceServer *intServer;
+    LogThread *logThread;
+    DatabaseThread *dbThread;
+    WssServer *wssServer;
+};
+
+#endif // CORE_H

+ 41 - 0
h/databasethread.h

@@ -0,0 +1,41 @@
+#ifndef DATABASETHREAD_H
+#define DATABASETHREAD_H
+
+#include <QThread>
+#include <QDateTime>
+#include <QDir>
+#include <QFile>
+#include <QSqlDatabase>
+#include <QSqlQuery>
+#include <QVariant>
+#include <QStringList>
+
+class DatabaseThread : public QThread
+{
+    Q_OBJECT
+public:
+    enum {
+        ConfSql = 0,
+        RecSql = 1,
+        StaSql = 2
+    }SqlType;
+    explicit DatabaseThread(QObject *parent = nullptr);
+    ~DatabaseThread();
+    bool db_init();
+    bool had_table(QStringList tblist, QString tbname);
+    void db_load();
+    void appendSql(int type, QString sql);
+    void run();
+    void stop();
+
+signals:
+    void sql_log(QString log);
+public slots:
+
+private:
+    bool keep;
+    QSqlDatabase conf_db, rec_db, sta_db;
+    QStringList ConfSqlList, RecSqlList, StaSqlList;
+};
+
+#endif // DATABASETHREAD_H

+ 35 - 0
h/interfaceserver.h

@@ -0,0 +1,35 @@
+#ifndef INTERFACESERVER_H
+#define INTERFACESERVER_H
+
+#include <QTcpServer>
+#include <QList>
+
+#include "interfacethread.h"
+
+class InterfaceServer : public QTcpServer//参照smartlightserver编写,可用端口55010,已在服务器上注册预留
+{
+    Q_OBJECT
+public:
+    explicit InterfaceServer(QObject *parent = nullptr);
+    void start();
+    void setEchoString(QString CommId, QString EchoString);
+
+signals:
+    void SetResetRequest(QString deviceID, int commandType, QString parameterType, int pseq);
+    void SetRequestRealTimeData(QString deviceID, int commandType, int parameterType, int pn, int queryNumber, int startPoint);
+    void SetRequestSetParameters(QString deviceID, int commandType, int parameterType, QString tmp);
+    void SetCommData(QString deviceID, int dir, QString data);
+
+public slots:
+    void incomingConnection(qintptr socketDescriptor) override;
+    void resetRequest(QString deviceID, int commandType, QString parameterType, int pseq);
+    void requestRealTimeData(QString deviceID, int commandType, int parameterType, int pn, int queryNumber, int startPoint);
+    void requestSetParameters(QString deviceID, int commandType, int parameterType, QString tmp);
+    void CommData(QString deviceID, int dir, QString data);
+    void closeThread();
+
+private:
+    QList<InterfaceThread *> threadList;
+};
+
+#endif // INTERFACESERVER_H

+ 35 - 0
h/interfaceserver.h.autosave

@@ -0,0 +1,35 @@
+#ifndef INTERFACESERVER_H
+#define INTERFACESERVER_H
+
+#include <QTcpServer>
+#include <QList>
+
+#include "interfacethread.h"
+
+class InterfaceServer : public QTcpServer//参照smartlightserver编写,可用端口55010,已在服务器上注册预留
+{
+    Q_OBJECT
+public:
+    explicit InterfaceServer(QObject *parent = nullptr);
+    void start();
+    void setEchoString(QString CommId, QString EchoString);
+
+signals:
+    void SetResetRequest(QString deviceID, int commandType, int parameterType, int pseq);
+    void SetRequestRealTimeData(QString deviceID, int commandType, int parameterType, int pn, int queryNumber, int startPoint);
+    void SetRequestSetParameters(QString deviceID, int commandType, int parameterType, QString tmp);
+    void SetCommData(QString deviceID, int dir, QString data);
+
+public slots:
+    void incomingConnection(qintptr socketDescriptor) override;
+    void resetRequest(QString deviceID, int commandType, int parameterType, int pseq);
+    void requestRealTimeData(QString deviceID, int commandType, int parameterType, int pn, int queryNumber, int startPoint);
+    void requestSetParameters(QString deviceID, int commandType, int parameterType, QString tmp);
+    void CommData(QString deviceID, int dir, QString data);
+    void closeThread();
+
+private:
+    QList<InterfaceThread *> threadList;
+};
+
+#endif // INTERFACESERVER_H

+ 49 - 0
h/interfacethread.h

@@ -0,0 +1,49 @@
+#ifndef INTERFACETHREAD_H
+#define INTERFACETHREAD_H
+
+#include <QThread>
+#include <QHostAddress>
+#include <QTcpSocket>
+#include <QString>
+#include <QDateTime>
+#include <QJsonDocument>
+#include <QJsonObject>
+#include <QJsonArray>
+#include <QJsonValue>
+#include <QVariant>
+#include <QJsonParseError>
+#include <QStringList>
+#include <QList>
+#include <QObject>
+#include <QUuid>
+#include <QRegExp>
+
+class InterfaceThread : public QThread
+{
+    Q_OBJECT
+public:
+    explicit InterfaceThread(qintptr socketDescriptor, QObject *parent = nullptr);
+    ~InterfaceThread() override;
+    void run() override;
+    void setEchoString(QString string);
+    bool chkCmdID(QString id);
+    QString cmdID(){
+        return CmdId;
+    }
+
+signals://根据与平台的协议格式制定
+    void resetRequest(QString deviceID, int commandType, int parameterType, int pseq);
+    void requestRealTimeData(QString deviceID, int commandType, int parameterType, int pn, int queryNumber, int startPoint);
+    void requestSetParameters(QString deviceID, int commandType, int parameterType, QString tmp);
+    void CommData(QString deviceID, int dir, QString data);
+
+public slots:
+
+private:
+    qintptr SocketDescriptor;
+    QString CmdId, EchoString;
+    bool waitEcho;
+    bool getEcho;
+};
+
+#endif // INTERFACETHREAD_H