using System; using Shared.Phone.UserCenter; using ZigBee.Device; namespace Shared.Phone.MainPage.Controls { /// /// 新风卡片的控件 /// public class DeviceFreshAirCardControl : 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) { //直接变更缓存 ((FreshAir)i_device).currentFanStatus = btnSwitch.IsSelected == true ? 4 : 0; 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 as FreshAir).Open(); } else { //关闭 this.SetDeviceStatuText(Language.StringByID(R.MyInternationalizationString.Close)); (i_device as FreshAir).Close(); } }; } #endregion #region ■ 深度卡片信息_______________________ /// /// 添加跳转深度卡片信息事件 /// private void AddDetailInfoEvent(CommonDevice i_device) { //深度卡片信息 this.ButtonClickEvent += (sender, e) => { Common.CommonPage.Instance.IsDrawerLockMode = true; //新风类型的深度卡片界面 var form = new MainPage.ControlForm.DeviceFreshAirDetailCardForm(); form.RowOrCardControl = this; form.AddForm(i_device, this.nowSelectRoom, 965, 1374); form.FormCloseEvent += this.CardDetailInfoBackEvent; }; } #endregion #region ■ 检测设备打开状态___________________ /// /// 检测设备打开状态 /// /// /// public override bool CheckIsOpenStatu(CommonDevice i_device) { return ((FreshAir)i_device).currentFanStatus != 0; } #endregion #region ■ 发送获取状态命令___________________ /// /// 发送获取状态命令 /// public override void SendStatuComand() { if (Common.Config.Instance.Home.IsVirtually == true) { //如果住宅为虚拟住宅,则此功能无效 return; } //检测能否发送获取状态命令 if (this.CheckCanSendStatuComand() == true) { HdlDeviceAttributeLogic.Current.SendACStatuComand(this.device); } } #endregion } }