xm
2020-04-16 6fa9d69da922c8049f5acfcbb9ce9fd26811024c
ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceColorLightCardControl.cs
New file
@@ -0,0 +1,104 @@
using System;
using System.Collections.Generic;
using System.Text;
using ZigBee.Device;
namespace Shared.Phone.MainPage.Controls
{
    /// <summary>
    /// 彩灯(调光灯)卡片控件
    /// </summary>
    public class DeviceColorLightCardControl : DeviceCardCommon
    {
        #region ■ 初始化_____________________________
        /// <summary>
        /// 初始化控件
        /// </summary>
        /// <param name="i_device"></param>
        public override void InitControl(CommonDevice i_device)
        {
            base.InitControl(i_device);
            //添加跳转深度卡片信息事件
            this.AddDetailInfoEvent(i_device);
            //添加开关控件
            var btnSwitch = this.AddSwitchControl();
            btnSwitch.ButtonClickEvent += (sender, e) =>
            {
                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 ■ 深度卡片信息_______________________
        /// <summary>
        /// 添加跳转深度卡片信息事件
        /// </summary>
        private void AddDetailInfoEvent(CommonDevice i_device)
        {
            //深度卡片信息
            this.ButtonClickEvent += (sender, e) =>
            {
                Common.CommonPage.Instance.IsDrawerLockMode = true;
                //彩灯,调光器类型的深度卡片界面
                var form = new ControlForm.DeviceColorLightDetailCardForm();
                form.AddForm(i_device, UserCenter.HdlRoomLogic.Current.CurrentRoom, 965, 1316);
                form.FormCloseEvent += this.CardDetailInfoBackEvent;
            };
        }
        #endregion
        #region ■ 检测设备打开状态___________________
        /// <summary>
        /// 检测设备打开状态
        /// </summary>
        /// <param name="i_device"></param>
        /// <returns></returns>
        public override bool CheckIsOpenStatu(CommonDevice i_device)
        {
            return ((LightBase)i_device).OnOffStatus == 1;
        }
        #endregion
        #region ■ 发送获取状态命令___________________
        /// <summary>
        /// 发送获取状态命令
        /// </summary>
        public override void SendStatuComand()
        {
            //检测能否发送获取状态命令
            if (this.CheckCanSendStatuComand() == true)
            {
                Device.DeviceLogic.ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(this.device);
            }
        }
        #endregion
    }
}