From 96428beef8b714ddb163216de37ab59d31ff5aa7 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期二, 17 十二月 2019 15:44:59 +0800 Subject: [PATCH] 2019.12.17 --- ZigbeeApp/Shared/Phone/Device/Category/Category.cs | 1236 ++++++++++++++++++++++++++++++---------------------------- 1 files changed, 632 insertions(+), 604 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs index e52cefb..97e4c1b 100644 --- a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs +++ b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs @@ -249,7 +249,7 @@ ac.DeviceStatusReport = common.DeviceStatusReport; foreach(var attList in attriButeList) { - var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High || attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default; + var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High && attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default; switch (attList.AttributeId) { case 0: @@ -520,7 +520,7 @@ functionBtn.Init(); functionBtn.SetTitle(R.MyInternationalizationString.Function); //鑷姩鍖� - automationBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 * 2 + 20, 34, 150, 68); + automationBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 * 2 + 20+50, 34, 150, 68); automationBtn.Init(); automationBtn.SetTitle(R.MyInternationalizationString.Automation); //闅愯棌鑷姩鍖� @@ -859,623 +859,651 @@ } } } - foreach (var deviceUI in sameTypeList) + for (int i=0;i<sameTypeList.Count;i++) { - //鍒犻櫎璁惧 - EventHandler<MouseEventArgs> delEvent = (delSender, delE) => + var deviceUI = sameTypeList[i]; + new System.Threading.Thread(() => { - var alert = new CustomAlert(); - AddChidren(alert); - alert.Show(Language.StringByID(R.MyInternationalizationString.DeleteFunction)); - alert.ResultEventHandler += (e2) => + Application.RunOnMainThread(() => { - if (e2) + try { - Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice); - deviceListScrolView.RemoveViewByTag((delSender as Button).Tag); - sameTypeList.Remove(deviceUI); - if (sameTypeList.Count == 0) + //鍒犻櫎璁惧 + EventHandler<MouseEventArgs> delEvent = (delSender, delE) => { - RefreshBodyView(); - } - } - }; - }; - EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => - { - var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; - UserView.HomePage.Instance.AddChidren(detailInfo); - UserView.HomePage.Instance.PageIndex += 1; - detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom); - detailInfo.action = RefreshBodyView; - }; - - if (deviceUI.CommonDevice.Type == DeviceType.OnOffOutput) - { - //鐏� - var light = deviceUI.CommonDevice as ToggleLight; - //琛ヤ笂闈炶繙绋� - if (light.Gateway == null) - { - continue; - } - if (light.Gateway.IsVirtual) - { - UserHomeView.ReadStatus(light, () => - { - ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice); - }); - } - else - { - //闃叉鐭椂闂村唴澶氭璇诲彇鐘舵�� - if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds) - { - ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice); - } - } - - 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(light.IsOnline == 1); - deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - deviceRow.SetStatu(light.OnOffStatus == 1); - deviceTypeRowLayout.AddChidren(deviceRow); - - deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - (send2 as Button).IsSelected = !(send2 as Button).IsSelected; - deviceRow.IsSelected = (send2 as Button).IsSelected; - if ((send2 as Button).IsSelected) - { - light.SwitchControl(1); - } - else - { - light.SwitchControl(0); - } - deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - - deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => - { - if (deviceUI.CommonDevice.DfunctionType == DeviceFunctionType.A寮�鍏�) - { - var lightControl = new Phone.Device.Light.OnOffControl(); - UserView.HomePage.Instance.AddChidren(lightControl); - UserView.HomePage.Instance.PageIndex += 1; - //lightControl.action = RefreshBodyView; - lightControl.Show(deviceUI, room); - } - else if (deviceUI.CommonDevice.DfunctionType == DeviceFunctionType.A鎻掑骇) - { - var lightControl = new Phone.Device.Light.PlugControl(); - UserView.HomePage.Instance.AddChidren(lightControl); - UserView.HomePage.Instance.PageIndex += 1; - //lightControl.action = RefreshBodyView; - lightControl.Show(deviceUI, room); - } - else - { - var lightControl = new Phone.Device.Light.LightControl(); - UserView.HomePage.Instance.AddChidren(lightControl); - UserView.HomePage.Instance.PageIndex += 1; - //lightControl.action = RefreshBodyView; - lightControl.Show(deviceUI, room); - } - }; - - var editBtn = new CommonForm.RowLayoutEditButton() - { - Tag = deviceUI, - Radius = 0 - }; - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - if (room.IsSharedRoom == false) - { - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - } - } - else if (deviceUI.CommonDevice.Type == DeviceType.AirSwitch) - { - //绌烘皵寮�鍏� - var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; - //琛ヤ笂闈炶繙绋� - if (airSwitch.Gateway == null) - { - continue; - } - if (airSwitch.Gateway.IsVirtual) - { - UserHomeView.ReadStatus(airSwitch, () => - { - ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice); - }); - } - else - { - if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) - { - ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice); - } - } - - 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(airSwitch.IsOnline == 1); - deviceRow.SetStatu(airSwitch.OnOffStatus == 1); - deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - deviceTypeRowLayout.AddChidren(deviceRow); - - deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - - (send2 as Button).IsSelected = !(send2 as Button).IsSelected; - if ((send2 as Button).IsSelected) - { - airSwitch.SwitchControl(1); - } - else - { - airSwitch.SwitchControl(0); - } - deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - - deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => - { - - var lightControl = new Phone.Device.Light.AirSwitchControl(); - UserView.HomePage.Instance.AddChidren(lightControl); - UserView.HomePage.Instance.PageIndex += 1; - //lightControl.action = RefreshBodyView; - lightControl.Show(deviceUI, room); - }; - - var editBtn = new CommonForm.RowLayoutEditButton() - { - Tag = deviceUI, - Radius = 0 - }; - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - if (room.IsSharedRoom == false) - { - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - } - - } - else if (deviceUI.CommonDevice.Type == DeviceType.DimmableLight) - { - //璋冨厜鐏� - var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; - //琛ヤ笂闈炶繙绋� - if (dimmableLight.Gateway == null) - { - continue; - } - if (dimmableLight.Gateway.IsVirtual) - { - UserHomeView.ReadStatus(dimmableLight, () => - { - ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI.CommonDevice); - }); - } - else - { - if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) - { - ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI.CommonDevice); - } - } - - 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(dimmableLight.IsOnline == 1); - deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - deviceRow.SetStatu(dimmableLight.OnOffStatus == 1); - deviceTypeRowLayout.AddChidren(deviceRow); - - deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - - (send2 as Button).IsSelected = !(send2 as Button).IsSelected; - if ((send2 as Button).IsSelected) - { - dimmableLight.SwitchControl(1); - } - else - { - dimmableLight.SwitchControl(0); - } - deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - - deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => - { - var dimmableLightControl = new Phone.Device.Light.DimmableLightControl(); - UserView.HomePage.Instance.AddChidren(dimmableLightControl); - UserView.HomePage.Instance.PageIndex += 1; - UserView.HomePage.Instance.ScrollEnabled = false; - //dimmableLightControl.action = RefreshBodyView; - dimmableLightControl.Show(deviceUI, room); - }; - - var editBtn = new CommonForm.RowLayoutEditButton() - { - Tag = deviceUI, - Radius = 0 - }; - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - if (room.IsSharedRoom == false) - { - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - } - } - else if (deviceUI.CommonDevice.Type == DeviceType.Thermostat) - { - //绌鸿皟 - var ac = deviceUI.CommonDevice as ZigBee.Device.AC; - //琛ヤ笂闈炶繙绋� - if (ac.Gateway == null) - { - continue; - } - if (ac.Gateway.IsVirtual) - { - //鍙戦�佽鍙栫姸鎬佸懡浠� - UserView.UserHomeView.ReadStatus(ac, () => - { - ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI.CommonDevice); - }); - } - else - { - //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵�� - if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) - { - ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI.CommonDevice); - } - } - - 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(ac.IsOnline == 1); - deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - deviceRow.SetStatu(ac.currentSystemMode != 1); - deviceTypeRowLayout.AddChidren(deviceRow); - - deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - - (send2 as Button).IsSelected = !(send2 as Button).IsSelected; - if ((send2 as Button).IsSelected) - { - ac.Open(); - } - else - { - ac.Close(); - } - deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - - var editBtn = new CommonForm.RowLayoutEditButton() - { - Tag = deviceUI, - Radius = 0 - }; - var delBtn = new CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - if (room.IsSharedRoom == false) - { - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - } - - deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => - { - var acControl = new Phone.Device.AC.ACControl(); - UserView.HomePage.Instance.AddChidren(acControl); - UserView.HomePage.Instance.PageIndex += 1; - UserView.HomePage.Instance.ScrollEnabled = false; - //rollerShadeControl.action = RefreshBodyView; - acControl.Show(deviceUI, room); - }; - } - else if (deviceUI.CommonDevice.Type == DeviceType.WindowCoveringDevice) - { - //鍗峰笜 - var rollerShade = deviceUI.CommonDevice as ZigBee.Device.Rollershade; - //涓嶄笂闈炶繙绋� - if (rollerShade.Gateway == null) - { - continue; - } - if (rollerShade.Gateway.IsVirtual) - { - UserHomeView.ReadStatus(rollerShade, () => - { - ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI.CommonDevice); - }); - } - else - { - //闃叉鐭椂闂村唴澶氭璇诲彇 - if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) - { - ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI.CommonDevice); - } - } - - var deviceTypeRowLayout = new RowLayout() - { - Height = Application.GetRealHeight(129 + 35), - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - - var deviceRow = new CategoryFunctionForWinRow(0, 35); - deviceRow.Init(deviceUI); - deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetOnLineStatu(rollerShade.IsOnline == 1); - deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - deviceRow.SetStatu(rollerShade.WcdCurrentPositionLiftPercentage != 0); - deviceRow.SetRollerShadeIcon(rollerShade.WcdType); - deviceTypeRowLayout.AddChidren(deviceRow); - - if (rollerShade.WcdType == -1) - { - CommonPage.Loading.Start(); - new System.Threading.Thread(() => - { - Rollershade.ReadWcdTypeAction(rollerShade, () => - { - Application.RunOnMainThread(() => + var alert = new CustomAlert(); + AddChidren(alert); + alert.Show(Language.StringByID(R.MyInternationalizationString.DeleteFunction)); + alert.ResultEventHandler += (e2) => { + if (e2) + { + Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice); + deviceListScrolView.RemoveViewByTag((delSender as Button).Tag); + sameTypeList.Remove(deviceUI); + if (sameTypeList.Count == 0) + { + RefreshBodyView(); + } + } + }; + }; + EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => + { + var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; + UserView.HomePage.Instance.AddChidren(detailInfo); + UserView.HomePage.Instance.PageIndex += 1; + detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom); + detailInfo.action = RefreshBodyView; + }; + + if (deviceUI.CommonDevice.Type == DeviceType.OnOffOutput) + { + //鐏� + var light = deviceUI.CommonDevice as ToggleLight; + if (light.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (light.Gateway.IsVirtual) + { + UserHomeView.ReadStatus(light, () => + { + ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice); + }); + } + else + { + //闃叉鐭椂闂村唴澶氭璇诲彇鐘舵�� + if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds) + { + ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice); + } + } + }) + { IsBackground = true }.Start(); + + 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(light.IsOnline == 1); + deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); + deviceRow.SetStatu(light.OnOffStatus == 1); + deviceTypeRowLayout.AddChidren(deviceRow); + + deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => + { + zbGateway = deviceUI.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); + (send2 as Button).IsSelected = !(send2 as Button).IsSelected; + deviceRow.IsSelected = (send2 as Button).IsSelected; + if ((send2 as Button).IsSelected) + { + light.SwitchControl(1); + } + else + { + light.SwitchControl(0); + } + deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + }; + + deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => + { + if (deviceUI.CommonDevice.DfunctionType == DeviceFunctionType.A寮�鍏�) + { + var lightControl = new Phone.Device.Light.OnOffControl(); + UserView.HomePage.Instance.AddChidren(lightControl); + UserView.HomePage.Instance.PageIndex += 1; + //lightControl.action = RefreshBodyView; + lightControl.Show(deviceUI, room); + } + else if (deviceUI.CommonDevice.DfunctionType == DeviceFunctionType.A鎻掑骇) + { + var lightControl = new Phone.Device.Light.PlugControl(); + UserView.HomePage.Instance.AddChidren(lightControl); + UserView.HomePage.Instance.PageIndex += 1; + //lightControl.action = RefreshBodyView; + lightControl.Show(deviceUI, room); + } + else + { + var lightControl = new Phone.Device.Light.LightControl(); + UserView.HomePage.Instance.AddChidren(lightControl); + UserView.HomePage.Instance.PageIndex += 1; + //lightControl.action = RefreshBodyView; + lightControl.Show(deviceUI, room); + } + }; + + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI, + Radius = 0 + }; + var delBtn = new CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI, + Radius = 0 + }; + if (room.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } + } + } + else if (deviceUI.CommonDevice.Type == DeviceType.AirSwitch) + { + //绌烘皵寮�鍏� + var airSwitch = deviceUI.CommonDevice as AirSwitch; + if (airSwitch.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (airSwitch.Gateway.IsVirtual) + { + UserHomeView.ReadStatus(airSwitch, () => + { + ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice); + }); + } + else + { + if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice); + } + } + }) + { IsBackground = true }.Start(); + + 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(airSwitch.IsOnline == 1); + deviceRow.SetStatu(airSwitch.OnOffStatus == 1); + deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); + deviceTypeRowLayout.AddChidren(deviceRow); + + deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => + { + zbGateway = deviceUI.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); + + (send2 as Button).IsSelected = !(send2 as Button).IsSelected; + if ((send2 as Button).IsSelected) + { + airSwitch.SwitchControl(1); + } + else + { + airSwitch.SwitchControl(0); + } + deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + }; + + deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => + { + + var lightControl = new Phone.Device.Light.AirSwitchControl(); + UserView.HomePage.Instance.AddChidren(lightControl); + UserView.HomePage.Instance.PageIndex += 1; + //lightControl.action = RefreshBodyView; + lightControl.Show(deviceUI, room); + }; + + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI, + Radius = 0 + }; + var delBtn = new CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI, + Radius = 0 + }; + if (room.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } + } + } + else if (deviceUI.CommonDevice.Type == DeviceType.DimmableLight) + { + //璋冨厜鐏� + var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; + if (dimmableLight.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (dimmableLight.Gateway.IsVirtual) + { + UserHomeView.ReadStatus(dimmableLight, () => + { + ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI.CommonDevice); + }); + } + else + { + if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI.CommonDevice); + } + } + }) + { IsBackground = true }.Start(); + + 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(dimmableLight.IsOnline == 1); + deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); + deviceRow.SetStatu(dimmableLight.OnOffStatus == 1); + deviceTypeRowLayout.AddChidren(deviceRow); + + deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => + { + zbGateway = deviceUI.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); + + (send2 as Button).IsSelected = !(send2 as Button).IsSelected; + if ((send2 as Button).IsSelected) + { + dimmableLight.SwitchControl(1); + } + else + { + dimmableLight.SwitchControl(0); + } + deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + }; + + deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => + { + var dimmableLightControl = new Phone.Device.Light.DimmableLightControl(); + UserView.HomePage.Instance.AddChidren(dimmableLightControl); + UserView.HomePage.Instance.PageIndex += 1; + UserView.HomePage.Instance.ScrollEnabled = false; + //dimmableLightControl.action = RefreshBodyView; + dimmableLightControl.Show(deviceUI, room); + }; + + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI, + Radius = 0 + }; + var delBtn = new Device.CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI, + Radius = 0 + }; + if (room.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } + } + } + else if (deviceUI.CommonDevice.Type == DeviceType.Thermostat) + { + //绌鸿皟 + var ac = deviceUI.CommonDevice as ZigBee.Device.AC; + if (ac.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (ac.Gateway.IsVirtual) + { + //鍙戦�佽鍙栫姸鎬佸懡浠� + UserView.UserHomeView.ReadStatus(ac, () => + { + ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI.CommonDevice); + }); + } + else + { + //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵�� + if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI.CommonDevice); + } + } + }) + { IsBackground = true }.Start(); + + 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(ac.IsOnline == 1); + deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); + deviceRow.SetStatu(ac.currentSystemMode != 1); + deviceTypeRowLayout.AddChidren(deviceRow); + + deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => + { + zbGateway = deviceUI.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); + + (send2 as Button).IsSelected = !(send2 as Button).IsSelected; + if ((send2 as Button).IsSelected) + { + ac.Open(); + } + else + { + ac.Close(); + } + deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + }; + + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI, + Radius = 0 + }; + var delBtn = new CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI, + Radius = 0 + }; + if (room.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } + + deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => + { + var acControl = new Phone.Device.AC.ACControl(); + UserView.HomePage.Instance.AddChidren(acControl); + UserView.HomePage.Instance.PageIndex += 1; + UserView.HomePage.Instance.ScrollEnabled = false; + //rollerShadeControl.action = RefreshBodyView; + acControl.Show(deviceUI, room); + }; + } + } + else if (deviceUI.CommonDevice.Type == DeviceType.WindowCoveringDevice) + { + //鍗峰笜 + var rollerShade = deviceUI.CommonDevice as ZigBee.Device.Rollershade; + if (rollerShade.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (rollerShade.Gateway.IsVirtual) + { + UserHomeView.ReadStatus(rollerShade, () => + { + ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI.CommonDevice); + }); + } + else + { + //闃叉鐭椂闂村唴澶氭璇诲彇 + if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI.CommonDevice); + } + } + }) + { IsBackground = true }.Start(); + + var deviceTypeRowLayout = new RowLayout() + { + Height = Application.GetRealHeight(129 + 35), + LineColor = ZigbeeColor.Current.GXCBackgroundColor, + Tag = deviceUI + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + var deviceRow = new CategoryFunctionForWinRow(0, 35); + deviceRow.Init(deviceUI); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetOnLineStatu(rollerShade.IsOnline == 1); + deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); + deviceRow.SetStatu(rollerShade.WcdCurrentPositionLiftPercentage != 0); deviceRow.SetRollerShadeIcon(rollerShade.WcdType); - CommonPage.Loading.Hide(); - }); - }); - }) - { IsBackground = true }.Start(); - } + deviceTypeRowLayout.AddChidren(deviceRow); - var editBtn = new CommonForm.RowLayoutEditButton() - { - Tag = deviceUI, - Radius = 0 - }; - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - if (room.IsSharedRoom == false) - { - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - } + if (rollerShade.WcdType == -1) + { + CommonPage.Loading.Start(); + new System.Threading.Thread(() => + { + Rollershade.ReadWcdTypeAction(rollerShade, () => + { + Application.RunOnMainThread(() => + { + deviceRow.SetRollerShadeIcon(rollerShade.WcdType); + CommonPage.Loading.Hide(); + }); + }); + }) + { IsBackground = true }.Start(); + } - deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => - { - var rollerShadeControl = new Phone.Device.Curtain.RollerShadeControl(); - UserView.HomePage.Instance.AddChidren(rollerShadeControl); - UserView.HomePage.Instance.PageIndex += 1; - UserView.HomePage.Instance.ScrollEnabled = false; - //rollerShadeControl.action = RefreshBodyView; - rollerShadeControl.Show(deviceUI, room); - }; - } - else if (deviceUI.CommonDevice.Type == DeviceType.DoorLock) - { - var deviceTypeRowLayout = new RowLayout() - { - Height = Application.GetRealHeight(129 + 35), - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI, + Radius = 0 + }; + var delBtn = new Device.CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI, + Radius = 0 + }; + if (room.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } - 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 rollerShadeControl = new Phone.Device.Curtain.RollerShadeControl(); + UserView.HomePage.Instance.AddChidren(rollerShadeControl); + UserView.HomePage.Instance.PageIndex += 1; + UserView.HomePage.Instance.ScrollEnabled = false; + //rollerShadeControl.action = RefreshBodyView; + rollerShadeControl.Show(deviceUI, room); + }; + } + } + else if (deviceUI.CommonDevice.Type == 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(); - }; + 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 - }; - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI - }; - if (room.IsSharedRoom == false) - { - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - 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 editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI + }; + var delBtn = new Device.CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI + }; + if (room.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + 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 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 - }; - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI - }; - if (room.IsSharedRoom == false) - { - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - } - } + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI + }; + var delBtn = new Device.CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI + }; + if (room.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } + } + } + catch + { + + } + }); + }) + { IsBackground=true}.Start(); } }; -- Gitblit v1.8.0