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/Logic/HdlTemplateDeviceDataLogic.cs | 1773 +++++++++++++++++++++++++++++-----------------------------
1 files changed, 893 insertions(+), 880 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/TemplateData/TemplateDeviceDataLogic.cs b/ZigbeeApp/Shared/Phone/Common/Logic/HdlTemplateDeviceDataLogic.cs
old mode 100755
new mode 100644
similarity index 94%
rename from ZigbeeApp/Shared/Phone/TemplateData/TemplateDeviceDataLogic.cs
rename to ZigbeeApp/Shared/Phone/Common/Logic/HdlTemplateDeviceDataLogic.cs
index c88369a..f35fddc
--- a/ZigbeeApp/Shared/Phone/TemplateData/TemplateDeviceDataLogic.cs
+++ b/ZigbeeApp/Shared/Phone/Common/Logic/HdlTemplateDeviceDataLogic.cs
@@ -1,880 +1,893 @@
-锘縰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
+{
+ /// <summary>
+ /// 璁惧妯℃澘鏁版嵁鐨勯�昏緫
+ /// </summary>
+ public class HdlTemplateDeviceDataLogic
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 璁惧妯℃澘鏁版嵁鐨勯�昏緫
+ /// </summary>
+ private static HdlTemplateDeviceDataLogic m_Current = null;
+ /// <summary>
+ /// 璁惧妯℃澘鏁版嵁鐨勯�昏緫
+ /// </summary>
+ public static HdlTemplateDeviceDataLogic Current
+ {
+ get
+ {
+ if (m_Current == null)
+ {
+ m_Current = new HdlTemplateDeviceDataLogic();
+ }
+ 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);
+ if (memoryData.ListReceiveResult.Count == 1)
+ {
+ memoryData.ListReceiveResult.Add(string.Empty);
+ memoryData.ListReceiveTopic.Add(string.Empty);
+ memoryData.ListSendTopic.Add(string.Empty);
+ }
+
+ 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;
+
+ if (memoryData.ListReceiveResult.Count == 1)
+ {
+ 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(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 = HdlDeviceCommonLogic.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 = HdlDeviceCommonLogic.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 = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(device);
+ if (HdlTemplateCommonLogic.Current.modelData.dicDeviceTemplateData.ContainsKey(mainkey) == true)
+ {
+ //绉婚櫎鍏ㄩ儴鐨� 璁惧缁戝畾鍒楄〃 鏁版嵁
+ var listBind = HdlTemplateCommonLogic.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 HdlDevicePanelLogic.PanelVibrationInfo GetPanelVibrationInfo(string deviceMac, int deviceEpoint)
+ {
+ //鑾峰彇瀵硅薄
+ var classData = new ModelPanelVibrationInfo();
+ var memoryData = (ModelPanelVibrationInfo)this.GetDeviceModelDataClass(deviceMac, deviceEpoint, ModelDeviceSaveEnum.A闈㈡澘闇囧姩鍔熻兘, classData);
+
+ var data = new 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, 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爜绉诲姩鍒板埆鐨勬枃浠朵腑浜�
+ HdlTemplateCommonLogic.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 HdlTemplateCommonLogic.Current.GetDeviceModelDataClass(deviceMac, deviceEpoint, saveEnum, newClass);
+ }
+
+ /// <summary>
+ /// 娣诲姞鍙屽紩鍙�
+ /// </summary>
+ /// <param name="i_text"></param>
+ /// <returns></returns>
+ private string SetDouMarks(string i_text)
+ {
+ return HdlUserCenterResourse.douMarks + i_text + HdlUserCenterResourse.douMarks;
+ }
+
+ #endregion
+ }
+}
--
Gitblit v1.8.0