| | |
| | | /// <summary> |
| | | /// 设备类型RowLayout |
| | | /// </summary> |
| | | private RowLayout typeRowLayout; |
| | | private FrameLayout typeRowLayout; |
| | | /// <summary> |
| | | /// 楼层 |
| | | /// </summary> |
| | |
| | | { |
| | | case DeviceType.OnOffOutput: |
| | | //开关功能 |
| | | if ((common as ToggleLight).DeviceStatusReport.CluterID == 6) |
| | | if (common.DeviceStatusReport.CluterID == 6) |
| | | { |
| | | var light = deviceUI.CommonDevice as ToggleLight; |
| | | light.DeviceStatusReport = (common as ToggleLight).DeviceStatusReport; |
| | | light.DeviceStatusReport = common.DeviceStatusReport; |
| | | for (int j = 0; j < rowLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = rowLayout.GetChildren(j); |
| | |
| | | } |
| | | } |
| | | } |
| | | if ((common as ToggleLight).DeviceStatusReport.CluterID == 3) |
| | | if (common.DeviceStatusReport.CluterID == 3) |
| | | { |
| | | var light = deviceUI.CommonDevice as ToggleLight; |
| | | light.IsOnline = 1; |
| | |
| | | |
| | | case DeviceType.AirSwitch: |
| | | //开关功能 |
| | | if ((common as ZigBee.Device.AirSwitch).DeviceStatusReport.CluterID == 6) |
| | | if (common.DeviceStatusReport.CluterID == 6) |
| | | { |
| | | var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; |
| | | airSwitch.DeviceStatusReport = (common as ZigBee.Device.AirSwitch).DeviceStatusReport; |
| | | airSwitch.DeviceStatusReport = common.DeviceStatusReport; |
| | | for (int j = 0; j < rowLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = rowLayout.GetChildren(j); |
| | |
| | | } |
| | | } |
| | | } |
| | | if ((common as ZigBee.Device.AirSwitch).DeviceStatusReport.CluterID == 3) |
| | | if (common.DeviceStatusReport.CluterID == 3) |
| | | { |
| | | var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; |
| | | airSwitch.IsOnline = 1; |
| | |
| | | } |
| | | break; |
| | | case DeviceType.WindowCoveringDevice: |
| | | if ((common as Rollershade).DeviceStatusReport.CluterID == 3) |
| | | if (common.DeviceStatusReport.CluterID == 3) |
| | | { |
| | | var rollerShape = deviceUI.CommonDevice as Rollershade; |
| | | //记录回复时间 |
| | |
| | | |
| | | case DeviceType.Thermostat: |
| | | //AC功能 |
| | | if ((common as ZigBee.Device.AC).DeviceStatusReport.CluterID == 513) |
| | | if (common.DeviceStatusReport.CluterID == 513) |
| | | { |
| | | var attriButeList = (common as ZigBee.Device.AC).DeviceStatusReport.AttriBute; |
| | | var attriButeList = common.DeviceStatusReport.AttriBute; |
| | | if (attriButeList == null || attriButeList.Count == 0) |
| | | { |
| | | return; |
| | | } |
| | | var ac = deviceUI.CommonDevice as ZigBee.Device.AC; |
| | | ac.DeviceStatusReport = (common as ZigBee.Device.AC).DeviceStatusReport; |
| | | ac.DeviceStatusReport = common.DeviceStatusReport; |
| | | switch (attriButeList[0].AttributeId) |
| | | { |
| | | case 0: |
| | |
| | | } |
| | | |
| | | } |
| | | if ((common as ZigBee.Device.AC).DeviceStatusReport.CluterID == 3) |
| | | if (common.DeviceStatusReport.CluterID == 3) |
| | | { |
| | | var ac = deviceUI.CommonDevice as ZigBee.Device.AC; |
| | | ac.IsOnline = 1; |
| | |
| | | break; |
| | | case DeviceType.DimmableLight: |
| | | //调光灯功能 |
| | | if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 6) |
| | | if (common.DeviceStatusReport.CluterID == 6) |
| | | { |
| | | var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; |
| | | dimmableLight.DeviceStatusReport = (common as ZigBee.Device.DimmableLight).DeviceStatusReport; |
| | | dimmableLight.DeviceStatusReport = common.DeviceStatusReport; |
| | | for (int j = 0; j < rowLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = rowLayout.GetChildren(j); |
| | |
| | | } |
| | | } |
| | | } |
| | | if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 3) |
| | | if (common.DeviceStatusReport.CluterID == 3) |
| | | { |
| | | var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; |
| | | dimmableLight.IsOnline = 1; |
| | |
| | | { |
| | | var floors = new SelectFloor (); |
| | | AddChidren(floors); |
| | | floors.Init(599,357,Direction.Right); |
| | | floors.Init(580,330,Direction.Right); |
| | | floors.FloorAction += (floorName) => |
| | | { |
| | | floorBtn.Text = floorName; |
| | |
| | | sendedControlCommand = false; |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); |
| | | (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected; |
| | | if ((send2 as CommonForm.SelectedStatuButton).IsSelected) |
| | | (send2 as Button).IsSelected = !(send2 as Button).IsSelected; |
| | | if ((send2 as Button).IsSelected) |
| | | { |
| | | light.SwitchControl(1); |
| | | } |
| | |
| | | |
| | | foreach (var deviceType in Common.Room.GetdeviceTypes(room)) |
| | | { |
| | | typeRowLayout = new RowLayout() |
| | | typeRowLayout = new FrameLayout() |
| | | { |
| | | Width = Application.GetRealWidth(CommonPage.AppRealWidth / 5), |
| | | LineColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | Tag = deviceType |
| | | }; |
| | | functionTypeScrowView.AddChidren(typeRowLayout); |
| | |
| | | functionTypeIMG.SetTitle(DeviceUI.GetDeviceTypeName(deviceType)); |
| | | typeRowLayout.AddChidren(functionTypeIMG); |
| | | |
| | | |
| | | functionTypeIMG.ImageBtn.MouseUpEventHandler += ShowSameTypeFunction; |
| | | functionTypeIMG.NameBtn.MouseUpEventHandler += ShowSameTypeFunction; |
| | | functionTypeIMG.ImageBG.MouseUpEventHandler += ShowSameTypeFunction; |
| | | functionTypeIMG.ClickBtn.MouseUpEventHandler += ShowSameTypeFunction; |
| | | |
| | | |
| | | if (deviceType == room.DeviceUIList[0].CommonDevice.Type) |
| | | { |
| | | ShowSameTypeFunction(functionTypeIMG.ImageBtn, null); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | |
| | | Button curBtn = new Button(); |
| | | foreach (var room in Common.Room.CurrentRoom.GetRoomsByCurrentFloorIdAppendLoveRoom()) |
| | | { |
| | | var row = new RowLayout() |
| | | var row = new FrameLayout() |
| | | { |
| | | Width = Application.GetRealWidth(187 + 50), |
| | | Height = Application.GetRealHeight(167), |
| | | LineColor = ZigbeeColor.Current.GXCGrayBackgroundColor |
| | | Height = Application.GetRealHeight(167) |
| | | }; |
| | | roomFL.AddChidren(row); |
| | | |
| | |
| | | /// <param name="room"></param> |
| | | public void RefreshScene(Common.Room room) |
| | | { |
| | | functionSceneBodyView.RemoveAll(); |
| | | var sceneList = room.SceneUIList; |
| | | if (sceneList.Count == 0) |
| | | { |
| | |
| | | Width = Application.GetMinRealAverage(65), |
| | | Height = Application.GetMinRealAverage(65), |
| | | UnSelectedImagePath = "Item/Collection.png", |
| | | SelectedImagePath = "Item/CollectionSelected.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(200), |
| | | 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 |
| | |
| | | //编辑 |
| | | var settingBtn = new Device.CommonForm.RowLayoutEditButton() |
| | | { |
| | | TextID = R.MyInternationalizationString.Setting, |
| | | TextID = R.MyInternationalizationString.Editor, |
| | | Tag = scene.SceneDelayTime |
| | | }; |
| | | //删除 |
| | |
| | | //删除场景 |
| | | EventHandler<MouseEventArgs> delEvent = (sender, e) => |
| | | { |
| | | 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(room.IsLove) |
| | | { |
| | | if (e1) |
| | | 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) => |
| | | { |
| | | //0 移除失败 1 移除成功 2 没有该场景 |
| | | var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(scene.Id); |
| | | if (removeSceneAllData == null || removeSceneAllData.removeSceneData == null) |
| | | if (e1) |
| | | { |
| | | //CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheMainGatewayIsNotOnLine); |
| | | CommonPage.Instance.FailureToServer(); |
| | | return; |
| | | //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; |
| | | } |
| | | } |
| | | //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) => |
| | | { |
| | | SceneRoomUI.EditScene(scene,room); |
| | | SceneUI.EditScene(scene, room); |
| | | }; |
| | | //编辑延时 |
| | | delayBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | var tList = new List<string>() { }; |
| | | |
| | | for (int i = 0; i < 60; i++) |
| | | var timeSelect = new SelectTime(); |
| | | CommonPage.Instance.AddChidren(timeSelect); |
| | | timeSelect.TempTime = scene.SceneDelayTime; |
| | | timeSelect.Init(); |
| | | timeSelect.TimeAction = (t) => |
| | | { |
| | | tList.Add($"{i} {Language.StringByID(R.MyInternationalizationString.Second)}"); |
| | | } |
| | | //int beforeIndex = (int)(sender as CommonForm.RowLayoutEditButton).Tag; |
| | | //PickerView.Show(tList, (obj) => |
| | | //{ |
| | | // var tempRoom = Shared.Common.Room.GetRoomByFilePath(sceneRoomUI.room.FileName); |
| | | // if (tempRoom == null) |
| | | // { |
| | | // return; |
| | | // } |
| | | // foreach (var ss in tempRoom.SceneUIList) |
| | | // { |
| | | // if (ss.Id == sceneRoomUI.sceneUI.Id) |
| | | // { |
| | | // //ss.SceneDelayTime = int.Parse(obj.Split(' ')[0]); |
| | | // sceneRoomUI.room.Save(); |
| | | // RefreshBodyView(); |
| | | // return; |
| | | // } |
| | | // } |
| | | //}, Language.StringByID(R.MyInternationalizationString.Confrim), tList[(int)(sender as CommonForm.RowLayoutEditButton).Tag]); |
| | | scene.SceneDelayTime = t; |
| | | }; |
| | | }; |
| | | } |
| | | } |
| | |
| | | /// <summary> |
| | | /// 自动化 |
| | | /// </summary> |
| | | public async void ShowAutotion() |
| | | private async void ShowAutotion() |
| | | {
|
| | |
|
| | | functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
|
| | |
| | | CommonPage.Loading.Start(); |
| | | if (Common.Logic.LogicList.Count == 0) |
| | | { |
| | | //var Idlist = await Logic.Send.GetLogicId(); |
| | | //if (Idlist.Count != 0) |
| | | //{ |
| | | // foreach (var LogicId in Idlist) |
| | | // { |
| | | // var logic = await Logic.Send.GetLogic(LogicId); |
| | | // if (logic != null) |
| | | // { |
| | | // Common.Logic.LogicList.Add(logic); |
| | | // } |
| | | // } |
| | | //} |
| | | var Idlist = await Logic.Send.GetLogicId(); |
| | | var Idlist = await Logic.Send.GetLogicId(0); |
| | | if (Idlist.Count != 0) |
| | | { |
| | | var listlogic = await Logic.Send.ReadList(Idlist.Count); |
| | | for (int i = 0; i < Idlist.Count; i++) |
| | | var listlogic = await Logic.Send.ReadList(Idlist.Count,0); |
| | | //foreach可能集合已被修改,枚举操作可能不会执行,可能出现崩溃(建议for)。 |
| | | for (int j = 0; j < listlogic.Count; j++) |
| | | { |
| | | var LogicId = Idlist[i]; |
| | | //foreach可能集合已被修改,枚举操作可能不会执行,可能出现崩溃(建议for)。 |
| | | for (int j = 0; j < listlogic.Count; j++) |
| | | var logic = listlogic[j]; |
| | | if (logic.LogicType != 0) |
| | | { |
| | | var logic = listlogic[j]; |
| | | if (logic.LogicId == LogicId) |
| | | { |
| | | Common.Logic.LogicList.Add(logic); |
| | | } |
| | | continue; |
| | | } |
| | | Common.Logic.LogicList.Add(logic); |
| | | } |
| | | } |
| | | } |
| | |
| | | /// 自动化列表界面 |
| | | /// </summary> |
| | | /// <param name="refresview">Refresview.</param> |
| | | public async void Automationview(VerticalScrolViewLayout refresview) |
| | | private async void Automationview(VerticalScrolViewLayout refresview) |
| | | { |
| | | refresview.RemoveAll(); |
| | | foreach (var logic in Common.Logic.LogicList) |
| | |
| | | Text = Language.StringByID(MyInternationalizationString.edit), |
| | | TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, |
| | | }; |
| | | bjRow.AddRightView(edit); |
| | | logicRowlayout.AddRightView(edit); |
| | | edit.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | Common.Logic.LogicDviceList.Clear(); |
| | |
| | | Text = Language.StringByID(MyInternationalizationString.del), |
| | | TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, |
| | | }; |
| | | bjRow.AddRightView(del); |
| | | logicRowlayout.AddRightView(del); |
| | | del.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | var alert = new Alert(Language.StringByID(MyInternationalizationString.tip), Language.StringByID(MyInternationalizationString.doyouwanttodelete), |
| | |
| | | |
| | | |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ◆ 控制状态_________________________ |
| | | |
| | |
| | | } |
| | | } |
| | | } |
| | | #endregion |
| | | } |
| | | } |