From 7b43f0f5c5dca88576efc0bb51bf95b523de90c9 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期五, 10 七月 2020 11:33:06 +0800 Subject: [PATCH] 2020-07-10 1.修复窗帘定时器发送控制失败问题。 --- Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs | 140 +++++++++++++++++++++++++++++++++++----------- 1 files changed, 105 insertions(+), 35 deletions(-) diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs index e612be7..b84d940 100644 --- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs +++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs @@ -77,7 +77,7 @@ }); } } catch (Exception ex) { - Console.WriteLine (ex.Message); + Utlis.WriteLine (ex.Message); } finally { Application.RunOnMainThread (() => { MainPage.Loading.Hide (); @@ -88,7 +88,7 @@ ItemButton.MouseUpEventHandler += (sender, e) => { Action action = () => { Application.RunOnMainThread (() => { - MainPage.Loading.Start ("please wait..."); + MainPage.Loading.Start ("Please wait..."); }); System.Threading.Tasks.Task.Run (() => { try { @@ -98,7 +98,7 @@ InitDevcieRow (alexaDeviceLista, bodyView); }); } catch (Exception ex) { - Console.WriteLine (ex.Message); + Utlis.WriteLine (ex.Message); } finally { Application.RunOnMainThread (() => { MainPage.Loading.Hide (); @@ -111,7 +111,7 @@ System.Threading.Tasks.Task.Factory.StartNew (() => { try { Application.RunOnMainThread (() => { - MainPage.Loading.Start ("please wait..."); + MainPage.Loading.Start ("Please wait..."); }); foreach (var newDevicePath in roomDeviceFilePathList) { var common = Newtonsoft.Json.JsonConvert.DeserializeObject<Common> (CommonPage.MyEncodingUTF8.GetString (IO.FileUtils.ReadFile (newDevicePath))); @@ -122,7 +122,11 @@ if (common != null) { var oldDevice = alexaDeviceLista.Find ((obj) => obj.SubnetID == common.SubnetID && obj.DeviceID == common.DeviceID && obj.LoopID == common.LoopID && obj.DeviceType == common.Type.ToString ()); if (oldDevice == null) { - AddDevice (common); + var isSuccess = AddDevice (common); + if (!isSuccess) { + //璺冲嚭寰幆 + break; + } } } } @@ -131,7 +135,7 @@ if (!roomDeviceFilePathList.Contains (oldDevicePath)) { DelDevice (oldDevice.Id); - Console.WriteLine ("delDevice " + oldDevice.DeviceName); + Utlis.WriteLine ("delDevice " + oldDevice.DeviceName); } } @@ -141,7 +145,7 @@ var oldScene = alexaSceneList.Find ((obj) => obj.SceneName == tempScene.Name); if (oldScene == null) { int sceneDeviceCount = tempScene.DeviceFilePathList.Count; - var uploadScene = new SceneAndDeviceList () { MAC = UserConfig.Instance.GatewayMAC, RegionID = UserConfig.Instance.CurrentRegion.RegionID, SceneName = tempScene.Name }; + var uploadScene = new SceneAndDeviceList () { MAC = UserConfig.Instance.GatewayMAC, RegionID = UserConfig.Instance.CurrentRegion.Id, SceneName = tempScene.Name }; byte [] replyBytes = null; if (!tempScene.busScene) { @@ -356,7 +360,11 @@ } } - AddScene (uploadScene); + var isSuccess = AddScene (uploadScene); + if (!isSuccess) { + //璺冲嚭寰幆 + break; + } } } @@ -372,7 +380,7 @@ }); } catch (Exception ex) { - Console.WriteLine (ex.Message); + Utlis.WriteLine (ex.Message); } finally { Application.RunOnMainThread (() => { MainPage.Loading.Hide (); @@ -384,7 +392,7 @@ System.Threading.Tasks.Task.Factory.StartNew (() => { try { Application.RunOnMainThread (() => { - MainPage.Loading.Start ("please wait..."); + MainPage.Loading.Start ("Please wait..."); }); var tempRoom = new Room (); foreach (var device in alexaDeviceLista) {//鐗规畩澶勭悊鏈嶅姟鍣ㄤ笌鏈湴璁惧绫诲瀷涓嶄竴鏍风殑璁惧 @@ -415,7 +423,7 @@ userDeviceListPage.ShowPage (action, saveAction); }); } catch (Exception ex) { - Console.WriteLine (ex.Message); + Utlis.WriteLine (ex.Message); } finally { Application.RunOnMainThread (() => { MainPage.Loading.Hide (); @@ -432,11 +440,15 @@ public List<UpdateDeviceObj> ReadDeviceList () { var deviceList = new List<UpdateDeviceObj> (); - var requestObj = new DeviceByRegionListObj () { RegionID = UserConfig.Instance.CurrentRegion.RegionID }; + var requestObj = new GetDeviceListObj () { RegionID = UserConfig.Instance.CurrentRegion.Id }; var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); - var revertObj = MainPage.RequestHttps ("DeviceByRegionList", requestJson); - if (revertObj.StateCode == "SUCCESS") { - deviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<UpdateDeviceObj>> (revertObj.ResponseData.ToString()); + var revertObj = MainPage.RequestHttps (API.GetDeviceList, requestJson); + if (revertObj.StateCode.ToUpper () == "SUCCESS") { + deviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<UpdateDeviceObj>> (revertObj.ResponseData.ToString ()); + } else { + //2020-06-29 寮圭獥鎻愮ず閿欒 + + } return deviceList; } @@ -446,8 +458,8 @@ /// </summary> public bool AddDevice (Common device) { - var uploadDevice = new AlexaDevice () { - RegionID = UserConfig.Instance.CurrentRegion.RegionID, MAC = UserConfig.Instance.GatewayMAC.Replace (".", ""), + var uploadDevice = new AlexaDeviceObj () { + RegionID = UserConfig.Instance.CurrentRegion.Id, MAC = UserConfig.Instance.GatewayMAC.Replace (".", ""), DeviceName = device.Name, DeviceID = device.DeviceID, SubnetID = device.SubnetID, LoopID = device.LoopID, DeviceType = device.Type.ToString () }; if (device.Type.ToString () == "CurtainModel") { @@ -457,25 +469,69 @@ } else if (device.Type.ToString () == "ACInfrared") { uploadDevice.DeviceType = "HVAC"; } - var requestObj = new UploadDevicesObj () { Device = uploadDevice }; - var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); - var revertObj = MainPage.RequestHttps ("UploadDevices", requestJson); - if (revertObj.StateCode == "SUCCESS") { + //var requestObj = new UploadDevicesObj () { Device = uploadDevice }; + var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (uploadDevice); + var revertObj = MainPage.RequestHttps (API.UploadDevices, requestJson); + if (revertObj.StateCode.ToUpper() == "SUCCESS") { return true; + }else if (revertObj.StateCode == "Exist") { + Application.RunOnMainThread (() => { + MainPage.AddTip (ErrorCode.AddFailed + " " + ErrorCode.NameExist + " ( " + device.Name + " )"); + }); + return true; + } else { + //2020-06-29 寮瑰嚭鎻愮ず閿欒 + ShowUploadDevicesInfo (revertObj.StateCode); } return false; } /// <summary> + /// 涓婁紶璁惧 閿欒鎻愮ず + /// </summary> + /// <param name="stateCodeStr"></param> + void ShowUploadDevicesInfo (string stateCodeStr) + { + string mes = ""; + if (stateCodeStr == "NoRecord") { + //浣忓畢鏈粦瀹氱綉鍏筹紒 + mes = ErrorCode.HomeNoRecord; + } else if (stateCodeStr == "NoExist") { + //浣忓畢涓嶅瓨鍦紒 + mes = ErrorCode.HomeNoExist; + } else if (stateCodeStr == "Exist") { + //璁惧鍚嶇О宸插瓨鍦� + mes = ErrorCode.NameExist; + } else if (stateCodeStr == ErrorCode.NetworkError) { + mes = ErrorCode.NetworkError; + } else { + mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr; + + } + if (!string.IsNullOrEmpty (mes)) { + Application.RunOnMainThread (() => { + MainPage.AddTip (ErrorCode.AddFailed + " " + mes); + + //new Alert ("", ErrorCode.AddFailed + " " + mes, Language.StringByID (R.MyInternationalizationString.Close)).Show (); + }); + } + + + } + + /// <summary> /// 鍒犻櫎璁惧 /// </summary> - public bool DelDevice(int commonId) + public bool DelDevice(string commonId) { var requestObj = new DelDeviceObj () { Id = commonId }; var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); - var revertObj = MainPage.RequestHttps ("DelDevice", requestJson); - if (revertObj.StateCode == "SUCCESS") { + var revertObj = MainPage.RequestHttps (API.DeleteDevice, requestJson); + if (revertObj.StateCode.ToUpper() == "SUCCESS") { return true; + } else { + //2020-06-29 寮圭獥鎻愮ず閿欒 + } return false; } @@ -488,11 +544,13 @@ public List<SceneByRegion> ReadSceneList () { var sceneList = new List<SceneByRegion> (); - var requestObj = new SceneByRegionListObj () { RegionID = UserConfig.Instance.CurrentRegion.RegionID }; + var requestObj = new SceneByRegionListObj () { RegionID = UserConfig.Instance.CurrentRegion.Id }; var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); - var revertObj = MainPage.RequestHttps ("SceneByRegionList", requestJson); - if (revertObj.StateCode == "SUCCESS") { + var revertObj = MainPage.RequestHttps (API.GetSceneList, requestJson); + if (revertObj.StateCode.ToUpper() == "SUCCESS") { sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SceneByRegion>> (revertObj.ResponseData.ToString ()); + } else { + //2020-06-29 寮圭獥鎻愮ず閿欒 } return sceneList; } @@ -503,15 +561,24 @@ public bool AddScene (SceneAndDeviceList sceneMark) { var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (sceneMark); - var revertObj = MainPage.RequestHttps ("AddSceneAndDeviceList", requestJson); - if (revertObj.StateCode == "SUCCESS") { + var revertObj = MainPage.RequestHttps (API.AddSceneAndDeviceList, requestJson); + if (revertObj.StateCode.ToUpper() == "SUCCESS") { //var requestAddDeviceObj = new BindDeviceToSceneItemObj () { SceneId = sceneId, Command = command, DeviceID = 0, DataString = dataString }; //var requestAddDeviceJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestAddDeviceObj); //var revertAddDeviceObj = MainPage.RequestHttps ("BindDeviceToSceneItem", requestAddDeviceJson); - //if (revertAddDeviceObj.StateCode == "SUCCESS") { + //if (revertAddDeviceObj.StateCode.ToUpper() == "SUCCESS") { return true; //} + } else if (revertObj.StateCode == "Exist") { + Application.RunOnMainThread (() => { + MainPage.AddTip (ErrorCode.AddFailed + " " + ErrorCode.NameExist + " ( " + sceneMark.SceneName + " )"); + }); + return true; + } else { + //2020-06-29 寮瑰嚭鎻愮ず閿欒 + ShowUploadDevicesInfo (revertObj.StateCode); } + return false; } @@ -523,7 +590,7 @@ // var requestAddDeviceObj = new BindDeviceToSceneItemObj () { SceneId = sceneId, Command = command, DeviceID = 0, DataString = dataString }; // var requestAddDeviceJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestAddDeviceObj); // var revertAddDeviceObj = MainPage.RequestHttps ("BindDeviceToSceneItem", requestAddDeviceJson); - // if (revertAddDeviceObj.StateCode == "SUCCESS") { + // if (revertAddDeviceObj.StateCode.ToUpper() == "SUCCESS") { // return true; // } // return false; @@ -532,13 +599,16 @@ /// <summary> /// 鍒犻櫎鍦烘櫙 /// </summary> - public bool DelScene (int sceneId) + public bool DelScene (string sceneId) { - var requestObj = new DeleteScene () { Id = sceneId }; + var requestObj = new DeleteSceneObj () { Id = sceneId }; var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); - var revertObj = MainPage.RequestHttps ("DeleteScene", requestJson); - if (revertObj.StateCode == "SUCCESS") { + var revertObj = MainPage.RequestHttps (API.DeleteScene, requestJson); + if (revertObj.StateCode.ToUpper() == "SUCCESS") { return true; + } else { + //2020-06-29 寮圭獥鎻愮ず閿欒 + } return false; } -- Gitblit v1.8.0