| | |
| | | /// <summary> |
| | | /// 功能类型按钮 |
| | | /// </summary> |
| | | private FunctionButton functionTypeIMG; |
| | | //private FunctionButton functionTypeIMG; |
| | | /// <summary> |
| | | /// 功能类型 |
| | | /// </summary> |
| | |
| | | /// <summary> |
| | | /// 设备类型RowLayout |
| | | /// </summary> |
| | | private FrameLayout typeRowLayout; |
| | | //private FrameLayout typeRowLayout; |
| | | /// <summary> |
| | | /// 楼层 |
| | | /// </summary> |
| | |
| | | /// <summary> |
| | | /// 当前选中房间 |
| | | /// </summary> |
| | | private Common.Room room; |
| | | private Common.Room curRoom; |
| | | #endregion |
| | | |
| | | #region ◆ 接口____________________________ |
| | |
| | | light.DeviceStatusReport = common.DeviceStatusReport; |
| | | light.OnOffStatus = light.DeviceStatusReport.AttriBute[0].AttriButeData; |
| | | var row = rowLayout.GetChildren(0) as CategoryFunctionRow; |
| | | row.SetStatu(light.OnOffStatus == 1); |
| | | row.IsSelected = light.OnOffStatus == 1; |
| | | row.SetStatuText(deviceUI.GetDeviceStatu()); |
| | | light.LastDateTime = DateTime.Now; |
| | | } |
| | |
| | | { |
| | | deviceUI.CommonDevice.IsOnline = 1; |
| | | deviceUI.CommonDevice.LastDateTime = DateTime.Now; |
| | | var row = rowLayout.GetChildren(0) as CategoryFunctionRow; |
| | | row.SetStatu(true); |
| | | } |
| | | break; |
| | | |
| | |
| | | airSwitch.DeviceStatusReport = common.DeviceStatusReport; |
| | | airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData; |
| | | var row = rowLayout.GetChildren(0) as CategoryFunctionRow; |
| | | row.SetStatu(airSwitch.OnOffStatus == 1); |
| | | row.IsSelected = airSwitch.OnOffStatus == 1; |
| | | row.SetStatuText(deviceUI.GetDeviceStatu()); |
| | | airSwitch.LastDateTime = DateTime.Now; |
| | | } |
| | |
| | | { |
| | | deviceUI.CommonDevice.IsOnline = 1; |
| | | deviceUI.CommonDevice.LastDateTime = DateTime.Now; |
| | | var row = rowLayout.GetChildren(0) as CategoryFunctionRow; |
| | | row.SetStatu(true); |
| | | } |
| | | break; |
| | | case DeviceType.WindowCoveringDevice: |
| | |
| | | rollerShade.DeviceStatusReport = common.DeviceStatusReport; |
| | | rollerShade.WcdCurrentPositionLiftPercentage = common.DeviceStatusReport.AttriBute[0].AttriButeData; |
| | | row.SetStatuText($"{Language.StringByID(R.MyInternationalizationString.Current)} { deviceUI.GetDeviceStatu()}"); |
| | | row.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage != 0; |
| | | rollerShade.LastDateTime = DateTime.Now; |
| | | } |
| | | } |
| | |
| | | { |
| | | deviceUI.CommonDevice.IsOnline = 1; |
| | | deviceUI.CommonDevice.LastDateTime = DateTime.Now; |
| | | var row = rowLayout.GetChildren(0) as CategoryFunctionForWinRow; |
| | | row.SetStatu(true); |
| | | } |
| | | break; |
| | | |
| | |
| | | } |
| | | } |
| | | var row = rowLayout.GetChildren(0) as CategoryFunctionRow; |
| | | row.SetStatu(ac.currentSystemMode != 0); |
| | | row.IsSelected = ac.currentSystemMode != 0; |
| | | row.SetStatuText(deviceUI.GetDeviceStatu()); |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | var row = rowLayout.GetChildren(0) as CategoryFunctionRow; |
| | | row.SetStatu(ac.currentSystemMode != 0); |
| | | row.IsSelected = ac.currentSystemMode != 0; |
| | | row.SetStatuText(deviceUI.GetDeviceStatu()); |
| | | } |
| | | |
| | |
| | | var ac = deviceUI.CommonDevice as ZigBee.Device.AC; |
| | | ac.IsOnline = 1; |
| | | ac.LastDateTime = DateTime.Now; |
| | | var row = rowLayout.GetChildren(0) as CategoryFunctionRow; |
| | | row.SetStatu(true); |
| | | } |
| | | break; |
| | | case DeviceType.DimmableLight: |
| | |
| | | dimmableLight.DeviceStatusReport = common.DeviceStatusReport; |
| | | dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; |
| | | var row = rowLayout.GetChildren(0) as CategoryFunctionRow; |
| | | row.SetStatu(dimmableLight.OnOffStatus == 1); |
| | | row.IsSelected = dimmableLight.OnOffStatus == 1; |
| | | row.SetStatuText(deviceUI.GetDeviceStatu()); |
| | | dimmableLight.LastDateTime = DateTime.Now; |
| | | } |
| | |
| | | dimmableLight.DeviceStatusReport = common.DeviceStatusReport; |
| | | dimmableLight.Level = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; |
| | | var row = rowLayout.GetChildren(0) as CategoryFunctionRow; |
| | | row.SetStatu(dimmableLight.OnOffStatus == 1); |
| | | row.IsSelected = dimmableLight.OnOffStatus == 1; |
| | | row.SetStatuText(deviceUI.GetDeviceStatu()); |
| | | dimmableLight.LastDateTime = DateTime.Now; |
| | | } |
| | |
| | | { |
| | | deviceUI.CommonDevice.IsOnline = 1; |
| | | deviceUI.CommonDevice.LastDateTime = DateTime.Now; |
| | | var row = rowLayout.GetChildren(0) as CategoryFunctionRow; |
| | | row.SetStatu(true); |
| | | } |
| | | break; |
| | | } |
| | |
| | | { |
| | | case DeviceType.OnOffOutput: |
| | | deviceUI.CommonDevice.IsOnline = common.IsOnline; |
| | | var row = rowLayout.GetChildren(0) as CategoryFunctionRow; |
| | | 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; |
| | | var row2 = rowLayout.GetChildren(0) as CategoryFunctionForWinRow; |
| | | row2.SetStatu(deviceUI.CommonDevice.IsOnline == 1); |
| | | break; |
| | | |
| | | case DeviceType.DimmableLight: |
| | | deviceUI.CommonDevice.LastDateTime = DateTime.Now; |
| | | deviceUI.CommonDevice.IsOnline = common.IsOnline; |
| | | 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; |
| | | var row5 = rowLayout.GetChildren(0) as CategoryFunctionRow; |
| | | row5.SetStatu(deviceUI.CommonDevice.IsOnline == 1); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | System.Console.WriteLine($"分类设备状态-Error:{ex.Message}"); |
| | | } |
| | | }); |
| | | } |
| | | else if (typeTag == "IASInfoReport") |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | try |
| | | { |
| | | for (int i = 0; deviceListScrolView != null && i < deviceListScrolView.ChildrenCount; i++) |
| | | { |
| | | var rowLayout = deviceListScrolView.GetChildren(i) as RowLayout; |
| | | var deviceUI = rowLayout.Tag as DeviceUI; |
| | | if (deviceUI == null || deviceUI.CommonDevice == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (deviceUI.CommonDevice.DeviceAddr != common.DeviceAddr || deviceUI.CommonDevice.DeviceEpoint != common.DeviceEpoint) |
| | | { |
| | | continue; |
| | | } |
| | | switch (deviceUI.CommonDevice.Type) |
| | | { |
| | | case DeviceType.IASZone: |
| | | //开关功能 |
| | | var ias = common as IASZone; |
| | | var iAS = deviceUI.CommonDevice as ZigBee.Device.IASZone; |
| | | iAS.iASInfo = ias.iASInfo; |
| | | var row = rowLayout.GetChildren(0) as CategoryFunctionRow; |
| | | row.IsSelected = iAS.iASInfo?.Alarm1 == 1; |
| | | row.SetStatuText(deviceUI.GetDeviceStatu()); |
| | | iAS.LastDateTime = DateTime.Now; |
| | | break; |
| | | } |
| | | } |
| | |
| | | { |
| | | devList = room.DeviceUIList; |
| | | sceneList = room.SceneUIList; |
| | | var sameDevList = new List<DeviceUI> { }; |
| | | typeDeviceDic.Clear(); |
| | | typeIdDic.Clear(); |
| | | foreach (var device in devList) |
| | | { |
| | | var info = Common.LocalDevice.Current.GetNotHdlMyDeviceEnumInfo(new List<CommonDevice> { device.CommonDevice }); |
| | | if(info.BeloneType== DeviceBeloneType.A干接点 || info.BeloneType==DeviceBeloneType.A中继器) |
| | | if (info.BeloneType == DeviceBeloneType.A干接点 || info.BeloneType == DeviceBeloneType.A中继器) |
| | | { |
| | | continue; |
| | | } |
| | | sameDevList.Add(device); |
| | | typeDeviceDic[info.BeloneTextId] = sameDevList; |
| | | if (typeDeviceDic.ContainsKey(info.BeloneTextId) == false) |
| | | { |
| | | var sameDevList = new List<DeviceUI> { }; |
| | | sameDevList.Add(device); |
| | | typeDeviceDic[info.BeloneTextId] = sameDevList; |
| | | } |
| | | else |
| | | { |
| | | typeDeviceDic[info.BeloneTextId].Add(device); |
| | | } |
| | | typeIdDic[info.BeloneTextId] = info.ConcreteType; |
| | | } |
| | | } |
| | |
| | | deviceListScrolView = new VerticalScrolViewLayout |
| | | { |
| | | X = Application.GetRealWidth(CommonFormResouce.X_Left), |
| | | Y = Application.GetRealHeight(35+275), |
| | | Y = Application.GetRealHeight(35+279), |
| | | Width = Application.GetRealWidth(1028), |
| | | Height = Application.GetRealHeight(939), |
| | | Height = Application.GetRealHeight(942), |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor |
| | | }; |
| | | functionSceneBodyView.AddChidren(deviceListScrolView); |
| | |
| | | |
| | | foreach (var deviceType in typeIdDic) |
| | | { |
| | | typeRowLayout = new FrameLayout() |
| | | var typeRowLayout = new FrameLayout() |
| | | { |
| | | Width = Application.GetRealWidth(220), |
| | | }; |
| | | functionTypeScrowView.AddChidren(typeRowLayout); |
| | | |
| | | functionTypeIMG = new FunctionButton() |
| | | var functionTypeIMG = new FunctionButton() |
| | | { |
| | | Tag = deviceType.Key |
| | | }; |
| | |
| | | |
| | | functionTypeIMG.ClickBtn.MouseUpEventHandler += ShowSameTypeFunction; |
| | | |
| | | if (typeRowLayout.ChildrenCount == 1) |
| | | if (functionTypeScrowView.ChildrenCount == 1) |
| | | { |
| | | ShowSameTypeFunction(functionTypeIMG.ImageBtn, null); |
| | | } |
| | |
| | | { |
| | | if (e2) |
| | | { |
| | | Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice); |
| | | deviceListScrolView.RemoveViewByTag((delSender as Button).Tag); |
| | | sameTypeList.Remove(deviceUI); |
| | | if (sameTypeList.Count == 0) |
| | | if(curRoom.IsLove) |
| | | { |
| | | RefreshBodyView(); |
| | | Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.FileName); |
| | | deviceListScrolView.RemoveViewByTag((delSender as Button).Tag); |
| | | sameTypeList.Remove(deviceUI); |
| | | } |
| | | else |
| | | { |
| | | Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice); |
| | | deviceListScrolView.RemoveViewByTag((delSender as Button).Tag); |
| | | sameTypeList.Remove(deviceUI); |
| | | } |
| | | //if (sameTypeList.Count == 0) |
| | | //{ |
| | | // RefreshBodyView(); |
| | | //} |
| | | } |
| | | }; |
| | | }; |
| | |
| | | UserView.HomePage.Instance.AddChidren(lightControl); |
| | | UserView.HomePage.Instance.PageIndex += 1; |
| | | //lightControl.action = RefreshBodyView; |
| | | lightControl.Show(deviceUI, room); |
| | | lightControl.Show(deviceUI, curRoom); |
| | | } |
| | | else if (deviceUI.CommonDevice.DfunctionType == DeviceFunctionType.A插座) |
| | | { |
| | |
| | | UserView.HomePage.Instance.AddChidren(lightControl); |
| | | UserView.HomePage.Instance.PageIndex += 1; |
| | | //lightControl.action = RefreshBodyView; |
| | | lightControl.Show(deviceUI, room); |
| | | lightControl.Show(deviceUI, curRoom); |
| | | } |
| | | else |
| | | { |
| | |
| | | UserView.HomePage.Instance.AddChidren(lightControl); |
| | | UserView.HomePage.Instance.PageIndex += 1; |
| | | //lightControl.action = RefreshBodyView; |
| | | lightControl.Show(deviceUI, room); |
| | | lightControl.Show(deviceUI, curRoom); |
| | | } |
| | | }; |
| | | |
| | |
| | | Tag = deviceUI, |
| | | Radius = 0 |
| | | }; |
| | | if (room.IsSharedRoom == false) |
| | | if (curRoom.IsSharedRoom == false) |
| | | { |
| | | deviceTypeRowLayout.AddRightView(editBtn); |
| | | editBtn.MouseUpEventHandler += deviceDetailHandler; |
| | |
| | | UserView.HomePage.Instance.AddChidren(lightControl); |
| | | UserView.HomePage.Instance.PageIndex += 1; |
| | | //lightControl.action = RefreshBodyView; |
| | | lightControl.Show(deviceUI, room); |
| | | lightControl.Show(deviceUI, curRoom); |
| | | }; |
| | | |
| | | var editBtn = new CommonForm.RowLayoutEditButton() |
| | |
| | | Tag = deviceUI, |
| | | Radius = 0 |
| | | }; |
| | | if (room.IsSharedRoom == false) |
| | | if (curRoom.IsSharedRoom == false) |
| | | { |
| | | deviceTypeRowLayout.AddRightView(editBtn); |
| | | editBtn.MouseUpEventHandler += deviceDetailHandler; |
| | |
| | | UserView.HomePage.Instance.PageIndex += 1; |
| | | UserView.HomePage.Instance.ScrollEnabled = false; |
| | | //dimmableLightControl.action = RefreshBodyView; |
| | | dimmableLightControl.Show(deviceUI, room); |
| | | dimmableLightControl.Show(deviceUI, curRoom); |
| | | }; |
| | | |
| | | var editBtn = new CommonForm.RowLayoutEditButton() |
| | |
| | | Tag = deviceUI, |
| | | Radius = 0 |
| | | }; |
| | | if (room.IsSharedRoom == false) |
| | | if (curRoom.IsSharedRoom == false) |
| | | { |
| | | deviceTypeRowLayout.AddRightView(editBtn); |
| | | editBtn.MouseUpEventHandler += deviceDetailHandler; |
| | |
| | | Tag = deviceUI, |
| | | Radius = 0 |
| | | }; |
| | | if (room.IsSharedRoom == false) |
| | | if (curRoom.IsSharedRoom == false) |
| | | { |
| | | deviceTypeRowLayout.AddRightView(editBtn); |
| | | editBtn.MouseUpEventHandler += deviceDetailHandler; |
| | |
| | | UserView.HomePage.Instance.PageIndex += 1; |
| | | UserView.HomePage.Instance.ScrollEnabled = false; |
| | | //rollerShadeControl.action = RefreshBodyView; |
| | | acControl.Show(deviceUI, room); |
| | | acControl.Show(deviceUI, curRoom); |
| | | }; |
| | | } |
| | | } |
| | |
| | | deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); |
| | | deviceRow.SetOnLineStatu(rollerShade.IsOnline == 1); |
| | | deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); |
| | | deviceRow.SetStatu(rollerShade.WcdCurrentPositionLiftPercentage != 0); |
| | | deviceRow.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage != 0; |
| | | deviceRow.SetRollerShadeIcon(rollerShade.WcdType); |
| | | deviceTypeRowLayout.AddChidren(deviceRow); |
| | | |
| | |
| | | Tag = deviceUI, |
| | | Radius = 0 |
| | | }; |
| | | if (room.IsSharedRoom == false) |
| | | if (curRoom.IsSharedRoom == false) |
| | | { |
| | | deviceTypeRowLayout.AddRightView(editBtn); |
| | | editBtn.MouseUpEventHandler += deviceDetailHandler; |
| | |
| | | UserView.HomePage.Instance.PageIndex += 1; |
| | | UserView.HomePage.Instance.ScrollEnabled = false; |
| | | //rollerShadeControl.action = RefreshBodyView; |
| | | rollerShadeControl.Show(deviceUI, room); |
| | | rollerShadeControl.Show(deviceUI, curRoom); |
| | | }; |
| | | } |
| | | } |
| | |
| | | |
| | | deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => |
| | | { |
| | | var userDoorLockPage = new UserDoorLockPage(room, deviceUI); |
| | | var userDoorLockPage = new UserDoorLockPage(curRoom, deviceUI); |
| | | HomePage.Instance.AddChidren(userDoorLockPage); |
| | | HomePage.Instance.PageIndex += 1; |
| | | userDoorLockPage.Show(); |
| | |
| | | { |
| | | Tag = deviceUI |
| | | }; |
| | | if (room.IsSharedRoom == false) |
| | | if (curRoom.IsSharedRoom == false) |
| | | { |
| | | deviceTypeRowLayout.AddRightView(editBtn); |
| | | editBtn.MouseUpEventHandler += deviceDetailHandler; |
| | |
| | | { |
| | | Tag = deviceUI |
| | | }; |
| | | if (room.IsSharedRoom == false) |
| | | if (curRoom.IsSharedRoom == false) |
| | | { |
| | | deviceTypeRowLayout.AddRightView(editBtn); |
| | | editBtn.MouseUpEventHandler += deviceDetailHandler; |
| | |
| | | if (room.IsLove) |
| | | { |
| | | roomBtn.IsSelected = true; |
| | | this.room = room; |
| | | this.curRoom = room; |
| | | curBtn = roomBtn; |
| | | |
| | | if(sceneBtn.IsSelected) |
| | | { |
| | | RefreshScene(room); |
| | |
| | | (sender as Button).IsSelected = true; |
| | | curBtn.IsSelected = false; |
| | | curBtn = sender as Button; |
| | | this.room = room; |
| | | this.curRoom = room; |
| | | if (sceneBtn.IsSelected) |
| | | { |
| | | RefreshScene(room); |
| | |
| | | /// <param name="room"></param> |
| | | public void RefreshScene(Common.Room room) |
| | | { |
| | | RefreshData(room); |
| | | functionSceneBodyView.RemoveAll(); |
| | | var sceneList = room.SceneUIList; |
| | | if (sceneList.Count == 0) |
| | | { |
| | | ShowNoSceneTip(); |