From 0d9f64668fd7350d6a21fd157e32009a96d98134 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期三, 16 十二月 2020 13:09:08 +0800
Subject: [PATCH] 新云端代码Ver1.2

---
 ZigbeeApp/Shared/Phone/Common/Common/TemplateDataCommon.cs | 1930 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 966 insertions(+), 964 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/TemplateData/TemplateDataCommon.cs b/ZigbeeApp/Shared/Phone/Common/Common/TemplateDataCommon.cs
old mode 100755
new mode 100644
similarity index 97%
rename from ZigbeeApp/Shared/Phone/TemplateData/TemplateDataCommon.cs
rename to ZigbeeApp/Shared/Phone/Common/Common/TemplateDataCommon.cs
index 2657fe3..f5727e2
--- a/ZigbeeApp/Shared/Phone/TemplateData/TemplateDataCommon.cs
+++ b/ZigbeeApp/Shared/Phone/Common/Common/TemplateDataCommon.cs
@@ -1,964 +1,966 @@
-锘縰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>
-        /// 鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
-        /// </summary>
-        /// <returns></returns>
-        public virtual List<string> GetFailMsg()
-        {
-            return new List<string>();
-        }
-
-        /// <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> ListUintName = new List<string>();
-        /// <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 CloundModelBaseInfo
-    {
-        /// <summary>
-        /// 妯℃澘鍚嶅瓧
-        /// </summary>
-        public string TemplateName = string.Empty;
-        /// <summary>
-        /// 缂栬緫鏃堕棿 2020.01.04 19:55鏍煎紡
-        /// </summary>
-        public string CreatedOnUtc = string.Empty;
-        /// <summary>
-        /// 涓婚敭
-        /// </summary>
-        public string Id = string.Empty;
-    }
-
-    /// <summary>
-    /// 妯℃澘浣忓畢鐨勪俊鎭�
-    /// </summary>
-    public class TemplateHomeInfo
-    {
-        /// <summary>
-        /// 鍗曞厓鏍囬
-        /// </summary>
-        public List<string> ListUintName = new List<string>();
-        /// <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>
-        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
-        /// </summary>
-        /// <returns></returns>
-        public override List<string> GetFailMsg()
-        {
-            //鍒囨崲鎵嬫媺鎺у埗澶辫触
-            return new List<string> { Language.StringByID(R.MyInternationalizationString.uChangeHandPullControlFail) };
-        }
-    }
-
-    /// <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;
-        }
-        /// <summary>
-        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
-        /// </summary>
-        /// <returns></returns>
-        public override List<string> GetFailMsg()
-        {
-            //璁剧疆绐楀笜闄愪綅鐐瑰け璐�
-            return new List<string> { Language.StringByID(R.MyInternationalizationString.uCommitCurtainLimitFail) };
-        }
-    }
-
-    #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>
-        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
-        /// </summary>
-        /// <returns></returns>
-        public override List<string> GetFailMsg()
-        {
-            //璁剧疆绌鸿皟妯″紡澶辫触
-            return new List<string> { Language.StringByID(R.MyInternationalizationString.uSetAcModeFail) };
-        }
-    }
-
-    /// <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;
-        }
-        /// <summary>
-        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
-        /// </summary>
-        /// <returns></returns>
-        public override List<string> GetFailMsg()
-        {
-            //璁剧疆绌鸿皟鎽嗛澶辫触
-            return new List<string> { Language.StringByID(R.MyInternationalizationString.uSetAirConditionerSwingFunctionFail) };
-        }
-    }
-
-    #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>();
-            //娓呯┖缁戝畾
-            listCommand.Add(string.Empty);
-            //杩欎釜鍒ゆ柇鏄负浜嗛拡瀵逛竴璺皟鍏夊櫒鍜屼笁璺户鐢靛櫒鐨勯偅涓涓冨洖璺�
-            if (this.ListReceiveResult.Count > 0 && string.IsNullOrEmpty(this.ListReceiveResult[0]) == false)
-            {
-                var jObject = new Newtonsoft.Json.Linq.JObject { { "DeviceAddr", this.DeviceMac }, { "Epoint", this.DeviceEpoint }, { "Cluster_ID", 0 }, { "Command", 5006 } };
-                listCommand[0] = 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>
-        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
-        /// </summary>
-        /// <returns></returns>
-        public override List<string> GetFailMsg()
-        {
-            //娓呯┖缁戝畾鍒楄〃澶辫触 , 璁惧灞炴�у彉鏇村け璐� , 缁戝畾鐩爣璁剧疆澶辫触
-            return new List<string> {"娓呯┖缁戝畾鍒楄〃澶辫触"
-                ,Language.StringByID(R.MyInternationalizationString.uDeviceAttributeChangedFail)
-                ,Language.StringByID(R.MyInternationalizationString.uSetBindTargetsFail)};
-        }
-
-        /// <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];
-                }
-            }
-            //鍙樻洿缂撳瓨
-            TemplateCommonLogic.Current.SaveDeviceMemmoryData(this.DeviceMac, this.DeviceEpoint);
-        }
-    }
-
-    #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;
-        }
-        /// <summary>
-        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
-        /// </summary>
-        /// <returns></returns>
-        public override List<string> GetFailMsg()
-        {
-            //璁剧疆浼犳劅鍣ㄩ厤缃俊鎭け璐�
-            return new List<string> {Language.StringByID(R.MyInternationalizationString.uSetPirSensorSettionFail)};
-        }
-    }
-
-    #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>
-        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
-        /// </summary>
-        /// <returns></returns>
-        public override List<string> GetFailMsg()
-        {
-            //璁剧疆闇囧姩鍙嶉閰嶇疆淇℃伅澶辫触
-            return new List<string> { Language.StringByID(R.MyInternationalizationString.uSetVibrationFeedbackSettionFail) };
-        }
-    }
-
-    /// <summary>
-    /// 闈㈡澘浜害璋冭妭妯℃澘鏁版嵁瀹氫箟
-    /// </summary>
-    public class ModelPanelBrightnessAdjustInfo : TemplateDeviceDataCommon
-    {
-        /// <summary>
-        /// 鎸夐敭寮�鐘舵�侊紙鎸囩ず锛変寒搴�(杩欎釜鏄偣鍑诲悗鐨勫��,鎴栬�� 1-6骞叉帴鐐圭殑鑳屽厜鐏�)
-        /// </summary>
-        public int panelDirectionsLevel = -1;
-        /// <summary>
-        /// 鎸夐敭鍏崇姸鎬侊紙鑳屽厜锛変寒搴�(杩欎釜鏄偣鍑诲墠鐨勫��,鎴栬�� 绗竷骞叉帴鐐圭殑鑳屽厜鐏�)
-        /// </summary>
-        public int panelBacklightLevel = -1;
-
-        /// <summary>
-        /// 鑾峰彇鏇存敼璁惧閰嶇疆鐨勫懡浠ゅ瓧绗�
-        /// </summary>
-        /// <returns></returns>
-        public override List<string> GetSendGatewayValue()
-        {
-            //浜害璋冭妭
-            var command1 = HdlDevicePanelLogic.Current.GetPanelLevelCommadText(DeviceMac, panelDirectionsLevel, panelBacklightLevel);
-            return new List<string>() { command1 };
-        }
-
-        /// <summary>
-        /// 鑾峰彇鍙戦�佸懡浠ゅぇ姒傞渶瑕佺殑鏃堕棿(绉�)
-        /// </summary>
-        /// <returns></returns>
-        public override int GetSendTime()
-        {
-            //鎵ц杩欎釜鍛戒护澶х害闇�瑕�8绉�
-            return 3;
-        }
-        /// <summary>
-        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
-        /// </summary>
-        /// <returns></returns>
-        public override List<string> GetFailMsg()
-        {
-            //璁剧疆浜害璋冭妭澶辫触
-            return new List<string> { Language.StringByID(R.MyInternationalizationString.uSetLightRegulationFail) };
-        }
-    }
-
-    /// <summary>
-    /// 闈㈡澘鑺傝兘妯″紡妯℃澘鏁版嵁瀹氫箟
-    /// </summary>
-    public class ModelPanelEnergyModeInfo : TemplateDeviceDataCommon
-    {
-        /// <summary>
-        /// 鑺傝兘妯″紡
-        /// </summary>
-        public ZigBee.Device.Panel.PanelSaveEnergyModeInfo energyModeInfo = new ZigBee.Device.Panel.PanelSaveEnergyModeInfo();
-        /// <summary>
-        /// 鑾峰彇鏇存敼璁惧閰嶇疆鐨勫懡浠ゅ瓧绗�
-        /// </summary>
-        /// <returns></returns>
-        public override List<string> GetSendGatewayValue()
-        {
-            //鑺傝兘妯″紡
-            var command1 = HdlDevicePanelLogic.Current.GetDeviceEnergyConservationModeCommandText(DeviceMac, energyModeInfo.enable, energyModeInfo.time, energyModeInfo.level);
-
-            return new List<string>() { command1 };
-        }
-
-        /// <summary>
-        /// 鑾峰彇鍙戦�佸懡浠ゅぇ姒傞渶瑕佺殑鏃堕棿(绉�)
-        /// </summary>
-        /// <returns></returns>
-        public override int GetSendTime()
-        {
-            //鎵ц杩欎釜鍛戒护澶х害闇�瑕�8绉�
-            return 3;
-        }
-        /// <summary>
-        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
-        /// </summary>
-        /// <returns></returns>
-        public override List<string> GetFailMsg()
-        {
-            //鑺傝兘妯″紡閰嶇疆澶辫触
-            return new List<string> { Language.StringByID(R.MyInternationalizationString.uSetEnergyConservationFail) };
-        }
-    }
-
-    /// <summary>
-    /// 闈㈡澘鎸囩ず鐏ā鏉挎暟鎹畾涔�(涔熷彨鑳屽厜鐏�)
-    /// </summary>
-    public class ModelPanelIndicatorLightInfo : TemplateDeviceDataCommon
-    {
-        /// <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.GetPanelColorCommandText(DeviceMac, keyColorData, KeyNum);
-
-            return new List<string>() { command1 };
-        }
-
-        /// <summary>
-        /// 鑾峰彇鍙戦�佸懡浠ゅぇ姒傞渶瑕佺殑鏃堕棿(绉�)
-        /// </summary>
-        /// <returns></returns>
-        public override int GetSendTime()
-        {
-            //鎵ц杩欎釜鍛戒护澶х害闇�瑕�8绉�
-            return 3;
-        }
-        /// <summary>
-        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
-        /// </summary>
-        /// <returns></returns>
-        public override List<string> GetFailMsg()
-        {
-            //璁剧疆鎸夐敭闈㈡澘鎸囩ず鐏鑹插け璐�
-            return new List<string> { Language.StringByID(R.MyInternationalizationString.uSetPanelPilolightSettionFail) };
-        }
-    }
-
-    #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>
-        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
-        /// </summary>
-        /// <returns></returns>
-        public override List<string> GetFailMsg()
-        {
-            //璁惧绔偣鍚嶇О淇敼澶辫触
-            return new List<string> { "璁惧绔偣鍚嶇О淇敼澶辫触" };
-        }
-    }
-
-    /// <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;
-        }
-        /// <summary>
-        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
-        /// </summary>
-        /// <returns></returns>
-        public override List<string> GetFailMsg()
-        {
-            //璁惧鍚嶇О淇敼澶辫触
-            return new List<string> { Language.StringByID(R.MyInternationalizationString.uDeviceReNameFail) };
-        }
-    }
-
-    #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>
-        /// 瀵硅薄绫�:ModelPanelBrightnessAdjustInfo
-        /// </summary>
-        A闈㈡澘浜害璋冭妭 = 15,
-        /// <summary>
-        /// 瀵硅薄绫�:ModelPanelEnergyModeInfo
-        /// </summary>
-        A闈㈡澘鑺傝兘妯″紡 = 16,
-        /// <summary>
-        /// 涔熷彨鑳屽厜鐏� 瀵硅薄绫�:ModelPanelIndicatorLightInfo
-        /// </summary>
-        A闈㈡澘鎸囩ず鐏� = 17
-    }
-
-    #endregion
-}
+锘縰sing Shared.Phone.UserCenter;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone
+{
+    #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>
+        /// 鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
+        /// </summary>
+        /// <returns></returns>
+        public virtual List<string> GetFailMsg()
+        {
+            return new List<string>();
+        }
+
+        /// <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> ListUintName = new List<string>();
+        /// <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 CloundModelBaseInfo
+    {
+        /// <summary>
+        /// 妯℃澘鍚嶅瓧
+        /// </summary>
+        public string TemplateName = string.Empty;
+        /// <summary>
+        /// 缂栬緫鏃堕棿 2020.01.04 19:55鏍煎紡
+        /// </summary>
+        public string CreateTime = string.Empty;
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        public string Id = string.Empty;
+    }
+
+    /// <summary>
+    /// 妯℃澘浣忓畢鐨勪俊鎭�
+    /// </summary>
+    public class TemplateHomeInfo
+    {
+        /// <summary>
+        /// 鍗曞厓鏍囬
+        /// </summary>
+        public List<string> ListUintName = new List<string>();
+        /// <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>
+        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetFailMsg()
+        {
+            //鍒囨崲鎵嬫媺鎺у埗澶辫触
+            return new List<string> { Language.StringByID(R.MyInternationalizationString.uChangeHandPullControlFail) };
+        }
+    }
+
+    /// <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;
+        }
+        /// <summary>
+        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetFailMsg()
+        {
+            //璁剧疆绐楀笜闄愪綅鐐瑰け璐�
+            return new List<string> { Language.StringByID(R.MyInternationalizationString.uSetCurtainDirectionFail),
+                 Language.StringByID(R.MyInternationalizationString.uCommitCurtainLimitFail)
+            };
+        }
+    }
+
+    #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>
+        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetFailMsg()
+        {
+            //璁剧疆绌鸿皟妯″紡澶辫触
+            return new List<string> { Language.StringByID(R.MyInternationalizationString.uSetAcModeFail) };
+        }
+    }
+
+    /// <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;
+        }
+        /// <summary>
+        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetFailMsg()
+        {
+            //璁剧疆绌鸿皟鎽嗛澶辫触
+            return new List<string> { Language.StringByID(R.MyInternationalizationString.uSetAirConditionerSwingFunctionFail) };
+        }
+    }
+
+    #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 = HdlTemplateCommonLogic.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>();
+            //娓呯┖缁戝畾
+            listCommand.Add(string.Empty);
+            //杩欎釜鍒ゆ柇鏄负浜嗛拡瀵逛竴璺皟鍏夊櫒鍜屼笁璺户鐢靛櫒鐨勯偅涓涓冨洖璺�
+            if (this.ListReceiveResult.Count > 0 && string.IsNullOrEmpty(this.ListReceiveResult[0]) == false)
+            {
+                var jObject = new Newtonsoft.Json.Linq.JObject { { "DeviceAddr", this.DeviceMac }, { "Epoint", this.DeviceEpoint }, { "Cluster_ID", 0 }, { "Command", 5006 } };
+                listCommand[0] = 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>
+        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetFailMsg()
+        {
+            //娓呯┖缁戝畾鍒楄〃澶辫触 , 璁惧灞炴�у彉鏇村け璐� , 缁戝畾鐩爣璁剧疆澶辫触
+            return new List<string> {"娓呯┖缁戝畾鍒楄〃澶辫触"
+                ,Language.StringByID(R.MyInternationalizationString.uDeviceAttributeChangedFail)
+                ,Language.StringByID(R.MyInternationalizationString.uSetBindTargetsFail)};
+        }
+
+        /// <summary>
+        /// 鍙樻洿缁戝畾鐩爣鐨凪ac
+        /// </summary>
+        public override void ChangedMacMemmory()
+        {
+            //褰撳墠閫夋嫨鐨勬ā鏉垮璞�
+            var dicChangedMac = new Dictionary<string, string>();
+            var dicNowSelect = HdlTemplateCommonLogic.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];
+                }
+            }
+            //鍙樻洿缂撳瓨
+            HdlTemplateCommonLogic.Current.SaveDeviceMemmoryData(this.DeviceMac, this.DeviceEpoint);
+        }
+    }
+
+    #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;
+        }
+        /// <summary>
+        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetFailMsg()
+        {
+            //璁剧疆浼犳劅鍣ㄩ厤缃俊鎭け璐�
+            return new List<string> {Language.StringByID(R.MyInternationalizationString.uSetPirSensorSettionFail)};
+        }
+    }
+
+    #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>
+        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetFailMsg()
+        {
+            //璁剧疆闇囧姩鍙嶉閰嶇疆淇℃伅澶辫触
+            return new List<string> { Language.StringByID(R.MyInternationalizationString.uSetVibrationFeedbackSettionFail) };
+        }
+    }
+
+    /// <summary>
+    /// 闈㈡澘浜害璋冭妭妯℃澘鏁版嵁瀹氫箟
+    /// </summary>
+    public class ModelPanelBrightnessAdjustInfo : TemplateDeviceDataCommon
+    {
+        /// <summary>
+        /// 鎸夐敭寮�鐘舵�侊紙鎸囩ず锛変寒搴�(杩欎釜鏄偣鍑诲悗鐨勫��,鎴栬�� 1-6骞叉帴鐐圭殑鑳屽厜鐏�)
+        /// </summary>
+        public int panelDirectionsLevel = -1;
+        /// <summary>
+        /// 鎸夐敭鍏崇姸鎬侊紙鑳屽厜锛変寒搴�(杩欎釜鏄偣鍑诲墠鐨勫��,鎴栬�� 绗竷骞叉帴鐐圭殑鑳屽厜鐏�)
+        /// </summary>
+        public int panelBacklightLevel = -1;
+
+        /// <summary>
+        /// 鑾峰彇鏇存敼璁惧閰嶇疆鐨勫懡浠ゅ瓧绗�
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetSendGatewayValue()
+        {
+            //浜害璋冭妭
+            var command1 = HdlDevicePanelLogic.Current.GetPanelLevelCommadText(DeviceMac, panelDirectionsLevel, panelBacklightLevel);
+            return new List<string>() { command1 };
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍙戦�佸懡浠ゅぇ姒傞渶瑕佺殑鏃堕棿(绉�)
+        /// </summary>
+        /// <returns></returns>
+        public override int GetSendTime()
+        {
+            //鎵ц杩欎釜鍛戒护澶х害闇�瑕�8绉�
+            return 3;
+        }
+        /// <summary>
+        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetFailMsg()
+        {
+            //璁剧疆浜害璋冭妭澶辫触
+            return new List<string> { Language.StringByID(R.MyInternationalizationString.uSetLightRegulationFail) };
+        }
+    }
+
+    /// <summary>
+    /// 闈㈡澘鑺傝兘妯″紡妯℃澘鏁版嵁瀹氫箟
+    /// </summary>
+    public class ModelPanelEnergyModeInfo : TemplateDeviceDataCommon
+    {
+        /// <summary>
+        /// 鑺傝兘妯″紡
+        /// </summary>
+        public ZigBee.Device.Panel.PanelSaveEnergyModeInfo energyModeInfo = new ZigBee.Device.Panel.PanelSaveEnergyModeInfo();
+        /// <summary>
+        /// 鑾峰彇鏇存敼璁惧閰嶇疆鐨勫懡浠ゅ瓧绗�
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetSendGatewayValue()
+        {
+            //鑺傝兘妯″紡
+            var command1 = HdlDevicePanelLogic.Current.GetDeviceEnergyConservationModeCommandText(DeviceMac, energyModeInfo.enable, energyModeInfo.time, energyModeInfo.level);
+
+            return new List<string>() { command1 };
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍙戦�佸懡浠ゅぇ姒傞渶瑕佺殑鏃堕棿(绉�)
+        /// </summary>
+        /// <returns></returns>
+        public override int GetSendTime()
+        {
+            //鎵ц杩欎釜鍛戒护澶х害闇�瑕�8绉�
+            return 3;
+        }
+        /// <summary>
+        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetFailMsg()
+        {
+            //鑺傝兘妯″紡閰嶇疆澶辫触
+            return new List<string> { Language.StringByID(R.MyInternationalizationString.uSetEnergyConservationFail) };
+        }
+    }
+
+    /// <summary>
+    /// 闈㈡澘鎸囩ず鐏ā鏉挎暟鎹畾涔�(涔熷彨鑳屽厜鐏�)
+    /// </summary>
+    public class ModelPanelIndicatorLightInfo : TemplateDeviceDataCommon
+    {
+        /// <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.GetPanelColorCommandText(DeviceMac, keyColorData, KeyNum);
+
+            return new List<string>() { command1 };
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍙戦�佸懡浠ゅぇ姒傞渶瑕佺殑鏃堕棿(绉�)
+        /// </summary>
+        /// <returns></returns>
+        public override int GetSendTime()
+        {
+            //鎵ц杩欎釜鍛戒护澶х害闇�瑕�8绉�
+            return 3;
+        }
+        /// <summary>
+        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetFailMsg()
+        {
+            //璁剧疆鎸夐敭闈㈡澘鎸囩ず鐏鑹插け璐�
+            return new List<string> { Language.StringByID(R.MyInternationalizationString.uSetPanelPilolightSettionFail) };
+        }
+    }
+
+    #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 = HdlDeviceCommonLogic.Current.GetReDeviceEpointNameCommandText(DeviceMac, DeviceEpoint, deviceEpointName);
+            return new List<string>() { command };
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍙戦�佸懡浠ゅぇ姒傞渶瑕佺殑鏃堕棿(绉�)
+        /// </summary>
+        /// <returns></returns>
+        public override int GetSendTime()
+        {
+            //鎵ц杩欎釜鍛戒护澶х害闇�瑕�3绉�
+            return 3;
+        }
+        /// <summary>
+        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetFailMsg()
+        {
+            //璁惧绔偣鍚嶇О淇敼澶辫触
+            return new List<string> { "璁惧绔偣鍚嶇О淇敼澶辫触" };
+        }
+    }
+
+    /// <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 = HdlDeviceCommonLogic.Current.GetReDeviceMacNameCommandText(DeviceMac, DeviceEpoint, deviceMacName);
+            return new List<string>() { command };
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍙戦�佸懡浠ゅぇ姒傞渶瑕佺殑鏃堕棿(绉�)
+        /// </summary>
+        /// <returns></returns>
+        public override int GetSendTime()
+        {
+            //鎵ц杩欎釜鍛戒护澶х害闇�瑕�3绉�
+            return 3;
+        }
+        /// <summary>
+        ///  鑾峰彇澶辫触鏃剁殑Msg(log鏄剧ず浣跨敤)
+        /// </summary>
+        /// <returns></returns>
+        public override List<string> GetFailMsg()
+        {
+            //璁惧鍚嶇О淇敼澶辫触
+            return new List<string> { Language.StringByID(R.MyInternationalizationString.uDeviceReNameFail) };
+        }
+    }
+
+    #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>
+        /// 瀵硅薄绫�:ModelPanelBrightnessAdjustInfo
+        /// </summary>
+        A闈㈡澘浜害璋冭妭 = 15,
+        /// <summary>
+        /// 瀵硅薄绫�:ModelPanelEnergyModeInfo
+        /// </summary>
+        A闈㈡澘鑺傝兘妯″紡 = 16,
+        /// <summary>
+        /// 涔熷彨鑳屽厜鐏� 瀵硅薄绫�:ModelPanelIndicatorLightInfo
+        /// </summary>
+        A闈㈡澘鎸囩ず鐏� = 17
+    }
+
+    #endregion
+}

--
Gitblit v1.8.0