From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期二, 30 八月 2022 09:37:38 +0800
Subject: [PATCH] 合并了IOS的代码

---
 ZigbeeApp/Shared/Phone/TemplateData/TemplateDeviceDataLogic.cs | 1760 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 880 insertions(+), 880 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/TemplateData/TemplateDeviceDataLogic.cs b/ZigbeeApp/Shared/Phone/TemplateData/TemplateDeviceDataLogic.cs
old mode 100755
new mode 100644
index c88369a..bb77545
--- a/ZigbeeApp/Shared/Phone/TemplateData/TemplateDeviceDataLogic.cs
+++ b/ZigbeeApp/Shared/Phone/TemplateData/TemplateDeviceDataLogic.cs
@@ -1,880 +1,880 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Text;
-using ZigBee.Device;
-
-namespace Shared.Phone.TemplateData
-{
-    /// <summary>
-    /// 璁惧妯℃澘鏁版嵁鐨勯�昏緫
-    /// </summary>
-    public class TemplateDeviceDataLogic
-    {
-        #region 鈻� 鍙橀噺澹版槑___________________________
-
-        /// <summary>
-        /// 璁惧妯℃澘鏁版嵁鐨勯�昏緫
-        /// </summary>
-        private static TemplateDeviceDataLogic m_Current = null;
-        /// <summary>
-        /// 璁惧妯℃澘鏁版嵁鐨勯�昏緫
-        /// </summary>
-        public static TemplateDeviceDataLogic Current
-        {
-            get
-            {
-                if (m_Current == null)
-                {
-                    m_Current = new TemplateDeviceDataLogic();
-                }
-                return m_Current;
-            }
-        }
-
-        #endregion
-
-        #region 鈻� 绐楀笜鎵嬫媺鎺у埗_______________________
-
-        /// <summary>
-        /// 娣诲姞绐楀笜鎵嬫媺鎺у埗缂撳瓨
-        /// </summary>
-        /// <param name="device">璁惧瀵硅薄</param>
-        /// <param name="bolStatu">鎵嬫媺鎺у埗鐘舵��</param>
-        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
-        public void SetCurtainHandPullControl(CommonDevice device, bool bolStatu, string receiveResult)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelCurtainHandPullControl();
-            var memoryData = (ModelCurtainHandPullControl)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绐楀笜鎵嬫媺鎺у埗, classData);
-
-            memoryData.Statu = bolStatu;
-            memoryData.ListSendTopic[0] = "SetWritableValue";
-            memoryData.ListReceiveTopic[0] = "SetWritableValue_Respon";
-            memoryData.ListReceiveResult[0] = receiveResult;
-            //淇濆瓨鏁版嵁
-            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
-        }
-
-        /// <summary>
-        /// 鑾峰彇绐楀笜鎵嬫媺鎺у埗鐘舵��(铏氭嫙浣跨敤)
-        /// </summary>
-        /// <param name="device"></param>
-        /// <returns></returns>
-        public bool GetCurtainHandPullControl(CommonDevice device)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelCurtainHandPullControl();
-            var memoryData = (ModelCurtainHandPullControl)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绐楀笜鎵嬫媺鎺у埗, classData);
-
-            return memoryData.Statu;
-        }
-
-        #endregion
-
-        #region 鈻� 绐楀笜鏂瑰悜___________________________
-
-        /// <summary>
-        /// 璁剧疆绐楀笜鐨勬柟鍚�
-        /// </summary>
-        /// <param name="device"></param>
-        /// <param name="isDirectionReversed"></param>
-        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
-        /// <returns></returns>
-        public CommonDevice.SetWritableValueResponAllData SetCurtainDirection(CommonDevice device, bool isDirectionReversed, string receiveResult)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelCurtainDirectionAndLimite();
-            var memoryData = (ModelCurtainDirectionAndLimite)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绐楀笜鏂瑰悜鍙婇檺浣�, classData);
-
-            memoryData.Direction = isDirectionReversed;
-            memoryData.ListSendTopic[0] = "SetWritableValue";
-            memoryData.ListReceiveTopic[0] = "SetWritableValue_Respon";
-            memoryData.ListReceiveResult[0] = receiveResult;
-            //淇濆瓨鏁版嵁
-            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
-
-            return new CommonDevice.SetWritableValueResponAllData { setWritableValueResponData = new CommonDevice.SetWritableValueResponData { Status = 0 } };
-        }
-
-        #endregion
-
-        #region 鈻� 绐楀笜闄愪綅___________________________
-
-        /// <summary>
-        /// 鑾峰彇寮�鍚堝笜鐨勯檺浣�
-        /// </summary>
-        /// <param name="rollershade"></param>
-        /// <param name="upLimit"></param>
-        /// <param name="downLimit"></param>
-        /// <param name="curtainLength"></param>
-        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
-        /// <returns></returns>
-        public bool SetCurtainLimitPoint(CommonDevice rollershade, int upLimit, int downLimit, int curtainLength, string receiveResult)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelCurtainDirectionAndLimite();
-            var memoryData = (ModelCurtainDirectionAndLimite)this.GetDeviceModelDataClass(rollershade.DeviceAddr, rollershade.DeviceEpoint, ModelDeviceSaveEnum.A绐楀笜鏂瑰悜鍙婇檺浣�, classData);
-            memoryData.curtainLength = curtainLength;
-            memoryData.downLimit = downLimit;
-            memoryData.upLimit = upLimit;
-
-            memoryData.ListSendTopic[0] = "SetWritableValue";
-            memoryData.ListReceiveTopic[0] = "SetWritableValue_Respon";
-            memoryData.ListReceiveResult[0] = receiveResult;
-
-            //淇濆瓨鏁版嵁
-            this.SaveDeviceMemmoryData(rollershade.DeviceAddr, rollershade.DeviceEpoint);
-
-            return true;
-        }
-
-        /// <summary>
-        /// 鑾峰彇寮�鍚堝笜鐨勯檺浣�
-        /// </summary>
-        /// <param name="rollershade"></param>
-        /// <returns></returns>
-        public ModelCurtainDirectionAndLimite GetCurtainLimitPoint(CommonDevice rollershade)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelCurtainDirectionAndLimite();
-            var memoryData = (ModelCurtainDirectionAndLimite)this.GetDeviceModelDataClass(rollershade.DeviceAddr, rollershade.DeviceEpoint, ModelDeviceSaveEnum.A绐楀笜鏂瑰悜鍙婇檺浣�, classData);
-
-            return memoryData;
-        }
-
-        #endregion
-
-        #region 鈻� 绌鸿皟鑷畾涔夋ā寮廮____________________
-
-        /// <summary>
-        /// 娣诲姞绌鸿皟鑷畾涔夋ā寮忕紦瀛�
-        /// </summary>
-        /// <param name="device">璁惧瀵硅薄</param>
-        /// <param name="data">鍊�</param>
-        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
-        public void SetAcModeSupport(CommonDevice device, int data, string receiveResult)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelAcModeSupport();
-            var memoryData = (ModelAcModeSupport)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绌鸿皟鑷畾涔夋ā寮�, classData);
-
-            memoryData.data = data;
-            memoryData.ListSendTopic[0] = "SetWritableValue";
-            memoryData.ListReceiveTopic[0] = "SetWritableValue_Respon";
-            memoryData.ListReceiveResult[0] = receiveResult;
-            //淇濆瓨鏁版嵁
-            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
-        }
-
-        /// <summary>
-        /// 鑾峰彇绌鸿皟鑷畾涔夋ā寮�(铏氭嫙浣跨敤)
-        /// </summary>
-        /// <param name="device"></param>
-        /// <returns></returns>
-        public int GetAcModeSupport(CommonDevice device)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelAcModeSupport();
-            var memoryData = (ModelAcModeSupport)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绌鸿皟鑷畾涔夋ā寮�, classData);
-
-            return memoryData.data;
-        }
-
-        #endregion
-
-        #region 鈻� 绌鸿皟鎽嗛妯″紡_______________________
-
-        /// <summary>
-        /// 娣诲姞绌鸿皟鎽嗛妯″紡缂撳瓨
-        /// </summary>
-        /// <param name="device">璁惧瀵硅薄</param>
-        /// <param name="data">鍊�</param>
-        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
-        public void SetAcSwingModeSupport(CommonDevice device, int data, string receiveResult)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelAcSwingModeSupport();
-            var memoryData = (ModelAcSwingModeSupport)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绌鸿皟鎽嗛鍔熻兘, classData);
-
-            memoryData.data = data;
-            memoryData.ListSendTopic[0] = "SetWritableValue";
-            memoryData.ListReceiveTopic[0] = "SetWritableValue_Respon";
-            memoryData.ListReceiveResult[0] = receiveResult;
-            //淇濆瓨鏁版嵁
-            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
-        }
-
-        /// <summary>
-        /// 鑾峰彇绌鸿皟鎽嗛妯″紡(铏氭嫙浣跨敤)
-        /// </summary>
-        /// <param name="device"></param>
-        /// <returns></returns>
-        public int GetAcSwingModeSupport(CommonDevice device)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelAcSwingModeSupport();
-            var memoryData = (ModelAcSwingModeSupport)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绌鸿皟鎽嗛鍔熻兘, classData);
-
-            return memoryData.data;
-        }
-
-        #endregion
-
-        #region 鈻� 璁惧缁戝畾___________________________
-
-        /// <summary>
-        /// 鑾峰彇璁惧缁戝畾鍒楄〃鐨勭紦瀛�
-        /// </summary>
-        /// <param name="device">璁惧瀵硅薄</param>
-        /// <returns></returns>
-        public List<BindObj.BindListResponseObj> GetDeviceBindList(CommonDevice device)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelDeviceBindData();
-            var memoryData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A璁惧缁戝畾鍒楄〃, classData);
-
-            return memoryData.BindList;
-        }
-
-        /// <summary>
-        /// 娣诲姞璁惧缁戝畾鍒楄〃鐨勭紦瀛�
-        /// </summary>
-        /// <param name="addBindData"></param>
-        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
-        /// <returns></returns>
-        public BindObj.AddedDeviceBindResponseAllData AddDeviceBindList(BindObj.AddBindData addBindData, string receiveResult)
-        {
-            var device = Common.LocalDevice.Current.GetDevice(addBindData.DeviceAddr, addBindData.Epoint);
-            //鑾峰彇瀵硅薄
-            var classData = new ModelDeviceBindData();
-            var memoryData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A璁惧缁戝畾鍒楄〃, classData);
-
-            //娓呯┖缁戝畾琛ㄧ殑杩斿洖鍊�
-            string clearResult = "{"
-                + SetDouMarks("Device_ID") + ":" + (int)device.Type + ","
-                + SetDouMarks("DeviceAddr") + ":" + SetDouMarks(device.DeviceAddr) + ","
-                + SetDouMarks("Epoint") + ":" + device.DeviceEpoint + ","
-                + SetDouMarks("Data_ID") + ":5006,"
-                + SetDouMarks("Data") + ": {"
-                + SetDouMarks("Result") + ": 0,"
-                + SetDouMarks("ResultRemark") + ":" + SetDouMarks("Success") + "}"
-                + "}";
-
-            if (memoryData.ListReceiveResult.Count == 1)
-            {
-                //璁惧缁戝畾鏈変笁鏉″懡浠� 绗竴鏉′负娓呯┖
-                memoryData.ListReceiveResult.Insert(0, clearResult);
-                memoryData.ListReceiveTopic.Insert(0, "Bind/ClearBindInfo_Respon");
-                memoryData.ListSendTopic.Insert(0, "Bind/ClearBindInfo");
-
-                memoryData.ListReceiveResult.Add(string.Empty);
-                memoryData.ListReceiveTopic.Add(string.Empty);
-                memoryData.ListSendTopic.Add(string.Empty);
-            }
-            else
-            {
-                memoryData.ListReceiveResult[0] = clearResult;
-                memoryData.ListReceiveTopic[0] = "Bind/ClearBindInfo_Respon";
-                memoryData.ListSendTopic[0] = "Bind/ClearBindInfo";
-            }
-
-            memoryData.ListSendTopic[2] = "Bind/SetBind";
-            memoryData.ListReceiveTopic[2] = "Bind/SetBind_Respon";
-            memoryData.ListReceiveResult[2] = receiveResult;
-
-            var reData = new BindObj.AddedDeviceBindResponseAllData();
-            reData.addedDeviceBindResponseData = new BindObj.AddedDeviceBindResponseData();
-            reData.addedDeviceBindResponseData.Result = 0;
-
-            foreach (var data in addBindData.BindList)
-            {
-                bool canAdd = true;
-                for (int i = 0; i < memoryData.BindList.Count; i++)
-                {
-                    var bindData = memoryData.BindList[i];
-                    //濡傛灉鏄澶�
-                    if (bindData.BindType == 0 && data.BindType == 0
-                        && bindData.BindMacAddr == data.BindMacAddr
-                        && bindData.BindEpoint == data.BindEpoint
-                        && bindData.BindCluster == data.BindCluster)
-                    {
-                        //鍚屼竴涓笢瑗夸笉闇�瑕佹浛鎹�
-                        canAdd = false;
-                        reData.addedDeviceBindResponseData.BindList.Add(bindData);
-                        break;
-                    }
-                    //濡傛灉鏄満鏅�
-                    if (bindData.BindType == 2 && data.BindType == 1
-                        && bindData.BindScenesId == data.BindScenesId
-                        && bindData.BindCluster == data.BindCluster)
-                    {
-                        //鍚屼竴涓笢瑗夸笉闇�瑕佹浛鎹�
-                        canAdd = false;
-                        reData.addedDeviceBindResponseData.BindList.Add(bindData);
-                        break;
-                    }
-                }
-                if (canAdd == true)
-                {
-                    //娣诲姞鏂扮殑缂撳瓨
-                    var newData = new BindObj.BindListResponseObj();
-                    memoryData.BindList.Add(newData);
-
-                    newData.BindCluster = data.BindCluster;
-                    newData.BindEpoint = data.BindEpoint;
-                    newData.BindMacAddr = data.BindMacAddr;
-                    newData.BindScenesId = data.BindScenesId;
-                    newData.BindType = data.BindType == 0 ? 0 : 2;
-                    reData.addedDeviceBindResponseData.BindList.Add(newData);
-                }
-            }
-            //淇濆瓨鏁版嵁
-            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
-
-            return reData;
-        }
-
-        /// <summary>
-        /// 鍒犻櫎璁惧缁戝畾鍒楄〃鐨勭紦瀛�
-        /// </summary>
-        /// <param name="delDeviceBindData"></param>
-        /// <returns></returns>
-        public BindObj.DelDeviceBindResponseAllData DeleteDeviceBindList(BindObj.DelDeviceBindData delDeviceBindData)
-        {
-            var device = Common.LocalDevice.Current.GetDevice(delDeviceBindData.DeviceAddr, delDeviceBindData.Epoint);
-            //鑾峰彇瀵硅薄
-            var classData = new ModelDeviceBindData();
-            var memoryData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A璁惧缁戝畾鍒楄〃, classData);
-
-            //杩斿洖鍊�
-            var reData = new BindObj.DelDeviceBindResponseAllData();
-            reData.removeBindResultResponseData = new BindObj.RemoveBindResultResponseData();
-            reData.removeBindResultResponseData.Result = 0;
-
-            reData.delDeviceBindResponseData = new BindObj.DelDeviceBindResponseData();
-
-            foreach (var data in delDeviceBindData.RemoveBindList)
-            {
-                for (int i = 0; i < memoryData.BindList.Count; i++)
-                {
-                    var bindData = memoryData.BindList[i];
-                    //濡傛灉鏄澶�
-                    if (bindData.BindType == 0 && data.BindType == 0
-                        && bindData.BindMacAddr == data.BindMacAddr
-                        && bindData.BindEpoint == data.BindEpoint
-                        && bindData.BindCluster == data.BindCluster)
-                    {
-                        //绉婚櫎缂撳瓨
-                        memoryData.BindList.RemoveAt(i);
-                        break;
-                    }
-                    //濡傛灉鏄満鏅�
-                    if (bindData.BindType == 2 && data.BindType == 1
-                        && bindData.BindScenesId == data.BindScenesId
-                        && bindData.BindCluster == data.BindCluster)
-                    {
-                        //绉婚櫎缂撳瓨
-                        memoryData.BindList.RemoveAt(i);
-                        break;
-                    }
-                }
-                var removeData = new BindObj.RemoveBindListResponseObj();
-                reData.delDeviceBindResponseData.RemoveBindList.Add(removeData);
-                removeData.BindCluster = data.BindCluster;
-                removeData.BindEpoint = data.BindEpoint;
-                removeData.BindMacAddr = data.BindMacAddr;
-                removeData.BindScenesId = data.BindScenesId;
-                removeData.BindType = data.BindType == 0 ? 0 : 2;
-                removeData.Result = 0;
-            }
-            //淇濆瓨鏁版嵁
-            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
-            return reData;
-        }
-
-        /// <summary>
-        /// 鍒犻櫎鎸囧畾璁惧鐨勫叏閮ㄧ粦瀹�
-        /// </summary>
-        /// <param name="device"></param>
-        /// <returns></returns>
-        public BindObj.ClearBindInfoResponseAllData ClearDeviceAllBind(CommonDevice device)
-        {
-            string mainkey = Common.LocalDevice.Current.GetDeviceMainKeys(device);
-            if (TemplateCommonLogic.Current.modelData.dicDeviceTemplateData.ContainsKey(mainkey) == true)
-            {
-                //绉婚櫎鍏ㄩ儴鐨� 璁惧缁戝畾鍒楄〃 鏁版嵁
-                var listBind = TemplateCommonLogic.Current.modelData.dicDeviceTemplateData[mainkey];
-                for (int i = 0; i < listBind.Count; i++)
-                {
-                    if (listBind[i].DataSaveDiv == ModelDeviceSaveEnum.A璁惧缁戝畾鍒楄〃)
-                    {
-                        ((ModelDeviceBindData)listBind[i]).BindList.Clear();
-                    }
-                }
-            }
-            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
-
-            return new BindObj.ClearBindInfoResponseAllData
-            {
-                clearBindInfoResponseData = new BindObj.ClearBindInfoResponseData { Result = 0 }
-            };
-        }
-
-        /// <summary>
-        /// 閰嶇疆鎸夐敭鐨勫姛鑳芥ā寮�
-        /// </summary>
-        /// <param name="device"></param>
-        /// <param name="value"></param>
-        /// <param name="clusterID"></param>
-        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
-        /// <returns></returns>
-        public CommonDevice.SetWritableValueResponAllData ConfigurePanelKeyModel(CommonDevice device, Panel.KeyMode value, int clusterID, string receiveResult)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelDeviceBindData();
-            var memoryData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A璁惧缁戝畾鍒楄〃, classData);
-            memoryData.keyMode = value;
-            memoryData.keyModeClusterID = clusterID;
-
-            if (memoryData.ListReceiveResult.Count == 1)
-            {
-                if (memoryData.ListReceiveResult.Count == 1)
-                {
-                    //璁惧缁戝畾鏈変笁鏉″懡浠� 绗竴鏉′负娓呯┖
-                    memoryData.ListReceiveResult.Insert(0, string.Empty);
-                    memoryData.ListReceiveTopic.Insert(0, string.Empty);
-                    memoryData.ListSendTopic.Insert(0, string.Empty);
-
-                    memoryData.ListReceiveResult.Add(string.Empty);
-                    memoryData.ListReceiveTopic.Add(string.Empty);
-                    memoryData.ListSendTopic.Add(string.Empty);
-                }
-            }
-            memoryData.ListSendTopic[1] = "SetWritableValue";
-            memoryData.ListReceiveTopic[1] = "SetWritableValue_Respon";
-            memoryData.ListReceiveResult[1] = receiveResult;
-
-            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
-
-            return new CommonDevice.SetWritableValueResponAllData
-            {
-                setWritableValueResponData = new CommonDevice.SetWritableValueResponData { Status = 0 }
-            };
-        }
-
-        /// <summary>
-        /// 鑾峰彇鎸夐敭鐨勫姛鑳芥ā寮�
-        /// </summary>
-        /// <param name="device"></param>
-        /// <returns></returns>
-        public Panel.PanelConfigureInfoResponAllData ReadPanelConfigureKeyModel(CommonDevice device)
-        {
-            var classData = new ModelDeviceBindData();
-            var memoryData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A璁惧缁戝畾鍒楄〃, classData);
-
-            var data = new Panel.PanelConfigureInfoResponAllData();
-            data.deviceStatusReportData = new CommonDevice.DeviceStatusReportData { CluterID = memoryData.keyModeClusterID };
-
-            var dataAttri = new CommonDevice.AttributeDataObj();
-            dataAttri.AttributeId = (int)AttriButeId.HdlKey;
-            dataAttri.AttriButeData = (int)memoryData.keyMode;
-            data.deviceStatusReportData.AttriBute.Add(dataAttri);
-
-            return data;
-        }
-
-        #endregion
-
-        #region 鈻� Pir浼犳劅鍣╛_________________________
-
-        /// <summary>
-        /// 鑾峰彇Pir浼犳劅鍣ㄧ殑閰嶇疆
-        /// </summary>
-        /// <param name="device"></param>
-        /// <returns></returns>
-        public IASZone.ParamatesInfo GetPirSensorLightSettion(string deviceMac, int deviceEpoint)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelPirSensorSettion();
-            var memoryData = (ModelPirSensorSettion)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.APir閰嶇疆, classData);
-
-            var localData = new IASZone.ParamatesInfo();
-            localData.configureParamates = new IASZone.ConfigureParamates();
-            localData.configureParamates.controlDevEnable = memoryData.pirConfigure.controlDevEnable;
-            localData.configureParamates.dimmerLevel = memoryData.pirConfigure.dimmerLevel;
-            localData.configureParamates.dimmerOffTime = memoryData.pirConfigure.dimmerOffTime;
-            localData.configureParamates.dimmerOnTime = memoryData.pirConfigure.dimmerOnTime;
-            localData.configureParamates.iasReportPeriod = memoryData.pirConfigure.iasReportPeriod;
-            localData.configureParamates.levelEnable = memoryData.pirConfigure.levelEnable;
-            localData.configureParamates.levelSize = memoryData.pirConfigure.levelSize;
-            localData.configureParamates.mode = memoryData.pirConfigure.mode;
-            localData.configureParamates.transitionTime = memoryData.pirConfigure.transitionTime;
-            localData.configureParamates.type = memoryData.pirConfigure.type;
-
-            return localData;
-        }
-
-        /// <summary>
-        /// 璁剧疆Pir浼犳劅鍣ㄧ殑閰嶇疆
-        /// </summary>
-        /// <param name="device"></param>
-        /// <param name="configureParamates"></param>
-        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
-        /// <returns></returns>
-        public IASZone.ResponseAllData SetPirSensorLightSettion(string deviceMac, int deviceEpoint, IASZone.ConfigureParamates configureParamates, string receiveResult)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelPirSensorSettion();
-            var memoryData = (ModelPirSensorSettion)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.APir閰嶇疆, classData);
-
-            memoryData.pirConfigure = configureParamates;
-
-            memoryData.ListSendTopic[0] = "ClientDataPassthrough";
-            memoryData.ListReceiveTopic[0] = "ZbDataPassthrough";
-            memoryData.ListReceiveResult[0] = receiveResult;
-
-            this.SaveDeviceMemmoryData(deviceMac, deviceEpoint);
-
-            return new CommonDevice.ResponseAllData { responseData = new CommonDevice.ResponseData { status = 0 } };
-        }
-
-        #endregion
-
-        #region 鈻� 闈㈡澘闇囧姩鍔熻兘_______________________
-
-        /// <summary>
-        /// 鑾峰彇闈㈡澘闇囧姩鍔熻兘
-        /// </summary>
-        /// <param name="device"></param>
-        /// <returns></returns>
-        public UserCenter.HdlDevicePanelLogic.PanelVibrationInfo GetPanelVibrationInfo(string deviceMac, int deviceEpoint)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelPanelVibrationInfo();
-            var memoryData = (ModelPanelVibrationInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘闇囧姩鍔熻兘, classData);
-
-            var data = new UserCenter.HdlDevicePanelLogic.PanelVibrationInfo();
-            data.A闇囧姩浣胯兘 = memoryData.vibrationInfo.A闇囧姩浣胯兘;
-            data.A闇囧姩寮哄害 = memoryData.vibrationInfo.A闇囧姩寮哄害;
-            data.A闇囧姩鏃堕棿 = memoryData.vibrationInfo.A闇囧姩鏃堕棿;
-
-            return data;
-        }
-
-        /// <summary>
-        /// 璁剧疆闈㈡澘闇囧姩鍔熻兘
-        /// </summary>
-        /// <param name="device"></param>
-        /// <param name="datainfo"></param>
-        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
-        /// <returns></returns>
-        public bool SetPanelVibrationInfo(string deviceMac, int deviceEpoint, UserCenter.HdlDevicePanelLogic.PanelVibrationInfo datainfo, string receiveResult)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelPanelVibrationInfo();
-            var memoryData = (ModelPanelVibrationInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘闇囧姩鍔熻兘, classData);
-            memoryData.vibrationInfo = datainfo;
-
-            memoryData.ListSendTopic[0] = "ClientDataPassthrough";
-            memoryData.ListReceiveTopic[0] = "ZbDataPassthrough";
-            memoryData.ListReceiveResult[0] = receiveResult;
-
-            this.SaveDeviceMemmoryData(deviceMac, deviceEpoint);
-
-            return true;
-        }
-        #endregion
-
-        #region 鈻� 璁惧鍚嶇О___________________________
-
-        /// <summary>
-        /// 淇敼璁惧Mac鍚嶇О
-        /// </summary>
-        /// <param name="device"></param>
-        /// <param name="macName"></param>
-        /// <returns></returns> 
-        public CommonDevice.RenameDeviceMacNameAllData ReDeviceMacName(CommonDevice device, string macName)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelDeviceMacNameInfo();
-            var memoryData = (ModelDeviceMacNameInfo)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A璁惧鍚嶇О, classData);
-            memoryData.deviceMacName = macName;
-
-            //璁惧杩斿洖鐨勭粨鏋�
-            var receiveResult = "{"
-            + SetDouMarks("DeviceAddr") + ": " + SetDouMarks(device.DeviceAddr) + ","
-            + SetDouMarks("Data_ID") + ": 100,"
-            + SetDouMarks("Data") + ": {"
-            + SetDouMarks("Result") + ": 0,"
-            + SetDouMarks("MacName") + ":" + SetDouMarks(macName) + "}"
-            + "}";
-
-            memoryData.ListSendTopic[0] = "MacRename";
-            memoryData.ListReceiveTopic[0] = "MacRename_Respon";
-            memoryData.ListReceiveResult[0] = receiveResult;
-
-            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
-
-            return new CommonDevice.RenameDeviceMacNameAllData
-            {
-                renameDeviceMacNameData = new CommonDevice.RenameDeviceMacNameData
-                {
-                    Result = 0,
-                    MacName = macName
-                }
-            };
-        }
-
-        /// <summary>
-        /// 淇敼璁惧绔偣鍚嶇О
-        /// </summary>
-        /// <param name="device"></param>
-        /// <param name="macName"></param>
-        /// <returns></returns>
-        public CommonDevice.DeviceRenameAllData ReDeviceEpointName(CommonDevice device, string deviceName)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelDeviceEpointNameInfo();
-            var memoryData = (ModelDeviceEpointNameInfo)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绔偣鍚嶇О, classData);
-            memoryData.deviceEpointName = deviceName;
-
-            //璁惧杩斿洖鐨勭粨鏋�
-            var receiveResult = "{"
-            + SetDouMarks("Device_ID") + ": " + (int)device.Type + ","
-            + SetDouMarks("DeviceAddr") + ": " + SetDouMarks(device.DeviceAddr) + ","
-            + SetDouMarks("Epoint") + ": " + device.DeviceEpoint + ","
-            + SetDouMarks("Data_ID") + ": 96,"
-            + SetDouMarks("Data") + ": {"
-            + SetDouMarks("Result") + ": 0,"
-            + SetDouMarks("DeviceName") + ":" + SetDouMarks(deviceName) + "}"
-            + "}";
-
-            memoryData.ListSendTopic[0] = "DeviceRename";
-            memoryData.ListReceiveTopic[0] = "DeviceRenameRespon";
-            memoryData.ListReceiveResult[0] = receiveResult;
-
-            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
-
-            return new CommonDevice.DeviceRenameAllData
-            {
-                deviceRenameData = new CommonDevice.DeviceRenameResponseData
-                {
-                    Result = 0,
-                    DeviceName = deviceName
-                }
-            };
-        }
-
-        #endregion
-
-        #region 鈻� 闈㈡澘鑳屽厜鐏缃甠____________________
-
-        /// <summary>
-        /// 鑾峰彇璁惧浜害閰嶇疆锛坲i鍙寒搴﹁皟鑺�,浣跨敤杩斿洖鍊肩殑panelDirectionsLevel锛�
-        /// </summary>
-        /// <param name="device"></param>
-        /// <returns></returns>
-        public Panel.PanelSwitchLevelInfo GetDeviceLightSettion(string deviceMac, int deviceEpoint)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelPanelBrightnessAdjustInfo();
-            var memoryData = (ModelPanelBrightnessAdjustInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘浜害璋冭妭, classData);
-
-            var data = new Panel.PanelSwitchLevelInfo();
-            data.panelBacklightLevel = memoryData.panelBacklightLevel == -1 ? 0 : memoryData.panelBacklightLevel;
-            data.panelDirectionsLevel = memoryData.panelDirectionsLevel == -1 ? 0 : memoryData.panelDirectionsLevel;
-            return data;
-        }
-
-        /// <summary>
-        /// 璁剧疆璁惧浜害锛坲i鍙寒搴﹁皟鑺傦級
-        /// </summary>
-        /// <param name="panel">璁惧瀵硅薄</param>
-        /// <param name="directionsLevel">0-100(杩欎釜鏄偣鍑诲悗鐨勫��)</param>
-        /// <param name="backlightLevel">0-100(杩欎釜鏄偣鍑诲墠鐨勫��)</param>
-        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
-        /// <returns></returns>
-        public bool SetDeviceLightSettion(string deviceMac, int deviceEpoint, int directionsLevel, int backlightLevel, string receiveResult)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelPanelBrightnessAdjustInfo();
-            var memoryData = (ModelPanelBrightnessAdjustInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘浜害璋冭妭, classData);
-            memoryData.panelBacklightLevel = backlightLevel;
-            memoryData.panelDirectionsLevel = directionsLevel;
-
-            memoryData.ListSendTopic[0] = "ClientDataPassthrough";
-            memoryData.ListReceiveTopic[0] = "ZbDataPassthrough";
-            memoryData.ListReceiveResult[0] = receiveResult;
-
-            this.SaveDeviceMemmoryData(deviceMac, deviceEpoint);
-
-            return true;
-        }
-
-        /// <summary>
-        /// 鑾峰彇璁惧鑺傝兘妯″紡鐨勯厤缃姸鎬�(ui鍙妭鑳芥ā寮�)
-        /// </summary>
-        /// <param name="device"></param>
-        /// <returns></returns>
-        public Panel.PanelSaveEnergyModeInfo GetDeviceEnergyConservationMode(string deviceMac, int deviceEpoint)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelPanelEnergyModeInfo();
-            var memoryData = (ModelPanelEnergyModeInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘鑺傝兘妯″紡, classData);
-
-            var data = new Panel.PanelSaveEnergyModeInfo();
-            data.enable = memoryData.energyModeInfo.enable;
-            data.level = memoryData.energyModeInfo.level == -1 ? 0 : memoryData.energyModeInfo.level;
-            data.time = memoryData.energyModeInfo.time == -1 ? 0 : memoryData.energyModeInfo.time;
-            return data;
-        }
-
-        /// <summary>
-        /// 璁剧疆璁惧鐨勮妭鑳芥ā寮�(ui鍙妭鑳芥ā寮�)
-        /// </summary>
-        /// <param name="device">璁惧瀵硅薄</param>
-        /// <param name="modeEnable">鑺傝兘妯″紡鏄惁鏈夋晥</param>
-        /// <param name="modeTime">鏃犳搷浣滆繘鍏ヨ妭鑳芥ā寮忔椂闂� 0-255</param>
-        /// <param name="level">鑺傝兘妯″紡浜害:0-100</param>
-        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
-        /// <returns></returns>
-        public bool SetDeviceEnergyConservationMode(string deviceMac, int deviceEpoint, bool modeEnable, int modeTime, int level, string receiveResult)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelPanelEnergyModeInfo();
-            var memoryData = (ModelPanelEnergyModeInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘鑺傝兘妯″紡, classData);
-            memoryData.energyModeInfo.enable = modeEnable;
-            memoryData.energyModeInfo.time = modeTime;
-            memoryData.energyModeInfo.level = level;
-
-            memoryData.ListSendTopic[0] = "ClientDataPassthrough";
-            memoryData.ListReceiveTopic[0] = "ZbDataPassthrough";
-            memoryData.ListReceiveResult[0] = receiveResult;
-
-            this.SaveDeviceMemmoryData(deviceMac, deviceEpoint);
-
-            return true;
-        }
-
-        /// <summary>
-        /// 鑾峰彇鎸夐敭鎸囩ず鐏紑鍏抽鑹�.
-        /// </summary>
-        /// <param name="device"></param>
-        /// <param name="keyNum"></param>
-        /// <returns></returns>
-        public Panel.KeyColorDataResponseAllData GetPanelColorInfo(string deviceMac, int deviceEpoint, Panel.KeyNum keyNum)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelPanelIndicatorLightInfo();
-            var memoryData = (ModelPanelIndicatorLightInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘鎸囩ず鐏�, classData);
-
-            var data = new Panel.KeyColorDataResponseAllData();
-            data.keyColorData = new Panel.KeyColorData();
-            data.keyColorData.CloseColorB = string.IsNullOrEmpty(memoryData.keyColorData.CloseColorB) == true ? "0" : memoryData.keyColorData.CloseColorB;
-            data.keyColorData.CloseColorG = string.IsNullOrEmpty(memoryData.keyColorData.CloseColorG) == true ? "0" : memoryData.keyColorData.CloseColorG;
-            data.keyColorData.CloseColorR = string.IsNullOrEmpty(memoryData.keyColorData.CloseColorR) == true ? "0" : memoryData.keyColorData.CloseColorR;
-            data.keyColorData.OpenColorB = string.IsNullOrEmpty(memoryData.keyColorData.OpenColorB) == true ? "0" : memoryData.keyColorData.OpenColorB;
-            data.keyColorData.OpenColorG = string.IsNullOrEmpty(memoryData.keyColorData.OpenColorG) == true ? "0" : memoryData.keyColorData.OpenColorG;
-            data.keyColorData.OpenColorR = string.IsNullOrEmpty(memoryData.keyColorData.OpenColorR) == true ? "0" : memoryData.keyColorData.OpenColorR;
-            data.keyColorData.keyNum = keyNum;
-
-            return data;
-        }
-
-        /// <summary>
-        /// 閰嶇疆鎸夐敭鎸囩ず鐏鑹�
-        /// </summary>
-        /// <param name="device"></param>
-        /// <param name="keyColorData"></param>
-        /// <param name="keyNumStatus"></param>
-        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
-        /// <returns></returns>
-        public CommonDevice.ResponseAllData SetPanelColorInfo(string deviceMac, int deviceEpoint, Panel.KeyColorData keyColorData, Panel.KeyNumStatus keyNumStatus, string receiveResult)
-        {
-            //鑾峰彇瀵硅薄
-            var classData = new ModelPanelIndicatorLightInfo();
-            var memoryData = (ModelPanelIndicatorLightInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘鎸囩ず鐏�, classData);
-
-            memoryData.keyColorData.keyNum = keyColorData.keyNum;
-            memoryData.keyColorData.OpenColorB = keyColorData.OpenColorB;
-            memoryData.keyColorData.OpenColorG = keyColorData.OpenColorG;
-            memoryData.keyColorData.OpenColorR = keyColorData.OpenColorR;
-            memoryData.keyColorData.CloseColorB = keyColorData.CloseColorB;
-            memoryData.keyColorData.CloseColorG = keyColorData.CloseColorG;
-            memoryData.keyColorData.CloseColorR = keyColorData.CloseColorR;
-
-            memoryData.KeyNum.Key1 = keyNumStatus.Key1;
-            memoryData.KeyNum.Key2 = keyNumStatus.Key2;
-            memoryData.KeyNum.Key3 = keyNumStatus.Key3;
-            memoryData.KeyNum.Key4 = keyNumStatus.Key4;
-            memoryData.KeyNum.Key5 = keyNumStatus.Key5;
-            memoryData.KeyNum.Key6 = keyNumStatus.Key6;
-            memoryData.KeyNum.Key7 = keyNumStatus.Key7;
-            memoryData.KeyNum.Key8 = keyNumStatus.Key8;
-            memoryData.KeyNum.Key9 = keyNumStatus.Key9;
-            memoryData.KeyNum.Key10 = keyNumStatus.Key10;
-            memoryData.KeyNum.Key11 = keyNumStatus.Key11;
-            memoryData.KeyNum.Key12 = keyNumStatus.Key12;
-            memoryData.KeyNum.Key13 = keyNumStatus.Key13;
-            memoryData.KeyNum.Key14 = keyNumStatus.Key14;
-            memoryData.KeyNum.Key15 = keyNumStatus.Key15;
-            memoryData.KeyNum.Key16 = keyNumStatus.Key16;
-
-            memoryData.ListSendTopic[0] = "ClientDataPassthrough";
-            memoryData.ListReceiveTopic[0] = "ZbDataPassthrough";
-            memoryData.ListReceiveResult[0] = receiveResult;
-
-            this.SaveDeviceMemmoryData(deviceMac, deviceEpoint);
-
-            return new CommonDevice.ResponseAllData
-            {
-                responseData = new CommonDevice.ResponseData
-                { status = 0 }
-            };
-        }
-
-        #endregion
-
-        #region 鈻� 淇濆瓨璁惧缂撳瓨_______________________
-
-        /// <summary>
-        /// 淇濆瓨璁惧缂撳瓨(鑰冭檻鏈夌殑璁惧鐢ㄧ殑鏄�200绔偣,鎵�浠ヨ繖閲屾渶濂戒笉鐢ㄨ澶囧璞′綔涓哄弬鏁�)
-        /// </summary>
-        /// <param name="deviceMac"></param>
-        /// <param name="deviceEpoint"></param>
-        public void SaveDeviceMemmoryData(string deviceMac, int deviceEpoint)
-        {
-            //浠g爜绉诲姩鍒板埆鐨勬枃浠朵腑浜�
-            TemplateCommonLogic.Current.SaveDeviceMemmoryData(deviceMac, deviceEpoint);
-        }
-
-        #endregion
-
-        #region 鈻� 涓�鑸柟娉昣__________________________
-
-        /// <summary>
-        /// 鑾峰彇璁惧淇濆瓨鐨勬ā鏉垮璞�(鑰冭檻鏈夌殑璁惧鐢ㄧ殑鏄�200绔偣,鎵�浠ヨ繖閲屾渶濂戒笉鐢ㄨ澶囧璞′綔涓哄弬鏁�)
-        /// </summary>
-        /// <param name="deviceMac"></param>
-        /// <param name="deviceEpoint"></param>
-        /// <param name="saveEnum"></param>
-        /// <returns></returns>
-        private TemplateDeviceDataCommon GetDeviceModelDataClass(string deviceMac, int deviceEpoint, ModelDeviceSaveEnum saveEnum, TemplateDeviceDataCommon newClass)
-        {
-            //浠g爜绉诲姩鍒板埆鐨勬枃浠朵腑浜�
-            return TemplateCommonLogic.Current.GetDeviceModelDataClass(deviceMac, deviceEpoint, saveEnum, newClass);
-        }
-
-        /// <summary>
-        /// 娣诲姞鍙屽紩鍙�
-        /// </summary>
-        /// <param name="i_text"></param>
-        /// <returns></returns>
-        private string SetDouMarks(string i_text)
-        {
-            return UserCenter.UserCenterResourse.douMarks + i_text + UserCenter.UserCenterResourse.douMarks;
-        }
-
-        #endregion
-    }
-}
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using ZigBee.Device;
+
+namespace Shared.Phone.TemplateData
+{
+    /// <summary>
+    /// 璁惧妯℃澘鏁版嵁鐨勯�昏緫
+    /// </summary>
+    public class TemplateDeviceDataLogic
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 璁惧妯℃澘鏁版嵁鐨勯�昏緫
+        /// </summary>
+        private static TemplateDeviceDataLogic m_Current = null;
+        /// <summary>
+        /// 璁惧妯℃澘鏁版嵁鐨勯�昏緫
+        /// </summary>
+        public static TemplateDeviceDataLogic Current
+        {
+            get
+            {
+                if (m_Current == null)
+                {
+                    m_Current = new TemplateDeviceDataLogic();
+                }
+                return m_Current;
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 绐楀笜鎵嬫媺鎺у埗_______________________
+
+        /// <summary>
+        /// 娣诲姞绐楀笜鎵嬫媺鎺у埗缂撳瓨
+        /// </summary>
+        /// <param name="device">璁惧瀵硅薄</param>
+        /// <param name="bolStatu">鎵嬫媺鎺у埗鐘舵��</param>
+        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
+        public void SetCurtainHandPullControl(CommonDevice device, bool bolStatu, string receiveResult)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelCurtainHandPullControl();
+            var memoryData = (ModelCurtainHandPullControl)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绐楀笜鎵嬫媺鎺у埗, classData);
+
+            memoryData.Statu = bolStatu;
+            memoryData.ListSendTopic[0] = "SetWritableValue";
+            memoryData.ListReceiveTopic[0] = "SetWritableValue_Respon";
+            memoryData.ListReceiveResult[0] = receiveResult;
+            //淇濆瓨鏁版嵁
+            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
+        }
+
+        /// <summary>
+        /// 鑾峰彇绐楀笜鎵嬫媺鎺у埗鐘舵��(铏氭嫙浣跨敤)
+        /// </summary>
+        /// <param name="device"></param>
+        /// <returns></returns>
+        public bool GetCurtainHandPullControl(CommonDevice device)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelCurtainHandPullControl();
+            var memoryData = (ModelCurtainHandPullControl)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绐楀笜鎵嬫媺鎺у埗, classData);
+
+            return memoryData.Statu;
+        }
+
+        #endregion
+
+        #region 鈻� 绐楀笜鏂瑰悜___________________________
+
+        /// <summary>
+        /// 璁剧疆绐楀笜鐨勬柟鍚�
+        /// </summary>
+        /// <param name="device"></param>
+        /// <param name="isDirectionReversed"></param>
+        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
+        /// <returns></returns>
+        public CommonDevice.SetWritableValueResponAllData SetCurtainDirection(CommonDevice device, bool isDirectionReversed, string receiveResult)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelCurtainDirectionAndLimite();
+            var memoryData = (ModelCurtainDirectionAndLimite)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绐楀笜鏂瑰悜鍙婇檺浣�, classData);
+
+            memoryData.Direction = isDirectionReversed;
+            memoryData.ListSendTopic[0] = "SetWritableValue";
+            memoryData.ListReceiveTopic[0] = "SetWritableValue_Respon";
+            memoryData.ListReceiveResult[0] = receiveResult;
+            //淇濆瓨鏁版嵁
+            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
+
+            return new CommonDevice.SetWritableValueResponAllData { setWritableValueResponData = new CommonDevice.SetWritableValueResponData { Status = 0 } };
+        }
+
+        #endregion
+
+        #region 鈻� 绐楀笜闄愪綅___________________________
+
+        /// <summary>
+        /// 鑾峰彇寮�鍚堝笜鐨勯檺浣�
+        /// </summary>
+        /// <param name="rollershade"></param>
+        /// <param name="upLimit"></param>
+        /// <param name="downLimit"></param>
+        /// <param name="curtainLength"></param>
+        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
+        /// <returns></returns>
+        public bool SetCurtainLimitPoint(CommonDevice rollershade, int upLimit, int downLimit, int curtainLength, string receiveResult)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelCurtainDirectionAndLimite();
+            var memoryData = (ModelCurtainDirectionAndLimite)this.GetDeviceModelDataClass(rollershade.DeviceAddr, rollershade.DeviceEpoint, ModelDeviceSaveEnum.A绐楀笜鏂瑰悜鍙婇檺浣�, classData);
+            memoryData.curtainLength = curtainLength;
+            memoryData.downLimit = downLimit;
+            memoryData.upLimit = upLimit;
+
+            memoryData.ListSendTopic[0] = "SetWritableValue";
+            memoryData.ListReceiveTopic[0] = "SetWritableValue_Respon";
+            memoryData.ListReceiveResult[0] = receiveResult;
+
+            //淇濆瓨鏁版嵁
+            this.SaveDeviceMemmoryData(rollershade.DeviceAddr, rollershade.DeviceEpoint);
+
+            return true;
+        }
+
+        /// <summary>
+        /// 鑾峰彇寮�鍚堝笜鐨勯檺浣�
+        /// </summary>
+        /// <param name="rollershade"></param>
+        /// <returns></returns>
+        public ModelCurtainDirectionAndLimite GetCurtainLimitPoint(CommonDevice rollershade)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelCurtainDirectionAndLimite();
+            var memoryData = (ModelCurtainDirectionAndLimite)this.GetDeviceModelDataClass(rollershade.DeviceAddr, rollershade.DeviceEpoint, ModelDeviceSaveEnum.A绐楀笜鏂瑰悜鍙婇檺浣�, classData);
+
+            return memoryData;
+        }
+
+        #endregion
+
+        #region 鈻� 绌鸿皟鑷畾涔夋ā寮廮____________________
+
+        /// <summary>
+        /// 娣诲姞绌鸿皟鑷畾涔夋ā寮忕紦瀛�
+        /// </summary>
+        /// <param name="device">璁惧瀵硅薄</param>
+        /// <param name="data">鍊�</param>
+        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
+        public void SetAcModeSupport(CommonDevice device, int data, string receiveResult)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelAcModeSupport();
+            var memoryData = (ModelAcModeSupport)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绌鸿皟鑷畾涔夋ā寮�, classData);
+
+            memoryData.data = data;
+            memoryData.ListSendTopic[0] = "SetWritableValue";
+            memoryData.ListReceiveTopic[0] = "SetWritableValue_Respon";
+            memoryData.ListReceiveResult[0] = receiveResult;
+            //淇濆瓨鏁版嵁
+            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
+        }
+
+        /// <summary>
+        /// 鑾峰彇绌鸿皟鑷畾涔夋ā寮�(铏氭嫙浣跨敤)
+        /// </summary>
+        /// <param name="device"></param>
+        /// <returns></returns>
+        public int GetAcModeSupport(CommonDevice device)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelAcModeSupport();
+            var memoryData = (ModelAcModeSupport)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绌鸿皟鑷畾涔夋ā寮�, classData);
+
+            return memoryData.data;
+        }
+
+        #endregion
+
+        #region 鈻� 绌鸿皟鎽嗛妯″紡_______________________
+
+        /// <summary>
+        /// 娣诲姞绌鸿皟鎽嗛妯″紡缂撳瓨
+        /// </summary>
+        /// <param name="device">璁惧瀵硅薄</param>
+        /// <param name="data">鍊�</param>
+        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
+        public void SetAcSwingModeSupport(CommonDevice device, int data, string receiveResult)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelAcSwingModeSupport();
+            var memoryData = (ModelAcSwingModeSupport)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绌鸿皟鎽嗛鍔熻兘, classData);
+
+            memoryData.data = data;
+            memoryData.ListSendTopic[0] = "SetWritableValue";
+            memoryData.ListReceiveTopic[0] = "SetWritableValue_Respon";
+            memoryData.ListReceiveResult[0] = receiveResult;
+            //淇濆瓨鏁版嵁
+            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
+        }
+
+        /// <summary>
+        /// 鑾峰彇绌鸿皟鎽嗛妯″紡(铏氭嫙浣跨敤)
+        /// </summary>
+        /// <param name="device"></param>
+        /// <returns></returns>
+        public int GetAcSwingModeSupport(CommonDevice device)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelAcSwingModeSupport();
+            var memoryData = (ModelAcSwingModeSupport)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绌鸿皟鎽嗛鍔熻兘, classData);
+
+            return memoryData.data;
+        }
+
+        #endregion
+
+        #region 鈻� 璁惧缁戝畾___________________________
+
+        /// <summary>
+        /// 鑾峰彇璁惧缁戝畾鍒楄〃鐨勭紦瀛�
+        /// </summary>
+        /// <param name="device">璁惧瀵硅薄</param>
+        /// <returns></returns>
+        public List<BindObj.BindListResponseObj> GetDeviceBindList(CommonDevice device)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelDeviceBindData();
+            var memoryData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A璁惧缁戝畾鍒楄〃, classData);
+
+            return memoryData.BindList;
+        }
+
+        /// <summary>
+        /// 娣诲姞璁惧缁戝畾鍒楄〃鐨勭紦瀛�
+        /// </summary>
+        /// <param name="addBindData"></param>
+        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
+        /// <returns></returns>
+        public BindObj.AddedDeviceBindResponseAllData AddDeviceBindList(BindObj.AddBindData addBindData, string receiveResult)
+        {
+            var device = Common.LocalDevice.Current.GetDevice(addBindData.DeviceAddr, addBindData.Epoint);
+            //鑾峰彇瀵硅薄
+            var classData = new ModelDeviceBindData();
+            var memoryData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A璁惧缁戝畾鍒楄〃, classData);
+
+            //娓呯┖缁戝畾琛ㄧ殑杩斿洖鍊�
+            string clearResult = "{"
+                + SetDouMarks("Device_ID") + ":" + (int)device.Type + ","
+                + SetDouMarks("DeviceAddr") + ":" + SetDouMarks(device.DeviceAddr) + ","
+                + SetDouMarks("Epoint") + ":" + device.DeviceEpoint + ","
+                + SetDouMarks("Data_ID") + ":5006,"
+                + SetDouMarks("Data") + ": {"
+                + SetDouMarks("Result") + ": 0,"
+                + SetDouMarks("ResultRemark") + ":" + SetDouMarks("Success") + "}"
+                + "}";
+
+            if (memoryData.ListReceiveResult.Count == 1)
+            {
+                //璁惧缁戝畾鏈変笁鏉″懡浠� 绗竴鏉′负娓呯┖
+                memoryData.ListReceiveResult.Insert(0, clearResult);
+                memoryData.ListReceiveTopic.Insert(0, "Bind/ClearBindInfo_Respon");
+                memoryData.ListSendTopic.Insert(0, "Bind/ClearBindInfo");
+
+                memoryData.ListReceiveResult.Add(string.Empty);
+                memoryData.ListReceiveTopic.Add(string.Empty);
+                memoryData.ListSendTopic.Add(string.Empty);
+            }
+            else
+            {
+                memoryData.ListReceiveResult[0] = clearResult;
+                memoryData.ListReceiveTopic[0] = "Bind/ClearBindInfo_Respon";
+                memoryData.ListSendTopic[0] = "Bind/ClearBindInfo";
+            }
+
+            memoryData.ListSendTopic[2] = "Bind/SetBind";
+            memoryData.ListReceiveTopic[2] = "Bind/SetBind_Respon";
+            memoryData.ListReceiveResult[2] = receiveResult;
+
+            var reData = new BindObj.AddedDeviceBindResponseAllData();
+            reData.addedDeviceBindResponseData = new BindObj.AddedDeviceBindResponseData();
+            reData.addedDeviceBindResponseData.Result = 0;
+
+            foreach (var data in addBindData.BindList)
+            {
+                bool canAdd = true;
+                for (int i = 0; i < memoryData.BindList.Count; i++)
+                {
+                    var bindData = memoryData.BindList[i];
+                    //濡傛灉鏄澶�
+                    if (bindData.BindType == 0 && data.BindType == 0
+                        && bindData.BindMacAddr == data.BindMacAddr
+                        && bindData.BindEpoint == data.BindEpoint
+                        && bindData.BindCluster == data.BindCluster)
+                    {
+                        //鍚屼竴涓笢瑗夸笉闇�瑕佹浛鎹�
+                        canAdd = false;
+                        reData.addedDeviceBindResponseData.BindList.Add(bindData);
+                        break;
+                    }
+                    //濡傛灉鏄満鏅�
+                    if (bindData.BindType == 2 && data.BindType == 1
+                        && bindData.BindScenesId == data.BindScenesId
+                        && bindData.BindCluster == data.BindCluster)
+                    {
+                        //鍚屼竴涓笢瑗夸笉闇�瑕佹浛鎹�
+                        canAdd = false;
+                        reData.addedDeviceBindResponseData.BindList.Add(bindData);
+                        break;
+                    }
+                }
+                if (canAdd == true)
+                {
+                    //娣诲姞鏂扮殑缂撳瓨
+                    var newData = new BindObj.BindListResponseObj();
+                    memoryData.BindList.Add(newData);
+
+                    newData.BindCluster = data.BindCluster;
+                    newData.BindEpoint = data.BindEpoint;
+                    newData.BindMacAddr = data.BindMacAddr;
+                    newData.BindScenesId = data.BindScenesId;
+                    newData.BindType = data.BindType == 0 ? 0 : 2;
+                    reData.addedDeviceBindResponseData.BindList.Add(newData);
+                }
+            }
+            //淇濆瓨鏁版嵁
+            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
+
+            return reData;
+        }
+
+        /// <summary>
+        /// 鍒犻櫎璁惧缁戝畾鍒楄〃鐨勭紦瀛�
+        /// </summary>
+        /// <param name="delDeviceBindData"></param>
+        /// <returns></returns>
+        public BindObj.DelDeviceBindResponseAllData DeleteDeviceBindList(BindObj.DelDeviceBindData delDeviceBindData)
+        {
+            var device = Common.LocalDevice.Current.GetDevice(delDeviceBindData.DeviceAddr, delDeviceBindData.Epoint);
+            //鑾峰彇瀵硅薄
+            var classData = new ModelDeviceBindData();
+            var memoryData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A璁惧缁戝畾鍒楄〃, classData);
+
+            //杩斿洖鍊�
+            var reData = new BindObj.DelDeviceBindResponseAllData();
+            reData.removeBindResultResponseData = new BindObj.RemoveBindResultResponseData();
+            reData.removeBindResultResponseData.Result = 0;
+
+            reData.delDeviceBindResponseData = new BindObj.DelDeviceBindResponseData();
+
+            foreach (var data in delDeviceBindData.RemoveBindList)
+            {
+                for (int i = 0; i < memoryData.BindList.Count; i++)
+                {
+                    var bindData = memoryData.BindList[i];
+                    //濡傛灉鏄澶�
+                    if (bindData.BindType == 0 && data.BindType == 0
+                        && bindData.BindMacAddr == data.BindMacAddr
+                        && bindData.BindEpoint == data.BindEpoint
+                        && bindData.BindCluster == data.BindCluster)
+                    {
+                        //绉婚櫎缂撳瓨
+                        memoryData.BindList.RemoveAt(i);
+                        break;
+                    }
+                    //濡傛灉鏄満鏅�
+                    if (bindData.BindType == 2 && data.BindType == 1
+                        && bindData.BindScenesId == data.BindScenesId
+                        && bindData.BindCluster == data.BindCluster)
+                    {
+                        //绉婚櫎缂撳瓨
+                        memoryData.BindList.RemoveAt(i);
+                        break;
+                    }
+                }
+                var removeData = new BindObj.RemoveBindListResponseObj();
+                reData.delDeviceBindResponseData.RemoveBindList.Add(removeData);
+                removeData.BindCluster = data.BindCluster;
+                removeData.BindEpoint = data.BindEpoint;
+                removeData.BindMacAddr = data.BindMacAddr;
+                removeData.BindScenesId = data.BindScenesId;
+                removeData.BindType = data.BindType == 0 ? 0 : 2;
+                removeData.Result = 0;
+            }
+            //淇濆瓨鏁版嵁
+            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
+            return reData;
+        }
+
+        /// <summary>
+        /// 鍒犻櫎鎸囧畾璁惧鐨勫叏閮ㄧ粦瀹�
+        /// </summary>
+        /// <param name="device"></param>
+        /// <returns></returns>
+        public BindObj.ClearBindInfoResponseAllData ClearDeviceAllBind(CommonDevice device)
+        {
+            string mainkey = Common.LocalDevice.Current.GetDeviceMainKeys(device);
+            if (TemplateCommonLogic.Current.modelData.dicDeviceTemplateData.ContainsKey(mainkey) == true)
+            {
+                //绉婚櫎鍏ㄩ儴鐨� 璁惧缁戝畾鍒楄〃 鏁版嵁
+                var listBind = TemplateCommonLogic.Current.modelData.dicDeviceTemplateData[mainkey];
+                for (int i = 0; i < listBind.Count; i++)
+                {
+                    if (listBind[i].DataSaveDiv == ModelDeviceSaveEnum.A璁惧缁戝畾鍒楄〃)
+                    {
+                        ((ModelDeviceBindData)listBind[i]).BindList.Clear();
+                    }
+                }
+            }
+            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
+
+            return new BindObj.ClearBindInfoResponseAllData
+            {
+                clearBindInfoResponseData = new BindObj.ClearBindInfoResponseData { Result = 0 }
+            };
+        }
+
+        /// <summary>
+        /// 閰嶇疆鎸夐敭鐨勫姛鑳芥ā寮�
+        /// </summary>
+        /// <param name="device"></param>
+        /// <param name="value"></param>
+        /// <param name="clusterID"></param>
+        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
+        /// <returns></returns>
+        public CommonDevice.SetWritableValueResponAllData ConfigurePanelKeyModel(CommonDevice device, Panel.KeyMode value, int clusterID, string receiveResult)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelDeviceBindData();
+            var memoryData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A璁惧缁戝畾鍒楄〃, classData);
+            memoryData.keyMode = value;
+            memoryData.keyModeClusterID = clusterID;
+
+            if (memoryData.ListReceiveResult.Count == 1)
+            {
+                if (memoryData.ListReceiveResult.Count == 1)
+                {
+                    //璁惧缁戝畾鏈変笁鏉″懡浠� 绗竴鏉′负娓呯┖
+                    memoryData.ListReceiveResult.Insert(0, string.Empty);
+                    memoryData.ListReceiveTopic.Insert(0, string.Empty);
+                    memoryData.ListSendTopic.Insert(0, string.Empty);
+
+                    memoryData.ListReceiveResult.Add(string.Empty);
+                    memoryData.ListReceiveTopic.Add(string.Empty);
+                    memoryData.ListSendTopic.Add(string.Empty);
+                }
+            }
+            memoryData.ListSendTopic[1] = "SetWritableValue";
+            memoryData.ListReceiveTopic[1] = "SetWritableValue_Respon";
+            memoryData.ListReceiveResult[1] = receiveResult;
+
+            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
+
+            return new CommonDevice.SetWritableValueResponAllData
+            {
+                setWritableValueResponData = new CommonDevice.SetWritableValueResponData { Status = 0 }
+            };
+        }
+
+        /// <summary>
+        /// 鑾峰彇鎸夐敭鐨勫姛鑳芥ā寮�
+        /// </summary>
+        /// <param name="device"></param>
+        /// <returns></returns>
+        public Panel.PanelConfigureInfoResponAllData ReadPanelConfigureKeyModel(CommonDevice device)
+        {
+            var classData = new ModelDeviceBindData();
+            var memoryData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A璁惧缁戝畾鍒楄〃, classData);
+
+            var data = new Panel.PanelConfigureInfoResponAllData();
+            data.deviceStatusReportData = new CommonDevice.DeviceStatusReportData { CluterID = memoryData.keyModeClusterID };
+
+            var dataAttri = new CommonDevice.AttributeDataObj();
+            dataAttri.AttributeId = (int)AttriButeId.HdlKey;
+            dataAttri.AttriButeData = (int)memoryData.keyMode;
+            data.deviceStatusReportData.AttriBute.Add(dataAttri);
+
+            return data;
+        }
+
+        #endregion
+
+        #region 鈻� Pir浼犳劅鍣╛_________________________
+
+        /// <summary>
+        /// 鑾峰彇Pir浼犳劅鍣ㄧ殑閰嶇疆
+        /// </summary>
+        /// <param name="device"></param>
+        /// <returns></returns>
+        public IASZone.ParamatesInfo GetPirSensorLightSettion(string deviceMac, int deviceEpoint)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelPirSensorSettion();
+            var memoryData = (ModelPirSensorSettion)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.APir閰嶇疆, classData);
+
+            var localData = new IASZone.ParamatesInfo();
+            localData.configureParamates = new IASZone.ConfigureParamates();
+            localData.configureParamates.controlDevEnable = memoryData.pirConfigure.controlDevEnable;
+            localData.configureParamates.dimmerLevel = memoryData.pirConfigure.dimmerLevel;
+            localData.configureParamates.dimmerOffTime = memoryData.pirConfigure.dimmerOffTime;
+            localData.configureParamates.dimmerOnTime = memoryData.pirConfigure.dimmerOnTime;
+            localData.configureParamates.iasReportPeriod = memoryData.pirConfigure.iasReportPeriod;
+            localData.configureParamates.levelEnable = memoryData.pirConfigure.levelEnable;
+            localData.configureParamates.levelSize = memoryData.pirConfigure.levelSize;
+            localData.configureParamates.mode = memoryData.pirConfigure.mode;
+            localData.configureParamates.transitionTime = memoryData.pirConfigure.transitionTime;
+            localData.configureParamates.type = memoryData.pirConfigure.type;
+
+            return localData;
+        }
+
+        /// <summary>
+        /// 璁剧疆Pir浼犳劅鍣ㄧ殑閰嶇疆
+        /// </summary>
+        /// <param name="device"></param>
+        /// <param name="configureParamates"></param>
+        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
+        /// <returns></returns>
+        public IASZone.ResponseAllData SetPirSensorLightSettion(string deviceMac, int deviceEpoint, IASZone.ConfigureParamates configureParamates, string receiveResult)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelPirSensorSettion();
+            var memoryData = (ModelPirSensorSettion)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.APir閰嶇疆, classData);
+
+            memoryData.pirConfigure = configureParamates;
+
+            memoryData.ListSendTopic[0] = "ClientDataPassthrough";
+            memoryData.ListReceiveTopic[0] = "ZbDataPassthrough";
+            memoryData.ListReceiveResult[0] = receiveResult;
+
+            this.SaveDeviceMemmoryData(deviceMac, deviceEpoint);
+
+            return new CommonDevice.ResponseAllData { responseData = new CommonDevice.ResponseData { status = 0 } };
+        }
+
+        #endregion
+
+        #region 鈻� 闈㈡澘闇囧姩鍔熻兘_______________________
+
+        /// <summary>
+        /// 鑾峰彇闈㈡澘闇囧姩鍔熻兘
+        /// </summary>
+        /// <param name="device"></param>
+        /// <returns></returns>
+        public UserCenter.HdlDevicePanelLogic.PanelVibrationInfo GetPanelVibrationInfo(string deviceMac, int deviceEpoint)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelPanelVibrationInfo();
+            var memoryData = (ModelPanelVibrationInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘闇囧姩鍔熻兘, classData);
+
+            var data = new UserCenter.HdlDevicePanelLogic.PanelVibrationInfo();
+            data.A闇囧姩浣胯兘 = memoryData.vibrationInfo.A闇囧姩浣胯兘;
+            data.A闇囧姩寮哄害 = memoryData.vibrationInfo.A闇囧姩寮哄害;
+            data.A闇囧姩鏃堕棿 = memoryData.vibrationInfo.A闇囧姩鏃堕棿;
+
+            return data;
+        }
+
+        /// <summary>
+        /// 璁剧疆闈㈡澘闇囧姩鍔熻兘
+        /// </summary>
+        /// <param name="device"></param>
+        /// <param name="datainfo"></param>
+        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
+        /// <returns></returns>
+        public bool SetPanelVibrationInfo(string deviceMac, int deviceEpoint, UserCenter.HdlDevicePanelLogic.PanelVibrationInfo datainfo, string receiveResult)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelPanelVibrationInfo();
+            var memoryData = (ModelPanelVibrationInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘闇囧姩鍔熻兘, classData);
+            memoryData.vibrationInfo = datainfo;
+
+            memoryData.ListSendTopic[0] = "ClientDataPassthrough";
+            memoryData.ListReceiveTopic[0] = "ZbDataPassthrough";
+            memoryData.ListReceiveResult[0] = receiveResult;
+
+            this.SaveDeviceMemmoryData(deviceMac, deviceEpoint);
+
+            return true;
+        }
+        #endregion
+
+        #region 鈻� 璁惧鍚嶇О___________________________
+
+        /// <summary>
+        /// 淇敼璁惧Mac鍚嶇О
+        /// </summary>
+        /// <param name="device"></param>
+        /// <param name="macName"></param>
+        /// <returns></returns> 
+        public CommonDevice.RenameDeviceMacNameAllData ReDeviceMacName(CommonDevice device, string macName)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelDeviceMacNameInfo();
+            var memoryData = (ModelDeviceMacNameInfo)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A璁惧鍚嶇О, classData);
+            memoryData.deviceMacName = macName;
+
+            //璁惧杩斿洖鐨勭粨鏋�
+            var receiveResult = "{"
+            + SetDouMarks("DeviceAddr") + ": " + SetDouMarks(device.DeviceAddr) + ","
+            + SetDouMarks("Data_ID") + ": 100,"
+            + SetDouMarks("Data") + ": {"
+            + SetDouMarks("Result") + ": 0,"
+            + SetDouMarks("MacName") + ":" + SetDouMarks(macName) + "}"
+            + "}";
+
+            memoryData.ListSendTopic[0] = "MacRename";
+            memoryData.ListReceiveTopic[0] = "MacRename_Respon";
+            memoryData.ListReceiveResult[0] = receiveResult;
+
+            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
+
+            return new CommonDevice.RenameDeviceMacNameAllData
+            {
+                renameDeviceMacNameData = new CommonDevice.RenameDeviceMacNameData
+                {
+                    Result = 0,
+                    MacName = macName
+                }
+            };
+        }
+
+        /// <summary>
+        /// 淇敼璁惧绔偣鍚嶇О
+        /// </summary>
+        /// <param name="device"></param>
+        /// <param name="macName"></param>
+        /// <returns></returns>
+        public CommonDevice.DeviceRenameAllData ReDeviceEpointName(CommonDevice device, string deviceName)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelDeviceEpointNameInfo();
+            var memoryData = (ModelDeviceEpointNameInfo)this.GetDeviceModelDataClass(device.DeviceAddr, device.DeviceEpoint, ModelDeviceSaveEnum.A绔偣鍚嶇О, classData);
+            memoryData.deviceEpointName = deviceName;
+
+            //璁惧杩斿洖鐨勭粨鏋�
+            var receiveResult = "{"
+            + SetDouMarks("Device_ID") + ": " + (int)device.Type + ","
+            + SetDouMarks("DeviceAddr") + ": " + SetDouMarks(device.DeviceAddr) + ","
+            + SetDouMarks("Epoint") + ": " + device.DeviceEpoint + ","
+            + SetDouMarks("Data_ID") + ": 96,"
+            + SetDouMarks("Data") + ": {"
+            + SetDouMarks("Result") + ": 0,"
+            + SetDouMarks("DeviceName") + ":" + SetDouMarks(deviceName) + "}"
+            + "}";
+
+            memoryData.ListSendTopic[0] = "DeviceRename";
+            memoryData.ListReceiveTopic[0] = "DeviceRenameRespon";
+            memoryData.ListReceiveResult[0] = receiveResult;
+
+            this.SaveDeviceMemmoryData(device.DeviceAddr, device.DeviceEpoint);
+
+            return new CommonDevice.DeviceRenameAllData
+            {
+                deviceRenameData = new CommonDevice.DeviceRenameResponseData
+                {
+                    Result = 0,
+                    DeviceName = deviceName
+                }
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 闈㈡澘鑳屽厜鐏缃甠____________________
+
+        /// <summary>
+        /// 鑾峰彇璁惧浜害閰嶇疆锛坲i鍙寒搴﹁皟鑺�,浣跨敤杩斿洖鍊肩殑panelDirectionsLevel锛�
+        /// </summary>
+        /// <param name="device"></param>
+        /// <returns></returns>
+        public Panel.PanelSwitchLevelInfo GetDeviceLightSettion(string deviceMac, int deviceEpoint)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelPanelBrightnessAdjustInfo();
+            var memoryData = (ModelPanelBrightnessAdjustInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘浜害璋冭妭, classData);
+
+            var data = new Panel.PanelSwitchLevelInfo();
+            data.panelBacklightLevel = memoryData.panelBacklightLevel == -1 ? 0 : memoryData.panelBacklightLevel;
+            data.panelDirectionsLevel = memoryData.panelDirectionsLevel == -1 ? 0 : memoryData.panelDirectionsLevel;
+            return data;
+        }
+
+        /// <summary>
+        /// 璁剧疆璁惧浜害锛坲i鍙寒搴﹁皟鑺傦級
+        /// </summary>
+        /// <param name="panel">璁惧瀵硅薄</param>
+        /// <param name="directionsLevel">0-100(杩欎釜鏄偣鍑诲悗鐨勫��)</param>
+        /// <param name="backlightLevel">0-100(杩欎釜鏄偣鍑诲墠鐨勫��)</param>
+        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
+        /// <returns></returns>
+        public bool SetDeviceLightSettion(string deviceMac, int deviceEpoint, int directionsLevel, int backlightLevel, string receiveResult)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelPanelBrightnessAdjustInfo();
+            var memoryData = (ModelPanelBrightnessAdjustInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘浜害璋冭妭, classData);
+            memoryData.panelBacklightLevel = backlightLevel;
+            memoryData.panelDirectionsLevel = directionsLevel;
+
+            memoryData.ListSendTopic[0] = "ClientDataPassthrough";
+            memoryData.ListReceiveTopic[0] = "ZbDataPassthrough";
+            memoryData.ListReceiveResult[0] = receiveResult;
+
+            this.SaveDeviceMemmoryData(deviceMac, deviceEpoint);
+
+            return true;
+        }
+
+        /// <summary>
+        /// 鑾峰彇璁惧鑺傝兘妯″紡鐨勯厤缃姸鎬�(ui鍙妭鑳芥ā寮�)
+        /// </summary>
+        /// <param name="device"></param>
+        /// <returns></returns>
+        public Panel.PanelSaveEnergyModeInfo GetDeviceEnergyConservationMode(string deviceMac, int deviceEpoint)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelPanelEnergyModeInfo();
+            var memoryData = (ModelPanelEnergyModeInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘鑺傝兘妯″紡, classData);
+
+            var data = new Panel.PanelSaveEnergyModeInfo();
+            data.enable = memoryData.energyModeInfo.enable;
+            data.level = memoryData.energyModeInfo.level == -1 ? 0 : memoryData.energyModeInfo.level;
+            data.time = memoryData.energyModeInfo.time == -1 ? 0 : memoryData.energyModeInfo.time;
+            return data;
+        }
+
+        /// <summary>
+        /// 璁剧疆璁惧鐨勮妭鑳芥ā寮�(ui鍙妭鑳芥ā寮�)
+        /// </summary>
+        /// <param name="device">璁惧瀵硅薄</param>
+        /// <param name="modeEnable">鑺傝兘妯″紡鏄惁鏈夋晥</param>
+        /// <param name="modeTime">鏃犳搷浣滆繘鍏ヨ妭鑳芥ā寮忔椂闂� 0-255</param>
+        /// <param name="level">鑺傝兘妯″紡浜害:0-100</param>
+        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
+        /// <returns></returns>
+        public bool SetDeviceEnergyConservationMode(string deviceMac, int deviceEpoint, bool modeEnable, int modeTime, int level, string receiveResult)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelPanelEnergyModeInfo();
+            var memoryData = (ModelPanelEnergyModeInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘鑺傝兘妯″紡, classData);
+            memoryData.energyModeInfo.enable = modeEnable;
+            memoryData.energyModeInfo.time = modeTime;
+            memoryData.energyModeInfo.level = level;
+
+            memoryData.ListSendTopic[0] = "ClientDataPassthrough";
+            memoryData.ListReceiveTopic[0] = "ZbDataPassthrough";
+            memoryData.ListReceiveResult[0] = receiveResult;
+
+            this.SaveDeviceMemmoryData(deviceMac, deviceEpoint);
+
+            return true;
+        }
+
+        /// <summary>
+        /// 鑾峰彇鎸夐敭鎸囩ず鐏紑鍏抽鑹�.
+        /// </summary>
+        /// <param name="device"></param>
+        /// <param name="keyNum"></param>
+        /// <returns></returns>
+        public Panel.KeyColorDataResponseAllData GetPanelColorInfo(string deviceMac, int deviceEpoint, Panel.KeyNum keyNum)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelPanelIndicatorLightInfo();
+            var memoryData = (ModelPanelIndicatorLightInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘鎸囩ず鐏�, classData);
+
+            var data = new Panel.KeyColorDataResponseAllData();
+            data.keyColorData = new Panel.KeyColorData();
+            data.keyColorData.CloseColorB = string.IsNullOrEmpty(memoryData.keyColorData.CloseColorB) == true ? "0" : memoryData.keyColorData.CloseColorB;
+            data.keyColorData.CloseColorG = string.IsNullOrEmpty(memoryData.keyColorData.CloseColorG) == true ? "0" : memoryData.keyColorData.CloseColorG;
+            data.keyColorData.CloseColorR = string.IsNullOrEmpty(memoryData.keyColorData.CloseColorR) == true ? "0" : memoryData.keyColorData.CloseColorR;
+            data.keyColorData.OpenColorB = string.IsNullOrEmpty(memoryData.keyColorData.OpenColorB) == true ? "0" : memoryData.keyColorData.OpenColorB;
+            data.keyColorData.OpenColorG = string.IsNullOrEmpty(memoryData.keyColorData.OpenColorG) == true ? "0" : memoryData.keyColorData.OpenColorG;
+            data.keyColorData.OpenColorR = string.IsNullOrEmpty(memoryData.keyColorData.OpenColorR) == true ? "0" : memoryData.keyColorData.OpenColorR;
+            data.keyColorData.keyNum = keyNum;
+
+            return data;
+        }
+
+        /// <summary>
+        /// 閰嶇疆鎸夐敭鎸囩ず鐏鑹�
+        /// </summary>
+        /// <param name="device"></param>
+        /// <param name="keyColorData"></param>
+        /// <param name="keyNumStatus"></param>
+        /// <param name="receiveResult">璁惧杩斿洖鐨勭粨鏋�</param>
+        /// <returns></returns>
+        public CommonDevice.ResponseAllData SetPanelColorInfo(string deviceMac, int deviceEpoint, Panel.KeyColorData keyColorData, Panel.KeyNumStatus keyNumStatus, string receiveResult)
+        {
+            //鑾峰彇瀵硅薄
+            var classData = new ModelPanelIndicatorLightInfo();
+            var memoryData = (ModelPanelIndicatorLightInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘鎸囩ず鐏�, classData);
+
+            memoryData.keyColorData.keyNum = keyColorData.keyNum;
+            memoryData.keyColorData.OpenColorB = keyColorData.OpenColorB;
+            memoryData.keyColorData.OpenColorG = keyColorData.OpenColorG;
+            memoryData.keyColorData.OpenColorR = keyColorData.OpenColorR;
+            memoryData.keyColorData.CloseColorB = keyColorData.CloseColorB;
+            memoryData.keyColorData.CloseColorG = keyColorData.CloseColorG;
+            memoryData.keyColorData.CloseColorR = keyColorData.CloseColorR;
+
+            memoryData.KeyNum.Key1 = keyNumStatus.Key1;
+            memoryData.KeyNum.Key2 = keyNumStatus.Key2;
+            memoryData.KeyNum.Key3 = keyNumStatus.Key3;
+            memoryData.KeyNum.Key4 = keyNumStatus.Key4;
+            memoryData.KeyNum.Key5 = keyNumStatus.Key5;
+            memoryData.KeyNum.Key6 = keyNumStatus.Key6;
+            memoryData.KeyNum.Key7 = keyNumStatus.Key7;
+            memoryData.KeyNum.Key8 = keyNumStatus.Key8;
+            memoryData.KeyNum.Key9 = keyNumStatus.Key9;
+            memoryData.KeyNum.Key10 = keyNumStatus.Key10;
+            memoryData.KeyNum.Key11 = keyNumStatus.Key11;
+            memoryData.KeyNum.Key12 = keyNumStatus.Key12;
+            memoryData.KeyNum.Key13 = keyNumStatus.Key13;
+            memoryData.KeyNum.Key14 = keyNumStatus.Key14;
+            memoryData.KeyNum.Key15 = keyNumStatus.Key15;
+            memoryData.KeyNum.Key16 = keyNumStatus.Key16;
+
+            memoryData.ListSendTopic[0] = "ClientDataPassthrough";
+            memoryData.ListReceiveTopic[0] = "ZbDataPassthrough";
+            memoryData.ListReceiveResult[0] = receiveResult;
+
+            this.SaveDeviceMemmoryData(deviceMac, deviceEpoint);
+
+            return new CommonDevice.ResponseAllData
+            {
+                responseData = new CommonDevice.ResponseData
+                { status = 0 }
+            };
+        }
+
+        #endregion
+
+        #region 鈻� 淇濆瓨璁惧缂撳瓨_______________________
+
+        /// <summary>
+        /// 淇濆瓨璁惧缂撳瓨(鑰冭檻鏈夌殑璁惧鐢ㄧ殑鏄�200绔偣,鎵�浠ヨ繖閲屾渶濂戒笉鐢ㄨ澶囧璞′綔涓哄弬鏁�)
+        /// </summary>
+        /// <param name="deviceMac"></param>
+        /// <param name="deviceEpoint"></param>
+        public void SaveDeviceMemmoryData(string deviceMac, int deviceEpoint)
+        {
+            //浠g爜绉诲姩鍒板埆鐨勬枃浠朵腑浜�
+            TemplateCommonLogic.Current.SaveDeviceMemmoryData(deviceMac, deviceEpoint);
+        }
+
+        #endregion
+
+        #region 鈻� 涓�鑸柟娉昣__________________________
+
+        /// <summary>
+        /// 鑾峰彇璁惧淇濆瓨鐨勬ā鏉垮璞�(鑰冭檻鏈夌殑璁惧鐢ㄧ殑鏄�200绔偣,鎵�浠ヨ繖閲屾渶濂戒笉鐢ㄨ澶囧璞′綔涓哄弬鏁�)
+        /// </summary>
+        /// <param name="deviceMac"></param>
+        /// <param name="deviceEpoint"></param>
+        /// <param name="saveEnum"></param>
+        /// <returns></returns>
+        private TemplateDeviceDataCommon GetDeviceModelDataClass(string deviceMac, int deviceEpoint, ModelDeviceSaveEnum saveEnum, TemplateDeviceDataCommon newClass)
+        {
+            //浠g爜绉诲姩鍒板埆鐨勬枃浠朵腑浜�
+            return TemplateCommonLogic.Current.GetDeviceModelDataClass(deviceMac, deviceEpoint, saveEnum, newClass);
+        }
+
+        /// <summary>
+        /// 娣诲姞鍙屽紩鍙�
+        /// </summary>
+        /// <param name="i_text"></param>
+        /// <returns></returns>
+        private string SetDouMarks(string i_text)
+        {
+            return UserCenter.UserCenterResourse.douMarks + i_text + UserCenter.UserCenterResourse.douMarks;
+        }
+
+        #endregion
+    }
+}

--
Gitblit v1.8.0