Эх сурвалжийг харах

V2.3.2
1、兼容了ESM8C上位机,修改了传入数据的方式

Apple 2 долоо хоног өмнө
parent
commit
ae76a173ba

+ 3 - 8
SQL/CreateTable_SQLServer.sqlbook

@@ -1,7 +1,7 @@
 -- SQLBook: Code
 -- Active: 1749101395601@@192.1.3.105@1433@EQM_BJ
 -- 创建 tExecPlan 表 (SQL Server)
-IF NOT EXISTS (SELECT 1 FROM sys.tables t WHERE t.name = N'tExecPlan' AND t.schema_id = SCHEMA_ID(N'dbo'))
+
 BEGIN
     CREATE TABLE dbo.tExecPlan (
         IncKey INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
@@ -24,7 +24,6 @@ END
 GO
 -- SQLBook: Code
 -- 创建 tExecPlanConfig 表 (SQL Server)
-IF NOT EXISTS (SELECT 1 FROM sys.tables t WHERE t.name = N'tExecPlanConfig' AND t.schema_id = SCHEMA_ID(N'dbo'))
 BEGIN
     CREATE TABLE dbo.tExecPlanConfig (
         KeyWord INT NOT NULL PRIMARY KEY,
@@ -36,11 +35,7 @@ END
 GO
 -- SQLBook: Code
 -- 创建 tExecPlanTemplate 表 (SQL Server)
-IF DB_ID(N'EQM_CESHI') IS NULL CREATE DATABASE EQM_CESHI;
-GO
-USE EQM_CESHI;
-GO
-IF NOT EXISTS (SELECT 1 FROM sys.tables t WHERE t.name = N'tExecPlanTemplate' AND t.schema_id = SCHEMA_ID(N'dbo'))
+
 BEGIN
     CREATE TABLE dbo.tExecPlanTemplate (
         TemplateName VARCHAR(255) NOT NULL,
@@ -57,5 +52,5 @@ BEGIN
         ActionID INT NULL
     );
 END
-GO
+
 -- SQLBook: Code

+ 13 - 1
TransmitterSwitch/Network/FromMQTT.cpp

@@ -20,10 +20,22 @@ FromMQTT::~FromMQTT()
 }
 
 
+/* 传入MQTT地址和端口 */
+void FromMQTT::setAddrInfo(const QString& ip, int port)
+{
+    m_mqttIP = ip;
+    m_mqttPort = port;
+    m_isReadConfig.store(false);
+}
+
+
 /* 初始化MQTT */
 bool FromMQTT::initMQTT()
 {
-    readConfig();
+    if(m_isReadConfig.load())
+    {
+        readConfig();
+    }
 
     /* 连接MQTT */
     setIPAndPort(m_mqttIP, m_mqttPort);

+ 4 - 0
TransmitterSwitch/Network/FromMQTT.h

@@ -11,6 +11,9 @@ public:
     FromMQTT(QObject* parent = nullptr);
     ~FromMQTT() override;
 
+    /* 传入MQTT地址和端口 */
+    void setAddrInfo(const QString& ip, int port);
+    
     /* 初始化MQTT */
     bool initMQTT();
 
@@ -44,6 +47,7 @@ private:
     const QString m_configName = "/Config.ini";
 
     std::atomic_bool m_isGetWebInfoSuccess{false}; /* 是否获取到WebAPI信息 */
+    std::atomic_bool m_isReadConfig{true};          /* 是否读取配置文件,默认是读取 */
 };
 
 #endif // _FROMMQTT_H_

+ 5 - 0
TransmitterSwitch/TransmitterSwitchInfo.h

@@ -92,10 +92,15 @@ enum class eUserPermission : int
 {
     User_Administrator = 0,         /* 管理员 */
     User_Normal = 1,                /* 普通用户 */
+    User_IsESM8C = 5                /* ESM8C上位机使用 */
 };
 
 /**
  * @brief WebAPI初始化数据
+ *        说明:
+ *          1、userPermission 0-3 表示用户权限,4表示WebAPI地址,,5表示是ESM8C上位机使用,传入的是MQTT地址信息
+ *             url WebAPI地址或MQTT地址
+ *             serverID 服务器ID或MQTT端口
  * 
  */
 struct InitData

+ 5 - 0
TransmitterSwitch/transmitterswitch.cpp

@@ -121,6 +121,11 @@ TransmitterSwitch::~TransmitterSwitch()
 /* 初始化webAPI,重载版 */
 void TransmitterSwitch::initTS(const InitData& data)
 {
+    if(data.userPermission == static_cast<int>(eUserPermission::User_IsESM8C))
+    {
+        /* ESM8C上位机使用MQTT方式获取WebAPI信息 */
+        m_fromMQTT.setAddrInfo(data.url, data.serverID.toInt());
+    }
     m_fromMQTT.initMQTT();
     // setWebAPIInfo(data.url, data.serverID, data.serverKey);
     setWebAPIInfo(m_fromMQTT.m_webAPIUrl, m_fromMQTT.m_webAPIID, data.serverKey);