From f14dcfd967404e197e7ec995ca8d6f2b090d3b7d Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期五, 11 九月 2020 09:16:59 +0800
Subject: [PATCH] 优化多功能面板:绑定温湿度传感器目标,和设备列表回路显示。优化数据矫正功能温湿度度不设置的情况。优化门锁时间设置最后一天和最后最后一个月的时间显示等 细节

---
 ZigbeeApp/Shared/Phone/TemplateData/TemplateDataCommon.cs |  783 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 783 insertions(+), 0 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/TemplateData/TemplateDataCommon.cs b/ZigbeeApp/Shared/Phone/TemplateData/TemplateDataCommon.cs
new file mode 100755
index 0000000..65a7576
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/TemplateData/TemplateDataCommon.cs
@@ -0,0 +1,783 @@
+锘縰sing Shared.Phone.UserCenter;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.TemplateData
+{
+    #region 鈻� 鍏遍�氭ā鏉挎暟鎹畾涔塤__________________
+
+    /// <summary>
+    /// 妯℃澘缂撳瓨鏁版嵁
+    /// </summary>
+    public class TemplateMemoryData
+    {
+        //鈽� 銉嗐兂銉椼儸銉笺儓銉曘偂銈ゃ儷銇繚瀛樸仌銈屻仧銉戙儵銉°兗銈裤兗 鈽� 鈫�
+        /// <summary>
+        /// 妯℃澘鐨勫悕瀛�
+        /// </summary>
+        public string TemplateName = string.Empty;
+        /// <summary>
+        /// 鍏ㄩ儴鐨勮澶囬厤缃紦瀛樻暟鎹�(涓婚敭鏄湰鍦拌澶囩殑涓婚敭)
+        /// </summary>
+        public Dictionary<string, List<TemplateDeviceDataCommon>> dicDeviceTemplateData = new Dictionary<string, List<TemplateDeviceDataCommon>>();
+        /// <summary>
+        /// 缃戝叧瀵硅薄鏁版嵁
+        /// </summary>
+        public Dictionary<string, ZigBee.Device.ZbGateway> dicGatewayInfo = new Dictionary<string, ZigBee.Device.ZbGateway>();
+        /// <summary>
+        /// 璁惧瀵硅薄鏁版嵁(key锛氳澶嘙ac)
+        /// </summary>
+        public Dictionary<string, List<ZigBee.Device.CommonDevice>> dicDeviceInfo = new Dictionary<string, List<ZigBee.Device.CommonDevice>>();
+        /// <summary>
+        /// 妯℃澘涓澶囧悇鑷湡瀹炶澶囧搴旂殑鎴块棿(keys:璁惧Mac鎴栬�呯綉鍏矷D,  value:鎴块棿ID)
+        /// </summary>
+        public Dictionary<string, string> dicDeviceTemplateRealRoom = new Dictionary<string, string>();
+        //鈽� 銉嗐兂銉椼儸銉笺儓銇繚瀛樸仌銈屻仧銉戙儵銉°兗銈裤兗 鈽� 鈫�
+
+
+        /// <summary>
+        /// 涓存椂缂撳瓨:妯℃澘涓悇鑷鐐规墍澶勭殑鎴块棿(keys:璁惧涓婚敭 value:鎴块棿ID) 鏃ㄥ湪閽堝璁惧鏉ュ洖閫夋嫨妯℃澘鐨勬儏鍐�
+        /// </summary>
+        public Dictionary<string, string> dicDeviceTemplateRoom = new Dictionary<string, string>();
+        /// <summary>
+        /// 涓存椂缂撳瓨:妯℃澘涓悇鑷鐐规墍淇濆瓨鐨勫唴瀹�(keys:妯℃澘涓澶囦富閿�),璁惧閫夋嫨妯℃澘鏃�,妯℃澘鏁版嵁杩佺Щ浣跨敤,鍥犱负鏄紩鐢ㄧ被鍨�,鎵�浠ラ渶瑕侀噸鏂癗ew
+        /// </summary>
+        public Dictionary<string, List<TemplateDeviceContent>> dicDeviceFileContent = new Dictionary<string, List<TemplateDeviceContent>>();
+
+
+        //鈽� 鍒ャ伄銉曘偂銈ゃ儷銇繚瀛樸仌銈屻仧銉戙儵銉°兗銈裤兗 鈽� 鈫�
+        /// <summary>
+        /// 璁惧閫夋嫨鐨勬ā鏉垮璞�(keys:鏈湴璁惧鐨凪ac value:妯℃澘涓殑Mac)
+        /// </summary>
+        public Dictionary<string, string> dicDeviceTemplateSelect = new Dictionary<string, string>();
+        /// <summary>
+        /// 缃戝叧瀵硅薄閫夋嫨鐨勬ā鏉垮璞�(keys:鏈湴缃戝叧ID,  value:妯℃澘涓殑缃戝叧ID)
+        /// </summary>
+        public Dictionary<string, string> dicGatewayTemplateSelect = new Dictionary<string, string>();
+        //鈽� 鍒ャ伄銉曘偂銈ゃ儷銇繚瀛樸仌銈屻仧銉戙儵銉°兗銈裤兗 鈽� 鈫�
+    }
+
+    /// <summary>
+    /// 涓�涓澶囩殑妯℃澘鏁版嵁鐨勫叡閫�
+    /// </summary>
+    public class TemplateDeviceDataCommon
+    {
+        /// <summary>
+        /// 璁惧Mac鍦板潃
+        /// </summary>
+        public string DeviceMac = string.Empty;
+        /// <summary>
+        /// 璁惧绔偣
+        /// </summary>
+        public int DeviceEpoint = -1;
+        /// <summary>
+        /// 鍙戦�侀渶瑕佺殑澶ф鏃堕棿(绉�)
+        /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
+        public int SendTime { get { return this.GetSendTime(); } }
+        /// <summary>
+        /// 鏁版嵁淇濆瓨鐨勫尯鍒�(涓嶉渶瑕佸啀娆¤缃�)
+        /// </summary>
+        public ModelDeviceSaveEnum DataSaveDiv = ModelDeviceSaveEnum.A鏈畾涔�;
+        /// <summary>
+        /// 鎺ユ敹鐨勪富棰�(鑰冭檻澶氭潯鍛戒护,姝e父閮芥槸1鏉″懡浠�)
+        /// </summary>
+        public List<string> ListReceiveTopic = new List<string>();
+        /// <summary>
+        /// 鎺ユ敹鐨勭粨鏋�(鑰冭檻澶氭潯鍛戒护,姝e父閮芥槸1鏉″懡浠�)
+        /// </summary>
+        public List<string> ListReceiveResult = new List<string>();
+        /// <summary>
+        /// 鍙戦�佺殑涓婚(鑰冭檻澶氭潯鍛戒护,姝e父閮芥槸1鏉″懡浠�)
+        /// </summary>
+        public List<string> ListSendTopic = new List<string>();
+
+        /// <summary>
+        /// 鑾峰彇鏇存敼璁惧閰嶇疆鐨勫懡浠ゅ瓧绗�(鑰冭檻澶氭潯鍛戒护,姝e父閮芥槸1鏉″懡浠�)
+        /// </summary>
+        /// <returns></returns>
+        public virtual List<string> GetSendGatewayValue()
+        {
+            return new List<string>();
+        }
+
+        /// <summary>
+        /// 鍙戦�侀渶瑕佺殑澶ф鏃堕棿(绉�)
+        /// </summary>
+        /// <returns></returns>
+        public virtual int GetSendTime()
+        {
+            return 0;
+        }
+
+        /// <summary>
+        /// 鍙樻洿Mac缂撳瓨(鍦ㄧ綉鍏虫墽琛屽畬鎴愬鍏ヤ箣鍚庢墽琛�)
+        /// </summary>
+        public virtual void ChangedMacMemmory()
+        {
+        }
+    }
+
+    /// <summary>
+    /// 妯℃澘璁惧鐨勭増鏈俊鎭�
+    /// </summary>
+    public class TemplateDeviceVersionInfo
+    {
+        //鐩墠鍙湁 鐗堟湰鍙橀噺
+        /// <summary>
+        /// 褰撳墠鐗堟湰
+        /// </summary>
+        public int Version = -1;
+    }
+
+    /// <summary>
+    /// 妯℃澘璁惧鍦ㄦ枃浠朵腑鐨勫唴瀹�
+    /// </summary>
+    public class TemplateDeviceContent
+    {
+        /// <summary>
+        /// 淇濆瓨鍖哄垎 鍙傜収:ModelDeviceSaveEnum
+        /// </summary>
+        public ModelDeviceSaveEnum saveDiv = ModelDeviceSaveEnum.A鏈畾涔�;
+        /// <summary>
+        /// 鏈夌偣鐢ㄥ
+        /// </summary>
+        public string DeviceMac = string.Empty;
+        /// <summary>
+        /// 鏂囦欢涓繚瀛樼殑鍐呭
+        /// </summary>
+        public string FileContent = string.Empty;
+    }
+
+    /// <summary>
+    /// 鍙�夋ā鏉跨殑鍐呭
+    /// </summary>
+    public class TemplateCanSelectContent
+    {
+        /// <summary>
+        /// 璁惧Mac
+        /// </summary>
+        public string DeviceMac = string.Empty;
+        /// <summary>
+        /// 璁惧Mac鍚嶅瓧
+        /// </summary>
+        public string DeviceName = string.Empty;
+        /// <summary>
+        /// 璇ヨ澶囨墍鍦ㄧ殑鎴块棿
+        /// </summary>
+        public string RoomName = string.Empty;
+    }
+
+    /// <summary>
+    /// 鏈湴妯℃澘鐨勫熀鏈俊鎭�
+    /// </summary>
+    public class LocalModelBaseInfo
+    {
+        /// <summary>
+        /// <para>淇濆瓨鏁版嵁鐨勬枃浠跺悕瀛�(涓嶉渶瑕佷繚瀛樺埌鏂囦欢澶逛腑)</para>
+        /// <para>ModelData_Local_yyyyMMdd_HHmmss.bin -> 鏈湴妯℃澘</para>
+        /// <para>ModelData_Cloud_yyyyMMdd_HHmmss.bin -> 鏈湴妯℃澘</para>
+        /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
+        public string FileName = string.Empty;
+        /// <summary>
+        /// 鏄惁鏄湰鍦版ā鏉�
+        /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
+        public bool IsLocalTemplate
+        {
+            get { return FileName.StartsWith("ModelData_Local"); }
+        }
+        /// <summary>
+        /// 鍗曞厓鍚嶇О(杩欎釜鐩墠鏄粰鏌ョ湅妯℃澘浣跨敤鐨�)
+        /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
+        public List<string> ListUintContent = new List<string>();
+        /// <summary>
+        /// 褰撳墠浣忓畢鐨勫湴鍥句綅缃悕绉�
+        /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
+        public string ResidenceAddressName = string.Empty;
+
+        /// <summary>
+        /// 妯℃澘鍚嶅瓧
+        /// </summary>
+        public string ModelName = string.Empty;
+        /// <summary>
+        /// 缂栬緫鏃堕棿 2020.01.04 19:55鏍煎紡
+        /// </summary>
+        public string EditorTime = string.Empty;
+        /// <summary>
+        /// 妤煎眰鏁�
+        /// </summary>
+        public int FloorCount = 0;
+        /// <summary>
+        /// 璁惧鏁�
+        /// </summary>
+        public int DeviceCount = 0;
+        /// <summary>
+        /// 鍔熻兘鏁�
+        /// </summary>
+        public int FunctionCount = 0;
+    }
+
+    /// <summary>
+    /// 妯℃澘浣忓畢鐨勪俊鎭�
+    /// </summary>
+    public class TemplateHomeInfo
+    {
+        /// <summary>
+        /// 鍗曞厓鍚嶇О
+        /// </summary>
+        public List<string> ListUintContent = new List<string>();
+        /// <summary>
+        /// 褰撳墠浣忓畢鐨勫湴鍥句綅缃悕绉�
+        /// </summary>
+        public string ResidenceAddressName = string.Empty;
+    }
+
+    #endregion
+
+    #region 鈻� 绐楀笜妯℃澘鏁版嵁瀹氫箟___________________
+
+    /// <summary>
+    /// 绐楀笜鎵嬫媺鎺у埗妯℃澘瀹氫箟
+    /// </summary>
+    public class ModelCurtainHandPullControl : TemplateDeviceDataCommon
+    {
+        /// <summary>
+        /// 鐘舵��
+        /// </summary>
+        public bool Statu = false;
+        /// <summary>
+        /// 鑾峰彇鏇存敼璁惧閰嶇疆鐨勫懡浠ゅ瓧绗�
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetSendGatewayValue()
+        {
+            var command = HdlDeviceCurtainLogic.Current.GetHandPullControlText(DeviceMac, DeviceEpoint, Statu);
+            return new List<string>() { command };
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍙戦�佸懡浠ゅぇ姒傞渶瑕佺殑鏃堕棿(绉�)
+        /// </summary>
+        /// <returns></returns>
+        public override int GetSendTime()
+        {
+            //鎵ц杩欎釜鍛戒护澶х害闇�瑕�5绉�
+            return 5;
+        }
+    }
+
+    /// <summary>
+    /// 绐楀笜闄愪綅妯℃澘瀹氫箟
+    /// </summary>
+    public class ModelCurtainDirectionAndLimite : TemplateDeviceDataCommon
+    {
+        /// <summary>
+        /// false:鐢垫満鏂瑰悜姝e悜锛泃rue:鐢垫満鏂瑰悜鍙嶅悜
+        /// </summary>
+        public bool Direction = false;
+        /// <summary>
+        /// 寮�闄愪綅
+        /// </summary>
+        public int upLimit = 2;
+        /// <summary>
+        /// 鍚堥檺浣�
+        /// </summary>
+        public int downLimit = 98;
+        /// <summary>
+        /// 瀵艰建闀垮害
+        /// </summary>
+        public int curtainLength = 100;
+        /// <summary>
+        /// 鑾峰彇鏇存敼璁惧閰嶇疆鐨勫懡浠ゅ瓧绗�
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetSendGatewayValue()
+        {
+            //鏂瑰悜
+            var command1 = HdlDeviceCurtainLogic.Current.GetCurtainDirectionCommadText(DeviceMac, DeviceEpoint, Direction);
+            //闄愪綅
+            var command2 = HdlDeviceCurtainLogic.Current.GetAutoOpenCurtainLimitPointCommandText(DeviceMac, DeviceEpoint, upLimit, downLimit);
+            return new List<string>() { command1, command2 };
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍙戦�佸懡浠ゅぇ姒傞渶瑕佺殑鏃堕棿(绉�)
+        /// </summary>
+        /// <returns></returns>
+        public override int GetSendTime()
+        {
+            //鎵ц杩欎釜鍛戒护澶х害闇�瑕�5绉�
+            return 5;
+        }
+    }
+
+    #endregion
+
+    #region 鈻� 绌鸿皟妯℃澘鏁版嵁瀹氫箟___________________
+
+    /// <summary>
+    /// 绌鸿皟鑷畾涔夋ā寮忔ā鏉挎暟鎹畾涔�
+    /// </summary>
+    public class ModelAcModeSupport : TemplateDeviceDataCommon
+    {
+        /// <summary>
+        /// 鍊�
+        /// </summary>
+        public int data = 0;
+        /// <summary>
+        /// 鑾峰彇鏇存敼璁惧閰嶇疆鐨勫懡浠ゅ瓧绗�
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetSendGatewayValue()
+        {
+            var command = HdlDeviceAttributeLogic.Current.GetWriteDeviceAttributeText(DeviceMac, DeviceEpoint, 513, 4099, 25, data);
+            return new List<string>() { command };
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍙戦�佸懡浠ゅぇ姒傞渶瑕佺殑鏃堕棿(绉�)
+        /// </summary>
+        /// <returns></returns>
+        public override int GetSendTime()
+        {
+            //鎵ц杩欎釜鍛戒护澶х害闇�瑕�5绉�
+            return 5;
+        }
+    }
+
+    /// <summary>
+    /// 绌鸿皟鎽嗛妯″紡妯℃澘鏁版嵁瀹氫箟
+    /// </summary>
+    public class ModelAcSwingModeSupport : TemplateDeviceDataCommon
+    {
+        /// <summary>
+        /// 鍊�
+        /// </summary>
+        public int data = 0;
+        /// <summary>
+        /// 鑾峰彇鏇存敼璁惧閰嶇疆鐨勫懡浠ゅ瓧绗�
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetSendGatewayValue()
+        {
+            var command = HdlDeviceAttributeLogic.Current.GetWriteDeviceAttributeText(DeviceMac, DeviceEpoint, 513, 4099, 25, data);
+            return new List<string>() { command };
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍙戦�佸懡浠ゅぇ姒傞渶瑕佺殑鏃堕棿(绉�)
+        /// </summary>
+        /// <returns></returns>
+        public override int GetSendTime()
+        {
+            //鎵ц杩欎釜鍛戒护澶х害闇�瑕�5绉�
+            return 5;
+        }
+    }
+
+    #endregion
+
+    #region 鈻� 璁惧缁戝畾妯℃澘鏁版嵁瀹氫箟_______________
+
+    /// <summary>
+    /// 璁惧缁戝畾妯℃澘鏁版嵁瀹氫箟
+    /// </summary>
+    public class ModelDeviceBindData : TemplateDeviceDataCommon
+    {
+        /// <summary>
+        /// 鎸夐敭鐨勫姛鑳芥ā寮�
+        /// </summary>
+        public ZigBee.Device.Panel.KeyMode keyMode = ZigBee.Device.Panel.KeyMode.Default;
+        /// <summary>
+        /// 鎸夐敭鐨勫姛鑳芥ā寮忕殑闀濱D
+        /// </summary>
+        public int keyModeClusterID = -1;
+        /// <summary>
+        /// 缁戝畾鍒楄〃
+        /// </summary>
+        public List<ZigBee.Device.BindObj.BindListResponseObj> BindList = new List<ZigBee.Device.BindObj.BindListResponseObj>();
+
+        /// <summary>
+        /// 鑾峰彇鏇存敼璁惧閰嶇疆鐨勫懡浠ゅ瓧绗�
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetSendGatewayValue()
+        {
+            var addBindData = new ZigBee.Device.BindObj.AddBindData();
+            addBindData.DeviceAddr = this.DeviceMac;
+            addBindData.Epoint = this.DeviceEpoint;
+
+            //褰撳墠閫夋嫨鐨勬ā鏉垮璞�
+            var dicChangedMac = new Dictionary<string, string>();
+            var dicNowSelect = TemplateCommonLogic.Current.modelData.dicDeviceTemplateSelect;
+            foreach (var localMac in dicNowSelect.Keys)
+            {
+                dicChangedMac[dicNowSelect[localMac]] = localMac;
+            }
+            foreach (var data in BindList)
+            {
+                //鍦烘櫙
+                if (data.BindType == 2)
+                {
+                    var addData = new ZigBee.Device.BindObj.AddBindListObj();
+                    addBindData.BindList.Add(addData);
+                    addData.BindCluster = data.BindCluster;
+                    addData.BindScenesId = data.BindScenesId;
+                    addData.BindType = 1;
+                }
+                //璁惧
+                else
+                {
+                    if (dicChangedMac.ContainsKey(data.BindMacAddr) == false)
+                    {
+                        //杩欎釜涓滆タ娌℃湁閫夋嫨妯℃澘,鍒欎笉鎵ц
+                        continue;
+                    }
+                    var addData = new ZigBee.Device.BindObj.AddBindListObj();
+                    addBindData.BindList.Add(addData);
+                    addData.BindCluster = data.BindCluster;
+                    addData.BindEpoint = data.BindEpoint;
+                    //鏇挎崲mac
+                    addData.BindMacAddr = dicChangedMac[data.BindMacAddr];
+                    addData.BindType = 0;
+                }
+            }
+            var listCommand = new List<string>();
+            //娓呯┖缁戝畾
+            var jObject = new Newtonsoft.Json.Linq.JObject { { "DeviceAddr", this.DeviceMac }, { "Epoint", this.DeviceEpoint }, { "Cluster_ID", 0 }, { "Command", 5006 } };
+            listCommand.Add(jObject.ToString());
+
+            //鍔熻兘閰嶇疆
+            listCommand.Add(string.Empty);
+            if (keyModeClusterID != -1)
+            {
+                var command1 = HdlDeviceBindLogic.Current.GetConfigureHdlKeyCommandText(this.DeviceMac, this.DeviceEpoint, keyMode, keyModeClusterID);
+                listCommand[1] = command1;
+            }
+
+            //缁戝畾鍒楄〃
+            listCommand.Add(string.Empty);
+            if (addBindData.BindList.Count > 0)
+            {
+                var command2 = HdlDeviceBindLogic.Current.GetAddDeviceListBindCommandText(addBindData);
+                listCommand[2] = command2;
+            }
+            return listCommand;
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍙戦�佸懡浠ゅぇ姒傞渶瑕佺殑鏃堕棿(绉�)
+        /// </summary>
+        /// <returns></returns>
+        public override int GetSendTime()
+        {
+            //鎵ц杩欎釜鍛戒护澶х害闇�瑕�15绉�
+            return 15;
+        }
+
+        /// <summary>
+        /// 鍙樻洿缁戝畾鐩爣鐨凪ac
+        /// </summary>
+        public override void ChangedMacMemmory()
+        {
+            //褰撳墠閫夋嫨鐨勬ā鏉垮璞�
+            var dicChangedMac = new Dictionary<string, string>();
+            var dicNowSelect = TemplateCommonLogic.Current.modelData.dicDeviceTemplateSelect;
+            foreach (var localMac in dicNowSelect.Keys)
+            {
+                dicChangedMac[dicNowSelect[localMac]] = localMac;
+            }
+            foreach (var data in BindList)
+            {
+                //璁惧
+                if (data.BindType != 2)
+                {
+                    if (dicChangedMac.ContainsKey(data.BindMacAddr) == false)
+                    {
+                        //杩欎釜涓滆タ娌℃湁閫夋嫨妯℃澘,鍒欎笉鎵ц
+                        continue;
+                    }
+                    //鏇挎崲mac
+                    data.BindMacAddr = dicChangedMac[data.BindMacAddr];
+                }
+            }
+            var localDevice = Common.LocalDevice.Current.GetDevice(this.DeviceMac, this.DeviceEpoint);
+            if (localDevice != null)
+            {
+                //鍙樻洿缂撳瓨
+                TemplateCommonLogic.Current.SaveDeviceMemmoryData(localDevice);
+            }
+        }
+    }
+
+    #endregion
+
+    #region 鈻� Pir浼犳劅鍣ㄦā鏉挎暟鎹畾涔塤_____________
+
+    /// <summary>
+    /// Pir浼犳劅鍣ㄦā鏉挎暟鎹畾涔�
+    /// </summary>
+    public class ModelPirSensorSettion : TemplateDeviceDataCommon
+    {
+        /// <summary>
+        /// pir鐨勯厤缃俊鎭�
+        /// </summary>
+        public ZigBee.Device.IASZone.ConfigureParamates pirConfigure = new ZigBee.Device.IASZone.ConfigureParamates();
+        /// <summary>
+        /// 鑾峰彇鏇存敼璁惧閰嶇疆鐨勫懡浠ゅ瓧绗�
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetSendGatewayValue()
+        {
+            var command = HdlDevicePirSensorLogic.Current.GetPirSensorSettionCommandText(DeviceMac, pirConfigure);
+            return new List<string>() { command };
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍙戦�佸懡浠ゅぇ姒傞渶瑕佺殑鏃堕棿(绉�)
+        /// </summary>
+        /// <returns></returns>
+        public override int GetSendTime()
+        {
+            //鎵ц杩欎釜鍛戒护澶х害闇�瑕�5绉�
+            return 5;
+        }
+    }
+
+    #endregion
+
+    #region 鈻� 闈㈡澘妯℃澘鏁版嵁瀹氫箟___________________
+
+    /// <summary>
+    /// 闈㈡澘闇囧姩鍔熻兘妯℃澘鏁版嵁瀹氫箟
+    /// </summary>
+    public class ModelPanelVibrationInfo : TemplateDeviceDataCommon
+    {
+        /// <summary>
+        /// 闇囧姩鍔熻兘
+        /// </summary>
+        public HdlDevicePanelLogic.PanelVibrationInfo vibrationInfo = new HdlDevicePanelLogic.PanelVibrationInfo();
+        /// <summary>
+        /// 鑾峰彇鏇存敼璁惧閰嶇疆鐨勫懡浠ゅ瓧绗�
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetSendGatewayValue()
+        {
+            var command = HdlDevicePanelLogic.Current.GetPanelVibrationCommandText(DeviceMac, vibrationInfo);
+            return new List<string>() { command };
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍙戦�佸懡浠ゅぇ姒傞渶瑕佺殑鏃堕棿(绉�)
+        /// </summary>
+        /// <returns></returns>
+        public override int GetSendTime()
+        {
+            //鎵ц杩欎釜鍛戒护澶х害闇�瑕�5绉�
+            return 5;
+        }
+    }
+
+    /// <summary>
+    /// 闈㈡澘鑳屽厜鐏ā鏉挎暟鎹畾涔�
+    /// </summary>
+    public class ModelPanelBackLightInfo : TemplateDeviceDataCommon
+    {
+        /// <summary>
+        /// 浜害璋冭妭鐨勪俊鎭�
+        /// </summary>
+        public ModelPanelSwitchLevelInfo linghtLevelInfo = new ModelPanelSwitchLevelInfo();
+        /// <summary>
+        /// 鑺傝兘妯″紡
+        /// </summary>
+        public ZigBee.Device.Panel.PanelSaveEnergyModeInfo energyModeInfo = new ZigBee.Device.Panel.PanelSaveEnergyModeInfo();
+        /// <summary>
+        /// 鎸夐敭鐨勯鑹叉暟鎹�
+        /// </summary>
+        public ZigBee.Device.Panel.KeyColorData keyColorData = new ZigBee.Device.Panel.KeyColorData();
+        /// <summary>
+        /// 鍜宬eyColorData涓�璧风敤鐨勪笢瑗�
+        /// </summary>
+        public ZigBee.Device.Panel.KeyNumStatus KeyNum = new ZigBee.Device.Panel.KeyNumStatus();
+        /// <summary>
+        /// 鑾峰彇鏇存敼璁惧閰嶇疆鐨勫懡浠ゅ瓧绗�
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetSendGatewayValue()
+        {
+            //杩欎笁涓笢瑗跨殑椤哄簭涓嶈兘鍙�
+            //浜害璋冭妭
+            var command1 = HdlDevicePanelLogic.Current.GetPanelLevelCommadText(DeviceMac, linghtLevelInfo.panelDirectionsLevel, linghtLevelInfo.panelBacklightLevel);
+            //鑺傝兘妯″紡
+            var command2 = HdlDevicePanelLogic.Current.GetDeviceEnergyConservationModeCommandText(DeviceMac, energyModeInfo.enable, energyModeInfo.time, energyModeInfo.level);
+            //鎸夐敭鎸囩ず鐏鑹�
+            var command3 = HdlDevicePanelLogic.Current.GetPanelColorCommandText(DeviceMac, keyColorData, KeyNum);
+
+            return new List<string>() { command1, command2, command3 };
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍙戦�佸懡浠ゅぇ姒傞渶瑕佺殑鏃堕棿(绉�)
+        /// </summary>
+        /// <returns></returns>
+        public override int GetSendTime()
+        {
+            //鎵ц杩欎釜鍛戒护澶х害闇�瑕�8绉�
+            return 8;
+        }
+    }
+
+    /// <summary>
+    /// 鎸夐敭鎸囩ず鐏潰鏉垮紑鍏充寒搴﹂厤缃洖澶�
+    /// </summary>
+    public class ModelPanelSwitchLevelInfo
+    {
+        /// <summary>
+        ///鎸夐敭寮�鐘舵�侊紙鎸囩ず锛変寒搴�(杩欎釜鏄偣鍑诲悗鐨勫��)
+        /// </summary>
+        public int panelDirectionsLevel = -1;
+
+        /// <summary>
+        /// 鎸夐敭鍏崇姸鎬侊紙鑳屽厜锛変寒搴�(杩欎釜鏄偣鍑诲墠鐨勫��)
+        /// </summary>
+        public int panelBacklightLevel = -1;
+    }
+
+    #endregion
+
+    #region 鈻� 璁惧鍚嶇О妯℃澘鏁版嵁瀹氫箟_______________
+
+    /// <summary>
+    /// 璁惧绔偣鍚嶇О妯℃澘鏁版嵁瀹氫箟
+    /// </summary>
+    public class ModelDeviceEpointNameInfo : TemplateDeviceDataCommon
+    {
+        /// <summary>
+        /// 璁惧绔偣鍚嶇О
+        /// </summary>
+        public string deviceEpointName = string.Empty;
+        /// <summary>
+        /// 鑾峰彇鏇存敼璁惧閰嶇疆鐨勫懡浠ゅ瓧绗�
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetSendGatewayValue()
+        {
+            var command = Common.LocalDevice.Current.GetReDeviceEpointNameCommandText(DeviceMac, DeviceEpoint, deviceEpointName);
+            return new List<string>() { command };
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍙戦�佸懡浠ゅぇ姒傞渶瑕佺殑鏃堕棿(绉�)
+        /// </summary>
+        /// <returns></returns>
+        public override int GetSendTime()
+        {
+            //鎵ц杩欎釜鍛戒护澶х害闇�瑕�3绉�
+            return 3;
+        }
+    }
+
+    /// <summary>
+    /// 璁惧Mac鍚嶇О妯℃澘鏁版嵁瀹氫箟
+    /// </summary>
+    public class ModelDeviceMacNameInfo : TemplateDeviceDataCommon
+    {
+        /// <summary>
+        /// 璁惧Mac鍚嶇О
+        /// </summary>
+        public string deviceMacName = string.Empty;
+        /// <summary>
+        /// 鑾峰彇鏇存敼璁惧閰嶇疆鐨勫懡浠ゅ瓧绗�
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetSendGatewayValue()
+        {
+            var command = Common.LocalDevice.Current.GetReDeviceMacNameCommandText(DeviceMac, DeviceEpoint, deviceMacName);
+            return new List<string>() { command };
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍙戦�佸懡浠ゅぇ姒傞渶瑕佺殑鏃堕棿(绉�)
+        /// </summary>
+        /// <returns></returns>
+        public override int GetSendTime()
+        {
+            //鎵ц杩欎釜鍛戒护澶х害闇�瑕�3绉�
+            return 3;
+        }
+    }
+
+    #endregion
+
+    #region 鈻� 鑷畾涔夋灇涓綺________________________
+
+    /// <summary>
+    /// 妯℃澘璁惧淇濆瓨鐨勫尯鍒�
+    /// </summary>
+    public enum ModelDeviceSaveEnum
+    {
+        A鏈畾涔� = -1,
+        /// <summary>
+        /// 瀵硅薄绫�:ModelDeviceMacNameInfo
+        /// </summary>
+        A璁惧鍚嶇О = 1,
+        /// <summary>
+        /// 瀵硅薄绫�:ModelDeviceEpointNameInfo
+        /// </summary>
+        A绔偣鍚嶇О = 2,
+        /// <summary>
+        /// 瀵硅薄绫�:ModelPirSensorSettion
+        /// </summary>
+        APir閰嶇疆 = 3,
+        /// <summary>
+        /// 瀵硅薄绫�:ModelCurtainDirectionAndLimite
+        /// </summary>
+        A绐楀笜鏂瑰悜鍙婇檺浣� = 8,
+        /// <summary>
+        /// 瀵硅薄绫�:ModelCurtainHandPullControl
+        /// </summary>
+        A绐楀笜鎵嬫媺鎺у埗 = 9,
+        /// <summary>
+        /// 瀵硅薄绫�:ModelAcModeSupport
+        /// </summary>
+        A绌鸿皟鑷畾涔夋ā寮� = 10,
+        /// <summary>
+        /// 瀵硅薄绫�:ModelPanelVibrationInfo
+        /// </summary>
+        A闈㈡澘闇囧姩鍔熻兘 = 11,
+        /// <summary>
+        /// 瀵硅薄绫�:ModelAcSwingModeSupport
+        /// </summary>
+        A绌鸿皟鎽嗛鍔熻兘 = 12,
+        /// <summary>
+        /// 瀵硅薄绫�:ModelDeviceBindData
+        /// </summary>
+        A璁惧缁戝畾鍒楄〃 = 14,
+        /// <summary>
+        /// 瀵硅薄绫�:ModelPanelBackLightInfo
+        /// </summary>
+        A闈㈡澘鑳屽厜鐏� = 15,
+        /// <summary>
+        /// ModelAutomaticTimingOffInfo
+        /// </summary>
+        A瀹氭椂鑷姩鍏抽棴 = 16,
+    }
+
+    /// <summary>
+    /// 鍙戦�佹ā鏉挎暟鎹殑鍖哄垎
+    /// </summary>
+    public enum ModelDataSendEnum
+    {
+        A鏈畾涔� = -1,
+        A绉佹湁灞炴�� = 1,
+        A绉佹湁鍗忚 = 2,
+        A閫忎紶鏁版嵁 = 3
+    }
+
+    #endregion
+}

--
Gitblit v1.8.0