Explorar el Código

V2.3.3
1、适配了ESM8C上位机程序

Apple hace 2 semanas
padre
commit
057847dd58

+ 7 - 4
TransmitterSwitch/FromSQL/FromWebAPI.cpp

@@ -52,7 +52,7 @@ bool FromWebAPI::initWebApi(const QString& url, const QString& serverID, const Q
     }
     LH_WRITE_LOG(QString("URL:%1").arg(url));
     LH_WRITE_LOG_DEBUG(QString("ServerID:%1").arg(serverID));
-    LH_WRITE_LOG_DEBUG(QString("ServerKey:%1").arg(serverKey));
+    // LH_WRITE_LOG_DEBUG(QString("ServerKey:%1").arg(serverKey));
 
     void* pHttp = nullptr;
     int i = 0;
@@ -390,6 +390,8 @@ bool FromWebAPI::getExecPlanData(int chnID, QList<OnePlanItemInfo>& list)
     // SPDLOG_LOGGER_DEBUG(m_logger,"获取执行计划:\n{}",strRet.toStdString());
     try 
     {
+        // LH_WRITE_LOG_DEBUG(QString::fromStdString(nJson::parse(strRet.toStdString()).dump(4)));
+
         nJson lowerKeyJson = convertJsonKeyToLower(nJson::parse(strRet.toStdString()));
         int retCode = lowerKeyJson["code"].get<int>();
         if(retCode != 0)
@@ -402,11 +404,12 @@ bool FromWebAPI::getExecPlanData(int chnID, QList<OnePlanItemInfo>& list)
         {
             OnePlanItemInfo info;
             info.ChannelID = chnID;
-            info.ChannelName = QString::fromStdString(it["channelName"].get<std::string>());
-            info.onWeekDay = static_cast<enum_WeekDay>(it["onWeekday"].get<int>());
+            std::string strChnName = it["channelName"].is_null() ? "" : it["channelName"].get<std::string>();
+            info.ChannelName = QString::fromStdString(strChnName);
+            info.onWeekDay = static_cast<enum_WeekDay>(it["onweekday"].get<int>());
             info.onDateTime.setDate(QDate::fromString(QString::fromStdString(it["ondate"].get<std::string>()), "yyyy-MM-dd"));
             info.onDateTime.setTime(QTime::fromString(QString::fromStdString(it["ontime"].get<std::string>()), "hh:mm:ss"));
-            info.offWeekDay = static_cast<enum_WeekDay>(it["offWeekday"].get<int>());
+            info.offWeekDay = static_cast<enum_WeekDay>(it["offweekday"].get<int>());
             info.offDateTime.setDate(QDate::fromString(QString::fromStdString(it["offdate"].get<std::string>()), "yyyy-MM-dd"));
             info.offDateTime.setTime(QTime::fromString(QString::fromStdString(it["offtime"].get<std::string>()), "hh:mm:ss"));
 

+ 19 - 6
TransmitterSwitch/transmitterswitch.cpp

@@ -451,16 +451,29 @@ void TransmitterSwitch::setTrackCallBack(trackCallBack cb)
 /* 设置WebAPI路径,不获取数据,不创建卡片 */
 void TransmitterSwitch::setWebAPIInfoOnly(const InitData& data)
 {
-    if(m_fromWebAPI == nullptr)
-    {
-        m_fromWebAPI = new FromWebAPI;
-    }
     if(data.url.isEmpty() || data.serverID.isEmpty() || data.serverKey.isEmpty())
     {
-        LH_WRITE_ERROR("WebAPI info is empty");
+        LH_WRITE_ERROR("MQTT info is empty");
         return;
     }
-    if(!m_fromWebAPI->initWebApi(data.url, data.serverID, data.serverKey))
+    /* 设置权限 */
+
+    // setUserPermission(data.userPermission);
+    
+    /* 初始化MQTT */
+    if(data.userPermission == static_cast<int>(eUserPermission::User_IsESM8C))
+    {
+        /* ESM8C上位机使用MQTT方式获取WebAPI信息 */
+        m_fromMQTT.setAddrInfo(data.url, data.serverID.toInt());
+        m_fromMQTT.initMQTT();
+    }
+
+    if(m_fromWebAPI == nullptr)
+    {
+        m_fromWebAPI = new FromWebAPI;
+    }
+
+    if(!m_fromWebAPI->initWebApi(m_fromMQTT.m_webAPIUrl, m_fromMQTT.m_webAPIID, data.serverKey))
     {
         LH_WRITE_ERROR("WebAPI init failed");
         return;