From 0a11352dffeb8d5f31dd40b9728fe1abf4537f04 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期五, 01 九月 2023 18:06:45 +0800
Subject: [PATCH] 2023年09月01日18:06:42

---
 HDL_ON/DAL/DriverLayer/Control.cs |   45 ++++++++++++++++++++++++++++++++++++---------
 1 files changed, 36 insertions(+), 9 deletions(-)

diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs
index e60e1ae..85737d2 100644
--- a/HDL_ON/DAL/DriverLayer/Control.cs
+++ b/HDL_ON/DAL/DriverLayer/Control.cs
@@ -1,6 +1,7 @@
 锘縰sing System;
 using System.Collections.Generic;
 using System.Text;
+using HDL_ON.DAL.Mqtt;
 using HDL_ON.DAL.Server;
 using HDL_ON.Entity;
 using HDL_ON.UI;
@@ -173,7 +174,16 @@
                             MainPage.Log($"缃戝叧浜戠鍦ㄧ嚎锛屽埛鏂拌澶囩姸鎬�");
                             new System.Threading.Thread(() =>
                             {
-                                System.Threading.Thread.Sleep(1000);
+                                int count = 20;
+                                while (true)
+                                {
+                                    System.Threading.Thread.Sleep(500);
+                                    if (MqttClient.isSubscribeSuccess || count<1)
+                                    {
+                                        break;
+                                    }
+                                    count--;
+                                }
                                 FunctionList.List.ReadAllFunctionStatus();
                             })
                             { IsBackground = true, Priority = System.Threading.ThreadPriority.AboveNormal }.Start();
@@ -251,6 +261,7 @@
         /// </summary>
         public void OpenTcpClent()
         {
+            return;
             if (myTcpClient == null)
             {
                 myTcpClient = new Control_TcpClient(reportIp);
@@ -325,6 +336,7 @@
         /// </summary>
         public void LoginGateway()
         {
+            return;//tcp鎺у埗瀛樺湪闂锛屼絾鏄厛涓嶇敤tcp鎺у埗浜嗭紝瑕佺粡杩囨祴璇曞厛  2023-07-29 10:14:32
             if (loginGatewayThread == null)
             {
                 loginGatewayThread = new System.Threading.Thread(() =>
@@ -524,7 +536,7 @@
                         var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ControlFunctionTopic, functionControlDataJson);
                         new Control_Udp().SendLocalHdlLinkData(sendBytes, functionControlDataObj.id, resend);
                         MainPage.Log($"鏈湴閫氳 鍙戦�丠DL-Link鏁版嵁:{functionControlDataJson}");
-                            Ins.myTcpClient.SendMessage(sendBytes);
+                            //Ins.myTcpClient.SendMessage(sendBytes);
                     }
                 }
                 //杩滅▼閫氳
@@ -614,6 +626,10 @@
             {
                 foreach (var temp in functions)
                 {
+                    if((temp.trait_on_off.state.ToString() ==  "on" && open)|| temp.trait_on_off.state.ToString() == "off"&& !open)
+                    {
+                        continue;
+                    }
                     var apiControlData = temp.GetApiControlData(d);
                     actionObjs.Add(apiControlData);
                     count++;
@@ -625,7 +641,10 @@
                         System.Threading.Thread.Sleep(100);
                     }
                 }
-                var pack = pm.ControlDevice(actionObjs);
+                if (actionObjs.Count > 0)
+                {
+                    var pack = pm.ControlDevice(actionObjs);
+                }
             }
         }
 
@@ -851,7 +870,7 @@
                         },
                     time_stamp = Utlis.GetTimestamp()
                 };
-                var aLinkJson = Newtonsoft.Json.JsonConvert.SerializeObject(aLinkData);
+                var aLinkJson = JsonConvert.SerializeObject(aLinkData);
                 var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ControlScene, aLinkJson);
                 new Control_Udp().SendLocalHdlLinkData(sendBytes, aLinkData.id, 0);
             }
@@ -1000,7 +1019,7 @@
 
                 if (receiveObj.Topic == CommunicationTopic.ct.HeartBeat + "_reply")
                 {
-                    Ins.myTcpClient.ClearHeartBeatLog();
+                    //Ins.myTcpClient.ClearHeartBeatLog();
                     MainPage.Log("tcp蹇冭烦鍥炲");
                     return null;
                 }
@@ -1096,7 +1115,7 @@
                         Ins.IsLocalEncrypt = device.isLocalEncrypt;
                         //MainPage.Log("缃戝叧鏈湴鍔犲瘑鐘舵�侊細" + device.local_encrypt.ToString());
                         //鐧诲綍缃戝叧Tcp
-                        OpenTcpClent();
+                        //OpenTcpClent();
 
 
                     }
@@ -1198,7 +1217,7 @@
 
 
         /// <summary>
-        /// 鏇存柊璁惧鐘舵��
+        /// 鏇存柊缇ゆ帶璁惧鐘舵��
         /// A鍗忚鏁版嵁
         /// </summary>
         public void UpdataGroupControlStatus(string revString, byte[] usefulBytes, bool isCloudData = false)
@@ -1260,7 +1279,7 @@
             //    return;
             //}
 
-            var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<AlinkFunctionStatusObj>(revString);
+            var temp = JsonConvert.DeserializeObject<AlinkFunctionStatusObj>(revString);
             if (temp != null)
             {
                 Control_Udp.ReceiveRepeatManager(temp.id, usefulBytes);
@@ -1317,7 +1336,11 @@
                         {
                             localFunction.time_stamp = temp.time_stamp;
                             localFunction.SetAttrState(attr.key, attr.value);
-
+                            
+                        }
+                        if(localFunction.spk == SPK.AirSwitchP3)
+                        {
+                            localFunction.online = updateTemp.online;
                         }
 
                         //鏇存柊鐣岄潰鐘舵��
@@ -1337,6 +1360,10 @@
                                     EnergyMainPage.UpdataStatus(localFunction);
                                 }
                                 break;
+                            case SPK.AirSwitchP3:
+                                AirSwitchP3Page.UpdataState(localFunction);
+                                AirSwitchP3SubloopEnergyPage.UpdataStatus(localFunction);
+                                break;
                             case SPK.ElectricEnergy:
                                 EnergyMainPage.UpdataStatus(localFunction);
                                 break;

--
Gitblit v1.8.0