From 5a5a2b696866f947b6025d26c3302e8ffef46435 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期一, 11 一月 2021 16:11:20 +0800 Subject: [PATCH] 2021-01-11 1.更新MQTT连接和本地搜索网关方法。2.子账号相关接口完善 --- Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs | 139 +++++++++++++++++++++++++++++++++++++++------ 1 files changed, 119 insertions(+), 20 deletions(-) diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs index 0ea98e1..3d5a60a 100644 --- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs +++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Alexa/AlexaDeviceListPage.cs @@ -265,7 +265,7 @@ uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () { Command = (int)Command.UpdataCurtainModelStutas, SubnetId = device.SubnetID, DeviceId = device.DeviceID, DeviceName = device.Name, DeviceType = "CurtainModule", LoopId = device.LoopID, - DataString = device.Status.ToString () + DataString = ((byte)device.Status).ToString () }); } } else if (common.Type == DeviceType.CurtainRoller) { @@ -274,7 +274,7 @@ uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () { Command = (int)Command.UpdataCurtainModelStutas, SubnetId = device.SubnetID, DeviceId = device.DeviceID, DeviceName = device.Name, DeviceType = "CurtainRoller", LoopId = device.LoopID, - DataString = (device.Status + 3).ToString () + DataString = ((byte)device.CurtainProress + 3).ToString () }); } } else if (common.Type == DeviceType.CurtainTrietex) { @@ -283,7 +283,7 @@ uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () { Command = (int)Command.UpdataCurtainModelStutas, SubnetId = device.SubnetID, DeviceId = device.DeviceID, DeviceName = device.Name, DeviceType = "CurtainRoller", LoopId = device.LoopID, - DataString = (device.Status + 3).ToString () + DataString = ((byte)device.CurtainProress + 3).ToString () }); } } else if (common.Type == DeviceType.HVAC || common.Type == DeviceType.ACInfrared) { @@ -317,6 +317,15 @@ Command = (int)Command.SetScene, SubnetId = device.SubnetID, DeviceId = device.DeviceID, DeviceName = device.Name, DeviceType = "SceneControl", LoopId = device.AreaID, DataString = device.AreaSceneID.ToString () + }); + } + } else if (common.Type == DeviceType.UniversalDevice) {//2020-09-02 鏂板閫氱敤寮�鍏� + var device = Newtonsoft.Json.JsonConvert.DeserializeObject<UniversalDevice> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath))); + if (device != null) { + uploadScene.DeviceListObject.Add (new AddCloudSceneDeviceData () { + Command = (int)Command.SetCommonSwitch, SubnetId = device.SubnetID, DeviceId = device.DeviceID, + DeviceName = device.Name, DeviceType = "UniversalDevice", LoopId = device.LoopID, + DataString = device.SendBytes[1].ToString(), }); } } @@ -415,6 +424,7 @@ } + alexaDeviceLista = ReadDeviceList (); Application.RunOnMainThread (() => { InitDevcieRow (alexaDeviceLista, bodyView); @@ -488,7 +498,7 @@ var requestObj = new GetDeviceListObj () { RegionID = UserConfig.Instance.CurrentRegion.Id }; var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); var revertObj = MainPage.RequestHttps (API.GetDeviceList, requestJson); - if (revertObj.StateCode.ToUpper () == "SUCCESS") { + if (revertObj.StateCode.ToUpper () == StateCode.SUCCESS) { deviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<UpdateDeviceObj>> (revertObj.ResponseData.ToString ()); } else { //2020-06-29 寮圭獥鎻愮ず閿欒 @@ -517,7 +527,7 @@ //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") { + if (revertObj.StateCode.ToUpper() == StateCode.SUCCESS) { return true; }else if (revertObj.StateCode == "Exist") { Application.RunOnMainThread (() => { @@ -606,7 +616,7 @@ var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (mUpdateAlexaDeviceObj); var revertObj = MainPage.RequestHttps (API.UpdateDevice, requestJson); - if (revertObj.StateCode.ToUpper () == "SUCCESS") { + if (revertObj.StateCode.ToUpper () == StateCode.SUCCESS) { return true; } else if (revertObj.StateCode == "Exist") { Application.RunOnMainThread (() => { @@ -628,7 +638,7 @@ var requestObj = new DelDeviceObj () { Id = commonId }; var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); var revertObj = MainPage.RequestHttps (API.DeleteDevice, requestJson); - if (revertObj.StateCode.ToUpper() == "SUCCESS") { + if (revertObj.StateCode.ToUpper() == StateCode.SUCCESS) { return true; } else { //2020-06-29 寮圭獥鎻愮ず閿欒 @@ -648,7 +658,7 @@ var requestObj = new SceneByRegionListObj () { RegionID = UserConfig.Instance.CurrentRegion.Id }; var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); var revertObj = MainPage.RequestHttps (API.GetSceneList, requestJson); - if (revertObj.StateCode.ToUpper() == "SUCCESS") { + if (revertObj.StateCode.ToUpper() == StateCode.SUCCESS) { sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SceneByRegion>> (revertObj.ResponseData.ToString ()); } else { //2020-06-29 寮圭獥鎻愮ず閿欒 @@ -664,11 +674,11 @@ { var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (sceneMark); var revertObj = MainPage.RequestHttps (API.AddSceneAndDeviceList, requestJson); - if (revertObj.StateCode.ToUpper() == "SUCCESS") { + if (revertObj.StateCode.ToUpper() == StateCode.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.ToUpper() == "SUCCESS") { + //if (revertAddDeviceObj.StateCode.ToUpper() == StateCode.SUCCESS) { return true; //} } else if (revertObj.StateCode == "Exist") { @@ -692,7 +702,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.ToUpper() == "SUCCESS") { + // if (revertAddDeviceObj.StateCode.ToUpper() == StateCode.SUCCESS) { // return true; // } // return false; @@ -706,7 +716,7 @@ var requestObj = new DeleteSceneObj () { Id = sceneId }; var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); var revertObj = MainPage.RequestHttps (API.DeleteScene, requestJson); - if (revertObj.StateCode.ToUpper() == "SUCCESS") { + if (revertObj.StateCode.ToUpper() == StateCode.SUCCESS) { return true; } else { //2020-06-29 寮圭獥鎻愮ず閿欒 @@ -717,11 +727,53 @@ #endregion /// <summary> + /// + /// </summary> + /// <param name="bodyView"></param> + /// <param name="isScene"></param> + void AddTopTitleView (VerticalScrolViewLayout bodyView, bool isScene = false) { + var chooseTypeView = new RowLayout () { + Height = Application.GetRealHeight (80), + BackgroundColor = SkinStyle.Current.TitileView, + }; + bodyView.AddChidren (chooseTypeView); + Button btnEquipmentIcon = new Button () { + Width = Application.GetRealHeight (65), + Height = Application.GetRealHeight (65), + UnSelectedImagePath = "Item/LogicModule.png", + X = Application.GetRealWidth (30), + Gravity = Gravity.CenterVertical, + }; + chooseTypeView.AddChidren (btnEquipmentIcon); + + Button btnEquipmentType = new Button () { + Width = Application.GetRealHeight (460), + X = btnEquipmentIcon.Right, + TextAlignment = TextAlignment.CenterLeft, + Text = Language.StringByID (R.MyInternationalizationString.Device), + TextColor = SkinStyle.Current.TextColor1, + SelectedTextColor = SkinStyle.Current.DialogTextColor + }; + chooseTypeView.AddChidren (btnEquipmentType); + + if (isScene) { + btnEquipmentIcon.UnSelectedImagePath = "Scene/Scene.png"; + btnEquipmentType.Text = Language.StringByID (R.MyInternationalizationString.Scenes); + } + } + + /// <summary> /// 娣诲姞璁惧鐣岄潰 /// </summary> public void InitDevcieRow (List<UpdateDeviceObj> list, VerticalScrolViewLayout bodyView) { bodyView.RemoveAll (); + + if (list.Count > 0) { + //娣诲姞鏍囬 + AddTopTitleView (bodyView); + } + foreach (var device in list) { var rowView = new RowLayout () { Height = Application.GetRealHeight (110), @@ -747,10 +799,31 @@ alert.Show (); alert.ResultEventHandler += (s, dd) => { if (dd) { - if (DelDevice (device.Id)) { - rowView.RemoveFromParent (); - list.Remove (device); - } + //if (DelDevice (device.Id)) { + // rowView.RemoveFromParent (); + // list.Remove (device); + //} + + System.Threading.Tasks.Task.Run (() => { + Application.RunOnMainThread (() => { + MainPage.Loading.Start (Language.StringByID (R.MyInternationalizationString.load)); + }); + try { + var result = DelDevice (device.Id); + Application.RunOnMainThread (() => { + if (result) { + rowView.RemoveFromParent (); + list.Remove (device); + } + }); + + } catch { } finally { + + Application.RunOnMainThread (() => { + MainPage.Loading.Hide (); + }); + } + }); } }; }; @@ -762,6 +835,11 @@ /// </summary> public void InitSceneRow (List<SceneByRegion> list, VerticalScrolViewLayout bodyView) { + if (list.Count > 0) { + //娣诲姞鏍囬 + AddTopTitleView (bodyView, true); + } + foreach (var scene in list) { var rowView = new RowLayout () { Height = Application.GetRealHeight (110), @@ -793,10 +871,31 @@ alert.Show (); alert.ResultEventHandler += (s, dd) => { if (dd) { - if (DelScene (scene.SceneId)) { - rowView.RemoveFromParent (); - list.Remove (scene); - } + //if (DelScene (scene.SceneId)) { + // rowView.RemoveFromParent (); + // list.Remove (scene); + //} + + System.Threading.Tasks.Task.Run (() => { + Application.RunOnMainThread (() => { + MainPage.Loading.Start (Language.StringByID (R.MyInternationalizationString.load)); + }); + try { + var result = DelScene (scene.SceneId); + Application.RunOnMainThread (() => { + if (result) { + rowView.RemoveFromParent (); + list.Remove (scene); + } + }); + + } catch { } finally { + + Application.RunOnMainThread (() => { + MainPage.Loading.Hide (); + }); + } + }); } }; }; -- Gitblit v1.8.0