From b800fbdf874cdc75ddc137ea2c22ac2c25d8b45c Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期二, 26 十一月 2019 10:10:37 +0800 Subject: [PATCH] 2019.11.26 --- ZigbeeApp/Shared/Phone/Device/Category/Category.cs | 406 +++++++++++++++++++++++---------------------------------- 1 files changed, 163 insertions(+), 243 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs old mode 100755 new mode 100644 index d725284..bafef14 --- a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs +++ b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs @@ -6,6 +6,7 @@ using ZigBee.Device; using Shared.Phone.Device.CommonForm; using Shared.Phone.Device.AC; +using Shared.Phone.UserCenter.DoorLock; namespace Shared.Phone.Device.Category { @@ -282,6 +283,20 @@ ac.currentSystemMode = attriButeList[0].AttriButeData; ac.LastDateTime = DateTime.Now; break; + + case 4099: + var value = Convert.ToString(attriButeList[0].AttriButeData, 2).PadLeft(16, '0'); + var modeStr = value.Substring(value.Length - 5, 5); + for (int j = 0; j < modeStr.Length; j++) + { + ac.listSupportMode[j] = Convert.ToInt32(modeStr[j]) == 49 ? 1 : 0; + } + break; + + case 4097: + //杩囪檻缃戞竻娲楁爣蹇�:42 + ac.CleanStatu = attriButeList[0].AttriButeData == 42; + break; } var row = rowLayout.GetChildren(0) as CategoryFunctionRow; @@ -383,12 +398,14 @@ row.SetStatu(deviceUI.CommonDevice.IsOnline == 1); deviceUI.CommonDevice.LastDateTime = DateTime.Now; break; + case DeviceType.AirSwitch: deviceUI.CommonDevice.IsOnline = common.IsOnline; var row1 = rowLayout.GetChildren(0) as CategoryFunctionRow; row1.SetStatu(deviceUI.CommonDevice.IsOnline == 1); deviceUI.CommonDevice.LastDateTime = DateTime.Now; break; + case DeviceType.WindowCoveringDevice: deviceUI.CommonDevice.LastDateTime = DateTime.Now; deviceUI.CommonDevice.IsOnline = common.IsOnline; @@ -402,6 +419,7 @@ var row3 = rowLayout.GetChildren(0) as CategoryFunctionRow; row3.SetStatu(deviceUI.CommonDevice.IsOnline == 1); break; + case DeviceType.Thermostat: deviceUI.CommonDevice.LastDateTime = DateTime.Now; deviceUI.CommonDevice.IsOnline = common.IsOnline; @@ -1070,6 +1088,7 @@ deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => { + var lightControl = new Phone.Device.Light.AirSwitchControl(); UserView.HomePage.Instance.AddChidren(lightControl); UserView.HomePage.Instance.PageIndex += 1; @@ -1218,6 +1237,8 @@ ac.ReadFanMode(); ac.ReadSystemMode(); ac.ReadSystemFansSwingMode(); + ac.ReadModeSupport(); + ac.ReadCleanStatu(); }); } else @@ -1233,12 +1254,14 @@ ac.ReadFanMode(); ac.ReadSystemMode(); ac.ReadSystemFansSwingMode(); + ac.ReadModeSupport(); + ac.ReadCleanStatu(); } } var deviceTypeRowLayout = new RowLayout() { - Height = Application.GetRealHeight(127 + 35), + Height = Application.GetRealHeight(129 + 35), LineColor = ZigbeeColor.Current.GXCBackgroundColor, Tag = deviceUI }; @@ -1337,7 +1360,6 @@ } } - var deviceTypeRowLayout = new RowLayout() { Height = Application.GetRealHeight(129 + 35), @@ -1398,9 +1420,78 @@ rollerShadeControl.Show(deviceUI, room); }; } + else if(deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.DoorLock) + { + var deviceTypeRowLayout = new RowLayout() + { + Height = Application.GetRealHeight(129 + 35), + LineColor = ZigbeeColor.Current.GXCBackgroundColor, + Tag = deviceUI + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1); + deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); + deviceRow.HideSwitchBtn(true); + deviceTypeRowLayout.AddChidren(deviceRow); + + + deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => + { + var userDoorLockPage = new UserDoorLockPage(room, deviceUI); + HomePage.Instance.AddChidren(userDoorLockPage); + HomePage.Instance.PageIndex += 1; + userDoorLockPage.Show(); + }; + + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI + }; + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + + var delBtn = new Device.CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI + }; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } else { + var deviceTypeRowLayout = new RowLayout() + { + Height = Application.GetRealHeight(129 + 35), + LineColor = ZigbeeColor.Current.GXCBackgroundColor, + Tag = deviceUI + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1); + deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); + deviceRow.HideSwitchBtn(true); + deviceTypeRowLayout.AddChidren(deviceRow); + + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI + }; + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + + var delBtn = new Device.CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI + }; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; } } }; @@ -1494,7 +1585,7 @@ { RefreshFunction(room); } - + } roomBtn.MouseUpEventHandler += (sender, e) => { @@ -1515,7 +1606,7 @@ } }; } - + } #endregion @@ -1543,245 +1634,14 @@ } else { - var sceneScrolView = new VerticalScrolViewLayout - { - //Y = Application.GetRealHeight(58) - }; + var sceneScrolView = new VerticalScrolViewLayout { }; functionSceneBodyView.AddChidren(sceneScrolView); foreach (var scene in sceneList) { - var sceneFL = new FrameLayout() - { - Height = Application.GetRealHeight(446), - BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor, - Tag = scene - }; - sceneScrolView.AddChidren(sceneFL); - var sceneRowLayout = new RowLayout - { - Y = Application.GetRealHeight(46), - Height = Application.GetRealHeight(446 - 46), - LineColor = ZigbeeColor.Current.GXCGrayBackgroundColor, - Radius = CommonPage.BigFormRadius - }; - sceneFL.AddChidren(sceneRowLayout); - - var sceneImg = new Button() - { - X = Application.GetRealWidth(179), - Width = Application.GetRealWidth(844), - Height = Application.GetRealHeight(400), - BackgroundColor = ZigbeeColor.Current.GXCRedColor, - UnSelectedImagePath = scene.IconPath, - Radius = (uint)Application.GetRealHeight(17) - }; - sceneRowLayout.AddChidren(sceneImg); - - var leftFL = new FrameLayout - { - X = Application.GetRealWidth(CommonFormResouce.X_Left), - Y = Application.GetRealHeight(58), - Width = Application.GetRealWidth(251), - Height = Application.GetRealHeight(282), - BackgroundColor = ZigbeeColor.Current.GXCBlackBackgroundColor2, - Radius = (uint)Application.GetRealHeight(17) - }; - sceneRowLayout.AddChidren(leftFL); - - var collectionBtn = new Button - { - X = Application.GetRealWidth(23), - Y = Application.GetRealHeight(23), - Width = Application.GetMinRealAverage(65), - Height = Application.GetMinRealAverage(65), - UnSelectedImagePath = "Item/Collection.png", - SelectedImagePath = "Item/CollectionSelected.png", - IsSelected = Common.Room.CurrentRoom.GetLoveRoom().SceneUIFilePathList.Contains(scene.FileName), - Tag = scene - }; - leftFL.AddChidren(collectionBtn); - - var sceneNameBtn = new Button() - { - Width = Application.GetRealWidth(176), - Height = Application.GetRealHeight(150), - TextColor = ZigbeeColor.Current.GXCTextWhiteColor, - Text = scene.Name, - Gravity = Gravity.Center, - IsMoreLines = true - }; - leftFL.AddChidren(sceneNameBtn); - - var collection = new Button - { - Tag=scene - }; - leftFL.AddChidren(collection); - collection.MouseUpEventHandler += (sender, e) => - { - if (room.IsLove) - { - Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene); - sceneScrolView.RemoveViewByTag(collectionBtn.Tag); - } - else - { - collectionBtn.IsSelected = !collectionBtn.IsSelected; - if (collectionBtn.IsSelected) - { - Common.Room.CurrentRoom.GetLoveRoom().AddScene(scene); - } - else - { - Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene); - } - } - }; - - //瀹氭椂 - var delayBtn = new RowLayoutDeleteButton - { - TextID = R.MyInternationalizationString.Delay, - Tag = scene.SceneDelayTime - }; - sceneRowLayout.AddLeftView(delayBtn); - - //缂栬緫 - var settingBtn = new Device.CommonForm.RowLayoutEditButton() - { - TextID = R.MyInternationalizationString.Editor, - Tag = scene.SceneDelayTime - }; - //鍒犻櫎 - var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton - { - Tag = scene - }; - - - if(room.IsSharedRoom) - { - - } - else - { - if(room.IsLove) - { - sceneRowLayout.AddRightView(deleteBtn); - } - else - { - sceneRowLayout.AddRightView(settingBtn); - sceneRowLayout.AddRightView(deleteBtn); - } - } - - - //璋冪敤鍦烘櫙 - EventHandler<MouseEventArgs> sceneUpHandler = async (sender, e) => - { - //1鎴愬姛 0澶辫触 - //鍚庨潰琛ヤ笂鐩稿叧鎻愮ず - //瑕佸厛浠庣綉鍏宠鍙栧欢鏃舵槸鍚︽鍦ㄦ墽琛岋紝濡傛灉鏄繘琛屽�掕鏃讹紝涓嶅厑璁稿湪鐐瑰嚮 - var sceneOpenAllData = await ZigBee.Device.Scene.ControlSceneAsync(scene.Id, scene.SceneDelayTime); - //涓荤綉鍏充笉鍦ㄧ嚎 - if (sceneOpenAllData == null) - { - //CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheMainGatewayIsNotOnLine); - CommonPage.Instance.FailureToServer(); - return; - } - if (sceneOpenAllData.sceneOpenData == null) - { - CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain); - return; - } - //鎴愬姛 - if (sceneOpenAllData.sceneOpenData.Result == 1) - { - - } - //澶辫触 - else - { - CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain); - return; - } - }; - sceneImg.MouseUpEventHandler += sceneUpHandler; - //鍒犻櫎鍦烘櫙 - EventHandler<MouseEventArgs> delEvent = (sender, e) => - { - if(room.IsLove) - { - Shared.Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene); - sceneScrolView.RemoveViewByTag((sender as Button).Tag); - } - else - { - var tip = new CustomAlert { }; - AddChidren(tip); - tip.Show(Language.StringByID(R.MyInternationalizationString.ConfirmDelete)); - - //var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.ConfirmDelete), Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim)); - //alert.Show(); - tip.ResultEventHandler += async (e1) => - { - if (e1) - { - //0 绉婚櫎澶辫触 1 绉婚櫎鎴愬姛 2 娌℃湁璇ュ満鏅� - var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(scene.Id); - if (removeSceneAllData == null || removeSceneAllData.removeSceneData == null) - { - //CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheMainGatewayIsNotOnLine); - CommonPage.Instance.FailureToServer(); - return; - } - //1鎴愬姛 - if (removeSceneAllData.removeSceneData.Result == 1) - { - room.RemoveScene(scene); - //RefreshBodyView(); - sceneScrolView.RemoveViewByTag((sender as Button).Tag); - } - //0 绉婚櫎澶辫触 - else if (removeSceneAllData.removeSceneData.Result == 0) - { - CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain); - return; - } - //2 娌℃湁璇ュ満鏅� - else if (removeSceneAllData.removeSceneData.Result == 2) - { - room.RemoveScene(scene); - //RefreshBodyView(); - sceneScrolView.RemoveViewByTag((sender as Button).Tag); - CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneIsNull); - return; - } - } - }; - } - - }; - deleteBtn.MouseUpEventHandler += delEvent; - //缂栬緫鍦烘櫙 - settingBtn.MouseUpEventHandler += (sender, e) => - { - SceneUI.EditScene(scene, room); - }; - //缂栬緫寤舵椂 - delayBtn.MouseUpEventHandler += (sender, e) => - { - var timeSelect = new SelectTime(); - CommonPage.Instance.AddChidren(timeSelect); - timeSelect.TempTime = scene.SceneDelayTime; - timeSelect.Init(); - timeSelect.TimeAction = (t) => - { - scene.SceneDelayTime = t; - }; - }; + var sceneView = new SceneCategoryView(0, 0); + sceneScrolView.AddChidren(sceneView); + sceneView.Init(scene, room); + GetDelayScene(sceneScrolView); } } } @@ -1816,7 +1676,66 @@ } + /// <summary> + /// GetDelayScene + /// </summary> + /// <param name="scrolViewLayout"></param> + private void GetDelayScene(VerticalScrolViewLayout scrolViewLayout) + { + new System.Threading.Thread(async () => + { + var catDelaySceneResponseAllData = await Scene.CatDelaySceneAsync(); + if (catDelaySceneResponseAllData == null) + { + return; + } + var catDelaySceneResponseData = catDelaySceneResponseAllData.catDelaySceneResponseData; + if (catDelaySceneResponseData == null || catDelaySceneResponseData.DelayScenesList.Count == 0) + { + return; + } + var delayList = catDelaySceneResponseData.DelayScenesList; + + Application.RunOnMainThread(() => + { + for (int i = 0; scrolViewLayout != null && i < scrolViewLayout.ChildrenCount; i++) + { + var sceneView = scrolViewLayout.GetChildren(i) as SceneCategoryView; + foreach (var delayScenesListResponseInfo in delayList) + { + if (delayScenesListResponseInfo.ScenesId == sceneView.scene.Id) + { + var times = delayScenesListResponseInfo.RemainTime; + sceneView.scene.RemainTime = times; + new System.Threading.Thread(() => + { + while (times > 0) + { + System.Threading.Thread.Sleep(1000); + Application.RunOnMainThread(() => + { + sceneView.SetTimeText(CommonFormResouce.GetTimeString(times)); + }); + times -= 1; + } + Application.RunOnMainThread(() => + { + sceneView.SetTimeImage(); + }); + }) + { IsBackground = true }.Start(); + + break; + } + } + } + }); + }) + { IsBackground = true }.Start(); + } + #endregion + #region 鈼� 鑷姩鍖朹_________________________ @@ -1827,6 +1746,7 @@ { functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; + var bjFrameLayout = new FrameLayout { Width = Application.GetRealWidth(1080 - 58), @@ -1988,7 +1908,7 @@ var Idlist = await Logic.Send.GetLogicId(0); if (Idlist.Count != 0) { - var listlogic = await Logic.Send.ReadList(Idlist.Count,0); + var listlogic = await Logic.Send.ReadList(Idlist.Count, 0); //foreach鍙兘闆嗗悎宸茶淇敼,鏋氫妇鎿嶄綔鍙兘涓嶄細鎵ц,鍙兘鍑虹幇宕╂簝(寤鸿for)銆� for (int j = 0; j < listlogic.Count; j++) { @@ -2004,7 +1924,7 @@ //鑷姩鍖� Automationview(logicScrolView); CommonPage.Loading.Hide(); - + } /// <summary> @@ -2612,6 +2532,6 @@ #endregion - + } } -- Gitblit v1.8.0