| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using Shared.Common; |
| | | using Shared.Phone.Device.AC; |
| | | using ZigBee.Device; |
| | | using Shared.Phone.Device.CommonForm; |
| | | |
| | | namespace Shared.Phone.UserView |
| | | { |
| | |
| | | /// 功能和场景bodyView |
| | | /// </summary> |
| | | private FrameLayout functionSceneBodyView; |
| | | /// <summary> |
| | | /// The height of the top frame layout -- 500 |
| | | /// </summary> |
| | | private static readonly int topFrameLayout_Height = 500; |
| | | /// <summary> |
| | | /// The height of the middle view.-- 1920-500-160 |
| | | /// </summary> |
| | | private static readonly int midView_Height = CommonPage.AppRealHeight - topFrameLayout_Height - CommonPage.TabbarHeight; |
| | | |
| | | /// <summary> |
| | | /// The height of the room page view. -- 550 |
| | | /// </summary> |
| | |
| | | /// </summary> |
| | | private readonly int sleepSpan = 300; |
| | | |
| | | |
| | | private FrameLayout itemView=new FrameLayout(); |
| | | /// <summary> |
| | | /// floorBtn |
| | | /// </summary> |
| | | private Button floorBtn; |
| | | #endregion |
| | | |
| | | #region ◆ 接口____________________________ |
| | |
| | | /// <param name="common">Common.</param> |
| | | /// <param name="typeTag">Type tag.</param> |
| | | public void DeviceInfoChange(CommonDevice common, string typeTag) |
| | | { |
| | | {
|
| | | //设备上报状态中 当CluterID=3,就证明该设备在线,直接标记 |
| | | if (typeTag == "DeviceStatusReport") |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | try |
| | | { |
| | | for (int i = 0; deviceVerticalScrolViewLayout != null && i < deviceVerticalScrolViewLayout.ChildrenCount; i++) |
| | | { |
| | | var rowFL = deviceVerticalScrolViewLayout.GetChildren(i) as FrameLayout; |
| | | var rowLayout = rowFL.GetChildren(0) as RowLayout; |
| | | var deviceUI = rowLayout.Tag as DeviceUI; |
| | | if (deviceUI.CommonDevice == null || rowLayout.ChildrenCount == 0) |
| | | { |
| | | //设备为空或者控件为空 |
| | | continue; |
| | | } |
| | | |
| | | if (common.DeviceAddr != deviceUI.CommonDevice.DeviceAddr || common.DeviceEpoint != deviceUI.CommonDevice.DeviceEpoint) |
| | | { |
| | | //判断是否为当前设备 |
| | | continue; |
| | | } |
| | | var frameLayout = rowLayout.GetChildren(0) as FrameLayout; |
| | | switch (deviceUI.CommonDevice.Type) |
| | | { |
| | | case DeviceType.OnOffOutput: |
| | | //开关功能 |
| | | if ((common as ZigBee.Device.ToggleLight).DeviceStatusReport.CluterID == 6) |
| | | { |
| | | var onOffOutputLight = deviceUI.CommonDevice as ZigBee.Device.ToggleLight; |
| | | onOffOutputLight.DeviceStatusReport = (common as ZigBee.Device.ToggleLight).DeviceStatusReport; |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | | if (typeTag == "DeviceStatusReport")
|
| | | {
|
| | | Application.RunOnMainThread(() =>
|
| | | {
|
| | | try
|
| | | {
|
| | | for (int i = 0; deviceVerticalScrolViewLayout != null && i < deviceVerticalScrolViewLayout.ChildrenCount; i++)
|
| | | {
|
| | | var rowFL = deviceVerticalScrolViewLayout.GetChildren(i) as FrameLayout;
|
| | | var deviceUI = rowFL.Tag as DeviceUI;
|
| | | if (deviceUI.CommonDevice == null || rowFL.ChildrenCount == 0)
|
| | | {
|
| | | //设备为空或者控件为空
|
| | | continue;
|
| | | }
|
| | |
|
| | | if (common.DeviceAddr != deviceUI.CommonDevice.DeviceAddr || common.DeviceEpoint != deviceUI.CommonDevice.DeviceEpoint)
|
| | | {
|
| | | //判断是否为当前设备
|
| | | continue;
|
| | | }
|
| | | var frameLayout = rowFL.GetChildren(0) as FrameLayout;
|
| | | switch (deviceUI.CommonDevice.Type)
|
| | | {
|
| | | case DeviceType.OnOffOutput:
|
| | | //开关功能
|
| | | if (common.DeviceStatusReport.CluterID == 6)
|
| | | {
|
| | | var onOffOutputLight = deviceUI.CommonDevice as ZigBee.Device.ToggleLight;
|
| | | onOffOutputLight.DeviceStatusReport = common.DeviceStatusReport;
|
| | |
|
| | | //记录、更新状态 |
| | | if (onOffOutputLight.DeviceStatusReport.AttriBute == null || onOffOutputLight.DeviceStatusReport.AttriBute.Count == 0) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | | if (tempView.Tag == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (tempView.Tag.ToString() == deviceStatus_OnOffStatus) |
| | | { |
| | | //记录、更新状态 |
| | | if (onOffOutputLight.DeviceStatusReport.AttriBute == null || onOffOutputLight.DeviceStatusReport.AttriBute.Count == 0) |
| | | { |
| | | continue; |
| | | } |
| | | onOffOutputLight.OnOffStatus = onOffOutputLight.DeviceStatusReport.AttriBute[0].AttriButeData; |
| | | (tempView as Button).IsSelected = onOffOutputLight.OnOffStatus == 1; |
| | | //记录回复时间 |
| | | onOffOutputLight.LastDateTime = DateTime.Now; |
| | | } |
| | | continue; |
| | | } |
| | | onOffOutputLight.OnOffStatus = onOffOutputLight.DeviceStatusReport.AttriBute[0].AttriButeData; |
| | | (rowFL.GetChildren(0) as FunctionMainView).IsSelected = onOffOutputLight.OnOffStatus == 1;
|
| | | (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); |
| | | //记录回复时间 |
| | | onOffOutputLight.LastDateTime = DateTime.Now; |
| | | } |
| | | //当CluterID=3,就证明该设备在线,直接标记 |
| | | if ((common as ZigBee.Device.ToggleLight).DeviceStatusReport.CluterID == 3) |
| | | { |
| | | var onOffOutputLight = deviceUI.CommonDevice as ToggleLight; |
| | | onOffOutputLight.IsOnline = 1; |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | | if (tempView.Tag == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (tempView.Tag.ToString() == deviceStatus_Online) |
| | | { |
| | | (tempView as Button).IsSelected = onOffOutputLight.IsOnline == 1; |
| | | //记录回复时间 |
| | | onOffOutputLight.LastDateTime = DateTime.Now; |
| | | } |
| | | } |
| | | break;
|
| | | |
| | | } |
| | | break; |
| | | |
| | | case DeviceType.AirSwitch: |
| | | //开关功能 |
| | | if ((common as ZigBee.Device.AirSwitch).DeviceStatusReport.CluterID == 6) |
| | | { |
| | | var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; |
| | | airSwitch.DeviceStatusReport = (common as ZigBee.Device.AirSwitch).DeviceStatusReport; |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | | if (tempView.Tag == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (tempView.Tag.ToString() == deviceStatus_OnOffStatus) |
| | | { |
| | | case DeviceType.AirSwitch:
|
| | | //开关功能
|
| | | if (common.DeviceStatusReport.CluterID == 6)
|
| | | {
|
| | | var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch;
|
| | | airSwitch.DeviceStatusReport = common.DeviceStatusReport;
|
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++)
|
| | | {
|
| | | var tempView = frameLayout.GetChildren(j);
|
| | | if (tempView.Tag == null)
|
| | | {
|
| | | continue;
|
| | | }
|
| | | if (tempView.Tag.ToString() == deviceStatus_OnOffStatus)
|
| | | {
|
| | | //记录、更新状态 |
| | | if (airSwitch.DeviceStatusReport.AttriBute == null || airSwitch.DeviceStatusReport.AttriBute.Count == 0) |
| | | { |
| | | return; |
| | | } |
| | | airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData; |
| | | (tempView as Button).IsSelected = airSwitch.OnOffStatus == 1; |
| | | (rowFL.GetChildren(0) as FunctionMainView).IsSelected = airSwitch.OnOffStatus == 1;
|
| | | (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); |
| | | //记录回复时间 |
| | | airSwitch.LastDateTime = DateTime.Now; |
| | | } |
| | | } |
| | | }
|
| | | }
|
| | | } |
| | | //当CluterID=3,就证明该设备在线,直接标记 |
| | | if ((common as ZigBee.Device.AirSwitch).DeviceStatusReport.CluterID == 3) |
| | | if (common.DeviceStatusReport.CluterID == 3) |
| | | { |
| | | var airSwitch = deviceUI.CommonDevice as AirSwitch; |
| | | airSwitch.IsOnline = 1; |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | | if (tempView.Tag == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (tempView.Tag.ToString() == deviceStatus_Online) |
| | | { |
| | | (tempView as Button).IsSelected = airSwitch.IsOnline == 1; |
| | | //记录回复时间 |
| | | airSwitch.LastDateTime = DateTime.Now; |
| | | } |
| | | } |
| | | deviceUI.CommonDevice.IsOnline = 1; |
| | | deviceUI.CommonDevice.LastDateTime = DateTime.Now; |
| | | } |
| | | break; |
| | | break;
|
| | | |
| | | case DeviceType.WindowCoveringDevice: |
| | | if ((common as ZigBee.Device.Rollershade).DeviceStatusReport.CluterID == 3) |
| | | case DeviceType.WindowCoveringDevice:
|
| | | if (common.DeviceStatusReport.CluterID == 258) |
| | | { |
| | | var rollershade = deviceUI.CommonDevice as ZigBee.Device.Rollershade; |
| | | rollershade.IsOnline = 1; |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | | if (common.DeviceStatusReport.AttriBute[0].AttributeId == 0) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | | if (tempView.Tag == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (tempView.Tag.ToString() == deviceStatus_Online) |
| | | { |
| | | (tempView as Button).IsSelected = rollershade.IsOnline == 1; |
| | | //记录回复时间 |
| | | rollershade.LastDateTime = DateTime.Now; |
| | | } |
| | | //窗帘类型 |
| | | var rollerShade = deviceUI.CommonDevice as Rollershade; |
| | | rollerShade.DeviceStatusReport = common.DeviceStatusReport; |
| | | rollerShade.WcdType = common.DeviceStatusReport.AttriBute[0].AttriButeData; |
| | | rollerShade.LastDateTime = DateTime.Now; |
| | | (rowFL.GetChildren(0) as FunctionMainView).IsSelected = rollerShade.WcdCurrentPositionLiftPercentage == 100; |
| | | (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); |
| | | } |
| | | } |
| | | break; |
| | | if (common.DeviceStatusReport.CluterID == 3) |
| | | { |
| | | deviceUI.CommonDevice.IsOnline = 1; |
| | | deviceUI.CommonDevice.LastDateTime = DateTime.Now; |
| | | } |
| | | break;
|
| | | |
| | | case DeviceType.Thermostat: |
| | | //AC功能 |
| | | if ((common as ZigBee.Device.AC).DeviceStatusReport.CluterID == 513) |
| | | if (common.DeviceStatusReport.CluterID == 513) |
| | | { |
| | | var ac = deviceUI.CommonDevice as ZigBee.Device.AC; |
| | | ac.DeviceStatusReport = (common as ZigBee.Device.AC).DeviceStatusReport; |
| | | ac.DeviceStatusReport = common.DeviceStatusReport; |
| | | var attriButeList = ac.DeviceStatusReport.AttriBute; |
| | | if (attriButeList == null || attriButeList.Count == 0) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | var curTemp = (attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default; |
| | | switch (attriButeList[0].AttributeId) |
| | | { |
| | | case 0: |
| | | //此属性表明室内当前的温度 * 100,实际温度为“LocalTemperature / 100”,单位:℃ |
| | | ac.currentLocalTemperature = attriButeList[0].AttriButeData / 100; |
| | | ac.currentLocalTemperature = curTemp; |
| | | ac.LastDateTime = DateTime.Now; |
| | | //indoorTemperatureBtn.Text = $"室温 {ac.currentLocalTemperature} ℃"; |
| | | //currentTemperatureBtn.Text = $"{ac.currentLocalTemperature} ℃"; |
| | | //Temparetrue |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | | if (tempView.Tag == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (tempView.Tag.ToString() == "Temparetrue") |
| | | { |
| | | |
| | | (tempView as Button).Text = $"{ac.currentLocalTemperature} ℃"; |
| | | } |
| | | } |
| | | break; |
| | | |
| | | case 17: |
| | | //此属性表明此设备当前的制冷温度,实际温度为“CoolingSetpoint / 100”,单位:℃。 |
| | | ac.currentCoolingSetpoint = attriButeList[0].AttriButeData / 100; |
| | | ac.currentCoolingSetpoint = curTemp; |
| | | ac.LastDateTime = DateTime.Now; |
| | | break; |
| | | |
| | | case 18: |
| | | //此属性表明此设备当前的制热温度,实际温度为“HeatingSetpoint / 100”,单位:℃。 |
| | | ac.currentHeatingSetpoint = attriButeList[0].AttriButeData / 100; |
| | | ac.currentHeatingSetpoint = curTemp; |
| | | ac.LastDateTime = DateTime.Now; |
| | | break; |
| | | |
| | | case 4096: |
| | | //此属性表明此设备当前的自动温度,实际温度为“AutoSetpoint / 100”,单位:℃。 |
| | | ac.currentAutoSetpoint = curTemp; |
| | | ac.LastDateTime = DateTime.Now; |
| | | break; |
| | | |
| | | case 28: |
| | | //此属性描述恒温设备正处于哪种模式 |
| | | //Off = 0 Auto = 1 Cool = 3 Heat = 4 FanOnly = 7 Dry = 8 |
| | | ac.currentSystemMode = attriButeList[0].AttriButeData; |
| | | ac.LastDateTime = DateTime.Now; |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | | if (tempView.Tag == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (tempView.Tag.ToString() == deviceStatus_OnOffStatus) |
| | | { |
| | | |
| | | (tempView as Button).IsSelected = ac.currentSystemMode != 0; |
| | | } |
| | | } |
| | | break; |
| | | |
| | | } |
| | | |
| | | (rowFL.GetChildren(0) as FunctionMainView).IsSelected = ac.currentSystemMode != 0; |
| | | (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); |
| | | } |
| | | if (common.DeviceStatusReport.CluterID == 514) |
| | | { |
| | | var ac = deviceUI.CommonDevice as ZigBee.Device.AC; |
| | | var attriButeList = common.DeviceStatusReport.AttriBute; |
| | | if (attriButeList == null || attriButeList.Count == 0) |
| | | { |
| | | return; |
| | | } |
| | | ac.DeviceStatusReport = common.DeviceStatusReport; |
| | | switch (attriButeList[0].AttributeId) |
| | | { |
| | | case 0: |
| | | ac.currentFanMode = attriButeList[0].AttriButeData; |
| | | ac.LastDateTime = DateTime.Now; |
| | | break; |
| | | case 4096: |
| | | ac.currentFanSwingMode = attriButeList[0].AttriButeData; |
| | | ac.LastDateTime = DateTime.Now; |
| | | break; |
| | | } |
| | | (rowFL.GetChildren(0) as FunctionMainView).IsSelected = ac.currentSystemMode != 0; |
| | | (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); |
| | | } |
| | | //当CluterID=3,就证明该设备在线,直接标记 |
| | | if ((common as ZigBee.Device.AC).DeviceStatusReport.CluterID == 3) |
| | | if (common.DeviceStatusReport.CluterID == 3) |
| | | { |
| | | var ac = deviceUI.CommonDevice as AC; |
| | | ac.IsOnline = 1; |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | | if (tempView.Tag == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (tempView.Tag.ToString() == deviceStatus_Online) |
| | | { |
| | | (tempView as Button).IsSelected = ac.IsOnline == 1; |
| | | //记录回复时间 |
| | | ac.LastDateTime = DateTime.Now; |
| | | } |
| | | } |
| | | |
| | | ac.LastDateTime = DateTime.Now; |
| | | } |
| | | 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; |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | | var dimmableLight = deviceUI.CommonDevice as DimmableLight; |
| | | dimmableLight.DeviceStatusReport = common.DeviceStatusReport; |
| | | //记录、更新状态 |
| | | if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | | if (tempView.Tag == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (tempView.Tag.ToString() == deviceStatus_OnOffStatus) |
| | | { |
| | | //记录、更新状态 |
| | | if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0) |
| | | { |
| | | return; |
| | | } |
| | | dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; |
| | | (tempView as Button).IsSelected = dimmableLight.OnOffStatus == 1; |
| | | //记录回复时间 |
| | | dimmableLight.LastDateTime = DateTime.Now; |
| | | } |
| | | return; |
| | | } |
| | | dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; |
| | | (rowFL.GetChildren(0) as FunctionMainView).IsSelected = dimmableLight.OnOffStatus == 1; |
| | | (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); |
| | | //记录回复时间 |
| | | dimmableLight.LastDateTime = DateTime.Now; |
| | | } |
| | | |
| | | //亮度 |
| | | if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 8) |
| | | if (common.DeviceStatusReport.CluterID == 8) |
| | | { |
| | | var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; |
| | | dimmableLight.DeviceStatusReport = (common as ZigBee.Device.DimmableLight).DeviceStatusReport; |
| | | var dimmableLight = deviceUI.CommonDevice as DimmableLight; |
| | | dimmableLight.DeviceStatusReport = common.DeviceStatusReport; |
| | | var attriButeList = dimmableLight.DeviceStatusReport.AttriBute; |
| | | if (attriButeList == null || attriButeList.Count == 0) |
| | | { |
| | |
| | | //此属性表明当前亮度程度 |
| | | dimmableLight.Level = attriButeList[0].AttriButeData ; |
| | | dimmableLight.LastDateTime = DateTime.Now; |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | | if (tempView.Tag == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (tempView.Tag.ToString() == "LevelSeekBar") |
| | | { |
| | | (tempView as HorizontalSeekBar).Progress = dimmableLight.Level; |
| | | } |
| | | } |
| | | (rowFL.GetChildren(0) as FunctionMainView).IsSelected = true; |
| | | (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); |
| | | break; |
| | | } |
| | | } |
| | | //当CluterID=3,就证明该设备在线,直接标记 |
| | | if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 3) |
| | | { |
| | | var dimmableLight = deviceUI.CommonDevice as DimmableLight; |
| | | dimmableLight.IsOnline = 1; |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | | if (tempView.Tag == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (tempView.Tag.ToString() == deviceStatus_Online) |
| | | { |
| | | (tempView as Button).IsSelected = dimmableLight.IsOnline == 1; |
| | | //记录回复时间 |
| | | dimmableLight.LastDateTime = DateTime.Now; |
| | | } |
| | | } |
| | | break; |
| | | }
|
| | | }
|
| | | }
|
| | | catch (Exception ex)
|
| | | {
|
| | | System.Console.WriteLine($"Error:{ex.Message}");
|
| | | }
|
| | | });
|
| | | }
|
| | | |
| | | } |
| | | break; |
| | | |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | System.Console.WriteLine($"Error:{ex.Message}"); |
| | | } |
| | | }); |
| | | } |
| | | //设备在线状态上报 |
| | | else if (typeTag == "OnlineStatusChange") |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | try |
| | | { |
| | | for (int i = 0; deviceVerticalScrolViewLayout != null && i < deviceVerticalScrolViewLayout.ChildrenCount; i++) |
| | | { |
| | | var rowFL = deviceVerticalScrolViewLayout.GetChildren(i) as FrameLayout; |
| | | var rowLayout = rowFL.GetChildren(0) as RowLayout; |
| | | var deviceUI = rowLayout.Tag as DeviceUI; |
| | | if (deviceUI.CommonDevice == null || rowLayout.ChildrenCount == 0) |
| | | { |
| | | //设备为空或者控件为空 |
| | | continue; |
| | | } |
| | | if (common.DeviceAddr != deviceUI.CommonDevice.DeviceAddr || common.DeviceEpoint != deviceUI.CommonDevice.DeviceEpoint) |
| | | { |
| | | //判断是否为当前设备 |
| | | continue; |
| | | } |
| | | var frameLayout = rowLayout.GetChildren(0) as FrameLayout; |
| | | switch (deviceUI.CommonDevice.Type) |
| | | { |
| | | case DeviceType.OnOffOutput: |
| | | var onOffOutputLight = deviceUI.CommonDevice as ToggleLight; |
| | | onOffOutputLight.IsOnline = (common as ToggleLight).IsOnline; |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | | if (tempView.Tag == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (tempView.Tag.ToString() == deviceStatus_Online) |
| | | { |
| | | (tempView as Button).IsSelected = onOffOutputLight.IsOnline == 1; |
| | | } |
| | | } |
| | | //记录回复时间 |
| | | onOffOutputLight.LastDateTime = DateTime.Now; |
| | | break; |
| | | case DeviceType.AirSwitch: |
| | | var airSwitch = deviceUI.CommonDevice as AirSwitch; |
| | | airSwitch.IsOnline = (common as AirSwitch).IsOnline; |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | | if (tempView.Tag == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (tempView.Tag.ToString() == deviceStatus_Online) |
| | | { |
| | | (tempView as Button).IsSelected = airSwitch.IsOnline == 1; |
| | | } |
| | | } |
| | | //记录回复时间 |
| | | airSwitch.LastDateTime = DateTime.Now; |
| | | break; |
| | | case DeviceType.WindowCoveringDevice: |
| | | var rollershade = deviceUI.CommonDevice as ZigBee.Device.Rollershade; |
| | | rollershade.IsOnline = (common as Rollershade).IsOnline; |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | | if (tempView.Tag == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (tempView.Tag.ToString() == deviceStatus_Online) |
| | | { |
| | | (tempView as Button).IsSelected = rollershade.IsOnline == 1; |
| | | } |
| | | } |
| | | //记录回复时间 |
| | | rollershade.LastDateTime = DateTime.Now; |
| | | break; |
| | | case DeviceType.Thermostat: |
| | | var ac = deviceUI.CommonDevice as ZigBee.Device.AC; |
| | | ac.IsOnline = (common as ZigBee.Device.AC).IsOnline; |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | | if (tempView.Tag == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (tempView.Tag.ToString() == deviceStatus_Online) |
| | | { |
| | | (tempView as Button).IsSelected = ac.IsOnline == 1; |
| | | } |
| | | } |
| | | //记录回复时间 |
| | | ac.LastDateTime = DateTime.Now; |
| | | break; |
| | | case DeviceType.DimmableLight: |
| | | var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; |
| | | dimmableLight.IsOnline = (common as ZigBee.Device.DimmableLight).IsOnline; |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | | if (tempView.Tag == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (tempView.Tag.ToString() == deviceStatus_Online) |
| | | { |
| | | (tempView as Button).IsSelected = dimmableLight.IsOnline == 1; |
| | | } |
| | | } |
| | | //记录回复时间 |
| | | dimmableLight.LastDateTime = DateTime.Now; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | System.Console.WriteLine($"主页功能刷新-Error:{ex.Message}"); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// Changeds the IL ogic status. |
| | |
| | | public UserHomeView() |
| | | { |
| | | ZbGateway.StatusList.Add(this); |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor; |
| | | BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | public void Show() |
| | | { |
| | | |
| | | this.RemoveAll(); |
| | | |
| | | #region topview |
| | | var topFrameLayout = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(topFrameLayout_Height), |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | Y=Application.GetRealHeight(60), |
| | | Height = Application.GetRealHeight(127), |
| | | BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor, |
| | | }; |
| | | this.AddChidren(topFrameLayout); |
| | | AddChidren(topFrameLayout); |
| | | |
| | | var homeBtn = new Device.CommonForm.SelectedStatuButton() |
| | | var floor = new Button |
| | | { |
| | | Y = Application.GetRealHeight(100), |
| | | X = Application.GetRealWidth(50), |
| | | Width = Application.GetMinRealAverage(110), |
| | | Height = Application.GetMinRealAverage(110), |
| | | UnSelectedImagePath = "Item/MyHome.png", |
| | | |
| | | X = Application.GetRealWidth(CommonFormResouce.X_Left), |
| | | Width = Application.GetMinRealAverage(69), |
| | | Height = Application.GetMinRealAverage(69), |
| | | Gravity = Gravity.CenterVertical, |
| | | UnSelectedImagePath = "Item/Floor.png" |
| | | }; |
| | | topFrameLayout.AddChidren(homeBtn); |
| | | topFrameLayout.AddChidren(floor); |
| | | |
| | | var residecneName = new Button() |
| | | floorBtn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(100), |
| | | Width = Application.GetRealWidth(600), |
| | | Height = Application.GetRealHeight(110), |
| | | TextAlignment = TextAlignment.Center, |
| | | Text = Config.Instance.Home.Name ?? Language.StringByID(R.MyInternationalizationString.TheResidenceNameNull), |
| | | TextSize = 20, |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | Gravity = Gravity.CenterHorizontal |
| | | X=floor.Right, |
| | | Width=Application.GetRealWidth(500), |
| | | Height=Application.GetRealHeight(100), |
| | | Gravity = Gravity.CenterVertical, |
| | | TextAlignment =TextAlignment.CenterLeft, |
| | | TextColor=ZigbeeColor.Current.GXCTextColor, |
| | | Text=Config.Instance.Home.GetCurrentFloorName |
| | | }; |
| | | topFrameLayout.AddChidren(residecneName); |
| | | topFrameLayout.AddChidren(floorBtn); |
| | | |
| | | var messageBtn = new Button() |
| | | { |
| | | X = Application.GetRealWidth(CommonPage.AppRealWidth - 150), |
| | | Y = Application.GetRealHeight(100), |
| | | Width = Application.GetMinRealAverage(110), |
| | | Height = Application.GetMinRealAverage(110), |
| | | UnSelectedImagePath = "Item/Message.png" |
| | | X = Application.GetRealWidth(953), |
| | | Width = Application.GetMinRealAverage(69), |
| | | Height = Application.GetMinRealAverage(69), |
| | | Gravity = Gravity.CenterVertical, |
| | | UnSelectedImagePath = "Item/Message.png", |
| | | SelectedImagePath="Item/MessageSelected.png" |
| | | }; |
| | | //暂时隐藏 |
| | | //topFrameLayout.AddChidren(messageBtn); |
| | | topFrameLayout.AddChidren(messageBtn); |
| | | |
| | | //切换住宅 |
| | | homeBtn.MouseUpEventHandler += (send, e) => |
| | | var residecneName = new Button() |
| | | { |
| | | X=Application.GetRealWidth(CommonFormResouce.X_Left), |
| | | Y = Application.GetRealHeight(161), |
| | | Width = Application.GetRealWidth(700), |
| | | Height = Application.GetRealHeight(95), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | Text = Config.Instance.Home.Name ?? Language.StringByID(R.MyInternationalizationString.TheResidenceNameNull), |
| | | TextSize = 24, |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor |
| | | }; |
| | | if(Config.Instance.Home.IsOthreShare) |
| | | { |
| | | residecneName.Text = $"({Language.StringByID(R.MyInternationalizationString.Shared)}){Config.Instance.Home.Name}"; |
| | | } |
| | | AddChidren(residecneName); |
| | | |
| | | floor.MouseUpEventHandler += SelectFloor; |
| | | floorBtn.MouseUpEventHandler += SelectFloor; |
| | | //切换住宅 |
| | | residecneName.MouseLongEventHandler += (send, e) => |
| | | { |
| | | var tempHomeBtn = send as Button; |
| | | if (Config.Instance.HomeFilePathList.Count == 0) |
| | | { |
| | | var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.CurrentlyTheUserIshHouseIsEmptyPleaseBuildANewHouseFirst), Language.StringByID(R.MyInternationalizationString.Close), Language.StringByID(R.MyInternationalizationString.OK)); |
| | |
| | | residenceListView.Close(); |
| | | }; |
| | | |
| | | var upperTriangleBtn = new Button() |
| | | var bg = new Button |
| | | { |
| | | X = Application.GetRealWidth(25) + homeBtn.X, |
| | | Y = homeBtn.Bottom, |
| | | Width = Application.GetMinRealAverage(30), |
| | | Height = Application.GetMinRealAverage(15), |
| | | UnSelectedImagePath = "Item/UpperTriangle.png" |
| | | X = Application.GetRealWidth(35), |
| | | Y = Application.GetRealHeight(248), |
| | | Width = Application.GetMinRealAverage(449), |
| | | Height = Application.GetMinRealAverage(478), |
| | | UnSelectedImagePath = "Item/SelectHouse" |
| | | }; |
| | | closeBGview.AddChidren(upperTriangleBtn); |
| | | closeBGview.AddChidren(bg); |
| | | |
| | | var changeHomeFL = new FrameLayout() |
| | | { |
| | | X = Application.GetRealWidth(25), |
| | | Y = upperTriangleBtn.Bottom, |
| | | Height = Application.GetRealHeight(340), |
| | | Width = Application.GetRealWidth(500), |
| | | X = Application.GetRealWidth(35), |
| | | Y = Application.GetRealHeight(271), |
| | | Height = Application.GetRealHeight(449), |
| | | Width = Application.GetRealWidth(440), |
| | | Radius = CommonPage.BigFormRadius, |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor |
| | | }; |
| | |
| | | var changeHomeBtn = new Button() |
| | | { |
| | | X = Application.GetRealWidth(80), |
| | | Width = Application.GetRealWidth(450), |
| | | Height = Application.GetRealHeight(110), |
| | | TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, |
| | | Width = Application.GetRealWidth(350), |
| | | Height = Application.GetRealHeight(150), |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | TextID = R.MyInternationalizationString.ChangeHome, |
| | | TextAlignment = TextAlignment.CenterLeft |
| | | }; |
| | |
| | | var scrolView = new VerticalScrolViewLayout() |
| | | { |
| | | Y = changeHomeBtn.Bottom, |
| | | Height = Application.GetRealHeight(220) |
| | | Height = Application.GetMinRealAverage(305-10) |
| | | }; |
| | | changeHomeFL.AddChidren(scrolView); |
| | | |
| | |
| | | } |
| | | var rowView = new RowLayout() |
| | | { |
| | | Height = Application.GetRealHeight(110) |
| | | Height = Application.GetRealHeight(150) |
| | | }; |
| | | scrolView.AddChidren(rowView); |
| | | var pointBtn = new Device.CommonForm.SelectedStatuButton() |
| | | { |
| | | X=Application.GetRealWidth(80), |
| | | Width = Application.GetMinRealAverage(80), |
| | | Height = Application.GetMinRealAverage(110), |
| | | Height = Application.GetMinRealAverage(80), |
| | | Gravity = Gravity.CenterVertical, |
| | | UnSelectedImagePath = "Item/Point.png", |
| | | SelectedImagePath = "Item/PointSelected.png", |
| | | UnSelectedImagePath = "Item/House.png", |
| | | SelectedImagePath = "Item/HouseSelected.png", |
| | | IsSelected = home.Id == Config.Instance.Home.Id |
| | | }; |
| | | rowView.AddChidren(pointBtn); |
| | | var nameBtn = new Device.CommonForm.SelectedStatuButton() |
| | | { |
| | | X = Application.GetRealWidth(80), |
| | | Width = Application.GetRealWidth(500 - 80 - 50), |
| | | X = Application.GetRealWidth(173), |
| | | Width = Application.GetRealWidth(280), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | Text = home.Name, |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | SelectedTextColor = ZigbeeColor.Current.GXCTextBlueColor, |
| | | TextColor = ZigbeeColor.Current.GXCTextGrayColor, |
| | | SelectedTextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | IsSelected = home.Id == Config.Instance.Home.Id |
| | | }; |
| | | if(home.IsOthreShare) |
| | | { |
| | | nameBtn.Text = $"({Language.StringByID(R.MyInternationalizationString.Shared)}){home.Name}"; |
| | | } |
| | | rowView.AddChidren(nameBtn); |
| | | |
| | | EventHandler<MouseEventArgs> selectedResidenceHandler = (send1, e1) => |
| | | { |
| | | if (Config.Instance.Home == home) |
| | | if (Config.Instance.Home.FileName == homeFilePath) |
| | | { |
| | | return; |
| | | } |
| | |
| | | nameBtn.IsSelected = true; |
| | | |
| | | residecneName.Text = home.Name; |
| | | if(home.IsOthreShare) |
| | | { |
| | | nameBtn.Text = $"({Language.StringByID(R.MyInternationalizationString.Shared)}){home.Name}"; |
| | | } |
| | | clickCheckBtn = pointBtn; |
| | | clickNameBtn = nameBtn; |
| | | residenceListView.Close(); |
| | |
| | | clickCheckBtn = pointBtn; |
| | | clickNameBtn = nameBtn; |
| | | residecneName.Text = home.Name; |
| | | if (home.IsOthreShare) |
| | | { |
| | | residecneName.Text = nameBtn.Text = $"({Language.StringByID(R.MyInternationalizationString.Shared)}){home.Name}"; |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | //消息 |
| | | messageBtn.MouseUpEventHandler += (send, e) => |
| | | { |
| | | |
| | | var roomList = new Shared.Phone.Device.Room.RoomManagement(); |
| | | HomePage.Instance.AddChidren(roomList); |
| | | HomePage.Instance.PageIndex += 1; |
| | | roomList.Show(); |
| | | }; |
| | | |
| | | #endregion |
| | | |
| | | #region midView |
| | | var midView = new FrameLayout() |
| | | if(CanBindGateway()==false) |
| | | { |
| | | Y = topFrameLayout.Bottom, |
| | | Height = midView_Height, |
| | | }; |
| | | AddChidren(midView); |
| | | #endregion |
| | | |
| | | #region --roomPage |
| | | var roomPageView = new PageLayout() |
| | | { |
| | | Y = Application.GetRealHeight(50) + residecneName.Bottom, |
| | | Width = Application.GetRealWidth(CommonPage.AppRealWidth - CommonPage.XLeft * 2), |
| | | Height = Application.GetMinRealAverage(roomPageView_Height), |
| | | Radius = CommonPage.BigFormRadius, |
| | | Gravity = Gravity.CenterHorizontal, |
| | | IsShowPoint = false |
| | | }; |
| | | AddChidren(roomPageView); |
| | | |
| | | //当前房间 |
| | | if (Shared.Common.Room.canInitAllRoom == true) |
| | | { |
| | | //Room.CurrentRoom = Room.CurrentRoom == null ? Room.Lists[0] : Room.CurrentRoom; |
| | | Room.CurrentRoom = Room.Lists[0]; |
| | | foreach (var room in Room.Lists) |
| | | var roomPageView = new PageLayout() |
| | | { |
| | | Y = Application.GetRealHeight(302), |
| | | Width = Application.GetRealWidth(CommonPage.AppRealWidth - CommonPage.XLeft * 2), |
| | | Height = Application.GetMinRealAverage(roomPageView_Height), |
| | | Radius = CommonPage.BigFormRadius, |
| | | Gravity = Gravity.CenterHorizontal, |
| | | IsShowPoint = false |
| | | }; |
| | | AddChidren(roomPageView); |
| | | |
| | | //当前房间 |
| | | if (Shared.Common.Room.CanInitAllRoom == true) |
| | | { |
| | | //Room.CurrentRoom = Room.CurrentRoom == null ? Room.Lists[0] : Room.CurrentRoom; |
| | | Room.CurrentRoom = Room.Lists[0]; |
| | | foreach (var room in Room.CurrentRoom.GetRoomsByCurrentFloorIdAppendLoveRoom()) |
| | | { |
| | | var roomBackView = new FrameLayout() |
| | | { |
| | | BackgroundImagePath = room.BackgroundImage |
| | | }; |
| | | roomPageView.AddChidren(roomBackView); |
| | | var roomBG = new Button() |
| | | { |
| | | UnSelectedImagePath = "Room/HomeBG.png", |
| | | }; |
| | | roomBackView.AddChidren(roomBG); |
| | | var roomName = new Button() |
| | | { |
| | | X = Application.GetRealWidth(20), |
| | | Y = Application.GetRealHeight(20), |
| | | Width = Application.GetRealWidth(500), |
| | | Height = Application.GetRealHeight(80), |
| | | Text = room.Name, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextColor = ZigbeeColor.Current.GXCTextWhiteColor, |
| | | TextSize = 18, |
| | | }; |
| | | roomBackView.AddChidren(roomName); |
| | | var roomListBtn = new Device.CommonForm.SelectedStatuButton() |
| | | { |
| | | X = roomPageView.Width - Application.GetRealWidth(100 + 20), |
| | | Y = Application.GetRealHeight(20), |
| | | Width = Application.GetMinRealAverage(100), |
| | | Height = Application.GetMinRealAverage(100), |
| | | UnSelectedImagePath = "Item/List.png", |
| | | SelectedImagePath = "Item/ListSelected.png" |
| | | }; |
| | | roomBackView.AddChidren(roomListBtn); |
| | | |
| | | roomListBtn.MouseUpEventHandler += (send, e) => |
| | | { |
| | | //var roomList = new Device.Room.RoomManagement(); |
| | | //HomePage.Instance.AddChidren(roomList); |
| | | //HomePage.Instance.PageIndex += 1; |
| | | //roomList.Show(); |
| | | //roomList.action += () => |
| | | //{ |
| | | // Show(); |
| | | //}; |
| | | if(room.IsLove) |
| | | { |
| | | return; |
| | | } |
| | | var editRoom = new Device.Room.EditRoom(); |
| | | HomePage.Instance.AddChidren(editRoom); |
| | | HomePage.Instance.PageIndex += 1; |
| | | editRoom.Show(room); |
| | | editRoom.action += () => |
| | | { |
| | | Show(); |
| | | }; |
| | | |
| | | }; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | Room.CurrentRoom = Room.Lists[0]; |
| | | var roomBackView = new FrameLayout() |
| | | { |
| | | BackgroundImagePath = room.BackgroundImage |
| | | BackgroundImagePath = "Room/r0.png" |
| | | }; |
| | | roomPageView.AddChidren(roomBackView); |
| | | var roomBG = new Button() |
| | |
| | | Y = Application.GetRealHeight(20), |
| | | Width = Application.GetRealWidth(500), |
| | | Height = Application.GetRealHeight(80), |
| | | Text = room.Name, |
| | | Text = Language.StringByID(R.MyInternationalizationString.Favorite), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextColor = ZigbeeColor.Current.GXCTextWhiteColor, |
| | | TextSize = 18, |
| | | }; |
| | | roomBackView.AddChidren(roomName); |
| | | var roomListBtn = new Device.CommonForm.SelectedStatuButton() |
| | | var roomListBtn = new Button() |
| | | { |
| | | X = roomPageView.Width - Application.GetRealWidth(100 + 20), |
| | | Y = Application.GetRealHeight(20), |
| | | Width = Application.GetMinRealAverage(100), |
| | | Height = Application.GetMinRealAverage(100), |
| | | UnSelectedImagePath = "Item/List.png", |
| | | SelectedImagePath = "Item/ListSelected.png" |
| | | UnSelectedImagePath = "Item/List.png" |
| | | }; |
| | | roomBackView.AddChidren(roomListBtn); |
| | | |
| | | roomListBtn.MouseUpEventHandler += (send, e) => |
| | | { |
| | | var roomList = new Device.Room.RoomManagement(); |
| | | HomePage.Instance.AddChidren(roomList); |
| | | HomePage.Instance.PageIndex += 1; |
| | | roomList.Show(); |
| | | roomList.action += () => |
| | | { |
| | | Show(); |
| | | }; |
| | | }; |
| | | } |
| | | |
| | | var functionSceneView = new FrameLayout() |
| | | { |
| | | Y = Application.GetRealHeight(861), |
| | | Width=Application.GetRealWidth(832), |
| | | Height = Application.GetRealHeight(167), |
| | | Gravity=Gravity.CenterHorizontal, |
| | | BackgroundImagePath="Item/SceneFunctionBG.png" |
| | | }; |
| | | AddChidren(functionSceneView); |
| | | |
| | | //场景 |
| | | var sceneBtn = new Button() |
| | | { |
| | | X = Application.GetRealWidth(30), |
| | | Y = Application.GetRealHeight(12), |
| | | Width = Application.GetRealWidth(350), |
| | | Height = Application.GetRealHeight(100), |
| | | TextColor = ZigbeeColor.Current.GXCTextGrayColor3, |
| | | SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor, |
| | | TextID = R.MyInternationalizationString.Scence, |
| | | IsSelected = false |
| | | }; |
| | | functionSceneView.AddChidren(sceneBtn); |
| | | |
| | | //场景 |
| | | functionBtn = new Button() |
| | | { |
| | | X = Application.GetRealWidth(430), |
| | | Y = Application.GetRealHeight(12), |
| | | Width = Application.GetRealWidth(360), |
| | | Height = Application.GetRealHeight(100), |
| | | TextColor = ZigbeeColor.Current.GXCTextGrayColor3, |
| | | SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor, |
| | | TextID = R.MyInternationalizationString.Function, |
| | | IsSelected = false |
| | | }; |
| | | functionSceneView.AddChidren(functionBtn); |
| | | |
| | | //功能和场景bodyView |
| | | functionSceneBodyView = new FrameLayout() |
| | | { |
| | | Y = functionSceneView.Bottom, |
| | | Height = Application.GetRealHeight(750), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | BackgroundColor=ZigbeeColor.Current.GXCGrayBackgroundColor |
| | | }; |
| | | AddChidren(functionSceneBodyView); |
| | | |
| | | //选择功能分栏 |
| | | functionBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | sceneBtn.IsSelected = false; |
| | | functionBtn.IsSelected = true; |
| | | RefreshBodyView(); |
| | | }; |
| | | //选择场景分栏 |
| | | sceneBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | functionBtn.IsSelected = false; |
| | | sceneBtn.IsSelected = true; |
| | | RefreshBodyView(); |
| | | }; |
| | | |
| | | RefreshBodyView(); |
| | | |
| | | roomPageView.PageChange += (sender, e) => |
| | | { |
| | | //切换当前房间 |
| | | Room.CurrentRoom = Room.CurrentRoom == null ? Room.Lists[0] : Room.Lists[roomPageView.PageIndex]; |
| | | RefreshBodyView(); |
| | | }; |
| | | } |
| | | else |
| | | { |
| | | var roomBackView = new FrameLayout() |
| | | { |
| | | BackgroundImagePath = "Room/r0.png" |
| | | }; |
| | | roomPageView.AddChidren(roomBackView); |
| | | var roomBG = new Button() |
| | | { |
| | | UnSelectedImagePath = "Room/HomeBG.png", |
| | | }; |
| | | roomBackView.AddChidren(roomBG); |
| | | var roomName = new Button() |
| | | { |
| | | X = Application.GetRealWidth(20), |
| | | Y = Application.GetRealHeight(20), |
| | | Width = Application.GetRealWidth(500), |
| | | Height = Application.GetRealHeight(80), |
| | | Text = Language.StringByID(R.MyInternationalizationString.Favorite), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextColor = ZigbeeColor.Current.GXCTextWhiteColor, |
| | | TextSize = 18, |
| | | }; |
| | | roomBackView.AddChidren(roomName); |
| | | var roomListBtn = new Button() |
| | | { |
| | | X = roomPageView.Width - Application.GetRealWidth(100 + 20), |
| | | Y = Application.GetRealHeight(20), |
| | | Width = Application.GetMinRealAverage(100), |
| | | Height = Application.GetMinRealAverage(100), |
| | | UnSelectedImagePath = "Item/List.png" |
| | | }; |
| | | roomBackView.AddChidren(roomListBtn); |
| | | ShowNoGatewayTip(); |
| | | } |
| | | |
| | | var functionSceneView = new FrameLayout() |
| | | { |
| | | Y = roomPageView.Bottom, |
| | | Height = Application.GetRealHeight(CommonPage.AppRealHeight - CommonPage.TabbarHeight) - roomPageView.Bottom, |
| | | }; |
| | | AddChidren(functionSceneView); |
| | | //功能 |
| | | functionBtn = new Button() |
| | | { |
| | | X = Application.GetRealWidth(50), |
| | | Width = Application.GetRealWidth(540 - 50) - 2, |
| | | Height = Application.GetRealHeight(150), |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | SelectedTextColor = ZigbeeColor.Current.GXCTextBlueColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | TextSize = 16, |
| | | TextID = R.MyInternationalizationString.Function, |
| | | IsSelected = true |
| | | }; |
| | | functionSceneView.AddChidren(functionBtn); |
| | | var functionSceneMidLine = new Button() |
| | | { |
| | | X = functionBtn.Right, |
| | | Width = 2, |
| | | Y = Application.GetRealHeight(60), |
| | | Height = Application.GetRealHeight(60), |
| | | BackgroundColor = ZigbeeColor.Current.GXCLineColor |
| | | }; |
| | | functionSceneView.AddChidren(functionSceneMidLine); |
| | | //场景 |
| | | var sceneBtn = new Button() |
| | | { |
| | | X = functionBtn.Right, |
| | | Width = Application.GetRealWidth(540 - 50), |
| | | Height = Application.GetRealHeight(150), |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | SelectedTextColor = ZigbeeColor.Current.GXCTextBlueColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | TextSize = 16, |
| | | TextID = R.MyInternationalizationString.Scence, |
| | | IsSelected = false |
| | | }; |
| | | functionSceneView.AddChidren(sceneBtn); |
| | | var functionSceneBottomLine = new Button() |
| | | { |
| | | Y = functionBtn.Bottom, |
| | | Height = CommonPage.LineHeight, |
| | | X = functionBtn.X, |
| | | Width = roomPageView.Width, |
| | | BackgroundColor = ZigbeeColor.Current.GXCLineColor |
| | | }; |
| | | functionSceneView.AddChidren(functionSceneBottomLine); |
| | | |
| | | var line = new Button() |
| | | { |
| | | Y = functionBtn.Bottom, |
| | | Height = CommonPage.LineHeight, |
| | | X = functionBtn.X, |
| | | Width = Application.GetRealWidth(540 - 50), |
| | | BackgroundColor = ZigbeeColor.Current.GXCButtonBlueColor |
| | | }; |
| | | functionSceneView.AddChidren(line); |
| | | //功能和场景bodyView |
| | | functionSceneBodyView = new FrameLayout() |
| | | { |
| | | Y = line.Bottom, |
| | | Height = functionSceneView.Height - functionBtn.Height, |
| | | Width = roomPageView.Width, |
| | | Gravity = Gravity.CenterHorizontal |
| | | }; |
| | | functionSceneView.AddChidren(functionSceneBodyView); |
| | | |
| | | //选择功能分栏 |
| | | functionBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | sceneBtn.IsSelected = false; |
| | | functionBtn.IsSelected = true; |
| | | line.X = functionBtn.X; |
| | | RefreshBodyView(); |
| | | }; |
| | | //选择场景分栏 |
| | | sceneBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | functionBtn.IsSelected = false; |
| | | sceneBtn.IsSelected = true; |
| | | line.X = sceneBtn.X; |
| | | RefreshBodyView(); |
| | | }; |
| | | |
| | | RefreshBodyView(); |
| | | |
| | | #endregion |
| | | |
| | | roomPageView.PageChange += (sender, e) => |
| | | { |
| | | //切换当前房间 |
| | | Room.CurrentRoom = Room.CurrentRoom == null ? Room.Lists[0] : Room.Lists[roomPageView.PageIndex]; |
| | | RefreshBodyView(); |
| | | }; |
| | | //roomPageView.PageIndex = Room.Lists.IndexOf(Room.CurrentRoom); |
| | |
|
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ◆ 刷新____________________________ |
| | | |
| | | /// <summary> |
| | | /// RefreshBodyView |
| | | /// </summary> |
| | | public void RefreshBodyView() |
| | | { |
| | | if (Room.canInitAllRoom == false) |
| | | if (Room.CanInitAllRoom == false) |
| | | { |
| | | return; |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// SelectFloor |
| | | /// </summary> |
| | | /// <param name="sender"></param> |
| | | /// <param name="mouseEventArgs"></param> |
| | | public void SelectFloor(object sender,MouseEventArgs mouseEventArgs) |
| | | { |
| | | var floorFL = new Phone.Device.Category.SelectFloor(); |
| | | AddChidren(floorFL); |
| | | floorFL.Init(35, 153); |
| | | floorFL.FloorAction = (floorName) => |
| | | { |
| | | floorBtn.Text = floorName; |
| | | Show(); |
| | | }; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ◆ 检测是否绑定了网关________________ |
| | |
| | | /// <returns><c>true</c>, if bing gateway was caned, <c>false</c> otherwise.</returns> |
| | | private bool CanBindGateway() |
| | | { |
| | | if (HadBindGateway() == false && UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 1) |
| | | if (HadBindGateway() == false && (UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 2)) |
| | | { |
| | | return true; |
| | | } |
| | |
| | | /// <returns><c>true</c>, if bind gateway was haded, <c>false</c> otherwise.</returns> |
| | | private bool HadBindGateway() |
| | | { |
| | | var gatewayList = Common.LocalGateway.Current.GetAllLocalGateway(); |
| | | var gatewayList = UserCenter.HdlGatewayLogic.Current.GetAllLocalGateway(); |
| | | if (gatewayList.Count == 0) |
| | | { |
| | | return false; |
| | |
| | | /// </summary> |
| | | private void ShowNoGatewayTip() |
| | | { |
| | | var addGatewayBtn = new Button() |
| | | var bg = new Button |
| | | { |
| | | Height = Application.GetMinRealAverage(200), |
| | | Width = Application.GetMinRealAverage(200), |
| | | UnSelectedImagePath = "Room/AddScenceFunction.png", |
| | | Gravity = Gravity.Center |
| | | Y = Application.GetRealHeight(302), |
| | | Width = Application.GetMinRealAverage(717), |
| | | Height = Application.GetMinRealAverage(478), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | UnSelectedImagePath = "Item/NoBindGW.png" |
| | | }; |
| | | functionSceneBodyView.AddChidren(addGatewayBtn); |
| | | addGatewayBtn.MouseUpEventHandler += GoToAddGateWay; |
| | | AddChidren(bg); |
| | | |
| | | var noGatewayTip = new Button() |
| | | var tip = new Button |
| | | { |
| | | Y = addGatewayBtn.Bottom, |
| | | Height = Application.GetRealHeight(150), |
| | | TextID = R.MyInternationalizationString.NoGateway, |
| | | TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | Y = Application.GetRealHeight(815), |
| | | Width = Application.GetMinRealAverage(717), |
| | | Height = Application.GetMinRealAverage(58), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | TextID = R.MyInternationalizationString.NewAccountNeedBingGW, |
| | | TextColor = ZigbeeColor.Current.GXCTextGrayColor |
| | | }; |
| | | AddChidren(tip); |
| | | |
| | | var addBG = new Button |
| | | { |
| | | Y = Application.GetRealHeight(1048), |
| | | Height = Application.GetMinRealAverage(366), |
| | | Width = Application.GetMinRealAverage(971), |
| | | UnSelectedImagePath = "Item/VirtualFrame.png", |
| | | Gravity = Gravity.CenterHorizontal |
| | | }; |
| | | functionSceneBodyView.AddChidren(noGatewayTip); |
| | | AddChidren(addBG); |
| | | |
| | | var addGatewayBtn = new Button() |
| | | { |
| | | Y = Application.GetRealHeight(1143), |
| | | Height = Application.GetMinRealAverage(89), |
| | | Width = Application.GetMinRealAverage(89), |
| | | UnSelectedImagePath = "Item/Add_GW.png", |
| | | Gravity = Gravity.CenterHorizontal |
| | | }; |
| | | AddChidren(addGatewayBtn); |
| | | addGatewayBtn.MouseUpEventHandler += GoToAddGateWay; |
| | | |
| | | var addTip = new Button |
| | | { |
| | | Y = Application.GetRealHeight(1256), |
| | | Width = Application.GetMinRealAverage(717), |
| | | Height = Application.GetMinRealAverage(58), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | TextID = R.MyInternationalizationString.AddSmartGW, |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor |
| | | }; |
| | | AddChidren(addTip); |
| | | addTip.MouseUpEventHandler += GoToAddGateWay; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param> |
| | | private void GoToAddGateWay(object sender, MouseEventArgs mouseEventArgs) |
| | | { |
| | | UserCenter.Gateway.SelectNewGateWayForm selectNewGateWayForm = new UserCenter.Gateway.SelectNewGateWayForm { }; |
| | | selectNewGateWayForm.AddForm(selectNewGateWayForm); |
| | | var selectNewGateWayForm = new UserCenter.GatewayAdd.NewGateWayMenuSelectForm { }; |
| | | selectNewGateWayForm.AddForm(); |
| | | } |
| | | |
| | | #endregion |
| | |
| | | /// </summary> |
| | | private void ShowNoFunctionTip() |
| | | { |
| | | var noFunction = new Button |
| | | { |
| | | Y = Application.GetRealHeight(69), |
| | | Width = Application.GetMinRealAverage(683), |
| | | Height = Application.GetMinRealAverage(392), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | UnSelectedImagePath = "Item/NoFunction.png" |
| | | }; |
| | | functionSceneBodyView.AddChidren(noFunction); |
| | | |
| | | var noFunctionTip = new Button() |
| | | { |
| | | Y=noFunction.Bottom, |
| | | Height = Application.GetRealHeight(200), |
| | | TextID = R.MyInternationalizationString.NoFunction, |
| | | Text = Language.StringByID(R.MyInternationalizationString.NoFunction).Replace("{\\r\\n}","\r\n"), |
| | | TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | Gravity = Gravity.Center |
| | | IsMoreLines=true |
| | | }; |
| | | functionSceneBodyView.AddChidren(noFunctionTip); |
| | | } |
| | |
| | | /// </summary> |
| | | private void ShowFunction() |
| | | { |
| | | if (CanBindGateway() == false) |
| | | //选择功能--直接从房间的devicelist中获取 |
| | | var deviceList = Room.CurrentRoom.DeviceUIList; |
| | | if (deviceList == null) |
| | | { |
| | | //选择功能--直接从房间的devicelist中获取 |
| | | var deviceList = Room.CurrentRoom.DeviceUIList; |
| | | if (deviceList == null) |
| | | { |
| | | return; |
| | | } |
| | | return; |
| | | } |
| | | |
| | | if (deviceList.Count == 0) |
| | | if (deviceList.Count == 0) |
| | | { |
| | | ShowNoFunctionTip(); |
| | | } |
| | | else |
| | | { |
| | | deviceVerticalScrolViewLayout = new VerticalScrolViewLayout { }; |
| | | |
| | | functionSceneBodyView.AddChidren(deviceVerticalScrolViewLayout); |
| | | for(int i=0;i<deviceList.Count;i++) |
| | | { |
| | | ShowNoFunctionTip(); |
| | | } |
| | | else |
| | | { |
| | | deviceVerticalScrolViewLayout = new VerticalScrolViewLayout { }; |
| | | functionSceneBodyView.AddChidren(deviceVerticalScrolViewLayout); |
| | | foreach (var device in deviceList) |
| | | int t = i % 2; |
| | | int tt = i / 2; |
| | | int xx = 43 + i % 2 * (20 + 487); |
| | | int yy = 14; |
| | | var device = deviceList[i]; |
| | | if (device == null || device.CommonDevice == null) |
| | | { |
| | | if (device == null || device.CommonDevice == null) |
| | | continue; |
| | | } |
| | | |
| | | if (i % 2 == 0) |
| | | { |
| | | itemView = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(14 + 348), |
| | | Tag = device |
| | | }; |
| | | deviceVerticalScrolViewLayout.AddChidren(itemView); |
| | | } |
| | | |
| | | |
| | | //删除设备 |
| | | EventHandler<MouseEventArgs> delEvent = (sender, e) => |
| | | { |
| | | 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(); |
| | | alert.ResultEventHandler += (send1, e1) => |
| | | { |
| | | if (e1) |
| | | { |
| | | Room.CurrentRoom.DeleteDevice(device.FileName); |
| | | //RefreshBodyView(); |
| | | deviceVerticalScrolViewLayout.RemoveViewByTag((sender as Button).Tag); |
| | | } |
| | | }; |
| | | }; |
| | | //收藏 |
| | | EventHandler<MouseEventArgs> collectionEvent = (sender, e) => |
| | | { |
| | | if ((sender as Button).IsSelected) |
| | | { |
| | | Shared.Common.Room.CurrentRoom.GetLoveRoom().DeleteDevice(device.FileName); |
| | | (sender as Button).IsSelected = false; |
| | | } |
| | | else |
| | | { |
| | | Shared.Common.Room.CurrentRoom.GetLoveRoom().AddDevice(device.FileName); |
| | | (sender as Button).IsSelected = true; |
| | | } |
| | | if (Room.CurrentRoom.IsLove) |
| | | { |
| | | RefreshBodyView(); |
| | | } |
| | | }; |
| | | |
| | | //////判断设备是否支持的属性 如开关等控制 |
| | | if (device.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice) |
| | | { |
| | | //窗帘 卷帘 |
| | | var rollerShade = (ZigBee.Device.Rollershade)device.CommonDevice; |
| | | //不上非远程 |
| | | if (rollerShade.Gateway == null) |
| | | { |
| | | continue; |
| | | } |
| | | //删除设备 |
| | | EventHandler<MouseEventArgs> delEvent = (sender, e) => |
| | | if (rollerShade.Gateway.IsVirtual) |
| | | { |
| | | 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(); |
| | | alert.ResultEventHandler += (send1, e1) => |
| | | //发送读取状态命令 |
| | | ReadStatus(rollerShade, () => |
| | | { |
| | | if (e1) |
| | | { |
| | | Room.CurrentRoom.DeleteDevice(device.FileName); |
| | | //RefreshBodyView(); |
| | | deviceVerticalScrolViewLayout.RemoveViewByTag((sender as Button).Tag); |
| | | } |
| | | }; |
| | | }; |
| | | //收藏 |
| | | //EventHandler<MouseEventArgs> collectionEvent = (sender, e) => |
| | | //{ |
| | | // if ((sender as Button).IsSelected) |
| | | // { |
| | | // Room.Lists[0].DeleteDevice(device.FilePath); |
| | | // (sender as Button).IsSelected = false; |
| | | // if (Room.CurrentRoom == Room.Lists[0]) |
| | | // { |
| | | // DeviceVerticalScrolViewLayout.RemoveViewByTag((sender as Button).Tag); |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // Room.Lists[0].AddDevice(device.FilePath); |
| | | // (sender as Button).IsSelected = true; |
| | | // } |
| | | // //RefreshBodyView(); |
| | | //}; |
| | | EventHandler<MouseEventArgs> collectionEvent = (sender, e) => |
| | | { |
| | | if (Room.CurrentRoom == Room.Lists[0]) |
| | | { |
| | | Room.Lists[0].DeleteDevice(device.FileName); |
| | | deviceVerticalScrolViewLayout.RemoveViewByTag((sender as Button).Tag); |
| | | } |
| | | }; |
| | | |
| | | //////判断设备是否支持的属性 如开关等控制 |
| | | if (device.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice) |
| | | { |
| | | //窗帘 卷帘 |
| | | var rollerShade = (ZigBee.Device.Rollershade)device.CommonDevice; |
| | | //不上非远程 |
| | | if (rollerShade.Gateway == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (rollerShade.Gateway.IsVirtual) |
| | | { |
| | | //发送读取状态命令 |
| | | ReadStatus(rollerShade, () => |
| | | { |
| | | rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - rollerShade.LastDateTime).TotalSeconds) |
| | | { |
| | | rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | } |
| | | } |
| | | |
| | | var deviceFL = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(deviceFL_Height), |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | Tag = device |
| | | }; |
| | | deviceVerticalScrolViewLayout.AddChidren(deviceFL); |
| | | var deviceRowLayout = new RowLayout |
| | | { |
| | | Y = Application.GetRealHeight(25), |
| | | Height = Application.GetRealHeight(deviceFL_Height - 25) - 1, |
| | | LineColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, |
| | | Radius = CommonPage.BigFormRadius, |
| | | Tag = device |
| | | }; |
| | | deviceFL.AddChidren(deviceRowLayout); |
| | | var deviceItemFL = new FrameLayout() |
| | | { |
| | | BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, |
| | | Radius = CommonPage.BigFormRadius |
| | | }; |
| | | deviceRowLayout.AddChidren(deviceItemFL); |
| | | var deviceIMG = new Button() |
| | | { |
| | | X = Application.GetRealWidth(50), |
| | | Y = Application.GetRealHeight(30), |
| | | Width = Application.GetMinRealAverage(110), |
| | | Height = Application.GetMinRealAverage(110), |
| | | UnSelectedImagePath = device.IconPath, |
| | | SelectedImagePath = device.OnlineIconPath, |
| | | IsSelected = rollerShade.IsOnline == 1, |
| | | Tag = deviceStatus_Online |
| | | }; |
| | | deviceItemFL.AddChidren(deviceIMG); |
| | | var deviceName = new Button() |
| | | { |
| | | X = Application.GetRealWidth(10), |
| | | Y = deviceIMG.Bottom, |
| | | Width = Application.GetRealWidth(180), |
| | | Height = Application.GetRealHeight(80), |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | Text = device.CommonDevice.DeviceEpointName, |
| | | TextSize = 10, |
| | | IsMoreLines = true |
| | | }; |
| | | deviceItemFL.AddChidren(deviceName); |
| | | var closeBtn = new Device.CommonForm.SelectedStatuButton() |
| | | { |
| | | X = Application.GetRealWidth(50) + deviceName.Right, |
| | | Width = Application.GetMinRealAverage(110), |
| | | Height = Application.GetMinRealAverage(110), |
| | | Gravity = Gravity.CenterVertical, |
| | | UnSelectedImagePath = "WindowCovering/RollerShadeClose.png", |
| | | SelectedImagePath = "WindowCovering/RollerShadeCloseSelected.png", |
| | | //Visible=false |
| | | }; |
| | | deviceItemFL.AddChidren(closeBtn); |
| | | var stopBtn = new Device.CommonForm.SelectedStatuButton() |
| | | { |
| | | X = Application.GetRealWidth(120) + closeBtn.Right, |
| | | Width = Application.GetMinRealAverage(110), |
| | | Height = Application.GetMinRealAverage(110), |
| | | Gravity = Gravity.CenterVertical, |
| | | UnSelectedImagePath = "WindowCovering/RollerShadeStop.png", |
| | | SelectedImagePath = "WindowCovering/RollerShadeStopSelected.png", |
| | | //Visible=false |
| | | }; |
| | | deviceItemFL.AddChidren(stopBtn); |
| | | var openBtn = new Device.CommonForm.SelectedStatuButton() |
| | | { |
| | | X = Application.GetRealWidth(120) + stopBtn.Right, |
| | | Width = Application.GetMinRealAverage(110), |
| | | Height = Application.GetMinRealAverage(110), |
| | | Gravity = Gravity.CenterVertical, |
| | | UnSelectedImagePath = "WindowCovering/RollerShadeOpen.png", |
| | | SelectedImagePath = "WindowCovering/RollerShadeOpenSelected.png", |
| | | //Visible=false |
| | | }; |
| | | |
| | | deviceItemFL.AddChidren(openBtn); |
| | | var collectionBtn = new Button() |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(150), |
| | | Y = Application.GetRealHeight(20), |
| | | Width = Application.GetMinRealAverage(80), |
| | | Height = Application.GetMinRealAverage(80), |
| | | UnSelectedImagePath = "Item/Collection.png", |
| | | SelectedImagePath = "Item/CollectionSelected.png", |
| | | Tag = device |
| | | }; |
| | | //*****先隐藏***** |
| | | //deviceItemFL.AddChidren(collectionBtn); |
| | | var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton |
| | | { |
| | | Tag = device, |
| | | IsMoreLines = true |
| | | }; |
| | | |
| | | if (Room.CurrentRoom.IsLove) |
| | | { |
| | | deleteBtn.TextID = R.MyInternationalizationString.CancelCollect; |
| | | deleteBtn.BackgroundColor = ZigbeeColor.Current.GXCCancelCollectionBGColor; |
| | | deleteBtn.MouseUpEventHandler += collectionEvent; |
| | | deviceRowLayout.AddRightView(deleteBtn); |
| | | } |
| | | else if(Room.CurrentRoom.IsSharedRoom) |
| | | { |
| | | //不处理 |
| | | } |
| | | else |
| | | { |
| | | deleteBtn.MouseUpEventHandler += delEvent; |
| | | deviceRowLayout.AddRightView(deleteBtn); |
| | | } |
| | | |
| | | |
| | | EventHandler<MouseEventArgs> curtainHandler = (sender, e) => |
| | | { |
| | | var curtain = new Phone.Device.Curtain.RollerShadeControl(); |
| | | UserView.HomePage.Instance.ScrollEnabled = false; |
| | | UserView.HomePage.Instance.AddChidren(curtain); |
| | | UserView.HomePage.Instance.PageIndex += 1; |
| | | curtain.action = RefreshBodyView; |
| | | curtain.Show(device, Room.CurrentRoom); |
| | | }; |
| | | deviceItemFL.MouseUpEventHandler += curtainHandler; |
| | | deviceItemFL.MouseLongEventHandler += curtainHandler; |
| | | deviceIMG.MouseUpEventHandler += curtainHandler; |
| | | deviceName.MouseUpEventHandler += curtainHandler; |
| | | |
| | | //窗帘关 |
| | | closeBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | zbGateway = device.CommonDevice.Gateway; |
| | | sendedControlCommand = false; |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | rollerShade.CurtainUpDownStopControl(1); |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | { |
| | | if (Parent == null) |
| | | { |
| | | return; |
| | | } |
| | | RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | if (sendedControlCommand == false) |
| | | { |
| | | DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | } |
| | | }); |
| | | }; |
| | | //窗帘停 |
| | | stopBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | zbGateway = device.CommonDevice.Gateway; |
| | | sendedControlCommand = false; |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | rollerShade.CurtainUpDownStopControl(2); |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | { |
| | | if (Parent == null) |
| | | { |
| | | return; |
| | | } |
| | | RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | if (sendedControlCommand == false) |
| | | { |
| | | DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | } |
| | | }); |
| | | }; |
| | | //窗帘开 |
| | | openBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | zbGateway = device.CommonDevice.Gateway; |
| | | sendedControlCommand = false; |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | rollerShade.CurtainUpDownStopControl(0); |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | { |
| | | if (Parent == null) |
| | | { |
| | | return; |
| | | } |
| | | RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | if (sendedControlCommand == false) |
| | | { |
| | | DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | } |
| | | }); |
| | | }; |
| | | //collectionBtn.MouseUpEventHandler += (sender, e) => |
| | | //{ |
| | | // if (collectionBtn.IsSelected) |
| | | // { |
| | | // Room.Lists[0].DeleteDevice(device.FilePath); |
| | | // collectionBtn.IsSelected = false; |
| | | // } |
| | | // else |
| | | // { |
| | | // Room.Lists[0].AddDevice(device.FilePath); |
| | | // collectionBtn.IsSelected = true; |
| | | // } |
| | | // //RefreshBodyView(); |
| | | //}; |
| | | collectionBtn.MouseUpEventHandler += collectionEvent; |
| | | //var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj==device.FilePath); |
| | | //if(dev==null) |
| | | //{ |
| | | // collectionBtn.IsSelected = false; |
| | | //} |
| | | //else |
| | | //{ |
| | | // collectionBtn.IsSelected = true; |
| | | //} |
| | | |
| | | ////开关停按钮是否显示 |
| | | //foreach(var command in commandList) |
| | | //{ |
| | | // if (command == null) |
| | | // { |
| | | // continue; |
| | | // } |
| | | // if (command.commandId==0) |
| | | // { |
| | | // openBtn.Visible = true; |
| | | // } |
| | | // else if(command.commandId==1) |
| | | // { |
| | | // openBtn.Visible = true; |
| | | // } |
| | | // else if(command.commandId==2) |
| | | // { |
| | | // stopBtn.Visible = true; |
| | | // } |
| | | //} |
| | | rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | }); |
| | | } |
| | | else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.OnOffOutput) |
| | | else |
| | | { |
| | | //开关灯 |
| | | var light = device.CommonDevice as ToggleLight; |
| | | //补上非远程 |
| | | if (light.Gateway == null) |
| | | if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - rollerShade.LastDateTime).TotalSeconds) |
| | | { |
| | | continue; |
| | | rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | } |
| | | if (light.Gateway.IsVirtual) |
| | | } |
| | | var lightView = new FunctionMainView(xx, yy); |
| | | itemView.AddChidren(lightView); |
| | | lightView.Init(); |
| | | lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); |
| | | lightView.SetStatuText(device.GetDeviceStatu()); |
| | | lightView.SetDeviceName(rollerShade.DeviceEpointName); |
| | | //lightView.SetStatu(true); |
| | | lightView.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage == 100; |
| | | lightView.SetCollect(true); |
| | | |
| | | lightView.SwitchButton.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | (sender as Button).IsSelected = !(sender as Button).IsSelected; |
| | | if ((sender as Button).IsSelected) |
| | | { |
| | | //发送读取状态命令 |
| | | ReadStatus(light, () => |
| | | zbGateway = device.CommonDevice.Gateway; |
| | | sendedControlCommand = false; |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | (device.CommonDevice as Rollershade).CurtainUpDownStopControl(1); |
| | | |
| | | ((sender as Button).Parent as FunctionMainView).SetStatuText(CommonFormResouce.GetSwitchStatu(true)); |
| | | ((sender as Button).Parent as FunctionMainView).IsSelected = true; |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | { |
| | | light.ReadOnOffStatus(); |
| | | light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | if (Parent == null) |
| | | { |
| | | return; |
| | | } |
| | | RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | if (sendedControlCommand == false) |
| | | { |
| | | DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | } |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds) |
| | | zbGateway = device.CommonDevice.Gateway; |
| | | sendedControlCommand = false; |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | (device.CommonDevice as Rollershade).CurtainUpDownStopControl(0); |
| | | |
| | | ((sender as Button).Parent as FunctionMainView).SetStatuText(CommonFormResouce.GetSwitchStatu(false)); |
| | | ((sender as Button).Parent as FunctionMainView).IsSelected = false; |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | { |
| | | light.ReadOnOffStatus(); |
| | | light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | } |
| | | } |
| | | |
| | | |
| | | var deviceFL = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(deviceFL_Height), |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | Tag = device |
| | | }; |
| | | deviceVerticalScrolViewLayout.AddChidren(deviceFL); |
| | | var deviceRowLayout = new RowLayout |
| | | { |
| | | Y = Application.GetRealHeight(25), |
| | | Height = Application.GetRealHeight(deviceFL_Height - 25) - 1, |
| | | LineColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, |
| | | Radius = CommonPage.BigFormRadius, |
| | | Tag = device |
| | | }; |
| | | deviceFL.AddChidren(deviceRowLayout); |
| | | |
| | | var deviceItemFL = new FrameLayout() |
| | | { |
| | | BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, |
| | | Radius = CommonPage.BigFormRadius |
| | | }; |
| | | deviceRowLayout.AddChidren(deviceItemFL); |
| | | var deviceIMG = new Button() |
| | | { |
| | | X = Application.GetRealWidth(50), |
| | | Y = Application.GetRealHeight(30), |
| | | Width = Application.GetMinRealAverage(110), |
| | | Height = Application.GetMinRealAverage(110), |
| | | UnSelectedImagePath = device.IconPath, |
| | | SelectedImagePath = device.OnlineIconPath, |
| | | IsSelected = light.IsOnline == 1, |
| | | Tag = deviceStatus_Online |
| | | }; |
| | | deviceItemFL.AddChidren(deviceIMG); |
| | | var deviceName = new Button() |
| | | { |
| | | X = Application.GetRealWidth(10), |
| | | Y = deviceIMG.Bottom, |
| | | Width = Application.GetRealWidth(180), |
| | | Height = Application.GetRealHeight(80), |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | Text = device.CommonDevice.DeviceEpointName, |
| | | TextSize = 10, |
| | | IsMoreLines = true |
| | | }; |
| | | deviceItemFL.AddChidren(deviceName); |
| | | |
| | | var collectionBtn = new Button() |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(150), |
| | | Y = Application.GetRealHeight(20), |
| | | Width = Application.GetMinRealAverage(80), |
| | | Height = Application.GetMinRealAverage(80), |
| | | UnSelectedImagePath = "Item/Collection.png", |
| | | SelectedImagePath = "Item/CollectionSelected.png", |
| | | Tag = device |
| | | }; |
| | | //***先隐藏****** |
| | | //deviceItemFL.AddChidren(collectionBtn); |
| | | var switchBtn = new Button |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(200), |
| | | //Y = deviceItemFL.Bottom - Application.GetRealHeight(120), |
| | | Width = Application.GetMinRealAverage(183), |
| | | Height = Application.GetMinRealAverage(123), |
| | | UnSelectedImagePath = "Item/Switch.png", |
| | | SelectedImagePath = "Item/SwitchSelected.png", |
| | | IsSelected = light.OnOffStatus == 1, |
| | | Tag = deviceStatus_OnOffStatus, |
| | | //Visible=false |
| | | Gravity = Gravity.CenterVertical |
| | | }; |
| | | deviceItemFL.AddChidren(switchBtn); |
| | | switchBtn.MouseUpEventHandler += (send2, e2) => |
| | | { |
| | | switchBtn.IsSelected = !switchBtn.IsSelected; |
| | | if (switchBtn.IsSelected == true) |
| | | { |
| | | zbGateway = device.CommonDevice.Gateway; |
| | | sendedControlCommand = false; |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | light.SwitchControl(1); |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | if (Parent == null) |
| | | { |
| | | if (Parent == null) |
| | | { |
| | | return; |
| | | } |
| | | RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | if (sendedControlCommand == false) |
| | | { |
| | | DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | } |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | zbGateway = device.CommonDevice.Gateway; |
| | | sendedControlCommand = false; |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | light.SwitchControl(0); |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | return; |
| | | } |
| | | RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | if (sendedControlCommand == false) |
| | | { |
| | | if (Parent == null) |
| | | { |
| | | return; |
| | | } |
| | | RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | if (sendedControlCommand == false) |
| | | { |
| | | DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | } |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | |
| | | var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton |
| | | { |
| | | Tag = device, |
| | | IsMoreLines = true |
| | | }; |
| | | if (Room.CurrentRoom.IsLove) |
| | | { |
| | | deleteBtn.TextID = R.MyInternationalizationString.CancelCollect; |
| | | deleteBtn.BackgroundColor = ZigbeeColor.Current.GXCCancelCollectionBGColor; |
| | | deleteBtn.MouseUpEventHandler += collectionEvent; |
| | | deviceRowLayout.AddRightView(deleteBtn); |
| | | DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | } |
| | | }); |
| | | } |
| | | else if(Room.CurrentRoom.IsSharedRoom) |
| | | }; |
| | | |
| | | lightView.CardBG.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | 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(device, Room.CurrentRoom); |
| | | }; |
| | | |
| | | lightView.CollectButton.MouseUpEventHandler += collectionEvent; |
| | | } |
| | | else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.OnOffOutput) |
| | | { |
| | | //开关灯 |
| | | var light = device.CommonDevice as ToggleLight; |
| | | |
| | | //补上非远程 |
| | | if (light.Gateway == null)
|
| | | {
|
| | | continue;
|
| | | } |
| | | if (light.Gateway.IsVirtual) |
| | | { |
| | | //发送读取状态命令 |
| | | ReadStatus(light, () => |
| | | { |
| | | //不处理 |
| | | light.ReadOnOffStatus(); |
| | | light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds) |
| | | { |
| | | light.ReadOnOffStatus(); |
| | | light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | } |
| | | } |
| | | |
| | | var lightView = new FunctionMainView(xx,yy); |
| | | itemView.AddChidren(lightView); |
| | | lightView.Init(); |
| | | lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); |
| | | lightView.SetStatuText(device.GetDeviceStatu()); |
| | | lightView.SetDeviceName(device.CommonDevice.DeviceEpointName); |
| | | lightView.IsSelected = light.OnOffStatus==1; |
| | | lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom,device.FileName)); |
| | | |
| | | var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName); |
| | | if (dev == null) |
| | | { |
| | | lightView.CollectButton.IsSelected = false; |
| | | } |
| | | else |
| | | { |
| | | lightView.CollectButton.IsSelected = true; |
| | | } |
| | | |
| | | lightView.SwitchButton.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | (sender as Button).IsSelected = !(sender as Button).IsSelected; |
| | | if ((sender as Button).IsSelected) |
| | | { |
| | | zbGateway = device.CommonDevice.Gateway; |
| | | sendedControlCommand = false; |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | light.SwitchControl(1); |
| | | |
| | | ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu()); |
| | | ((sender as Button).Parent as FunctionMainView).IsSelected = true; |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | { |
| | | if (Parent == null) |
| | | { |
| | | return; |
| | | } |
| | | RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | if (sendedControlCommand == false) |
| | | { |
| | | DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | } |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | deleteBtn.MouseUpEventHandler += delEvent; |
| | | deviceRowLayout.AddRightView(deleteBtn); |
| | | zbGateway = device.CommonDevice.Gateway; |
| | | sendedControlCommand = false; |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | light.SwitchControl(0); |
| | | |
| | | ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu()); |
| | | ((sender as Button).Parent as FunctionMainView).IsSelected = false; |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | { |
| | | if (Parent == null) |
| | | { |
| | | return; |
| | | } |
| | | RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | if (sendedControlCommand == false) |
| | | { |
| | | DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | } |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | |
| | | EventHandler<MouseEventArgs> lightHandler = (sender, e) => |
| | | lightView.CardBG.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | if (device.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(device, Room.CurrentRoom); |
| | | } |
| | | else if (device.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(device, Room.CurrentRoom); |
| | | } |
| | | else |
| | | { |
| | | var lightControl = new Phone.Device.Light.LightControl(); |
| | | UserView.HomePage.Instance.AddChidren(lightControl); |
| | | UserView.HomePage.Instance.PageIndex += 1; |
| | | lightControl.action = RefreshBodyView; |
| | | //lightControl.action = RefreshBodyView; |
| | | lightControl.Show(device, Room.CurrentRoom); |
| | | }; |
| | | deviceItemFL.MouseLongEventHandler += lightHandler; |
| | | deviceItemFL.MouseUpEventHandler += lightHandler; |
| | | deviceName.MouseUpEventHandler += lightHandler; |
| | | deviceIMG.MouseUpEventHandler += lightHandler; |
| | | } |
| | | }; |
| | | |
| | | //collectionBtn.MouseUpEventHandler += (sender, e) => |
| | | //{ |
| | | // if (collectionBtn.IsSelected) |
| | | // { |
| | | // Room.Lists[0].DeleteDevice(device.FilePath); |
| | | // collectionBtn.IsSelected = false; |
| | | // if(Room.CurrentRoom==Room.Lists[0]) |
| | | // { |
| | | // RefreshBodyView(); |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // Room.Lists[0].AddDevice(device.FilePath); |
| | | // collectionBtn.IsSelected = true; |
| | | // } |
| | | // //RefreshBodyView(); |
| | | //}; |
| | | collectionBtn.MouseUpEventHandler += collectionEvent; |
| | | lightView.CollectButton.MouseUpEventHandler += collectionEvent; |
| | | |
| | | //var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FilePath); |
| | | //if (dev == null) |
| | | //{ |
| | | // collectionBtn.IsSelected = false; |
| | | //} |
| | | //else |
| | | //{ |
| | | // collectionBtn.IsSelected = true; |
| | | //} |
| | | |
| | | } |
| | | else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch) |
| | | } |
| | | else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch) |
| | | { |
| | | //空气开关 |
| | | var airSwitch = device.CommonDevice as AirSwitch; |
| | | //补上非远程 |
| | | if (airSwitch.Gateway == null) |
| | | { |
| | | //空气开关 |
| | | var airSwitch = device.CommonDevice as AirSwitch; |
| | | |
| | | //补上非远程 |
| | | if (airSwitch.Gateway == null) |
| | | continue; |
| | | } |
| | | if (airSwitch.Gateway.IsVirtual) |
| | | { |
| | | //发送读取状态命令 |
| | | ReadStatus(airSwitch, () => |
| | | { |
| | | continue; |
| | | airSwitch.ReadOnOffStatus(); |
| | | airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | //防止短时间内多次读取设备状态 |
| | | if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) |
| | | { |
| | | airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | airSwitch.ReadOnOffStatus(); |
| | | } |
| | | if (airSwitch.Gateway.IsVirtual) |
| | | } |
| | | |
| | | var lightView = new FunctionMainView(xx, yy); |
| | | itemView.AddChidren(lightView); |
| | | lightView.Init(); |
| | | lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); |
| | | lightView.SetStatuText(device.GetDeviceStatu()); |
| | | lightView.SetDeviceName(airSwitch.DeviceEpointName); |
| | | //lightView.SetStatu(true); |
| | | lightView.IsSelected = airSwitch.OnOffStatus == 1; |
| | | lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName)); |
| | | |
| | | lightView.SwitchButton.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | (sender as Button).IsSelected = !(sender as Button).IsSelected; |
| | | if ((sender as Button).IsSelected) |
| | | { |
| | | //发送读取状态命令 |
| | | ReadStatus(airSwitch, () => |
| | | zbGateway = device.CommonDevice.Gateway; |
| | | sendedControlCommand = false; |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | airSwitch.SwitchControl(1); |
| | | |
| | | ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu()); |
| | | ((sender as Button).Parent as FunctionMainView).IsSelected = true; |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | { |
| | | airSwitch.ReadOnOffStatus(); |
| | | airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | //防止短时间内多次读取设备状态 |
| | | if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) |
| | | { |
| | | airSwitch.ReadOnOffStatus(); |
| | | airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | } |
| | | } |
| | | |
| | | var deviceFL = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(deviceFL_Height), |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | Tag = device |
| | | }; |
| | | deviceVerticalScrolViewLayout.AddChidren(deviceFL); |
| | | var deviceRowLayout = new RowLayout |
| | | { |
| | | Y = Application.GetRealHeight(25), |
| | | Height = Application.GetRealHeight(deviceFL_Height - 25) - 1, |
| | | LineColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, |
| | | Radius = CommonPage.BigFormRadius, |
| | | Tag = device |
| | | }; |
| | | deviceFL.AddChidren(deviceRowLayout); |
| | | |
| | | var deviceItemFL = new FrameLayout() |
| | | { |
| | | BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, |
| | | Radius = CommonPage.BigFormRadius |
| | | }; |
| | | deviceRowLayout.AddChidren(deviceItemFL); |
| | | var deviceIMG = new Button() |
| | | { |
| | | X = Application.GetRealWidth(50), |
| | | Y = Application.GetRealHeight(30), |
| | | Width = Application.GetMinRealAverage(110), |
| | | Height = Application.GetMinRealAverage(110), |
| | | UnSelectedImagePath = device.IconPath, |
| | | SelectedImagePath = device.OnlineIconPath, |
| | | IsSelected = airSwitch.IsOnline == 1, |
| | | Tag = deviceStatus_Online |
| | | }; |
| | | deviceItemFL.AddChidren(deviceIMG); |
| | | var deviceName = new Button() |
| | | { |
| | | X = Application.GetRealWidth(10), |
| | | Y = deviceIMG.Bottom, |
| | | Width = Application.GetRealWidth(180), |
| | | Height = Application.GetRealHeight(80), |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | Text = device.CommonDevice.DeviceEpointName, |
| | | TextSize = 10, |
| | | IsMoreLines = true |
| | | }; |
| | | deviceItemFL.AddChidren(deviceName); |
| | | |
| | | var collectionBtn = new Button() |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(150), |
| | | Y = Application.GetRealHeight(20), |
| | | Width = Application.GetMinRealAverage(80), |
| | | Height = Application.GetMinRealAverage(80), |
| | | UnSelectedImagePath = "Item/Collection.png", |
| | | SelectedImagePath = "Item/CollectionSelected.png", |
| | | Tag = device |
| | | }; |
| | | //***先隐藏****** |
| | | //deviceItemFL.AddChidren(collectionBtn); |
| | | var switchBtn = new Button |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(200), |
| | | //Y = deviceItemFL.Bottom - Application.GetRealHeight(120), |
| | | Width = Application.GetMinRealAverage(183), |
| | | Height = Application.GetMinRealAverage(123), |
| | | UnSelectedImagePath = "Item/Switch.png", |
| | | SelectedImagePath = "Item/SwitchSelected.png", |
| | | IsSelected = airSwitch.OnOffStatus == 1, |
| | | Tag = deviceStatus_OnOffStatus, |
| | | //Visible=false |
| | | Gravity = Gravity.CenterVertical |
| | | }; |
| | | deviceItemFL.AddChidren(switchBtn); |
| | | switchBtn.MouseUpEventHandler += (send2, e2) => |
| | | { |
| | | switchBtn.IsSelected = !switchBtn.IsSelected; |
| | | if (switchBtn.IsSelected == true) |
| | | { |
| | | zbGateway = device.CommonDevice.Gateway; |
| | | sendedControlCommand = false; |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | airSwitch.SwitchControl(1); |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | if (Parent == null) |
| | | { |
| | | if (Parent == null) |
| | | { |
| | | return; |
| | | } |
| | | RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | if (sendedControlCommand == false) |
| | | { |
| | | DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | } |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | zbGateway = device.CommonDevice.Gateway; |
| | | sendedControlCommand = false; |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | airSwitch.SwitchControl(0); |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | return; |
| | | } |
| | | RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | if (sendedControlCommand == false) |
| | | { |
| | | if (Parent == null) |
| | | { |
| | | return; |
| | | } |
| | | RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | if (sendedControlCommand == false) |
| | | { |
| | | DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | } |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton |
| | | { |
| | | Tag = device, |
| | | IsMoreLines = true |
| | | }; |
| | | if (Room.CurrentRoom.IsLove) |
| | | { |
| | | deleteBtn.TextID = R.MyInternationalizationString.CancelCollect; |
| | | deleteBtn.BackgroundColor = ZigbeeColor.Current.GXCCancelCollectionBGColor; |
| | | deleteBtn.MouseUpEventHandler += collectionEvent; |
| | | deviceRowLayout.AddRightView(deleteBtn); |
| | | } |
| | | else if(Room.CurrentRoom.IsSharedRoom) |
| | | { |
| | | //不处理 |
| | | } |
| | | else |
| | | { |
| | | deleteBtn.MouseUpEventHandler += delEvent; |
| | | deviceRowLayout.AddRightView(deleteBtn); |
| | | } |
| | | |
| | | |
| | | EventHandler<MouseEventArgs> airSwitchHandler = (sender, e) => |
| | | { |
| | | var airSwitchControl = new Phone.Device.AirSwitch.AirSwitchControl(); |
| | | UserView.HomePage.Instance.AddChidren(airSwitchControl); |
| | | UserView.HomePage.Instance.PageIndex += 1; |
| | | airSwitchControl.action = RefreshBodyView; |
| | | airSwitchControl.Show(device, Room.CurrentRoom); |
| | | }; |
| | | deviceItemFL.MouseLongEventHandler += airSwitchHandler; |
| | | deviceItemFL.MouseUpEventHandler += airSwitchHandler; |
| | | deviceName.MouseUpEventHandler += airSwitchHandler; |
| | | deviceIMG.MouseUpEventHandler += airSwitchHandler; |
| | | |
| | | //collectionBtn.MouseUpEventHandler += (sender, e) => |
| | | //{ |
| | | // if (collectionBtn.IsSelected) |
| | | // { |
| | | // Room.Lists[0].DeleteDevice(device.FilePath); |
| | | // collectionBtn.IsSelected = false; |
| | | // if(Room.CurrentRoom==Room.Lists[0]) |
| | | // { |
| | | // RefreshBodyView(); |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // Room.Lists[0].AddDevice(device.FilePath); |
| | | // collectionBtn.IsSelected = true; |
| | | // } |
| | | // //RefreshBodyView(); |
| | | //}; |
| | | collectionBtn.MouseUpEventHandler += collectionEvent; |
| | | |
| | | //var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FilePath); |
| | | //if (dev == null) |
| | | //{ |
| | | // collectionBtn.IsSelected = false; |
| | | //} |
| | | //else |
| | | //{ |
| | | // collectionBtn.IsSelected = true; |
| | | //} |
| | | } |
| | | else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat) |
| | | { |
| | | //恒温器-AC-空调 |
| | | var ac = device.CommonDevice as AC; |
| | | |
| | | //补上非远程 |
| | | if (ac.Gateway == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (ac.Gateway.IsVirtual) |
| | | { |
| | | //发送读取状态命令 |
| | | ReadStatus(ac, () => |
| | | { |
| | | ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ac.ReadFanMode(); |
| | | ac.ReadSystemMode(); |
| | | ac.ReadLocalTemperature(); |
| | | ac.ReadCoolingSetpoint(); |
| | | ac.ReadHeatingSetpoint(); |
| | | DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | } |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | //防止短时间内多次读取设备状态 |
| | | if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) |
| | | zbGateway = device.CommonDevice.Gateway; |
| | | sendedControlCommand = false; |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | airSwitch.SwitchControl(0); |
| | | |
| | | ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu()); |
| | | ((sender as Button).Parent as FunctionMainView).IsSelected = false; |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | { |
| | | ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ac.ReadFanMode(); |
| | | ac.ReadSystemMode(); |
| | | ac.ReadLocalTemperature(); |
| | | ac.ReadCoolingSetpoint(); |
| | | ac.ReadHeatingSetpoint(); |
| | | } |
| | | if (Parent == null) |
| | | { |
| | | return; |
| | | } |
| | | RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | if (sendedControlCommand == false) |
| | | { |
| | | DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | } |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | var deviceFL = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(deviceFL_Height), |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | Tag = device |
| | | }; |
| | | deviceVerticalScrolViewLayout.AddChidren(deviceFL); |
| | | var deviceRowLayout = new RowLayout |
| | | { |
| | | Y = Application.GetRealHeight(25), |
| | | Height = Application.GetRealHeight(deviceFL_Height - 25) - 1, |
| | | LineColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, |
| | | Radius = CommonPage.BigFormRadius, |
| | | Tag = device |
| | | }; |
| | | deviceFL.AddChidren(deviceRowLayout); |
| | | |
| | | var deviceItemFL = new FrameLayout() |
| | | { |
| | | BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, |
| | | Radius = CommonPage.BigFormRadius |
| | | }; |
| | | deviceRowLayout.AddChidren(deviceItemFL); |
| | | var deviceIMG = new Button() |
| | | { |
| | | X = Application.GetRealWidth(50), |
| | | Y = Application.GetRealHeight(30), |
| | | Width = Application.GetMinRealAverage(110), |
| | | Height = Application.GetMinRealAverage(110), |
| | | UnSelectedImagePath = device.IconPath, |
| | | SelectedImagePath = device.OnlineIconPath, |
| | | IsSelected = ac.IsOnline == 1, |
| | | Tag = deviceStatus_Online |
| | | }; |
| | | deviceItemFL.AddChidren(deviceIMG); |
| | | var deviceName = new Button() |
| | | { |
| | | X = Application.GetRealWidth(10), |
| | | Y = deviceIMG.Bottom, |
| | | Width = Application.GetRealWidth(180), |
| | | Height = Application.GetRealHeight(80), |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | Text = device.CommonDevice.DeviceEpointName, |
| | | TextSize = 10, |
| | | IsMoreLines = true |
| | | }; |
| | | deviceItemFL.AddChidren(deviceName); |
| | | |
| | | var collectionBtn = new Button() |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(150), |
| | | Y = Application.GetRealHeight(20), |
| | | Width = Application.GetMinRealAverage(80), |
| | | Height = Application.GetMinRealAverage(80), |
| | | UnSelectedImagePath = "Item/Collection.png", |
| | | SelectedImagePath = "Item/CollectionSelected.png", |
| | | Tag = device |
| | | }; |
| | | //***先隐藏****** |
| | | //deviceItemFL.AddChidren(collectionBtn); |
| | | |
| | | //减 |
| | | var reduceBtn = new Device.CommonForm.SelectedStatuButton() |
| | | { |
| | | X = Application.GetRealWidth(30) + deviceName.Right, |
| | | Width = Application.GetMinRealAverage(110), |
| | | Height = Application.GetMinRealAverage(110), |
| | | Gravity = Gravity.CenterVertical, |
| | | UnSelectedImagePath = "Item/Reduce.png", |
| | | SelectedImagePath = "Item/ReduceSelected.png", |
| | | }; |
| | | deviceItemFL.AddChidren(reduceBtn); |
| | | //当前温度 |
| | | var currentTemperatureBtn = new Button() |
| | | { |
| | | X = Application.GetRealWidth(50) + reduceBtn.Right, |
| | | Width = Application.GetRealWidth(200), |
| | | Height = Application.GetRealHeight(110), |
| | | Gravity = Gravity.CenterVertical, |
| | | TextColor = ZigbeeColor.Current.TextBlack, |
| | | TextSize = 16, |
| | | Text = $"{Device.AC.ACControlBase.GetCurrentModeTemperature(ac)} °C", |
| | | Tag = "Temparetrue" |
| | | }; |
| | | deviceItemFL.AddChidren(currentTemperatureBtn); |
| | | reduceBtn.MouseUpEventHandler += (send2, e2) => |
| | | { |
| | | if (Device.AC.ACControlBase.IsOpen(ac) == false) |
| | | { |
| | | Device.AC.ACControlBase.ShowACIsCloseTip(); |
| | | return; |
| | | } |
| | | //cool |
| | | if (ac.currentSystemMode == 3) |
| | | { |
| | | ac.currentCoolingSetpoint -= 1; |
| | | ac.SetCoolingTemperatureAsync(ac.currentCoolingSetpoint); |
| | | currentTemperatureBtn.Text = $"{ac.currentCoolingSetpoint} °C"; |
| | | } |
| | | //heat |
| | | else if (ac.currentSystemMode == 4) |
| | | { |
| | | ac.currentHeatingSetpoint -= 1; |
| | | ac.SetHeatingTemperatureAsync(ac.currentHeatingSetpoint); |
| | | |
| | | currentTemperatureBtn.Text = $"{ac.currentHeatingSetpoint} °C"; |
| | | } |
| | | //auto |
| | | //dry |
| | | //currentTemperatureBtn.Text = $"{Device.AC.ACControlBase.GetCurrentModeTemperature(ac)} °C"; |
| | | }; |
| | | |
| | | var addBtn = new Device.CommonForm.SelectedStatuButton() |
| | | { |
| | | X = Application.GetRealWidth(30) + currentTemperatureBtn.Right, |
| | | Width = Application.GetMinRealAverage(110), |
| | | Height = Application.GetMinRealAverage(110), |
| | | Gravity = Gravity.CenterVertical, |
| | | UnSelectedImagePath = "Item/Add.png", |
| | | SelectedImagePath = "Item/AddSelected.png", |
| | | }; |
| | | deviceItemFL.AddChidren(addBtn); |
| | | |
| | | addBtn.MouseUpEventHandler += (send2, e2) => |
| | | { |
| | | if (Device.AC.ACControlBase.IsOpen(ac) == false) |
| | | { |
| | | Device.AC.ACControlBase.ShowACIsCloseTip(); |
| | | return; |
| | | } |
| | | //cool |
| | | if (ac.currentSystemMode == 3) |
| | | { |
| | | ac.currentCoolingSetpoint += 1; |
| | | ac.SetCoolingTemperatureAsync(ac.currentCoolingSetpoint); |
| | | |
| | | currentTemperatureBtn.Text = $"{ac.currentCoolingSetpoint} °C"; |
| | | } |
| | | //heat |
| | | else if (ac.currentSystemMode == 4) |
| | | { |
| | | ac.currentHeatingSetpoint += 1; |
| | | ac.SetHeatingTemperatureAsync(ac.currentHeatingSetpoint); |
| | | |
| | | currentTemperatureBtn.Text = $"{ac.currentHeatingSetpoint} °C"; |
| | | } |
| | | //auto |
| | | //dry |
| | | }; |
| | | |
| | | var switchBtn = new Button |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(200), |
| | | //Y = deviceItemFL.Bottom - Application.GetRealHeight(120), |
| | | Width = Application.GetMinRealAverage(183), |
| | | Height = Application.GetMinRealAverage(123), |
| | | UnSelectedImagePath = "Item/Switch.png", |
| | | SelectedImagePath = "Item/SwitchSelected.png", |
| | | IsSelected = ac.currentSystemMode != 0, |
| | | Tag = deviceStatus_OnOffStatus, |
| | | //Visible=false |
| | | Gravity = Gravity.CenterVertical |
| | | }; |
| | | deviceItemFL.AddChidren(switchBtn); |
| | | switchBtn.MouseUpEventHandler += (send2, e2) => |
| | | { |
| | | switchBtn.IsSelected = !switchBtn.IsSelected; |
| | | if (switchBtn.IsSelected == true) |
| | | { |
| | | zbGateway = device.CommonDevice.Gateway; |
| | | sendedControlCommand = false; |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | ac.Open(); |
| | | |
| | | //控制延时回调 |
| | | //DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | //{ |
| | | // if (Parent == null) |
| | | // { |
| | | // return; |
| | | // } |
| | | // RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | // if (sendedControlCommand == false) |
| | | // { |
| | | // DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | // } |
| | | //}); |
| | | } |
| | | else |
| | | { |
| | | zbGateway = device.CommonDevice.Gateway; |
| | | sendedControlCommand = false; |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | ac.Close(); |
| | | |
| | | //控制延时回调 |
| | | //DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | //{ |
| | | // if (Parent == null) |
| | | // { |
| | | // return; |
| | | // } |
| | | // RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | // if (sendedControlCommand == false) |
| | | // { |
| | | // DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | // } |
| | | //}); |
| | | } |
| | | }; |
| | | |
| | | var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton |
| | | { |
| | | Tag = device, |
| | | IsMoreLines = true |
| | | }; |
| | | if (Room.CurrentRoom.IsLove) |
| | | { |
| | | deleteBtn.TextID = R.MyInternationalizationString.CancelCollect; |
| | | deleteBtn.BackgroundColor = ZigbeeColor.Current.GXCCancelCollectionBGColor; |
| | | deleteBtn.MouseUpEventHandler += collectionEvent; |
| | | deviceRowLayout.AddRightView(deleteBtn); |
| | | } |
| | | else if(Room.CurrentRoom.IsSharedRoom) |
| | | { |
| | | //不处理 |
| | | } |
| | | else |
| | | { |
| | | deleteBtn.MouseUpEventHandler += delEvent; |
| | | deviceRowLayout.AddRightView(deleteBtn); |
| | | } |
| | | |
| | | |
| | | EventHandler<MouseEventArgs> acHandler = (sender, e) => |
| | | { |
| | | var acControl = new Phone.Device.AC.ACControl { }; |
| | | UserView.HomePage.Instance.AddChidren(acControl); |
| | | UserView.HomePage.Instance.PageIndex += 1; |
| | | acControl.action = RefreshBodyView; |
| | | acControl.Show(device, Room.CurrentRoom); |
| | | }; |
| | | deviceItemFL.MouseLongEventHandler += acHandler; |
| | | deviceItemFL.MouseUpEventHandler += acHandler; |
| | | deviceName.MouseUpEventHandler += acHandler; |
| | | deviceIMG.MouseUpEventHandler += acHandler; |
| | | } |
| | | else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.DimmableLight) |
| | | lightView.CardBG.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | //调光灯 |
| | | var dimmableLight = device.CommonDevice as DimmableLight; |
| | | var lightControl = new Phone.Device.Light.AirSwitchControl(); |
| | | UserView.HomePage.Instance.AddChidren(lightControl); |
| | | UserView.HomePage.Instance.PageIndex += 1; |
| | | //lightControl.action = RefreshBodyView; |
| | | lightControl.Show(device, Room.CurrentRoom); |
| | | }; |
| | | |
| | | //补上非远程 |
| | | if (dimmableLight.Gateway == null) |
| | | lightView.CollectButton.MouseUpEventHandler += collectionEvent; |
| | | } |
| | | else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat) |
| | | { |
| | | //恒温器-AC-空调 |
| | | var ac = device.CommonDevice as AC; |
| | | |
| | | //补上非远程 |
| | | if (ac.Gateway == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (ac.Gateway.IsVirtual) |
| | | { |
| | | //发送读取状态命令 |
| | | ReadStatus(ac, () => |
| | | { |
| | | continue; |
| | | ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ac.ReadLocalTemperature(); |
| | | ac.ReadCoolingSetpoint(); |
| | | ac.ReadHeatingSetpoint(); |
| | | ac.ReadAutoSetpoint(); |
| | | ac.ReadFanMode(); |
| | | ac.ReadSystemMode(); |
| | | ac.ReadSystemFansSwingMode(); |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | //防止短时间内多次读取设备状态 |
| | | if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) |
| | | { |
| | | ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ac.ReadLocalTemperature(); |
| | | ac.ReadCoolingSetpoint(); |
| | | ac.ReadHeatingSetpoint(); |
| | | ac.ReadAutoSetpoint(); |
| | | ac.ReadFanMode(); |
| | | ac.ReadSystemMode(); |
| | | ac.ReadSystemFansSwingMode(); |
| | | } |
| | | if (dimmableLight.Gateway.IsVirtual) |
| | | } |
| | | var lightView = new FunctionMainView(xx, yy); |
| | | itemView.AddChidren(lightView); |
| | | lightView.Init(); |
| | | lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); |
| | | lightView.SetStatuText(device.GetDeviceStatu()); |
| | | lightView.SetDeviceName(device.CommonDevice.DeviceEpointName); |
| | | lightView.IsSelected = ac.currentSystemMode != 0; |
| | | lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName)); |
| | | |
| | | lightView.SwitchButton.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | (sender as Button).IsSelected = !(sender as Button).IsSelected; |
| | | if ((sender as Button).IsSelected) |
| | | { |
| | | //发送读取状态命令 |
| | | ReadStatus(dimmableLight, () => |
| | | zbGateway = device.CommonDevice.Gateway; |
| | | sendedControlCommand = false; |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | ac.Open(); |
| | | |
| | | ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu()); |
| | | ((sender as Button).Parent as FunctionMainView).IsSelected = true; |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | { |
| | | dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | dimmableLight.ReadOnOffStatus(); |
| | | dimmableLight.ReadLevel(); |
| | | if (Parent == null) |
| | | { |
| | | return; |
| | | } |
| | | RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | if (sendedControlCommand == false) |
| | | { |
| | | DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | } |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | //防止短时间内多次读取设备状态 |
| | | if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) |
| | | zbGateway = device.CommonDevice.Gateway; |
| | | sendedControlCommand = false; |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | ac.Close(); |
| | | |
| | | ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu()); |
| | | ((sender as Button).Parent as FunctionMainView).IsSelected = false; |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | { |
| | | dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | dimmableLight.ReadOnOffStatus(); |
| | | dimmableLight.ReadLevel(); |
| | | } |
| | | if (Parent == null) |
| | | { |
| | | return; |
| | | } |
| | | RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | if (sendedControlCommand == false) |
| | | { |
| | | DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | } |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | var deviceFL = new FrameLayout |
| | | { |
| | | Height = Application.GetRealHeight(deviceFL_Height), |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | Tag = device |
| | | }; |
| | | deviceVerticalScrolViewLayout.AddChidren(deviceFL); |
| | | var deviceRowLayout = new RowLayout |
| | | { |
| | | Y = Application.GetRealHeight(25), |
| | | Height = Application.GetRealHeight(deviceFL_Height - 25) - 1, |
| | | LineColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, |
| | | Radius = CommonPage.BigFormRadius, |
| | | Tag = device |
| | | }; |
| | | deviceFL.AddChidren(deviceRowLayout); |
| | | lightView.CardBG.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | var lightControl = new Phone.Device.AC.ACControl(); |
| | | UserView.HomePage.Instance.AddChidren(lightControl); |
| | | UserView.HomePage.Instance.PageIndex += 1; |
| | | //lightControl.action = RefreshBodyView; |
| | | lightControl.Show(device, Room.CurrentRoom); |
| | | }; |
| | | |
| | | var deviceItemFL = new FrameLayout() |
| | | lightView.CollectButton.MouseUpEventHandler += collectionEvent; |
| | | } |
| | | else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.DimmableLight) |
| | | { |
| | | //调光灯 |
| | | var dimmableLight = device.CommonDevice as DimmableLight; |
| | | //补上非远程 |
| | | if (dimmableLight.Gateway == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (dimmableLight.Gateway.IsVirtual) |
| | | { |
| | | //发送读取状态命令 |
| | | ReadStatus(dimmableLight, () => |
| | | { |
| | | BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, |
| | | Radius = CommonPage.BigFormRadius |
| | | }; |
| | | deviceRowLayout.AddChidren(deviceItemFL); |
| | | var deviceIMG = new Button() |
| | | dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | dimmableLight.ReadOnOffStatus(); |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | //防止短时间内多次读取设备状态 |
| | | if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) |
| | | { |
| | | X = Application.GetRealWidth(50), |
| | | Y = Application.GetRealHeight(30), |
| | | Width = Application.GetMinRealAverage(110), |
| | | Height = Application.GetMinRealAverage(110), |
| | | UnSelectedImagePath = device.IconPath, |
| | | SelectedImagePath = device.OnlineIconPath, |
| | | IsSelected = dimmableLight.IsOnline == 1, |
| | | Tag = deviceStatus_Online |
| | | }; |
| | | deviceItemFL.AddChidren(deviceIMG); |
| | | var deviceName = new Button() |
| | | { |
| | | X = Application.GetRealWidth(10), |
| | | Y = deviceIMG.Bottom, |
| | | Width = Application.GetRealWidth(180), |
| | | Height = Application.GetRealHeight(80), |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | Text = device.CommonDevice.DeviceEpointName, |
| | | TextSize = 10, |
| | | IsMoreLines = true |
| | | }; |
| | | deviceItemFL.AddChidren(deviceName); |
| | | |
| | | var levelSeekBar = new HorizontalSeekBar() |
| | | { |
| | | X=deviceIMG.Right+Application.GetRealWidth(50), |
| | | Width = Application.GetRealWidth(500), |
| | | Height = Application.GetRealHeight(80), |
| | | Gravity = Gravity.CenterVertical, |
| | | BackgroundColor = ZigbeeColor.Current.GXCSliderUnSelectedColor, |
| | | ThumbColor = ZigbeeColor.Current.GXCButtonBlueColor, |
| | | BorderColor = ZigbeeColor.Current.GXCButtonBlueColor, |
| | | ProgressColor = ZigbeeColor.Current.GXCButtonBlueColor, |
| | | Max = 254, |
| | | Tag = "LevelSeekBar", |
| | | Progress = dimmableLight.Level, |
| | | SleepTime=sleepSpan |
| | | }; |
| | | deviceItemFL.AddChidren(levelSeekBar); |
| | | levelSeekBar.ProgressChanged += (send2, e2) => |
| | | { |
| | | dimmableLight.SetLevel(levelSeekBar.Progress); |
| | | }; |
| | | |
| | | var collectionBtn = new Button() |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(150), |
| | | Y = Application.GetRealHeight(20), |
| | | Width = Application.GetMinRealAverage(80), |
| | | Height = Application.GetMinRealAverage(80), |
| | | UnSelectedImagePath = "Item/Collection.png", |
| | | SelectedImagePath = "Item/CollectionSelected.png", |
| | | Tag = device |
| | | }; |
| | | //***先隐藏****** |
| | | //deviceItemFL.AddChidren(collectionBtn); |
| | | var switchBtn = new Button |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(200), |
| | | //Y = deviceItemFL.Bottom - Application.GetRealHeight(120), |
| | | Width = Application.GetMinRealAverage(183), |
| | | Height = Application.GetMinRealAverage(123), |
| | | UnSelectedImagePath = "Item/Switch.png", |
| | | SelectedImagePath = "Item/SwitchSelected.png", |
| | | IsSelected = dimmableLight.OnOffStatus == 1, |
| | | Tag = deviceStatus_OnOffStatus, |
| | | //Visible=false |
| | | Gravity = Gravity.CenterVertical |
| | | }; |
| | | deviceItemFL.AddChidren(switchBtn); |
| | | switchBtn.MouseUpEventHandler += (send2, e2) => |
| | | { |
| | | switchBtn.IsSelected = !switchBtn.IsSelected; |
| | | if (switchBtn.IsSelected == true) |
| | | { |
| | | //zbGateway = device.CommonDevice.Gateway; |
| | | //sendedControlCommand = false; |
| | | //zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | //AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | dimmableLight.SwitchControl(1); |
| | | |
| | | //控制延时回调 |
| | | //DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | //{ |
| | | //if (Parent == null) |
| | | //{ |
| | | // return; |
| | | //} |
| | | //RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | //if (sendedControlCommand == false) |
| | | //{ |
| | | // DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | //} |
| | | //}); |
| | | } |
| | | else |
| | | { |
| | | //zbGateway = device.CommonDevice.Gateway; |
| | | //sendedControlCommand = false; |
| | | //zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | //AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | dimmableLight.SwitchControl(0); |
| | | |
| | | //控制延时回调 |
| | | //DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | //{ |
| | | // if (Parent == null) |
| | | // { |
| | | // return; |
| | | // } |
| | | // RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | // if (sendedControlCommand == false) |
| | | // { |
| | | // DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | // } |
| | | //}); |
| | | } |
| | | }; |
| | | |
| | | var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton |
| | | { |
| | | Tag = device, |
| | | IsMoreLines = true |
| | | }; |
| | | if (Room.CurrentRoom.IsLove) |
| | | { |
| | | deleteBtn.TextID = R.MyInternationalizationString.CancelCollect; |
| | | deleteBtn.BackgroundColor = ZigbeeColor.Current.GXCCancelCollectionBGColor; |
| | | deleteBtn.MouseUpEventHandler += collectionEvent; |
| | | deviceRowLayout.AddRightView(deleteBtn); |
| | | dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | dimmableLight.ReadOnOffStatus(); |
| | | } |
| | | else if(Room.CurrentRoom.IsSharedRoom) |
| | | } |
| | | |
| | | var lightView = new FunctionMainView(xx, yy); |
| | | itemView.AddChidren(lightView); |
| | | lightView.Init(); |
| | | lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); |
| | | lightView.SetStatuText(device.GetDeviceStatu()); |
| | | lightView.SetDeviceName(device.CommonDevice.DeviceEpointName); |
| | | lightView.IsSelected = dimmableLight.OnOffStatus == 1; |
| | | lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName)); |
| | | |
| | | var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName); |
| | | if (dev == null) |
| | | { |
| | | lightView.CollectButton.IsSelected = false; |
| | | } |
| | | else |
| | | { |
| | | lightView.CollectButton.IsSelected = true; |
| | | } |
| | | |
| | | lightView.SwitchButton.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | (sender as Button).IsSelected = !(sender as Button).IsSelected; |
| | | if ((sender as Button).IsSelected) |
| | | { |
| | | //不处理 |
| | | zbGateway = device.CommonDevice.Gateway; |
| | | sendedControlCommand = false; |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | dimmableLight.SwitchControl(1); |
| | | |
| | | ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu()); |
| | | ((sender as Button).Parent as FunctionMainView).IsSelected = true; |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | { |
| | | if (Parent == null) |
| | | { |
| | | return; |
| | | } |
| | | RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | if (sendedControlCommand == false) |
| | | { |
| | | DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | } |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | deleteBtn.MouseUpEventHandler += delEvent; |
| | | deviceRowLayout.AddRightView(deleteBtn); |
| | | zbGateway = device.CommonDevice.Gateway; |
| | | sendedControlCommand = false; |
| | | zbGateway.ReportAction += UpdateDeviceControllStatu; |
| | | AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); |
| | | |
| | | dimmableLight.SwitchControl(0); |
| | | |
| | | ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu()); |
| | | ((sender as Button).Parent as FunctionMainView).IsSelected = false; |
| | | |
| | | //控制延时回调 |
| | | DeviceUI.SendCommandDelayAction(device.CommonDevice, () => |
| | | { |
| | | if (Parent == null) |
| | | { |
| | | return; |
| | | } |
| | | RemoveUpdateControlDeviceStatuAction(zbGateway); |
| | | if (sendedControlCommand == false) |
| | | { |
| | | DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); |
| | | } |
| | | }); |
| | | } |
| | | }; |
| | | |
| | | EventHandler<MouseEventArgs> dimmableLightHandler = (sender, e) => |
| | | { |
| | | 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(device, Room.CurrentRoom); |
| | | }; |
| | | deviceItemFL.MouseLongEventHandler += dimmableLightHandler; |
| | | deviceItemFL.MouseUpEventHandler += dimmableLightHandler; |
| | | deviceName.MouseUpEventHandler += dimmableLightHandler; |
| | | deviceIMG.MouseUpEventHandler += dimmableLightHandler; |
| | | |
| | | //collectionBtn.MouseUpEventHandler += (sender, e) => |
| | | //{ |
| | | // if (collectionBtn.IsSelected) |
| | | // { |
| | | // Room.Lists[0].DeleteDevice(device.FilePath); |
| | | // collectionBtn.IsSelected = false; |
| | | // if(Room.CurrentRoom==Room.Lists[0]) |
| | | // { |
| | | // RefreshBodyView(); |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // Room.Lists[0].AddDevice(device.FilePath); |
| | | // collectionBtn.IsSelected = true; |
| | | // } |
| | | // //RefreshBodyView(); |
| | | //}; |
| | | collectionBtn.MouseUpEventHandler += collectionEvent; |
| | | |
| | | //var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FilePath); |
| | | //if (dev == null) |
| | | //{ |
| | | // collectionBtn.IsSelected = false; |
| | | //} |
| | | //else |
| | | //{ |
| | | // collectionBtn.IsSelected = true; |
| | | //} |
| | | } |
| | | else if (device.CommonDevice.Type == DeviceType.OnOffSwitch) |
| | | lightView.CardBG.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | //按键 |
| | | var panel = (Panel)device.CommonDevice; |
| | | 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(device, Room.CurrentRoom); |
| | | }; |
| | | |
| | | } |
| | | lightView.CollectButton.MouseUpEventHandler += collectionEvent; |
| | | } |
| | | else if (device.CommonDevice.Type == DeviceType.OnOffSwitch) |
| | | { |
| | | var lightView = new FunctionMainView(xx, yy); |
| | | itemView.AddChidren(lightView); |
| | | lightView.Init(); |
| | | lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); |
| | | lightView.SetStatuText(device.GetDeviceStatu()); |
| | | lightView.SetDeviceName(device.CommonDevice.DeviceEpointName); |
| | | //lightView.SetStatu(true); |
| | | lightView.IsSelected = true; |
| | | lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName)); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | ShowNoGatewayTip(); |
| | | } |
| | | |
| | | } |
| | | |
| | | #endregion |
| | |
| | | /// </summary> |
| | | private void ShowNoSceneTip() |
| | | { |
| | | var noScene = new Button |
| | | { |
| | | Y = Application.GetRealHeight(69), |
| | | Width = Application.GetMinRealAverage(683), |
| | | Height = Application.GetMinRealAverage(392), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | UnSelectedImagePath = "Item/NoFunction.png" |
| | | }; |
| | | functionSceneBodyView.AddChidren(noScene); |
| | | var noScenceTip = new Button() |
| | | { |
| | | Y=noScene.Bottom, |
| | | Height = Application.GetRealHeight(200), |
| | | TextID = R.MyInternationalizationString.NoScene, |
| | | Text =Language.StringByID(R.MyInternationalizationString.NoScene).Replace("{\\r\\n}","\r\n"), |
| | | TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | Gravity = Gravity.Center, |
| | | IsMoreLines=true |
| | | }; |
| | | functionSceneBodyView.AddChidren(noScenceTip); |
| | | } |
| | |
| | | /// </summary> |
| | | private void ShowScene() |
| | | { |
| | | if (CanBindGateway() == false) |
| | | //选择场景 |
| | | var sceneList = Room.CurrentRoom.SceneUIList; |
| | | if (sceneList == null) |
| | | { |
| | | //选择场景 |
| | | var sceneList = Room.CurrentRoom.SceneUIList; |
| | | if (sceneList == null) |
| | | return; |
| | | } |
| | | if (sceneList.Count == 0) |
| | | { |
| | | ShowNoSceneTip(); |
| | | } |
| | | else |
| | | { |
| | | var sceneScrolView = new VerticalScrolViewLayout { }; |
| | | functionSceneBodyView.AddChidren(sceneScrolView); |
| | | for(int i=0;i<sceneList.Count;i++) |
| | | { |
| | | return; |
| | | } |
| | | if (sceneList.Count == 0) |
| | | { |
| | | ShowNoSceneTip(); |
| | | } |
| | | else |
| | | { |
| | | var sceneScrolView = new VerticalScrolViewLayout { }; |
| | | functionSceneBodyView.AddChidren(sceneScrolView); |
| | | foreach (var scene in sceneList) |
| | | var scene = sceneList[i]; |
| | | int xx = 43 + i % 2 * (20 + 487); |
| | | int yy = 14; |
| | | if (scene == null) |
| | | { |
| | | if (scene == null) |
| | | { |
| | | continue; |
| | | } |
| | | var sceneFL = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(400), |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | Tag = scene |
| | | }; |
| | | sceneScrolView.AddChidren(sceneFL); |
| | | var sceneRowLayout = new RowLayout() |
| | | { |
| | | Y = Application.GetRealHeight(30), |
| | | Height = Application.GetRealHeight(400 - 10 - 30), |
| | | LineColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | Radius = CommonPage.BigFormRadius |
| | | }; |
| | | sceneFL.AddChidren(sceneRowLayout); |
| | | var sceneItemFL = new FrameLayout() |
| | | { |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | Radius = CommonPage.BigFormRadius |
| | | }; |
| | | sceneRowLayout.AddChidren(sceneItemFL); |
| | | var sceneImg = new Button() |
| | | { |
| | | UnSelectedImagePath = scene.IconPath, |
| | | Radius = CommonPage.BigFormRadius |
| | | }; |
| | | sceneItemFL.AddChidren(sceneImg); |
| | | var hardBlackBG = new Button() |
| | | { |
| | | BackgroundColor = ZigbeeColor.Current.GXCBlack70Color, |
| | | SelectedBackgroundColor = ZigbeeColor.Current.GXCBlack80Color, |
| | | Radius = CommonPage.BigFormRadius |
| | | }; |
| | | sceneItemFL.AddChidren(hardBlackBG); |
| | | var sceneNameBtn = new Button() |
| | | { |
| | | Text = scene.Name, |
| | | TextColor = ZigbeeColor.Current.GXCTextWhiteColor, |
| | | TextSize = 20 |
| | | }; |
| | | sceneItemFL.AddChidren(sceneNameBtn); |
| | | //编辑 |
| | | var editBtn = new Device.CommonForm.RowLayoutEditButton |
| | | { |
| | | TextID = R.MyInternationalizationString.Edit, |
| | | Tag = scene |
| | | }; |
| | | //删除 |
| | | var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton |
| | | { |
| | | Tag = scene |
| | | }; |
| | | if (!Room.CurrentRoom.IsSharedRoom) |
| | | { |
| | | sceneRowLayout.AddRightView(editBtn); |
| | | sceneRowLayout.AddRightView(deleteBtn); |
| | | } |
| | | continue; |
| | | } |
| | | |
| | | EventHandler<MouseEventArgs> sceneDownHandler = (sender, e) => |
| | | if (i % 2 == 0) |
| | | { |
| | | itemView = new FrameLayout() |
| | | { |
| | | hardBlackBG.IsSelected = true; |
| | | Height = Application.GetRealHeight(14 + 348), |
| | | Tag = scene |
| | | }; |
| | | sceneNameBtn.MouseDownEventHandler += sceneDownHandler; |
| | | hardBlackBG.MouseDownEventHandler += sceneDownHandler; |
| | | sceneScrolView.AddChidren(itemView); |
| | | } |
| | | |
| | | //调用场景 |
| | | EventHandler<MouseEventArgs> sceneUpHandler = async (sender, e) => |
| | | var sceneView = new SceneMainView(xx, yy); |
| | | itemView.AddChidren(sceneView); |
| | | sceneView.Init(); |
| | | sceneView.SetSceneNameText(scene.Name); |
| | | sceneView.SetIcon($"SceneIcon/{i}.png"); |
| | | sceneView.SetCollect(Common.Room.CurrentRoom.GetLoveRoom().SceneUIFilePathList.Contains(scene.FileName)); |
| | | |
| | | if (scene.SceneDelayTime == 0) |
| | | { |
| | | sceneView.SetTimeImage(); |
| | | } |
| | | else |
| | | { |
| | | sceneView.SetTimeText(scene.SceneDelayTime.ToString()); |
| | | } |
| | | |
| | | sceneView.TimeButton.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | var timeSelect = new SelectTime(); |
| | | CommonPage.Instance.AddChidren(timeSelect); |
| | | timeSelect.TempTime = scene.DelayTime; |
| | | timeSelect.Init(); |
| | | timeSelect.TimeAction = (t) => |
| | | { |
| | | hardBlackBG.IsSelected = false; |
| | | scene.SceneDelayTime = t; |
| | | if(t>0) |
| | | { |
| | | sceneView.SetTimeText(CommonFormResouce.GetTimeString(scene.SceneDelayTime)); |
| | | } |
| | | else |
| | | { |
| | | sceneView.SetTimeImage(); |
| | | } |
| | | }; |
| | | |
| | | }; |
| | | |
| | | //调用场景 |
| | | EventHandler<MouseEventArgs> sceneUpHandler = async (sender, e) => |
| | | { |
| | | //1成功 0失败 |
| | | //后面补上相关提示 |
| | | // Error参数含义 |
| | |
| | | //<para>3:操作设备/组/场景不存在</para> |
| | | //<para>4:其他错误</para> |
| | | //<para>5:数据传输错误(在某次客户端向网关发送数据的过程中,网关在合理时间范围内接收客户端数据不完整导致该错误发生。如客户端向网关一次发送100个字节的数据,但网关等待接收了一秒只接收了80个字节。发生该错误,网关将主动关闭客户端连接)</para> |
| | | var sceneOpenAllData = await ZigBee.Device.Scene.ControlSceneAsync(scene.Id, 0); |
| | | if (sceneOpenAllData == null || sceneOpenAllData.sceneOpenData == null) |
| | | var sceneOpenAllData = await ZigBee.Device.Scene.ControlSceneAsync(scene.Id, scene.SceneDelayTime); |
| | | if (sceneOpenAllData == null || sceneOpenAllData.sceneOpenData == null) |
| | | { |
| | | return; |
| | | } |
| | | if (sceneOpenAllData.sceneOpenData.Result == 0) |
| | | { |
| | | if (sceneOpenAllData.errorResponData == null) |
| | | { |
| | | return; |
| | | } |
| | | if (sceneOpenAllData.sceneOpenData.Result == 0) |
| | | { |
| | | if (sceneOpenAllData.errorResponData == null) |
| | | { |
| | | return; |
| | | } |
| | | CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.ControlSceneFail); |
| | | } |
| | | }; |
| | | sceneNameBtn.MouseUpEventHandler += sceneUpHandler; |
| | | hardBlackBG.MouseUpEventHandler += sceneUpHandler; |
| | | |
| | | //编辑场景 |
| | | EventHandler<MouseEventArgs> editEvent = (sender, e) => |
| | | CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.ControlSceneFail); |
| | | } |
| | | }; |
| | | //收藏 |
| | | EventHandler<MouseEventArgs> collectionEvent = (sender, e) => |
| | | { |
| | | (sender as Button).IsSelected = !(sender as Button).IsSelected; |
| | | if ((sender as Button).IsSelected) |
| | | { |
| | | SceneRoomUI.EditScene(scene, Room.CurrentRoom); |
| | | }; |
| | | editBtn.MouseUpEventHandler += editEvent; |
| | | |
| | | //删除场景 |
| | | EventHandler<MouseEventArgs> delEvent = (sender, e) => |
| | | //scene.IsCollected = true; |
| | | Room.CurrentRoom.GetLoveRoom().AddScene(scene); |
| | | } |
| | | else |
| | | { |
| | | 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(); |
| | | alert.ResultEventHandler += async (send1, e1) => |
| | | { |
| | | if (e1) |
| | | { |
| | | //0 移除失败 1 移除成功 2 没有该场景 |
| | | var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(scene.Id); |
| | | if (removeSceneAllData == null || removeSceneAllData.removeSceneData == null) |
| | | { |
| | | return; |
| | | } |
| | | if (removeSceneAllData.removeSceneData.Result == 1) |
| | | { |
| | | //1成功 |
| | | Room.CurrentRoom.RemoveScene(scene); |
| | | //RefreshBodyView(); |
| | | sceneScrolView.RemoveViewByTag((sender as Button).Tag); |
| | | } |
| | | else if (removeSceneAllData.removeSceneData.Result == 0) |
| | | { |
| | | //0 移除失败 |
| | | CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.DeleteSceneFail); |
| | | } |
| | | else if (removeSceneAllData.removeSceneData.Result == 2) |
| | | { |
| | | //2 没有该场景 |
| | | Room.CurrentRoom.RemoveScene(scene); |
| | | //RefreshBodyView(); |
| | | sceneScrolView.RemoveViewByTag((sender as Button).Tag); |
| | | } |
| | | } |
| | | }; |
| | | }; |
| | | deleteBtn.MouseUpEventHandler += delEvent; |
| | | } |
| | | //scene.IsCollected = false; |
| | | Room.CurrentRoom.GetLoveRoom().RemoveScene(scene); |
| | | } |
| | | scene.Save(); |
| | | |
| | | //if ((sender as Button).IsSelected) |
| | | //{ |
| | | // scene.Collect(false); |
| | | // (sender as Button).IsSelected = false; |
| | | //} |
| | | //else |
| | | //{ |
| | | // scene.Collect(true); |
| | | // (sender as Button).IsSelected = true; |
| | | //} |
| | | //scene.Save(); |
| | | //if (Room.CurrentRoom.IsLove) |
| | | //{ |
| | | // RefreshBodyView(); |
| | | //} |
| | | |
| | | }; |
| | | |
| | | sceneView.CollectButton.MouseUpEventHandler += collectionEvent; |
| | | sceneView.MouseUpEventHandler += sceneUpHandler; |
| | | sceneView.SceneIcon.MouseUpEventHandler+= sceneUpHandler; |
| | | sceneView.SceneNameButton.MouseUpEventHandler += sceneUpHandler; |
| | | |
| | | } |
| | | } |
| | | else |
| | | { |
| | | ShowNoGatewayTip(); |
| | | } |
| | | |
| | | } |
| | | |
| | | #endregion |
| | |
| | | private void ChangeResidence(House home) |
| | | { |
| | | try |
| | | { |
| | | {
|
| | | CommonPage.Loading.Start(); |
| | | new System.Threading.Thread(async () => |
| | | new System.Threading.Thread(async () =>
|
| | | { |
| | | Config.Instance.HomeId = home.Id; |
| | | Config.Instance.Home = House.GetHouseByFilePath(home.FileName); |
| | | Global.CreateHomeDirectory(home.Id); |
| | | Config.Instance.Save(); |
| | | //刷新个人中心的内存及线程 |
| | | Config.Instance.Save();
|
| | | //刷新个人中心的内存及线程
|
| | | await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread(); |
| | | |
| | | Room.InitAllRoom(); |
| | | |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | {
|
| | | Show(); |
| | | CommonPage.Loading.Hide(); |
| | | }); |
| | |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | {
|
| | | Application.RunOnMainThread(() => |
| | | { |
| | | {
|
| | | CommonPage.Loading.Hide(); |
| | | new Alert(Language.StringByID(R.MyInternationalizationString.Tip), Language.StringByID(R.MyInternationalizationString.CheckInternet), Language.StringByID(R.MyInternationalizationString.Close)).Show(); |
| | | Console.WriteLine(ex.Message); |
| | | //new Alert(Language.StringByID(R.MyInternationalizationString.Tip), Language.StringByID(R.MyInternationalizationString.CheckInternet), Language.StringByID(R.MyInternationalizationString.Close)).Show();
|
| | | Console.WriteLine(ex.Message);
|
| | | }); |
| | | } |
| | | } |