From f23ad1b3f9f6193f35f72104d690b21dc67d5c1f Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期一, 06 七月 2020 12:35:25 +0800
Subject: [PATCH] 去掉了访问外网的异步

---
 ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs |   76 ++++++++++++++------------------------
 1 files changed, 28 insertions(+), 48 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs
index c470209..64c7cd3 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/SafetyManagementMainForm.cs
@@ -534,79 +534,59 @@
             //浠庤澶囧垪琛ㄤ腑鑾峰彇鍦ㄧ嚎鐘舵��
             HdlThreadLogic.Current.RunThread(() =>
             {
-                //棣栧厛鑾峰彇杩欎簺浼犳劅鍣ㄦ墍鍦ㄧ殑缃戝叧
-                var listWay = new List<ZbGateway>();
                 foreach (var device in listDevice)
-                {
-                    ZbGateway realWay = null;
-                    //鏄惁瀛樺湪鐪熷疄鐗╃悊缃戝叧
-                    if (HdlGatewayLogic.Current.GetRealGateway(ref realWay, device.CurrentGateWayId) == false)
-                    {
-                        continue;
-                    }
-                    listWay.Add(realWay);
-                }
-                foreach (var zbway in listWay)
                 {
                     if (this.Parent == null)
                     {
                         //鐣岄潰鍏抽棴
                         return;
                     }
-                    int statu = 0;
-                    var list = Common.LocalDevice.Current.GetDeviceListFromGateway(zbway, ref statu, false, ShowErrorMode.NO);
-                    if (statu != -1)
+                    var deviceInfo = Common.LocalDevice.Current.ReadDeviceEpointDeviceInfo(device);
+                    if (deviceInfo != null)
                     {
-                        for (int i = 0; i < list.Count; i++)
-                        {
-                            //璁剧疆璁惧鍦ㄧ嚎鐘舵��
-                            this.ReceiveDeviceStatuPush(list[i]);
-                        }
+                        //璁剧疆璁惧鍦ㄧ嚎鐘舵��
+                        this.ReceiveDeviceStatuPush(device, deviceInfo);
                     }
+                    System.Threading.Thread.Sleep(50);
                 }
-            });
+            }, ShowErrorMode.NO);
         }
 
         /// <summary>
         /// 鎺ュ彈璁惧鍦ㄧ嚎鎺ㄩ��
         /// </summary>
         /// <param name="device"></param>
-        private void ReceiveDeviceStatuPush(CommonDevice device)
+        private void ReceiveDeviceStatuPush(CommonDevice device, CommonDevice.DeviceInfoData deviceInfo)
         {
             if (this.Parent == null)
             {
                 //鐣岄潰鍏抽棴
                 return;
             }
-
-            lock (objOnlineLock)
+            string mainkeys = Common.LocalDevice.Current.GetDeviceMainKeys(device);
+            if (this.dicSensorStatuView.ContainsKey(mainkeys) == true)
             {
-                string mainkeys = Common.LocalDevice.Current.GetDeviceMainKeys(device);
-                if (this.dicSensorStatuView.ContainsKey(mainkeys) == true)
+                CommonDevice Loacldevice = Common.LocalDevice.Current.GetDevice(mainkeys);
+                if (Loacldevice == null)
                 {
-                    CommonDevice Loacldevice = Common.LocalDevice.Current.GetDevice(mainkeys);
-                    if (Loacldevice == null)
-                    {
-                        return;
-                    }
-                    //鍦ㄧ嚎鐘舵�佷竴鏍风殑璇濓紝涓嶉渶瑕佸埛鏂�
-                    if (Loacldevice.IsOnline == device.IsOnline)
-                    {
-                        return;
-                    }
-                    //淇濆瓨鐘舵��
-                    Loacldevice.IsOnline = device.IsOnline;
-                    Loacldevice.ReSave();
-
-                    //鍥犱负杩欐槸鎺ㄩ�佽繃鏉ョ殑锛屾垜涓嶄繚璇侀偅涓�鐬棿杩欎釜涓滆タ浼氫笉浼氳绉婚櫎
-                    var control = this.dicSensorStatuView[mainkeys];
-                    Application.RunOnMainThread(() =>
-                    {
-                        //璁剧疆鎺т欢鐨勫湪绾跨姸鎬佹枃鏈晥鏋�
-                        bool bolOnline = Common.LocalDevice.Current.CheckDeviceIsOnline(device);
-                        control?.SetOnlineStatu(bolOnline);
-                    });
+                    return;
                 }
+                //鍦ㄧ嚎鐘舵�佷竴鏍风殑璇濓紝涓嶉渶瑕佸埛鏂�
+                if (Loacldevice.IsOnline == deviceInfo.IsOnline)
+                {
+                    return;
+                }
+                //淇濆瓨鐘舵��
+                Loacldevice.IsOnline = deviceInfo.IsOnline;
+
+                //鍥犱负杩欐槸鎺ㄩ�佽繃鏉ョ殑锛屾垜涓嶄繚璇侀偅涓�鐬棿杩欎釜涓滆タ浼氫笉浼氳绉婚櫎
+                var control = this.dicSensorStatuView[mainkeys];
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //璁剧疆鎺т欢鐨勫湪绾跨姸鎬佹枃鏈晥鏋�
+                    bool bolOnline = Common.LocalDevice.Current.CheckDeviceIsOnline(device);
+                    control?.SetOnlineStatu(bolOnline);
+                });
             }
         }
 

--
Gitblit v1.8.0