From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期二, 30 八月 2022 09:37:38 +0800 Subject: [PATCH] 合并了IOS的代码 --- ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceSearchForm.cs | 136 ++++++++++++++++++++++++-------------------- 1 files changed, 74 insertions(+), 62 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceSearchForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceSearchForm.cs index 7af7f6f..ead44e9 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceSearchForm.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceSearchForm.cs @@ -15,7 +15,7 @@ /// <summary> /// 鏂颁笂鎶ョ殑璁惧 /// </summary> - private Dictionary<string, List<CommonDevice>> dicNewDevice = new Dictionary<string, List<CommonDevice>>(); + private List<CommonDevice> listNewDevice = new List<CommonDevice>(); /// <summary> /// 鏄剧ず璁惧绾跨▼鏄惁宸茬粡寮�鍚� /// </summary> @@ -106,6 +106,7 @@ //杩涘害鏉� this.btnProgressBar = new ProgressRowBar(559, 29); + btnProgressBar.ProgressBarGoback = false; btnProgressBar.Gravity = Gravity.CenterHorizontal; btnProgressBar.Y = Application.GetRealHeight(861); bodyFrameLayout.AddChidren(btnProgressBar); @@ -140,7 +141,7 @@ //鍋滄鎺ユ敹 this.realGateway.GwResDataAction -= this.AdjustGatewayResultData; - Application.RunOnMainThread(() => + HdlThreadLogic.Current.RunMain(() => { this.CloseForm(); }); @@ -154,50 +155,39 @@ return; } - lock (this.dicNewDevice) + var jobject = Newtonsoft.Json.Linq.JObject.Parse(resultData); + CommonDevice.DeviceInfoData info = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.DeviceInfoData>(jobject["Data"].ToString()); + if (info.DriveCode != 0) { - var jobject = Newtonsoft.Json.Linq.JObject.Parse(resultData); - CommonDevice.DeviceInfoData info = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.DeviceInfoData>(jobject["Data"].ToString()); - if (info.DriveCode != 0) - { - //涓嶉渶瑕佽櫄鎷熻澶� - return; - } - //鏍规嵁璁惧Type鍒涘缓瀵瑰簲鐨勮澶囧璞� - var device = Common.LocalDevice.Current.NewDeviceObjectByDeviceId((DeviceType)jobject.Value<int>("Device_ID")); - if (device == null) - { - return; - } - device.DeviceInfo = info; - - //缁欐柊璁惧璁剧疆涓婚敭灞炴�� - Common.LocalDevice.Current.SetNewDeviceMainKeys(device, jobject); - device.CurrentGateWayId = this.realGateway.GwId; - //灏咲eviceInfo鐨勫睘鎬ц缃埌涓诲睘鎬т腑 - Common.LocalDevice.Current.SetDeviceInfoToMain(device, device); - - //娣诲姞璁惧鐨勭紦瀛� - device.IsOnline = 1; - Common.LocalDevice.Current.AddDeviceToMemory(ref device); - - if (this.dicNewDevice.ContainsKey(device.DeviceAddr) == false) - { - this.dicNewDevice[device.DeviceAddr] = new List<CommonDevice>(); - } - - //鍒锋柊瓒呮椂鏃堕棿 - this.waitDeviceTimeOut = 20; - - //鑾峰彇璁惧鐨勫浐瀹氬睘鎬� - HdlDeviceFixedAttributeLogic.Current.SetAllFixedAttributeToDevice(device); - - //涓嶉渶瑕�200绔偣鐨勯偅涓澶� 2020.01.13 鍙樻洿:ota涔熷姞杩涙潵 - this.dicNewDevice[device.DeviceAddr].Add(device); - - //鏈夋柊璁惧锛屽紑鍚樉绀鸿澶囦俊鎭晫闈㈢殑绾跨▼(閲岄潰浼氱瓑寰呬笁绉掕繖鏍�) - this.StartShowDeviceAddSuccessFormThread(); + //涓嶉渶瑕佽櫄鎷熻澶� + return; } + //鏍规嵁璁惧Type鍒涘缓瀵瑰簲鐨勮澶囧璞� + var device = Common.LocalDevice.Current.NewDeviceObjectByDeviceId((DeviceType)jobject.Value<int>("Device_ID"), jobject.Value<int>("Epoint")); + if (device == null) + { + return; + } + device.DeviceInfo = info; + + //缁欐柊璁惧璁剧疆涓婚敭灞炴�� + Common.LocalDevice.Current.SetNewDeviceMainKeys(device, jobject); + device.CurrentGateWayId = this.realGateway.GwId; + //灏咲eviceInfo鐨勫睘鎬ц缃埌涓诲睘鎬т腑 + Common.LocalDevice.Current.SetDeviceInfoToMain(device, device); + + //娣诲姞璁惧鐨勭紦瀛� + device.IsOnline = 1; + Common.LocalDevice.Current.AddDeviceToMemory(ref device); + + //鍒锋柊瓒呮椂鏃堕棿 + this.waitDeviceTimeOut = 20; + + //涓嶉渶瑕�200绔偣鐨勯偅涓澶� 2020.01.13 鍙樻洿:ota涔熷姞杩涙潵 + this.listNewDevice.Add(device); + + //鏈夋柊璁惧锛屽紑鍚樉绀鸿澶囦俊鎭晫闈㈢殑绾跨▼(閲岄潰浼氱瓑寰呬笁绉掕繖鏍�) + this.StartShowDeviceAddSuccessFormThread(); } #endregion @@ -228,25 +218,38 @@ this.realGateway.GwResDataAction -= this.AdjustGatewayResultData; System.Threading.Thread.Sleep(200); - //鐩墠灏卞紕涓�涓� - Application.RunOnMainThread(() => + var listDevice = new List<CommonDevice>(); + for (int i = 0; i < this.listNewDevice.Count; i++) { - foreach (var listDevice in this.dicNewDevice.Values) + var device = this.listNewDevice[i]; + if (device.DeviceAddr != this.listNewDevice[0].DeviceAddr) { - //閲嶆柊鍙樻洿UI - foreach (var device in listDevice) - { - if (device is OTADevice) - { - continue; - } - device.IconPath = string.Empty; - device.ReSave(); - } - //鏄剧ず璁惧淇℃伅鐢婚潰 - this.ShowDeviceAddSuccessForm(listDevice); - break; + continue; } + listDevice.Add(device); + //閲嶆柊鍙樻洿UI + if (device is OTADevice) + { + continue; + } + device.IconPath = string.Empty; + device.ReSave(); + + //璁剧疆璁惧鍔熻兘绫诲瀷 (涓嶈兘鍦ㄦ帴鏀跺洖璺殑鍦版柟鍐欏叆,涓嶇劧缃戝叧鍙兘浼氳秴璐熻嵎) + Common.LocalDevice.Current.RefreshDeviceFunctionType(device, device, true); + System.Threading.Thread.Sleep(200); + //鑾峰彇璁惧鐨勫浐瀹氬睘鎬� + if (HdlDeviceFixedAttributeLogic.Current.SetAllFixedAttributeToDevice(device) == true) + { + System.Threading.Thread.Sleep(200); + } + } + + //鐩墠灏卞紕涓�涓� + HdlThreadLogic.Current.RunMain(() => + { + //鏄剧ず璁惧淇℃伅鐢婚潰 + this.ShowDeviceAddSuccessForm(listDevice); }); }); } @@ -319,7 +322,7 @@ timeCount = 0; } } - Application.RunOnMainThread(() => + HdlThreadLogic.Current.RunMain(() => { if (btnRound != null) { @@ -443,6 +446,15 @@ else if (topic == gatewayId + "/DeviceInComingRespon") { this.topTimeOut = topMaxTime; + + //璁惧鍏ョ綉鏃�,鏈夋椂鍊欑綉鍏充細涓婃姤铏氭嫙璁惧 + var jobject = Newtonsoft.Json.Linq.JObject.Parse(resultData); + CommonDevice.DeviceInfoData info = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice.DeviceInfoData>(jobject["Data"].ToString()); + if (info.DriveCode != 0) + { + //涓嶉渶瑕佽櫄鎷熻澶� + return 0; + } //缃戝叧鏈�缁堜笂鎶ヨ妭鐐硅澶囦俊鎭� this.btnProgressBar.SetValue(6, 6); return 1; @@ -472,7 +484,7 @@ { //鍝嶅簲瓒呮椂,璇烽噸鏂板叆缃� this.ShowMassage(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.uResponseTimeoutsAndReAccessNetwork)); - Application.RunOnMainThread(() => + HdlThreadLogic.Current.RunMain(() => { //鍏抽棴鐣岄潰 this.CloseForm(); -- Gitblit v1.8.0