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