using Shared.Phone.UserCenter; using System; using System.Collections.Generic; using System.Text; using ZigBee.Device; namespace Shared.Phone.MainPage.Controls { /// /// 空气开关卡片控件 /// public class DeviceAirSwitchCardControl : DeviceCardCommon { #region ■ 初始化_____________________________ /// /// 初始化控件 /// /// public override void InitControl(CommonDevice i_device, Common.Room i_nowSelectRoom) { base.InitControl(i_device, i_nowSelectRoom); //添加跳转深度卡片信息事件 this.AddDetailInfoEvent(i_device); //添加开关控件 var btnSwitch = this.AddSwitchControl(); btnSwitch.ButtonClickEvent += (sender, e) => { //如果住宅为虚拟住宅 if (Common.Config.Instance.Home.IsVirtually == true) { //直接变更缓存 ((LightBase)i_device).OnOffStatus = btnSwitch.IsSelected == true ? 0 : 1; this.RefreshControlInfo(this.device); return; } bool setStatu = !btnSwitch.IsSelected; //变更卡片状态 this.SetCardOpenStatu(setStatu); //检测是否获取网关反馈的结果,如果网关没有回复,则会弹出消息 this.StartCheckResponeResult(!setStatu); if (setStatu == true) { //打开 this.SetDeviceStatuText(Language.StringByID(R.MyInternationalizationString.uOpen1)); i_device.SwitchControl(1); } else { //关闭 this.SetDeviceStatuText(Language.StringByID(R.MyInternationalizationString.Close)); i_device.SwitchControl(0); } }; } #endregion #region ■ 深度卡片信息_______________________ /// /// 添加跳转深度卡片信息事件 /// private void AddDetailInfoEvent(CommonDevice i_device) { //深度卡片信息 this.ButtonClickEvent += (sender, e) => { Common.CommonPage.Instance.IsDrawerLockMode = true; int backHeight = 0; if (i_device.DfunctionType == DeviceFunctionType.A开关) { backHeight = 1290; } else if (i_device.DfunctionType == DeviceFunctionType.A插座) { backHeight = 1290; } else { backHeight = 1316; } //继电器类型的深度卡片界面(含空气开关) var form = new ControlForm.DeviceRelayDetailCardForm(); form.RowOrCardControl = this; form.AddForm(i_device, this.nowSelectRoom, 965, backHeight); form.FormCloseEvent += this.CardDetailInfoBackEvent; }; } #endregion #region ■ 检测设备打开状态___________________ /// /// 检测设备打开状态 /// /// /// public override bool CheckIsOpenStatu(CommonDevice i_device) { return ((LightBase)i_device).OnOffStatus == 1; } #endregion #region ■ 发送获取状态命令___________________ /// /// 发送获取状态命令 /// public override void SendStatuComand() { if (Common.Config.Instance.Home.IsVirtually == true) { //如果住宅为虚拟住宅,则此功能无效 return; } //检测能否发送获取状态命令 if (this.CheckCanSendStatuComand() == true) { HdlDeviceAttributeLogic.Current.SendLightStatuComand(this.device); } } #endregion } }