From 1f6f024bddf48dea1c17c54ade1535a10ef7b39b Mon Sep 17 00:00:00 2001 From: WJC <wjc@hdlchina.com.cn> Date: 星期一, 23 三月 2020 17:16:37 +0800 Subject: [PATCH] 2020-03-23-2 --- ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs | 3199 ++++++++++++++++++++++++++++------------------------------ 1 files changed, 1,562 insertions(+), 1,637 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs index 5062151..e6aea15 100755 --- a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs +++ b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs @@ -1,27 +1,23 @@ 锘縰sing System; using System.Collections.Generic; +using System.Timers; using Shared.Common; using Shared.Phone.Device.AC; -using ZigBee.Device; using Shared.Phone.Device.CommonForm; +using Shared.Phone.Device.DeviceLogic; +using Shared.Phone.UserCenter; +using Shared.Phone.UserCenter.DoorLock; +using ZigBee.Device; namespace Shared.Phone.UserView { - /// <summary> - /// 涓婚〉 + /// 涓婚〉(姝や笢瑗胯鑸嶅純,闄や簡瀹冮噷闈㈢殑闈欐�佹柟娉�) /// </summary> - public class UserHomeView : FrameLayout, ZigBee.Common.IStatus - { - #region 鈼� 鍙橀噺____________________________ - /// <summary> - /// 璁惧鏄惁鍦ㄧ嚎鏍囪瘑--Online - /// </summary> - private readonly string deviceStatus_Online = "Online"; - /// <summary> - /// 璁惧鐘舵�佸紑鍏虫爣璇�--Switch - /// </summary> - private readonly string deviceStatus_OnOffStatus = "Switch"; + public class UserHomeView : EditorCommonForm + { + #region 鈻� 鍙橀噺澹版槑___________________________ + /// <summary> /// 鍔熻兘ScrolViewLayout /// </summary> @@ -30,19 +26,10 @@ /// 鍔熻兘鍜屽満鏅痓odyView /// </summary> private FrameLayout functionSceneBodyView; - - /// <summary> - /// The height of the room page view. -- 550 - /// </summary> - private static readonly int roomPageView_Height = 550; - /// <summary> - /// 鍔熻兘鍗$墖楂樺害 --250 - /// </summary> - private static readonly int deviceFL_Height = 250; /// <summary> /// 鍔熻兘鎸夐敭 /// </summary> - private Button functionBtn; + private NormalViewControl btnFunction; /// <summary> /// 璇诲彇璁惧鐘舵�佺殑绾跨▼鍒楄〃 @@ -66,704 +53,217 @@ /// </summary> private bool sendedControlCommand = false; + private FrameLayout itemView = new FrameLayout(); /// <summary> - /// 寤舵椂 300姣 + /// btnFloor /// </summary> - private readonly int sleepSpan = 300; - - - private FrameLayout itemView=new FrameLayout(); + private NormalViewControl btnFloor; /// <summary> - /// floorBtn + /// sceneScrolView /// </summary> - private Button floorBtn; + private VerticalScrolViewLayout sceneScrolView; + #endregion - - #region 鈼� 鎺ュ彛____________________________ - - /// <summary> - /// 璇ユ帴鍙e皢寮冪敤 !!!!!! - /// 鏀圭敤DeviceInfoChange() - /// </summary> - /// <returns>The changed.</returns> - /// <param name="common">Common.</param> - public void Changed(CommonDevice common) - { - - } - - /// <summary> - /// 璁惧鐘舵�佹洿鏂版帴鍙� - /// <para>type锛氬鏋滀负 DeviceInComingRespon:璁惧鏂颁笂鎶�</para> - /// <para>type锛氬鏋滀负 IASInfoReport:RemoveDeviceRespon</para> - /// <para>type锛氬鏋滀负 DeviceStatusReport:璁惧涓婃姤</para> - /// <para>type锛氬鏋滀负 IASInfoReport:IAS瀹夐槻淇℃伅涓婃姤</para> - /// <para>type锛氬鏋滀负 OnlineStatusChange: 璁惧鍦ㄧ嚎鐘舵�佹洿鏂�</para> - /// </summary> - /// <param name="common">Common.</param> - /// <param name="typeTag">Type tag.</param> - public void DeviceInfoChange(CommonDevice common, string typeTag) - { - //璁惧涓婃姤鐘舵�佷腑 褰揅luterID=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 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; + #region 鈻� 鍒濆鍖朹____________________________ - //璁板綍銆佹洿鏂扮姸鎬� - if (onOffOutputLight.DeviceStatusReport.AttriBute == null || onOffOutputLight.DeviceStatusReport.AttriBute.Count == 0) - { - 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; - } - break; - - 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; - (rowFL.GetChildren(0) as FunctionMainView).IsSelected = airSwitch.OnOffStatus == 1; - (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); - //璁板綍鍥炲鏃堕棿 - airSwitch.LastDateTime = DateTime.Now; - } - } - } - //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁� - if (common.DeviceStatusReport.CluterID == 3) - { - deviceUI.CommonDevice.IsOnline = 1; - deviceUI.CommonDevice.LastDateTime = DateTime.Now; - } - break; - - case DeviceType.WindowCoveringDevice: - if (common.DeviceStatusReport.CluterID == 258) - { - if (common.DeviceStatusReport.AttriBute[0].AttributeId == 0) - { - //绐楀笜绫诲瀷 - 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(); - } - } - if (common.DeviceStatusReport.CluterID == 3) - { - deviceUI.CommonDevice.IsOnline = 1; - deviceUI.CommonDevice.LastDateTime = DateTime.Now; - } - break; - - case DeviceType.Thermostat: - //AC鍔熻兘 - if (common.DeviceStatusReport.CluterID == 513) - { - var ac = deviceUI.CommonDevice as ZigBee.Device.AC; - 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锛屽疄闄呮俯搴︿负鈥淟ocalTemperature / 100鈥濓紝鍗曚綅锛氣剝 - ac.currentLocalTemperature = curTemp; - ac.LastDateTime = DateTime.Now; - break; - - case 17: - //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鍐锋俯搴︼紝瀹為檯娓╁害涓衡�淐oolingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆� - ac.currentCoolingSetpoint = curTemp; - ac.LastDateTime = DateTime.Now; - break; - - case 18: - //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鐑俯搴︼紝瀹為檯娓╁害涓衡�淗eatingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆� - ac.currentHeatingSetpoint = curTemp; - ac.LastDateTime = DateTime.Now; - break; - - case 4096: - //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勮嚜鍔ㄦ俯搴︼紝瀹為檯娓╁害涓衡�淎utoSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆� - ac.currentAutoSetpoint = curTemp; - ac.LastDateTime = DateTime.Now; - break; - - case 28: - //姝ゅ睘鎬ф弿杩版亽娓╄澶囨澶勪簬鍝妯″紡 - ac.currentSystemMode = 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(); - } - 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(); - } - //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁� - if (common.DeviceStatusReport.CluterID == 3) - { - var ac = deviceUI.CommonDevice as AC; - ac.IsOnline = 1; - ac.LastDateTime = DateTime.Now; - } - break; - - case DeviceType.DimmableLight: - //璋冨厜鐏姛鑳� - //寮�鍏冲姛鑳� - if (common.DeviceStatusReport.CluterID == 6) - { - var dimmableLight = deviceUI.CommonDevice as DimmableLight; - dimmableLight.DeviceStatusReport = common.DeviceStatusReport; - //璁板綍銆佹洿鏂扮姸鎬� - if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0) - { - 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.DeviceStatusReport.CluterID == 8) - { - var dimmableLight = deviceUI.CommonDevice as DimmableLight; - dimmableLight.DeviceStatusReport = common.DeviceStatusReport; - var attriButeList = dimmableLight.DeviceStatusReport.AttriBute; - if (attriButeList == null || attriButeList.Count == 0) - { - continue; - } - switch (attriButeList[0].AttributeId) - { - case 0: - //姝ゅ睘鎬ц〃鏄庡綋鍓嶄寒搴︾▼搴� - dimmableLight.Level = attriButeList[0].AttriButeData ; - dimmableLight.LastDateTime = DateTime.Now; - (rowFL.GetChildren(0) as FunctionMainView).IsSelected = true; - (rowFL.GetChildren(0) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); - break; - } - } - break; - } - } - } - catch (Exception ex) - { - System.Console.WriteLine($"Error:{ex.Message}"); - } - }); - } - - } /// <summary> - /// Changeds the IL ogic status. + /// 鐣岄潰鏄剧ず /// </summary> - /// <param name="logic">Logic.</param> - public void ChangedILogicStatus(ZigBee.Device.Logic logic) + public void ShowForm() { - //throw new NotImplementedException(); - } - /// <summary> - /// Changeds the IS cene status. - /// </summary> - /// <param name="scene">Scene.</param> - public void ChangedISceneStatus(Scene scene) - { - //throw new NotImplementedException(); - } - #endregion - - #region 鈼� 鍒濆鍖朹_________________________ - - /// <summary> - /// Removes from parent. - /// </summary> - public override void RemoveFromParent() - { - RemoveStatuList(); - base.RemoveFromParent(); - } - - private void RemoveStatuList() - { - ZbGateway.StatusList.Remove(this); - RemoveAllUpdateControlDeviceStatuAction(); - } - - /// <summary> - /// 涓婚〉 --鎴戠殑瀹� - /// </summary> - public UserHomeView() - { - ZbGateway.StatusList.Add(this); - BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor; - } - - /// <summary> - /// 鏄剧ず鐣岄潰 - /// </summary> - public void Show() - { + this.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor; + //娓呴櫎鍏ㄩ儴 this.RemoveAll(); + //鍒濆鍖栧ご閮ㄦ帶浠� + this.InitTopFrameLayoutControl(); + //鍒濆鍖栦腑闂存帶浠� + this.InitMidFrameLayoutControl(); + //娣诲姞璁惧鐘舵�佷笂鎶ヤ簨浠� + this.AddDeviceReportEvent(); + } - #region topview - var topFrameLayout = new FrameLayout() - { - Y=Application.GetRealHeight(60), - Height = Application.GetRealHeight(127), - BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor, - }; - AddChidren(topFrameLayout); - - var floor = new Button - { - X = Application.GetRealWidth(CommonFormResouce.X_Left), - Width = Application.GetMinRealAverage(69), - Height = Application.GetMinRealAverage(69), - Gravity = Gravity.CenterVertical, - UnSelectedImagePath = "Item/Floor.png" - }; - topFrameLayout.AddChidren(floor); - - floorBtn = new Button - { - 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(floorBtn); - - var messageBtn = new Button() - { - 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); - - 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}"; + /// <summary> + /// 鍒濆鍖栧ご閮ㄦ帶浠� + /// </summary> + private void InitTopFrameLayoutControl() + { + //澶撮儴瀹瑰櫒 + base.topFrameLayout = new FrameLayout(); + topFrameLayout.Y = Application.GetRealHeight(60); + topFrameLayout.Height = Application.GetRealHeight(127); + topFrameLayout.BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor; + this.AddChidren(topFrameLayout); + + //鎷ユ湁妤煎眰 + if (Config.Instance.Home.FloorDics.Count > 0) + { + //妤煎眰鍥炬爣 + var btnFloorIcon = new IconViewControl(69); + btnFloorIcon.X = ControlCommonResourse.XXLeft; + btnFloorIcon.Gravity = Gravity.CenterVertical; + btnFloorIcon.UnSelectedImagePath = "Item/Floor.png"; + topFrameLayout.AddChidren(btnFloorIcon); + btnFloorIcon.ButtonClickEvent += (sender, e) => + { + //鏄剧ず閫夋嫨妤煎眰鐨勭晫闈� + this.ShowSelectFloorForm(); + }; + //妤煎眰鍚� + this.btnFloor = new NormalViewControl(500, 100, true); + btnFloor.X = btnFloorIcon.Right; + btnFloor.Gravity = Gravity.CenterVertical; + btnFloor.TextColor = ZigbeeColor.Current.GXCTextColor; + btnFloor.Text = Config.Instance.Home.GetCurrentFloorName; + btnFloor.IsBold = true; + topFrameLayout.AddChidren(btnFloor); + btnFloor.ButtonClickEvent += (sender, e) => + { + //鏄剧ず閫夋嫨妤煎眰鐨勭晫闈� + this.ShowSelectFloorForm(); + }; } - AddChidren(residecneName); - - floor.MouseUpEventHandler += SelectFloor; - floorBtn.MouseUpEventHandler += SelectFloor; - //鍒囨崲浣忓畢 - residecneName.MouseLongEventHandler += (send, e) => + //瀹夐槻蹇嵎鏂瑰紡 + if (UserCenterResourse.ResidenceOption.SafetyShortcut) { - var tempHomeBtn = send as Button; + var btnSafety = new SafetyShortcutControl(); + btnSafety.X = Application.GetRealWidth(860); + btnSafety.Gravity = Gravity.CenterVertical; + topFrameLayout.AddChidren(btnSafety); + } + //娑堟伅鍥炬爣 + var btnMessage = new MessageManagementControl(); + btnMessage.X = Application.GetRealWidth(953); + btnMessage.Gravity = Gravity.CenterVertical; + btnMessage.UnSelectedImagePath = "Item/Message.png"; + btnMessage.SelectedImagePath = "Item/MessageSelected.png"; + topFrameLayout.AddChidren(btnMessage); + + //浣忓畢鍚嶅瓧 + var btnHouseName = new NormalViewControl(700, 95, true); + btnHouseName.X = ControlCommonResourse.XXLeft; + btnHouseName.Y = Application.GetRealHeight(161); + btnHouseName.TextSize = 24; + btnHouseName.TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor; + btnHouseName.IsBold = true; + btnHouseName.Text = Config.Instance.Home.Name; + this.AddChidren(btnHouseName); + + //鍒囨崲浣忓畢 + btnHouseName.MouseLongEventHandler += (sender, e) => + { 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)); - alert.Show(); - alert.ResultEventHandler += (senderHouse, eHouse) => - { - if (eHouse) - { - return; - } - }; + //褰撳墠浣忓畢涓虹┖锛岃鍏堝缓绔嬩綇瀹� + this.ShowMassage(ShowMsgType.Remind, Language.StringByID(R.MyInternationalizationString.CurrentlyTheUserIshHouseIsEmptyPleaseBuildANewHouseFirst)); } else { - var residenceListView = new Dialog(); - residenceListView.Show(); - var closeBGview = new FrameLayout(); - residenceListView.AddChidren(closeBGview); - closeBGview.MouseUpEventHandler += (send1, e1) => + var selectHouse = new Device.Category.SelectHouse(); + selectHouse.Init(); + selectHouse.HouseAction = (houseId) => { - residenceListView.Close(); - }; - - var bg = new Button - { - X = Application.GetRealWidth(35), - Y = Application.GetRealHeight(248), - Width = Application.GetMinRealAverage(449), - Height = Application.GetMinRealAverage(478), - UnSelectedImagePath = "Item/SelectHouse" - }; - closeBGview.AddChidren(bg); - - var changeHomeFL = new FrameLayout() - { - X = Application.GetRealWidth(35), - Y = Application.GetRealHeight(271), - Height = Application.GetRealHeight(449), - Width = Application.GetRealWidth(440), - Radius = CommonPage.BigFormRadius, - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor - }; - closeBGview.AddChidren(changeHomeFL); - - var changeHomeBtn = new Button() - { - X = Application.GetRealWidth(80), - Width = Application.GetRealWidth(350), - Height = Application.GetRealHeight(150), - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - TextID = R.MyInternationalizationString.ChangeHome, - TextAlignment = TextAlignment.CenterLeft - }; - changeHomeFL.AddChidren(changeHomeBtn); - - var scrolView = new VerticalScrolViewLayout() - { - Y = changeHomeBtn.Bottom, - Height = Application.GetMinRealAverage(305-10) - }; - changeHomeFL.AddChidren(scrolView); - - var clickCheckBtn = new Device.CommonForm.SelectedStatuButton(); - var clickNameBtn = new Device.CommonForm.SelectedStatuButton(); - foreach (var homeFilePath in Config.Instance.HomeFilePathList) - { - var home = House.GetHouseByFilePath(homeFilePath); - if (home == null) - { - continue; - } - var rowView = new RowLayout() - { - Height = Application.GetRealHeight(150) - }; - scrolView.AddChidren(rowView); - var pointBtn = new Device.CommonForm.SelectedStatuButton() - { - X=Application.GetRealWidth(80), - Width = Application.GetMinRealAverage(80), - Height = Application.GetMinRealAverage(80), - Gravity = Gravity.CenterVertical, - 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(173), - Width = Application.GetRealWidth(280), - TextAlignment = TextAlignment.CenterLeft, - Text = home.Name, - 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.FileName == homeFilePath) - { - return; - } - clickCheckBtn.IsSelected = false; - clickNameBtn.IsSelected = false; - pointBtn.IsSelected = true; - 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(); - ChangeResidence(home); - }; - nameBtn.MouseUpEventHandler += selectedResidenceHandler; - pointBtn.MouseUpEventHandler += selectedResidenceHandler; - rowView.MouseUpEventHandler += selectedResidenceHandler; - if (home.Id == Config.Instance.Home.Id) - { - pointBtn.IsSelected = true; - nameBtn.IsSelected = true; - clickCheckBtn = pointBtn; - clickNameBtn = nameBtn; - residecneName.Text = home.Name; - if (home.IsOthreShare) - { - residecneName.Text = nameBtn.Text = $"({Language.StringByID(R.MyInternationalizationString.Shared)}){home.Name}"; - } - } - else - { - pointBtn.IsSelected = false; - nameBtn.IsSelected = false; - } + ChangeResidence(House.GetHouseByHouseId(houseId)); }; } - }; - //娑堟伅 - messageBtn.MouseUpEventHandler += (send, e) => + }; + } + + /// <summary> + /// 鍒濆鍖栦腑闂存帶浠� + /// </summary> + private void InitMidFrameLayoutControl() + { + //妫�娴嬫槸鍚︾粦瀹氭湁缃戝叧 + if (this.CheckHadBindGateway() == false) + { + //鏄剧ず娌℃湁缁戝畾杩囩綉鍏崇殑鐣岄潰 + this.ShowNoGatewayTip(); + } + else { - var roomList = new Shared.Phone.Device.Room.RoomManagement(); - HomePage.Instance.AddChidren(roomList); - HomePage.Instance.PageIndex += 1; - roomList.Show(); - }; - - #endregion - - if(CanBindGateway()==false) - { - 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); + var roomPageView = new HorizontalPages(); + roomPageView.Y = Application.GetRealHeight(302); + roomPageView.Width = Application.GetRealWidth(CommonPage.AppRealWidth); + roomPageView.Height = Application.GetRealHeight(478); + this.AddChidren(roomPageView); + //绐佸嚭杈硅窛 + roomPageView.TCBJ = Application.GetRealWidth(112); + //涓や釜page涔嬮棿鐨勯棿璺� + roomPageView.JMBJ = Application.GetRealWidth(69); //褰撳墠鎴块棿 - if (Shared.Common.Room.CanInitAllRoom == true) + var rList = HdlRoomLogic.Current.GetRoomsByCurrentFloorIdAppendLoveRoom(); + foreach (var room in rList) { - //Room.CurrentRoom = Room.CurrentRoom == null ? Room.Lists[0] : Room.CurrentRoom; - Room.CurrentRoom = Room.Lists[0]; - foreach (var room in Room.CurrentRoom.GetRoomsByCurrentFloorIdAppendLoveRoom()) + var roomView = new Device.CommonForm.RoomView(0, 0); + roomPageView.AddChidren(roomView); + roomView.Init(room); + roomView.HideName(true); + roomView.action += () => { - 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(); - }; - - }; + this.ShowForm(); + }; + } + //璁剧疆鎴块棿鐨勫垵濮嬮�夋嫨 + var curIndex = rList.FindIndex((obj) => obj.Id == HdlRoomLogic.Current.CurrentRoom.Id); + roomPageView.PageIndex = curIndex; + if (roomPageView.GetChildren(roomPageView.PageIndex) != null) + { + (roomPageView.GetChildren(roomPageView.PageIndex) as RoomView).HideName(false); + } + roomPageView.PageChange += (sender, e) => + { + if (roomPageView.GetChildren(roomPageView.PageIndex - 1) != null) + { + (roomPageView.GetChildren(roomPageView.PageIndex - 1) as RoomView).HideName(true); } - } - else - { - Room.CurrentRoom = Room.Lists[0]; - var roomBackView = new FrameLayout() + if (roomPageView.GetChildren(roomPageView.PageIndex + 1) != null) { - BackgroundImagePath = "Room/r0.png" - }; - roomPageView.AddChidren(roomBackView); - var roomBG = new Button() + (roomPageView.GetChildren(roomPageView.PageIndex + 1) as RoomView).HideName(true); + } + if (roomPageView.GetChildren(roomPageView.PageIndex) != null) { - 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); - } - - var functionSceneView = new FrameLayout() - { - Y = Application.GetRealHeight(861), - Width=Application.GetRealWidth(832), - Height = Application.GetRealHeight(167), - Gravity=Gravity.CenterHorizontal, - BackgroundImagePath="Item/SceneFunctionBG.png" + (roomPageView.GetChildren(roomPageView.PageIndex) as RoomView).HideName(false); + } + //鍒囨崲褰撳墠鎴块棿 + HdlRoomLogic.Current.CurrentRoom = rList[roomPageView.PageIndex]; + //鍒锋柊璁惧妗屽竷鎺т欢 + this.RefreshBodyView(); }; - AddChidren(functionSceneView); + + //鍔熻兘鍜屽満鏅殑鑳屾櫙鍥� + var functionSceneView = new FrameLayout(); + functionSceneView.Y = Application.GetRealHeight(861); + functionSceneView.Width = Application.GetRealWidth(832); + functionSceneView.Height = Application.GetRealHeight(167); + functionSceneView.Gravity = Gravity.CenterHorizontal; + functionSceneView.BackgroundImagePath = "Item/SceneFunctionBG.png"; + this.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); + var btnScene = new NormalViewControl(350, 100, true); + btnScene.X = Application.GetRealWidth(30); + btnScene.Y = Application.GetRealHeight(12); + btnScene.TextColor = ZigbeeColor.Current.GXCTextGrayColor3; + btnScene.SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor; + btnScene.TextID = R.MyInternationalizationString.Scence; + btnScene.IsSelected = true; + btnScene.TextSize = 16; + btnScene.IsBold = true; + btnScene.TextAlignment = TextAlignment.Center; + functionSceneView.AddChidren(btnScene); + + //鍔熻兘 + btnFunction = new NormalViewControl(360, 100, true); + btnFunction.X = Application.GetRealWidth(430); + btnFunction.Y = Application.GetRealHeight(12); + btnFunction.TextColor = ZigbeeColor.Current.GXCTextGrayColor3; + btnFunction.SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor; + btnFunction.TextID = R.MyInternationalizationString.Function; + btnFunction.IsSelected = false; + btnFunction.TextAlignment = TextAlignment.Center; + functionSceneView.AddChidren(btnFunction); //鍔熻兘鍜屽満鏅痓odyView functionSceneBodyView = new FrameLayout() @@ -771,187 +271,93 @@ Y = functionSceneView.Bottom, Height = Application.GetRealHeight(750), Gravity = Gravity.CenterHorizontal, - BackgroundColor=ZigbeeColor.Current.GXCGrayBackgroundColor + BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor }; - AddChidren(functionSceneBodyView); + this.AddChidren(functionSceneBodyView); //閫夋嫨鍔熻兘鍒嗘爮 - functionBtn.MouseUpEventHandler += (sender, e) => + btnFunction.ButtonClickEvent += (sender, e) => { - sceneBtn.IsSelected = false; - functionBtn.IsSelected = true; - RefreshBodyView(); + btnScene.IsSelected = false; + btnFunction.IsSelected = true; + btnScene.TextSize = 14; + btnScene.IsBold = false; + btnFunction.TextSize = 16; + btnFunction.IsBold = true; + //鍒锋柊璁惧妗屽竷鎺т欢 + this.RefreshBodyView(); }; //閫夋嫨鍦烘櫙鍒嗘爮 - sceneBtn.MouseUpEventHandler += (sender, e) => + btnScene.ButtonClickEvent += (sender, e) => { - functionBtn.IsSelected = false; - sceneBtn.IsSelected = true; - RefreshBodyView(); + btnFunction.IsSelected = false; + btnScene.IsSelected = true; + btnScene.TextSize = 16; + btnScene.IsBold = true; + btnFunction.TextSize = 14; + btnFunction.IsBold = false; + this.RefreshBodyView(); }; - - RefreshBodyView(); - - roomPageView.PageChange += (sender, e) => - { - //鍒囨崲褰撳墠鎴块棿 - Room.CurrentRoom = Room.CurrentRoom == null ? Room.Lists[0] : Room.Lists[roomPageView.PageIndex]; - RefreshBodyView(); - }; - } - else - { - ShowNoGatewayTip(); - } + //鍒锋柊璁惧妗屽竷鎺т欢 + this.RefreshBodyView(); + } + } - } - - #endregion - - #region 鈼� 鍒锋柊____________________________ - /// <summary> - /// RefreshBodyView - /// </summary> - public void RefreshBodyView() - { - if (Room.CanInitAllRoom == false) - { - return; - } - functionSceneBodyView.RemoveAll(); - if (functionBtn.IsSelected) - { - ShowFunction(); - } - else - { - ShowScene(); - } - } - - /// <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 鈼� 妫�娴嬫槸鍚︾粦瀹氫簡缃戝叧________________ - - /// <summary> - /// 褰撴病鏈夌粦瀹氱綉鍏虫椂锛屾槸鍚︽湁鏉冮檺娣诲姞缃戝叧 - /// </summary> - /// <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 || UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 2)) - { - return true; - } - return false; - } - - /// <summary> - /// 鏄惁缁戝畾浜嗙綉鍏� - /// </summary> - /// <returns><c>true</c>, if bind gateway was haded, <c>false</c> otherwise.</returns> - private bool HadBindGateway() - { - var gatewayList = UserCenter.HdlGatewayLogic.Current.GetAllLocalGateway(); - if (gatewayList.Count == 0) - { - return false; - } - return true; - } - /// <summary> /// 鎻愮ず鐢ㄦ埛娌℃湁缃戝叧锛屽苟蹇�熻烦杞埌娣诲姞缃戝叧鐣岄潰 /// </summary> private void ShowNoGatewayTip() { - var bg = new Button - { - Y = Application.GetRealHeight(302), - Width = Application.GetMinRealAverage(717), - Height = Application.GetMinRealAverage(478), - Gravity = Gravity.CenterHorizontal, - UnSelectedImagePath = "Item/NoBindGW.png" + var bg = new PicViewControl(717, 478); + bg.Y = Application.GetRealHeight(302); + bg.Gravity = Gravity.CenterHorizontal; + bg.UnSelectedImagePath = "Item/NoBindGW.png"; + this.AddChidren(bg); + + var tip = new NormalViewControl(Application.GetMinRealAverage(717), Application.GetMinRealAverage(58), false); + tip.Y = Application.GetRealHeight(815); + tip.Gravity = Gravity.CenterHorizontal; + tip.TextID = R.MyInternationalizationString.NewAccountNeedBingGW; + tip.TextColor = ZigbeeColor.Current.GXCTextGrayColor; + tip.TextAlignment = TextAlignment.Center; + this.AddChidren(tip); + + var addBG = new PicViewControl(971, 366); + addBG.Y = Application.GetRealHeight(1048); + addBG.UnSelectedImagePath = "Item/VirtualFrame.png"; + addBG.Gravity = Gravity.CenterHorizontal; + this.AddChidren(addBG); + + var addGatewayBtn = new IconViewControl(89); + addGatewayBtn.Y = Application.GetRealHeight(1143); + addGatewayBtn.UnSelectedImagePath = "Item/Add_GW.png"; + addGatewayBtn.Gravity = Gravity.CenterHorizontal; + this.AddChidren(addGatewayBtn); + addGatewayBtn.ButtonClickEvent += (sender, e) => + { + var form = new UserCenter.GatewayAdd.NewGateWayMenuSelectForm(); + form.AddForm(); }; - AddChidren(bg); - var tip = new Button - { - Y = Application.GetRealHeight(815), - Width = Application.GetMinRealAverage(717), - Height = Application.GetMinRealAverage(58), - Gravity = Gravity.CenterHorizontal, - TextID = R.MyInternationalizationString.NewAccountNeedBingGW, - TextColor = ZigbeeColor.Current.GXCTextGrayColor + var addTip = new PicViewControl(717, 58); + addTip.Y = Application.GetRealHeight(1256); + addTip.Gravity = Gravity.CenterHorizontal; + addTip.TextID = R.MyInternationalizationString.AddSmartGW; + addTip.TextColor = ZigbeeColor.Current.GXCTextBlackColor; + addTip.TextAlignment = TextAlignment.Center; + AddChidren(addTip); + + addTip.ButtonClickEvent += (sender, e) => + { + var form = new UserCenter.GatewayAdd.NewGateWayMenuSelectForm(); + form.AddForm(); }; - 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 - }; - 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> - /// 鍓嶅線娣诲姞缃戝叧鐣岄潰 - /// </summary> - /// <param name="sender">Sender.</param> - /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param> - private void GoToAddGateWay(object sender, MouseEventArgs mouseEventArgs) - { - var selectNewGateWayForm = new UserCenter.GatewayAdd.NewGateWayMenuSelectForm { }; - selectNewGateWayForm.AddForm(); - } - + } + #endregion - - #region 鈼� 鍔熻兘_____________________________ - + + #region 鈻� 鍔熻兘鍒嗘敮___________________________ + /// <summary> /// 鏄剧ず娌℃湁鍔熻兘 /// </summary> @@ -969,11 +375,12 @@ var noFunctionTip = new Button() { - Y=noFunction.Bottom, + Y = noFunction.Bottom, Height = Application.GetRealHeight(200), - Text = Language.StringByID(R.MyInternationalizationString.NoFunction).Replace("{\\r\\n}","\r\n"), + Text = Language.StringByID(R.MyInternationalizationString.NoFunction_Tip).Replace("{\\r\\n}", "\r\n"), TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, - IsMoreLines=true + TextAlignment = TextAlignment.Center, + IsMoreLines = true }; functionSceneBodyView.AddChidren(noFunctionTip); } @@ -983,677 +390,831 @@ /// </summary> private void ShowFunction() { - //閫夋嫨鍔熻兘--鐩存帴浠庢埧闂寸殑devicelist涓幏鍙� - var deviceList = Room.CurrentRoom.DeviceUIList; - if (deviceList == null) - { - return; - } - - if (deviceList.Count == 0) + functionSceneBodyView.RemoveAll(); + //褰撳墠鎴块棿鐨勮澶囨暟 + if (HdlRoomLogic.Current.CurrentRoom.ListDevice.Count == 0) { ShowNoFunctionTip(); } else { - deviceVerticalScrolViewLayout = new VerticalScrolViewLayout { }; - - functionSceneBodyView.AddChidren(deviceVerticalScrolViewLayout); - for(int i=0;i<deviceList.Count;i++) + var dList = new List<CommonDevice>(); + foreach (var mainkeys in HdlRoomLogic.Current.CurrentRoom.ListDevice) { - 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) + var device = LocalDevice.Current.GetDevice(mainkeys); + if (device == null + || device.Type == DeviceType.OnOffSwitch//骞叉帴鐐� + || device.Type == DeviceType.Repeater)//涓户鍣� { continue; } + dList.Add(device); + } - 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; - } - 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 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) - { - 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, () => - { - 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); - - (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, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - } - }; - - 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) + deviceVerticalScrolViewLayout = new VerticalScrolViewLayout { }; + functionSceneBodyView.AddChidren(deviceVerticalScrolViewLayout); + for (int i = 0; i < dList.Count; i++) + { + var device = dList[i]; + Application.RunOnMainThread(() => + { + try { - 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 - { - 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); - } - }); - } - }; - - 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.Show(device, Room.CurrentRoom); - } - }; - - lightView.CollectButton.MouseUpEventHandler += collectionEvent; - - } - else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch) - { - //绌烘皵寮�鍏� - var airSwitch = device.CommonDevice as AirSwitch; - //琛ヤ笂闈炶繙绋� - if (airSwitch.Gateway == null) - { - continue; - } - if (airSwitch.Gateway.IsVirtual) - { - //鍙戦�佽鍙栫姸鎬佸懡浠� - ReadStatus(airSwitch, () => - { - 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(); - } - } - - 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) - { - 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, () => - { - 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); - - ((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); - } - }); - } - }; - - lightView.CardBG.MouseUpEventHandler += (sender, e) => - { - 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); - }; - - 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, () => - { - 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(); - } - } - 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) - { - 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, () => - { - 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(); - - ((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); - } - }); - } - }; - - 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); - }; - - 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, () => - { - dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - dimmableLight.ReadOnOffStatus(); - }); - } - else - { - //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵�� - if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) - { - dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - dimmableLight.ReadOnOffStatus(); - } - } - - 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 - { - 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); - } - }); - } - }; - - lightView.CardBG.MouseUpEventHandler += (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); - }; - - 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)); - } + int t = i % 2; + int tt = i / 2; + int xx = 43 + i % 2 * (20 + 487); + int yy = 14; + if (i % 2 == 0) + { + itemView = new FrameLayout() + { + Height = Application.GetRealHeight(14 + 348), + }; + deviceVerticalScrolViewLayout.AddChidren(itemView); + } + //鏀惰棌 + EventHandler<MouseEventArgs> collectionEvent = (sender, e) => + { + if ((sender as Button).IsSelected) + { + //鍒犻櫎鎴戠殑鍠滅埍 + HdlRoomLogic.Current.DeleteLoveDevice(device); + (sender as Button).IsSelected = false; + } + else + { + //娣诲姞鎴戠殑鍠滅埍 + HdlRoomLogic.Current.AddLoveDevice(device); + (sender as Button).IsSelected = true; + } + if (HdlRoomLogic.Current.CurrentRoom.IsLove) + { + //鍒锋柊璁惧妗屽竷鎺т欢 + this.RefreshBodyView(); + } + }; + + if (device.Type == DeviceType.WindowCoveringDevice) + { + //绐楀笜 鍗峰笜 + var rollerShade = (ZigBee.Device.Rollershade)device; + if (rollerShade.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (rollerShade.Gateway.IsVirtual) + { + ReadStatus(rollerShade, () => + { + ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(device); + }); + } + else + { + if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - rollerShade.LastDateTime).TotalSeconds) + { + ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(device); + } + } + }) + { IsBackground = true }.Start(); + + var functionView = new FunctionMainView(xx, yy); + functionView.Tag = LocalDevice.Current.GetDeviceMainKeys(device); + itemView.AddChidren(functionView); + functionView.Init(); + functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath); + functionView.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(device)); + functionView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(rollerShade)); + functionView.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage == 100; + functionView.SetCollect(true); + + functionView.SwitchButton.MouseUpEventHandler += (sender, e) => + { + (sender as Button).IsSelected = !(sender as Button).IsSelected; + if ((sender as Button).IsSelected) + { + zbGateway = device.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device); + + (device as Rollershade).CurtainUpDownStopControl(0); + + ((sender as Button).Parent as FunctionMainView).SetStatuText(Language.StringByID(R.MyInternationalizationString.Open)); + ((sender as Button).Parent as FunctionMainView).IsSelected = true; + + //鎺у埗寤舵椂鍥炶皟 + HdlDeviceOtherLogic.Current.SendCommandDelayAction(device, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + } + else + { + zbGateway = device.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device); + + (device as Rollershade).CurtainUpDownStopControl(1); + + ((sender as Button).Parent as FunctionMainView).SetStatuText(Language.StringByID(R.MyInternationalizationString.Close)); + ((sender as Button).Parent as FunctionMainView).IsSelected = false; + + //鎺у埗寤舵椂鍥炶皟 + HdlDeviceOtherLogic.Current.SendCommandDelayAction(device, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + } + }; + + functionView.CardBG.MouseUpEventHandler += (sender, e) => + { + CommonPage.Instance.IsDrawerLockMode = true; + var rollerShadeControl = new Phone.Device.Curtain.RollerShadeControl(); + UserView.HomePage.Instance.AddChidren(rollerShadeControl); + UserView.HomePage.Instance.PageIndex += 1; + UserView.HomePage.Instance.ScrollEnabled = false; + rollerShadeControl.IsDrawerLockMode = true; + rollerShadeControl.Show(device, HdlRoomLogic.Current.CurrentRoom); + rollerShadeControl.action += (curDev, curRoom) => + { + ReFreshEditDeviceAction(device, curRoom, functionView); + }; + }; + + functionView.CollectButton.MouseUpEventHandler += collectionEvent; + } + } + else if (device.Type == DeviceType.OnOffOutput) + { + //寮�鍏崇伅 + var light = device as ToggleLight; + if (light.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (light.Gateway.IsVirtual) + { + ReadStatus(light, () => + { + ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device); + }); + } + else + { + if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds) + { + ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device); + } + } + }) + { IsBackground = true }.Start(); + + var functionView = new FunctionMainView(xx, yy); + itemView.AddChidren(functionView); + functionView.Init(); + functionView.Tag = LocalDevice.Current.GetDeviceMainKeys(device); + functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath); + functionView.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(device)); + functionView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device)); + functionView.IsSelected = light.OnOffStatus == 1; + functionView.SetCollect(HdlRoomLogic.Current.IsCollectInRoom(device)); + + if (HdlRoomLogic.Current.IsCollectInRoom(device) == false) + { + functionView.CollectButton.IsSelected = false; + } + else + { + functionView.CollectButton.IsSelected = true; + } + + functionView.SwitchButton.MouseUpEventHandler += (sender, e) => + { + (sender as Button).IsSelected = !(sender as Button).IsSelected; + if ((sender as Button).IsSelected) + { + zbGateway = device.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device); + + light.SwitchControl(1); + + ((sender as Button).Parent as FunctionMainView).SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(device)); + ((sender as Button).Parent as FunctionMainView).IsSelected = true; + + //鎺у埗寤舵椂鍥炶皟 + HdlDeviceOtherLogic.Current.SendCommandDelayAction(device, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + } + else + { + zbGateway = device.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device); + + light.SwitchControl(0); + + ((sender as Button).Parent as FunctionMainView).SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(device)); + ((sender as Button).Parent as FunctionMainView).IsSelected = false; + + //鎺у埗寤舵椂鍥炶皟 + HdlDeviceOtherLogic.Current.SendCommandDelayAction(device, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + } + }; + + functionView.CardBG.MouseUpEventHandler += (sender, e) => + { + CommonPage.Instance.IsDrawerLockMode = true; + + var lightControl = new Phone.Device.Light.OnOffControl(); + UserView.HomePage.Instance.AddChidren(lightControl); + UserView.HomePage.Instance.PageIndex += 1; + lightControl.IsDrawerLockMode = true; + lightControl.Show(device, HdlRoomLogic.Current.CurrentRoom); + lightControl.action += (curDev, curRoom) => + { + ReFreshEditDeviceAction(device, curRoom, functionView); + }; + }; + + functionView.CollectButton.MouseUpEventHandler += collectionEvent; + } + } + else if (device.Type == DeviceType.AirSwitch) + { + //绌烘皵寮�鍏� + var airSwitch = device as AirSwitch; + if (airSwitch.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (airSwitch.Gateway.IsVirtual) + { + ReadStatus(airSwitch, () => + { + ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device); + }); + } + else + { + if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device); + } + } + }) + { IsBackground = true }.Start(); + + var functionView = new FunctionMainView(xx, yy); + itemView.AddChidren(functionView); + functionView.Init(); + functionView.Tag = LocalDevice.Current.GetDeviceMainKeys(device); + functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath); + functionView.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(device)); + functionView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(airSwitch)); + functionView.IsSelected = airSwitch.OnOffStatus == 1; + functionView.SetCollect(HdlRoomLogic.Current.IsCollectInRoom(device)); + + functionView.SwitchButton.MouseUpEventHandler += (sender, e) => + { + (sender as Button).IsSelected = !(sender as Button).IsSelected; + if ((sender as Button).IsSelected) + { + zbGateway = device.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device); + + airSwitch.SwitchControl(1); + + ((sender as Button).Parent as FunctionMainView).SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(device)); + ((sender as Button).Parent as FunctionMainView).IsSelected = true; + + //鎺у埗寤舵椂鍥炶皟 + HdlDeviceOtherLogic.Current.SendCommandDelayAction(device, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + } + else + { + zbGateway = device.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device); + + airSwitch.SwitchControl(0); + + ((sender as Button).Parent as FunctionMainView).SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(device)); + ((sender as Button).Parent as FunctionMainView).IsSelected = false; + + //鎺у埗寤舵椂鍥炶皟 + HdlDeviceOtherLogic.Current.SendCommandDelayAction(device, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + } + }; + + functionView.CardBG.MouseUpEventHandler += (sender, e) => + { + CommonPage.Instance.IsDrawerLockMode = true; + var lightControl = new Phone.Device.Light.AirSwitchControl(); + UserView.HomePage.Instance.AddChidren(lightControl); + UserView.HomePage.Instance.PageIndex += 1; + lightControl.IsDrawerLockMode = true; + lightControl.Show(device, HdlRoomLogic.Current.CurrentRoom); + lightControl.action += (curDev, curRoom) => + { + ReFreshEditDeviceAction(device, curRoom, functionView); + }; + + }; + + functionView.CollectButton.MouseUpEventHandler += collectionEvent; + } + } + else if (device.Type == DeviceType.Thermostat) + { + //鎭掓俯鍣�-AC-绌鸿皟 + var ac = device as AC; + if (ac.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (ac.Gateway.IsVirtual) + { + ReadStatus(ac, () => + { + ReadDeviceAttributeLogic.Instance.SendACStatuComand(device); + }); + } + else + { + if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + ReadDeviceAttributeLogic.Instance.SendACStatuComand(device); + } + } + }) + { IsBackground = true }.Start(); + + var functionView = new FunctionMainView(xx, yy); + itemView.AddChidren(functionView); + functionView.Init(); + functionView.Tag = LocalDevice.Current.GetDeviceMainKeys(device); + functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath); + functionView.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(device)); + functionView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device)); + functionView.IsSelected = ac.currentSystemMode != 0; + functionView.SetCollect(HdlRoomLogic.Current.IsCollectInRoom(device)); + + functionView.SwitchButton.MouseUpEventHandler += (sender, e) => + { + (sender as Button).IsSelected = !(sender as Button).IsSelected; + if ((sender as Button).IsSelected) + { + zbGateway = device.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device); + + ac.Open(); + + ((sender as Button).Parent as FunctionMainView).SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(device)); + ((sender as Button).Parent as FunctionMainView).IsSelected = true; + + //鎺у埗寤舵椂鍥炶皟 + HdlDeviceOtherLogic.Current.SendCommandDelayAction(device, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + } + else + { + zbGateway = device.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device); + + ac.Close(); + + ((sender as Button).Parent as FunctionMainView).SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(device)); + ((sender as Button).Parent as FunctionMainView).IsSelected = false; + + //鎺у埗寤舵椂鍥炶皟 + HdlDeviceOtherLogic.Current.SendCommandDelayAction(device, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + } + }; + + functionView.CardBG.MouseUpEventHandler += (sender, e) => + { + CommonPage.Instance.IsDrawerLockMode = true; + var lightControl = new Phone.Device.AC.ACControl(); + UserView.HomePage.Instance.AddChidren(lightControl); + UserView.HomePage.Instance.PageIndex += 1; + lightControl.IsDrawerLockMode = true; + lightControl.Show(device, HdlRoomLogic.Current.CurrentRoom); + lightControl.action += (curDev, curRoom) => + { + ReFreshEditDeviceAction(device, curRoom, functionView); + }; + }; + + functionView.CollectButton.MouseUpEventHandler += collectionEvent; + } + } + else if (device.Type == DeviceType.DimmableLight) + { + //璋冨厜鐏� + var dimmableLight = device as DimmableLight; + if (dimmableLight.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (dimmableLight.Gateway.IsVirtual) + { + //鍙戦�佽鍙栫姸鎬佸懡浠� + ReadStatus(dimmableLight, () => + { + ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(device); + }); + } + else + { + //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵�� + if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(device); + } + } + }) + { IsBackground = true }.Start(); + + var functionView = new FunctionMainView(xx, yy); + itemView.AddChidren(functionView); + functionView.Init(); + functionView.Tag = LocalDevice.Current.GetDeviceMainKeys(device); + functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath); + functionView.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(device)); + functionView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device)); + functionView.IsSelected = dimmableLight.OnOffStatus == 1; + functionView.SetCollect(HdlRoomLogic.Current.IsCollectInRoom(device)); + + if (HdlRoomLogic.Current.IsCollectInRoom(device) == false) + { + functionView.CollectButton.IsSelected = false; + } + else + { + functionView.CollectButton.IsSelected = true; + } + + functionView.SwitchButton.MouseUpEventHandler += (sender, e) => + { + (sender as Button).IsSelected = !(sender as Button).IsSelected; + if ((sender as Button).IsSelected) + { + zbGateway = device.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device); + + dimmableLight.SwitchControl(1); + + ((sender as Button).Parent as FunctionMainView).SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(device)); + ((sender as Button).Parent as FunctionMainView).IsSelected = true; + + //鎺у埗寤舵椂鍥炶皟 + HdlDeviceOtherLogic.Current.SendCommandDelayAction(device, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + } + else + { + zbGateway = device.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device); + + dimmableLight.SwitchControl(0); + + ((sender as Button).Parent as FunctionMainView).SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(device)); + ((sender as Button).Parent as FunctionMainView).IsSelected = false; + + //鎺у埗寤舵椂鍥炶皟 + HdlDeviceOtherLogic.Current.SendCommandDelayAction(device, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + } + }; + + functionView.CardBG.MouseUpEventHandler += (sender, e) => + { + CommonPage.Instance.IsDrawerLockMode = true; + var dimmableLightControl = new Phone.Device.Light.DimmableLightControl(); + UserView.HomePage.Instance.AddChidren(dimmableLightControl); + UserView.HomePage.Instance.PageIndex += 1; + dimmableLightControl.IsDrawerLockMode = true; + dimmableLightControl.Show(device, HdlRoomLogic.Current.CurrentRoom); + dimmableLightControl.action += (curDev, curRoom) => + { + ReFreshEditDeviceAction(device, curRoom, functionView); + }; + }; + functionView.CollectButton.MouseUpEventHandler += collectionEvent; + } + } + else if (device.Type == DeviceType.IASZone) + { + //鍚勭被浼犳劅鍣� + var ias = device as IASZone; + + var lightView = new FunctionMainView(xx, yy); + itemView.AddChidren(lightView); + lightView.Init(); + lightView.Tag = LocalDevice.Current.GetDeviceMainKeys(device); + lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); + lightView.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(device)); + lightView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device)); + lightView.IsSelected = ias.iASInfo?.Alarm1 == 1; + lightView.SetCollect(HdlRoomLogic.Current.IsCollectInRoom(device)); + lightView.CanControl(false); + if (HdlRoomLogic.Current.IsCollectInRoom(device) == false) + { + lightView.CollectButton.IsSelected = false; + } + else + { + lightView.CollectButton.IsSelected = true; + } + lightView.CollectButton.MouseUpEventHandler += collectionEvent; + } + else if (device.Type == DeviceType.TemperatureSensor) + { + var tempera = device as TemperatureSensor; + + if (tempera.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (tempera.Gateway.IsVirtual) + { + ReadStatus(tempera, () => + { + if (tempera.SensorDiv == 1) + { + ReadDeviceAttributeLogic.Instance.SendTemperatureStatuComand(device); + } + else if (tempera.SensorDiv == 2) + { + ReadDeviceAttributeLogic.Instance.SendHumidityStatuComand(device); + } + }); + } + else + { + if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - tempera.LastDateTime).TotalSeconds) + { + if (tempera.SensorDiv == 1) + { + ReadDeviceAttributeLogic.Instance.SendTemperatureStatuComand(device); + } + else if (tempera.SensorDiv == 2) + { + ReadDeviceAttributeLogic.Instance.SendHumidityStatuComand(device); + } + } + } + }) + { IsBackground = true }.Start(); + + var lightView = new FunctionMainView(xx, yy); + itemView.AddChidren(lightView); + lightView.Init(); + lightView.Tag = LocalDevice.Current.GetDeviceMainKeys(device); + lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); + lightView.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(device)); + lightView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device)); + lightView.IsSelected = false; + lightView.SetCollect(HdlRoomLogic.Current.IsCollectInRoom(device)); + lightView.CanControl(false); + if (HdlRoomLogic.Current.IsCollectInRoom(device) == false) + { + lightView.CollectButton.IsSelected = false; + } + else + { + lightView.CollectButton.IsSelected = true; + } + lightView.CollectButton.MouseUpEventHandler += collectionEvent; + } + } + else if (device.Type == DeviceType.DoorLock) + { + //闂ㄩ攣 + var dimmableLight = device as DoorLock; + + var lightView = new FunctionMainView(xx, yy); + itemView.AddChidren(lightView); + lightView.Init(); + lightView.Tag = LocalDevice.Current.GetDeviceMainKeys(device); + lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); + lightView.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(device)); + lightView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device)); + lightView.IsSelected = false; + lightView.SetCollect(HdlRoomLogic.Current.IsCollectInRoom(device)); + lightView.CanControl(false); + if (HdlRoomLogic.Current.IsCollectInRoom(device) == false) + { + lightView.CollectButton.IsSelected = false; + } + else + { + lightView.CollectButton.IsSelected = true; + } + + lightView.CardBG.MouseUpEventHandler += (sender, e) => + { + CommonPage.Instance.IsDrawerLockMode = true; + var userDoorLockPage = new UserDoorLockPage(HdlRoomLogic.Current.CurrentRoom, device); + HomePage.Instance.AddChidren(userDoorLockPage); + HomePage.Instance.PageIndex += 1; + userDoorLockPage.Show(); + }; + lightView.CollectButton.MouseUpEventHandler += collectionEvent; + } + else + { + var lightView = new FunctionMainView(xx, yy); + itemView.AddChidren(lightView); + lightView.Init(); + lightView.Tag = LocalDevice.Current.GetDeviceMainKeys(device); + lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); + lightView.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(device)); + lightView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device)); + lightView.CanControl(false); + lightView.SetCollect(HdlRoomLogic.Current.IsCollectInRoom(device)); + + if (HdlRoomLogic.Current.IsCollectInRoom(device) == false) + { + lightView.CollectButton.IsSelected = false; + } + else + { + lightView.CollectButton.IsSelected = true; + } + lightView.CollectButton.MouseUpEventHandler += collectionEvent; + } + } + catch (Exception ex) + { + + } + }); + //}) + //{ IsBackground = true }.Start(); } } + } + /// <summary> + /// ReFreshEditDeviceAction + /// </summary> + /// <param name="device"></param> + /// <param name="curRoom"></param> + /// <param name="functionView"></param> + private void ReFreshEditDeviceAction(CommonDevice device, Common.Room curRoom, FunctionMainView functionView) + { + if (HdlRoomLogic.Current.CurrentRoom.IsLove) + { + functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath); + functionView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device)); + if (HdlRoomLogic.Current.IsCollectInRoom(device) == false) + { + ShowFunction(); + } + } + else + { + if (curRoom.Id != HdlRoomLogic.Current.CurrentRoom.Id) + { + ShowFunction(); + } + else + { + functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath); + functionView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device)); + functionView.SetCollect(HdlRoomLogic.Current.IsCollectInRoom(device)); + } + } } #endregion - #region 鈼� 鍦烘櫙_____________________________ + #region 鈻� 鍦烘櫙鍒嗘敮___________________________ /// <summary> /// 鏄剧ず娌″満鏅� @@ -1671,11 +1232,12 @@ functionSceneBodyView.AddChidren(noScene); var noScenceTip = new Button() { - Y=noScene.Bottom, + Y = noScene.Bottom, Height = Application.GetRealHeight(200), - Text =Language.StringByID(R.MyInternationalizationString.NoScene).Replace("{\\r\\n}","\r\n"), + Text = Language.StringByID(R.MyInternationalizationString.NoScene_Tip).Replace("{\\r\\n}", "\r\n"), TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, - IsMoreLines=true + TextAlignment = TextAlignment.Center, + IsMoreLines = true }; functionSceneBodyView.AddChidren(noScenceTip); } @@ -1685,8 +1247,9 @@ /// </summary> private void ShowScene() { + functionSceneBodyView.RemoveAll(); //閫夋嫨鍦烘櫙 - var sceneList = Room.CurrentRoom.SceneUIList; + var sceneList = HdlSceneLogic.Current.GetRoomSceneList(HdlRoomLogic.Current.CurrentRoom); if (sceneList == null) { return; @@ -1697,12 +1260,12 @@ } else { - var sceneScrolView = new VerticalScrolViewLayout { }; + sceneScrolView = new VerticalScrolViewLayout { }; functionSceneBodyView.AddChidren(sceneScrolView); - for(int i=0;i<sceneList.Count;i++) + for (int i = 0; i < sceneList.Count; i++) { var scene = sceneList[i]; - int xx = 43 + i % 2 * (20 + 487); + int xx = 33 + i % 2 * (40 + 487); int yy = 14; if (scene == null) { @@ -1714,120 +1277,102 @@ itemView = new FrameLayout() { Height = Application.GetRealHeight(14 + 348), - Tag = scene + Tag = scene.Id }; sceneScrolView.AddChidren(itemView); } var sceneView = new SceneMainView(xx, yy); + sceneView.Init(scene); 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) => - { - 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>1锛氱綉鍏虫棤娉曡В鏋愬懡浠ゆ暟鎹��</para> - //<para>2锛氬崗璋冨櫒姝e湪鍗囩骇鎴栧浠�/鎭㈠鏁版嵁 - //<para>3锛氭搷浣滆澶�/缁�/鍦烘櫙涓嶅瓨鍦�</para> - //<para>4锛氬叾浠栭敊璇�</para> - //<para>5锛氭暟鎹紶杈撻敊璇紙鍦ㄦ煇娆″鎴风鍚戠綉鍏冲彂閫佹暟鎹殑杩囩▼涓紝缃戝叧鍦ㄥ悎鐞嗘椂闂磋寖鍥村唴鎺ユ敹瀹㈡埛绔暟鎹笉瀹屾暣瀵艰嚧璇ラ敊璇彂鐢熴�傚瀹㈡埛绔悜缃戝叧涓�娆″彂閫�100涓瓧鑺傜殑鏁版嵁锛屼絾缃戝叧绛夊緟鎺ユ敹浜嗕竴绉掑彧鎺ユ敹浜�80涓瓧鑺傘�傚彂鐢熻閿欒锛岀綉鍏冲皢涓诲姩鍏抽棴瀹㈡埛绔繛鎺ワ級</para> - 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; - } - CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.ControlSceneFail); - } - }; - //鏀惰棌 - EventHandler<MouseEventArgs> collectionEvent = (sender, e) => - { - (sender as Button).IsSelected = !(sender as Button).IsSelected; - if ((sender as Button).IsSelected) - { - //scene.IsCollected = true; - Room.CurrentRoom.GetLoveRoom().AddScene(scene); - } - else - { - //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; - + sceneView.CollectionAction += ShowScene; } + GetDelayScene(sceneScrolView); } - } - #endregion + /// <summary> + /// GetDelayScene + /// </summary> + /// <param name="scrolViewLayout"></param> + private async void GetDelayScene(VerticalScrolViewLayout scrolViewLayout) + { - #region 鈼� 鍒囨崲浣忓畢_________________________ + var catDelaySceneResponseAllData = await Scene.CatDelaySceneAsync(); + if (catDelaySceneResponseAllData == null) + { + return; + } + var catDelaySceneResponseData = catDelaySceneResponseAllData.catDelaySceneResponseData; + if (catDelaySceneResponseData == null || catDelaySceneResponseData.DelayScenesList.Count == 0) + { + return; + } + var delayList = catDelaySceneResponseData.DelayScenesList; + + for (int i = 0; scrolViewLayout != null && i < scrolViewLayout.ChildrenCount; i++) + { + var iView = scrolViewLayout.GetChildren(i) as FrameLayout; + for (int j = 0; iView != null && j < iView.ChildrenCount; j++) + { + var sceneView = iView.GetChildren(j) as SceneMainView; + foreach (var delayScenesListResponseInfo in delayList) + { + if (delayScenesListResponseInfo.ScenesId == sceneView.scene.Id) + { + var remainTime = delayScenesListResponseInfo.RemainTime; + sceneView.scene.RemainTime = remainTime; + + if (remainTime > 0) + { + new System.Threading.Thread(() => + { + while (remainTime-- > 0) + { + System.Threading.Thread.Sleep(1000); + Application.RunOnMainThread(() => + { + sceneView.SetTimeText(CommonFormResouce.GetTimeString(remainTime)); + }); + } + Application.RunOnMainThread(() => + { + sceneView.scene.RemainTime = 0; + sceneView.SetTimeImage(); + }); + }) + { IsBackground = true }.Start(); + } + break; + } + } + } + } + } + + #endregion + + #region 鈻� 鍒锋柊_______________________________ + + /// <summary> + /// 鍒锋柊璁惧妗屽竷鎺т欢 + /// </summary> + public void RefreshBodyView() + { + functionSceneBodyView.RemoveAll(); + if (btnFunction.IsSelected) + { + ShowFunction(); + } + else + { + ShowScene(); + } + } + + #endregion + + #region 鈻� 鍒囨崲浣忓畢___________________________ /// <summary> /// 鍒囨崲浣忓畢 /// </summary> @@ -1838,22 +1383,22 @@ { CommonPage.Loading.Start(); new System.Threading.Thread(async () => - { - Config.Instance.HomeId = home.Id; - Config.Instance.Home = House.GetHouseByFilePath(home.FileName); - Global.CreateHomeDirectory(home.Id); - Config.Instance.Save(); - //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼ - await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread(); - - Room.InitAllRoom(); - - Application.RunOnMainThread(() => - { - Show(); - CommonPage.Loading.Hide(); - }); - }) + { + Config.Instance.HomeId = home.Id; + Config.Instance.Home = House.GetHouseByFilePath(home.FileName); + Global.CreateHomeDirectory(home.Id); + Config.Instance.Save(); + //鍒锋柊涓汉涓績鐨勫唴瀛樺強绾跨▼ + await UserCenter.UserCenterLogic.InitUserCenterMenmoryAndThread(); + //鍒濆鍖栧叏閮ㄦ埧闂� + HdlRoomLogic.Current.InitAllRoom(); + + Application.RunOnMainThread(() => + { + ShowForm(); + CommonPage.Loading.Hide(); + }); + }) { IsBackground = true }.Start(); } catch (Exception ex) @@ -1869,7 +1414,7 @@ #endregion - #region 鈼� 杩涜璁惧鐘舵�佽鍙朹_________________ + #region 鈻� 杩涜璁惧鐘舵�佽鍙朹__________________ /// <summary> /// 鍒ゆ柇鏄惁鍙互杩涜璁惧鐘舵�佽鍙栥�傚湪鍥炶皟涓鍙� @@ -1918,7 +1463,7 @@ #endregion - #region 鈼� 鎺у埗鐘舵�乢________________________ + #region 鈻� 鎺у埗鐘舵�乢__________________________ /// <summary> /// 鏄剧ず璁惧鎺у埗鐘舵�� @@ -1938,7 +1483,7 @@ } //鏍囪宸茬粡鍙戦�佹帶鍒跺懡浠ゅ埌缃戝叧 sendedControlCommand = true; - //DeviceUI.ShowStatuTip(R.MyInternationalizationString.Success); + //HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.Success); } /// <summary> @@ -1986,6 +1531,386 @@ { commonDeviceList.Add(common); } + } + + #endregion + + #region 鈻� 璁惧鐘舵�佷笂鎶______________________ + + /// <summary> + /// 娣诲姞璁惧鐘舵�佷笂鎶ヤ簨浠� + /// </summary> + private void AddDeviceReportEvent() + { + //璁惧灞炴�т笂鎶� + HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewDeviceStatus", ReceiveComandDiv.A璁惧灞炴�т笂鎶�, (report) => + { + HdlThreadLogic.Current.RunMain(() => + { + if (report.DeviceStatusReport.AttriBute == null || report.DeviceStatusReport.AttriBute.Count == 0) + { + return; + } + for (int i = 0; deviceVerticalScrolViewLayout != null && i < deviceVerticalScrolViewLayout.ChildrenCount; i++) + { + var rowFL = deviceVerticalScrolViewLayout.GetChildren(i) as FrameLayout; + if (rowFL.ChildrenCount == 0) + { + //璁惧涓虹┖鎴栬�呮帶浠朵负绌� + continue; + } + + for (int j = 0; j < rowFL.ChildrenCount; j++) + { + var deviceUI = LocalDevice.Current.GetDevice((rowFL.GetChildren(j) as FunctionMainView).Tag.ToString()); + if (deviceUI == null) + { + //璁惧涓虹┖鎴栬�呮帶浠朵负绌� + continue; + } + if (report.DeviceAddr != deviceUI.DeviceAddr || report.DeviceEpoint != deviceUI.DeviceEpoint) + { + //鍒ゆ柇鏄惁涓哄綋鍓嶈澶� + continue; + } + + switch (deviceUI.Type) + { + case DeviceType.OnOffOutput: + //寮�鍏冲姛鑳� + if (report.DeviceStatusReport.CluterID == 6) + { + var onOffOutputLight = deviceUI as ZigBee.Device.ToggleLight; + onOffOutputLight.DeviceStatusReport = report.DeviceStatusReport; + onOffOutputLight.OnOffStatus = onOffOutputLight.DeviceStatusReport.AttriBute[0].AttriButeData; + (rowFL.GetChildren(j) as FunctionMainView).IsSelected = onOffOutputLight.OnOffStatus == 1; + (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI); + onOffOutputLight.LastDateTime = DateTime.Now; + } + break; + + case DeviceType.AirSwitch: + //寮�鍏冲姛鑳� + if (report.DeviceStatusReport.CluterID == 6) + { + var airSwitch = deviceUI as ZigBee.Device.AirSwitch; + airSwitch.DeviceStatusReport = report.DeviceStatusReport; + airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData; + (rowFL.GetChildren(j) as FunctionMainView).IsSelected = airSwitch.OnOffStatus == 1; + (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI); + airSwitch.LastDateTime = DateTime.Now; + } + //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁� + if (report.DeviceStatusReport.CluterID == 3) + { + deviceUI.IsOnline = 1; + deviceUI.LastDateTime = DateTime.Now; + } + break; + + case DeviceType.WindowCoveringDevice: + if (report.DeviceStatusReport.CluterID == 258) + { + if (report.DeviceStatusReport.AttriBute[0].AttributeId == 0) + { + //绐楀笜绫诲瀷 + var rollerShade = deviceUI as Rollershade; + rollerShade.DeviceStatusReport = report.DeviceStatusReport; + rollerShade.WcdType = report.DeviceStatusReport.AttriBute[0].AttriButeData; + rollerShade.LastDateTime = DateTime.Now; + (rowFL.GetChildren(j) as FunctionMainView).IsSelected = rollerShade.WcdCurrentPositionLiftPercentage == 100; + (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI); + } + if (report.DeviceStatusReport.AttriBute[0].AttributeId == 8) + { + //绐楀笜鐧惧垎姣� + var rollerShade = deviceUI as Rollershade; + rollerShade.DeviceStatusReport = report.DeviceStatusReport; + rollerShade.WcdCurrentPositionLiftPercentage = report.DeviceStatusReport.AttriBute[0].AttriButeData; + rollerShade.LastDateTime = DateTime.Now; + (rowFL.GetChildren(j) as FunctionMainView).IsSelected = rollerShade.WcdCurrentPositionLiftPercentage == 100; + (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI); + } + } + if (report.DeviceStatusReport.CluterID == 3) + { + deviceUI.IsOnline = 1; + deviceUI.LastDateTime = DateTime.Now; + } + break; + + case DeviceType.Thermostat: + //AC鍔熻兘 + if (report.DeviceStatusReport.CluterID == 513) + { + var ac = deviceUI as ZigBee.Device.AC; + ac.DeviceStatusReport = report.DeviceStatusReport; + var attriButeList = ac.DeviceStatusReport.AttriBute; + foreach (var attList in attriButeList) + { + var curTemp = attList.AttriButeData / 100; + switch (attList.AttributeId) + { + case 0: + //姝ゅ睘鎬ц〃鏄庡鍐呭綋鍓嶇殑娓╁害 * 100锛屽疄闄呮俯搴︿负鈥淟ocalTemperature / 100鈥濓紝鍗曚綅锛氣剝 + ac.currentLocalTemperature = curTemp; + ac.LastDateTime = DateTime.Now; + break; + case 17: + //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鍐锋俯搴︼紝瀹為檯娓╁害涓衡�淐oolingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆� + ac.currentCoolingSetpoint = curTemp; + ac.LastDateTime = DateTime.Now; + break; + case 18: + //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鐑俯搴︼紝瀹為檯娓╁害涓衡�淗eatingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆� + ac.currentHeatingSetpoint = curTemp; + ac.LastDateTime = DateTime.Now; + break; + case 4096: + //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勮嚜鍔ㄦ俯搴︼紝瀹為檯娓╁害涓衡�淎utoSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆� + ac.currentAutoSetpoint = curTemp; + ac.LastDateTime = DateTime.Now; + break; + + case 28: + //姝ゅ睘鎬ф弿杩版亽娓╄澶囨澶勪簬鍝妯″紡 + ac.currentSystemMode = attList.AttriButeData; + ac.LastDateTime = DateTime.Now; + break; + } + } + (rowFL.GetChildren(j) as FunctionMainView).IsSelected = ac.currentSystemMode != 0; + (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI); + } + if (report.DeviceStatusReport.CluterID == 514) + { + var ac = deviceUI as ZigBee.Device.AC; + var attriButeList = report.DeviceStatusReport.AttriBute; + ac.DeviceStatusReport = report.DeviceStatusReport; + foreach (var attList in attriButeList) + { + switch (attList.AttributeId) + { + case 0: + ac.currentFanMode = attList.AttriButeData; + ac.LastDateTime = DateTime.Now; + break; + case 4096: + ac.currentFanSwingMode = attList.AttriButeData; + ac.LastDateTime = DateTime.Now; + break; + } + } + (rowFL.GetChildren(j) as FunctionMainView).IsSelected = ac.currentSystemMode != 0; + (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI); + } + //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁� + if (report.DeviceStatusReport.CluterID == 3) + { + deviceUI.IsOnline = 1; + deviceUI.LastDateTime = DateTime.Now; + } + break; + + case DeviceType.DimmableLight: + //璋冨厜鐏姛鑳� + if (report.DeviceStatusReport.CluterID == 6) + { + var dimmableLight = deviceUI as DimmableLight; + dimmableLight.DeviceStatusReport = report.DeviceStatusReport; + dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; + (rowFL.GetChildren(j) as FunctionMainView).IsSelected = dimmableLight.OnOffStatus == 1; + (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI); + dimmableLight.LastDateTime = DateTime.Now; + } + + //浜害 + if (report.DeviceStatusReport.CluterID == 8) + { + var dimmableLight = deviceUI as DimmableLight; + dimmableLight.DeviceStatusReport = report.DeviceStatusReport; + var attriButeList = dimmableLight.DeviceStatusReport.AttriBute; + switch (attriButeList[0].AttributeId) + { + case 0: + //姝ゅ睘鎬ц〃鏄庡綋鍓嶄寒搴︾▼搴� + dimmableLight.Level = attriButeList[0].AttriButeData; + dimmableLight.LastDateTime = DateTime.Now; + //(rowFL.GetChildren(j) as FunctionMainView).IsSelected = true; + (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI); + break; + } + } + break; + case DeviceType.TemperatureSensor: + //娓╁害 + if (report.DeviceStatusReport.CluterID == 1026) + { + var tempera = deviceUI as TemperatureSensor; + foreach (var data in report.DeviceStatusReport.AttriBute) + { + if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue) + { + if (data.AttriButeData == 0) + { + tempera.Temperatrue = 0; + } + else if (data.AttriButeData > 32767) + { + //璐熸暟(鐗规畩澶勭悊) + string strValue = (data.AttriButeData - 65536).ToString(); + //灏忔暟鐐归渶瑕佷竴浣� + strValue = strValue.Substring(0, strValue.Length - 1); + tempera.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, ".")); + } + else + { + //灏忔暟鐐归渶瑕佷竴浣� + string strValue = data.AttriButeData.ToString(); + strValue = strValue.Substring(0, strValue.Length - 1); + tempera.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, ".")); + } + + tempera.LastDateTime = DateTime.Now; + (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI); + } + } + } + //婀垮害 + if (report.DeviceStatusReport.CluterID == 1029) + { + var tempera = deviceUI as TemperatureSensor; + foreach (var data in report.DeviceStatusReport.AttriBute) + { + if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue) + { + if (data.AttriButeData == 0) + { + tempera.Humidity = 0; + } + else + { + //灏忔暟鐐归渶瑕佷竴浣�(婀垮害娌℃湁璐熸暟) + string strValue = data.AttriButeData.ToString(); + strValue = strValue.Substring(0, strValue.Length - 1); + tempera.Humidity = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, ".")); + } + tempera.LastDateTime = DateTime.Now; + (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI); + } + } + } + break; + } + } + } + + }, ShowErrorMode.NO); + }); + + //浼犳劅鍣ㄤ笂鎶� + HdlGatewayReceiveLogic.Current.AddAttributeEvent("UserHomeViewSensor", ReceiveComandDiv.A浼犳劅鍣ㄤ笂鎶�, (report) => + { + HdlThreadLogic.Current.RunMain(() => + { + for (int i = 0; deviceVerticalScrolViewLayout != null && i < deviceVerticalScrolViewLayout.ChildrenCount; i++) + { + var rowFL = deviceVerticalScrolViewLayout.GetChildren(i) as FrameLayout; + if (rowFL.ChildrenCount == 0) + { + //璁惧涓虹┖鎴栬�呮帶浠朵负绌� + continue; + } + + for (int j = 0; j < rowFL.ChildrenCount; j++) + { + var deviceUI = LocalDevice.Current.GetDevice((rowFL.GetChildren(j) as FunctionMainView).Tag.ToString()); + if (deviceUI == null) + { + //璁惧涓虹┖鎴栬�呮帶浠朵负绌� + continue; + } + if (report.DeviceAddr != deviceUI.DeviceAddr || report.DeviceEpoint != deviceUI.DeviceEpoint) + { + //鍒ゆ柇鏄惁涓哄綋鍓嶈澶� + continue; + } + + switch (deviceUI.Type) + { + case DeviceType.IASZone: + //ias + var ias = report as IASZone; + var iAS = deviceUI as ZigBee.Device.IASZone; + iAS.iASInfo = ias.iASInfo; + (rowFL.GetChildren(j) as FunctionMainView).IsSelected = iAS.iASInfo?.Alarm1 == 1; + (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI); + iAS.LastDateTime = DateTime.Now; + break; + } + } + } + }, ShowErrorMode.NO); + }); + } + + #endregion + + #region 鈻� 鍒囨崲妤煎眰___________________________ + + /// <summary> + /// 鏄剧ず閫夋嫨妤煎眰鐨勭晫闈� + /// </summary> + private void ShowSelectFloorForm() + { + var floorFL = new Device.Category.SelectFloor(); + this.AddChidren(floorFL); + floorFL.Init(35, 153); + floorFL.changeFloor = true; + floorFL.FloorAction = (floorId) => + { + this.btnFloor.Text = Config.Instance.Home.GetFloorNameById(floorId); + HdlRoomLogic.Current.CurrentRoom = HdlRoomLogic.Current.GetLoveRoom(); + this.ShowForm(); + }; + } + + #endregion + + #region 鈻� 鐣岄潰鍏抽棴___________________________ + + /// <summary> + /// 鐣岄潰鍏抽棴 + /// </summary> + public override void CloseFormBefore() + { + HdlGatewayReceiveLogic.Current.RemoveEvent("UserHomeViewDeviceStatus"); + HdlGatewayReceiveLogic.Current.RemoveEvent("UserHomeViewSensor"); + + base.CloseFormBefore(); + } + + #endregion + + #region 鈻� 涓�鑸柟娉昣__________________________ + + /// <summary> + /// 妫�娴嬫槸鍚︾粦瀹氭湁缃戝叧 + /// </summary> + private bool CheckHadBindGateway() + { + //鑾峰彇鏈湴宸茬粡缁戝畾鐨勭綉鍏� + var gatewayList = HdlGatewayLogic.Current.GetAllLocalGateway(); + if (gatewayList.Count == 0) + { + return false; + } + //涓讳汉鎴栬�呯鐞嗗憳鎵嶈 + if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2) + { + return true; + } + return false; } #endregion -- Gitblit v1.8.0