using System; using System.Collections.Generic; using System.Text; using ZigBee.Device; namespace Shared.Phone.ModelData { /// <summary> /// è®¾å¤‡æ¨¡æ¿æ•°æ®çš„逻辑 /// </summary> public class DeviceModelDataLogic { #region â– å˜é‡å£°æ˜Ž___________________________ /// <summary> /// è®¾å¤‡æ¨¡æ¿æ•°æ®çš„逻辑 /// </summary> private static DeviceModelDataLogic m_Current = null; /// <summary> /// è®¾å¤‡æ¨¡æ¿æ•°æ®çš„逻辑 /// </summary> public static DeviceModelDataLogic Current { get { if (m_Current == null) { m_Current = new DeviceModelDataLogic(); } return m_Current; } } /// <summary> /// æ¨¡æ¿æ•°æ® /// </summary> private ModelMemoryData modelData = new ModelMemoryData(); #endregion #region â– åˆå§‹åŒ–_____________________________ /// <summary> /// åˆå§‹åŒ–å…¨éƒ¨æ•°æ® /// </summary> public void InitAllData() { } #endregion #region ■窗帘手拉控制_______________________ /// <summary> /// æ·»åŠ çª—å¸˜æ‰‹æ‹‰æŽ§åˆ¶ç¼“å˜ /// </summary> /// <param name="device">设备对象</param> /// <param name="bolStatu">手拉控制状æ€</param> /// <param name="topic">主题</param> public void SetCurtainHandPullControl(CommonDevice device, bool bolStatu, string topic) { //获å–对象 var classData = new ModelCurtainHandPullControl(); classData = (ModelCurtainHandPullControl)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A窗帘手拉控制, classData); classData.Statu = bolStatu; classData.DataSendDiv = ModelDataSendEnum.Aç§æœ‰å±žæ€§; classData.TopicName = topic; //ä¿å˜æ•°æ® this.SaveData(device); } /// <summary> /// 获å–窗帘手拉控制状æ€(虚拟使用) /// </summary> /// <param name="device"></param> /// <returns></returns> public bool GetCurtainHandPullControl(CommonDevice device) { //获å–对象 var classData = new ModelCurtainHandPullControl(); classData = (ModelCurtainHandPullControl)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A窗帘手拉控制, classData); return classData.Statu; } #endregion #region ■窗帘方å‘___________________________ /// <summary> /// è®¾ç½®çª—å¸˜çš„æ–¹å‘ /// </summary> /// <param name="device"></param> /// <param name="isDirectionReversed"></param> /// <param name="topic"></param> /// <returns></returns> public CommonDevice.SetWritableValueResponAllData SetCurtainDirection(CommonDevice device, bool isDirectionReversed, string topic) { //获å–对象 var classData = new ModelCurtainDirectionAndLimite(); classData = (ModelCurtainDirectionAndLimite)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A窗帘方å‘åŠé™ä½, classData); classData.Direction = isDirectionReversed; classData.DataSendDiv = ModelDataSendEnum.Aç§æœ‰å±žæ€§; classData.TopicName = topic; //ä¿å˜æ•°æ® this.SaveData(device); 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="topic"></param> /// <returns></returns> public bool SetCurtainLimitPoint(CommonDevice rollershade,int upLimit, int downLimit, int curtainLength, string topic) { //获å–对象 var classData = new ModelCurtainDirectionAndLimite(); classData = (ModelCurtainDirectionAndLimite)this.GetDeviceModelDataClass(rollershade, ModelDeviceSaveEnum.A窗帘方å‘åŠé™ä½, classData); classData.curtainLength = curtainLength; classData.downLimit = downLimit; classData.upLimit = upLimit; classData.DataSendDiv = ModelDataSendEnum.Aç§æœ‰å±žæ€§; classData.TopicName = topic; return true; } /// <summary> /// 获å–å¼€åˆå¸˜çš„é™ä½ /// </summary> /// <param name="rollershade"></param> /// <returns></returns> public ModelCurtainDirectionAndLimite GetCurtainLimitPoint(CommonDevice rollershade) { //获å–对象 var classData = new ModelCurtainDirectionAndLimite(); classData = (ModelCurtainDirectionAndLimite)this.GetDeviceModelDataClass(rollershade, ModelDeviceSaveEnum.A窗帘方å‘åŠé™ä½, classData); return classData; } #endregion #region ■空调自定义模å¼_____________________ /// <summary> /// æ·»åŠ ç©ºè°ƒè‡ªå®šä¹‰æ¨¡å¼ç¼“å˜ /// </summary> /// <param name="device">设备对象</param> /// <param name="data">值</param> public void SetAcModeSupport(CommonDevice device, int data, string topic) { //获å–对象 var classData = new ModelAcModeSupport(); classData = (ModelAcModeSupport)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A空调自定义模å¼, classData); classData.data = data; classData.DataSendDiv = ModelDataSendEnum.Aç§æœ‰å±žæ€§; classData.TopicName = topic; //ä¿å˜æ•°æ® this.SaveData(device); } /// <summary> /// 获å–空调自定义模å¼(虚拟使用) /// </summary> /// <param name="device"></param> /// <returns></returns> public int GetAcModeSupport(CommonDevice device) { //获å–对象 var classData = new ModelAcModeSupport(); classData = (ModelAcModeSupport)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A空调自定义模å¼, classData); return classData.data; } #endregion #region ■空调摆风模å¼_______________________ /// <summary> /// æ·»åŠ ç©ºè°ƒæ‘†é£Žæ¨¡å¼ç¼“å˜ /// </summary> /// <param name="device">设备对象</param> /// <param name="data">值</param> public void SetAcSwingModeSupport(CommonDevice device, int data, string topic) { //获å–对象 var classData = new ModelAcSwingModeSupport(); classData = (ModelAcSwingModeSupport)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A空调摆风功能, classData); classData.data = data; classData.DataSendDiv = ModelDataSendEnum.Aç§æœ‰å±žæ€§; classData.TopicName = topic; //ä¿å˜æ•°æ® this.SaveData(device); } /// <summary> /// 获å–空调摆风模å¼(虚拟使用) /// </summary> /// <param name="device"></param> /// <returns></returns> public int GetAcSwingModeSupport(CommonDevice device) { //获å–对象 var classData = new ModelAcSwingModeSupport(); classData = (ModelAcSwingModeSupport)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A空调摆风功能, classData); return classData.data; } #endregion #region ■设备绑定___________________________ /// <summary> /// 获å–è®¾å¤‡ç»‘å®šåˆ—è¡¨çš„ç¼“å˜ /// </summary> /// <param name="device">设备对象</param> /// <returns></returns> public List<BindObj.BindListResponseObj> GetDeviceBindList(CommonDevice device, string topic) { //获å–对象 var classData = new ModelDeviceBindData(); classData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A设备绑定列表, classData); return classData.BindList; } /// <summary> /// æ·»åŠ è®¾å¤‡ç»‘å®šåˆ—è¡¨çš„ç¼“å˜ /// </summary> /// <param name="addBindData"></param> /// <param name="topic">主题</param> /// <returns></returns> public BindObj.AddedDeviceBindResponseAllData AddDeviceBindList(BindObj.AddBindData addBindData, string topic) { var device = Common.LocalDevice.Current.GetDevice(addBindData.DeviceAddr, addBindData.Epoint); //获å–对象 var classData = new ModelDeviceBindData(); classData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A设备绑定列表, classData); classData.DataSendDiv = ModelDataSendEnum.Aç§æœ‰åè®®; classData.TopicName = topic; 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 < classData.BindList.Count; i++) { var bindData = classData.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(); classData.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.SaveData(device); 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(); classData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device, 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 < classData.BindList.Count; i++) { var bindData = classData.BindList[i]; //如果是设备 if (bindData.BindType == 0 && data.BindType == 0 && bindData.BindMacAddr == data.BindMacAddr && bindData.BindEpoint == data.BindEpoint && bindData.BindCluster == data.BindCluster) { //ç§»é™¤ç¼“å˜ classData.BindList.RemoveAt(i); break; } //如果是场景 if (bindData.BindType == 2 && data.BindType == 1 && bindData.BindScenesId == data.BindScenesId && bindData.BindCluster == data.BindCluster) { //ç§»é™¤ç¼“å˜ classData.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.SaveData(device); return reData; } /// <summary> /// åˆ é™¤æŒ‡å®šè®¾å¤‡çš„å…¨éƒ¨ç»‘å®š /// </summary> /// <param name="device"></param> /// <returns></returns> public BindObj.ClearBindInfoResponseAllData ClearDeviceAllBind(CommonDevice device) { string mainkey = Common.LocalDevice.Current.GetDeviceMainKeys(device); if (this.modelData.dicAllData.ContainsKey(mainkey) == true) { //创建å˜å‚¨ç©ºé—´ this.modelData.dicAllData.Remove(mainkey); } this.SaveData(device); return new BindObj.ClearBindInfoResponseAllData { clearBindInfoResponseData = new BindObj.ClearBindInfoResponseData { Result = 0 } }; } /// <summary> /// é…ç½®æŒ‰é”®çš„åŠŸèƒ½æ¨¡å¼ /// </summary> /// <param name="device"></param> /// <param name="value"></param> /// <param name="clusterID"></param> /// <returns></returns> public CommonDevice.SetWritableValueResponAllData ConfigurePanelKeyModel(CommonDevice device, Panel.KeyMode value, int clusterID, string topic) { //获å–对象 var classData = new ModelDeviceBindData(); classData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A设备绑定列表, classData); classData.TopicName2 = topic; classData.keyMode = value; classData.keyModeClusterID = clusterID; this.SaveData(device); 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(); classData = (ModelDeviceBindData)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A设备绑定列表, classData); var data = new Panel.PanelConfigureInfoResponAllData(); data.deviceStatusReportData = new CommonDevice.DeviceStatusReportData { CluterID = classData.keyModeClusterID }; var dataAttri = new CommonDevice.AttributeDataObj(); dataAttri.AttriButeData = (int)classData.keyMode; return data; } #endregion #region â– Pirä¼ æ„Ÿå™¨__________________________ /// <summary> /// 获å–Pirä¼ æ„Ÿå™¨çš„é…ç½® /// </summary> /// <param name="device"></param> /// <returns></returns> public IASZone.ParamatesInfo GetPirSensorLightSettion(CommonDevice device) { //获å–对象 var classData = new ModelPirSensorSettion(); classData = (ModelPirSensorSettion)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.APiré…ç½®, classData); var localData = new IASZone.ParamatesInfo(); localData.configureParamates = new IASZone.ConfigureParamates(); localData.configureParamates.controlDevEnable = classData.pirConfigure.controlDevEnable; localData.configureParamates.dimmerLevel = classData.pirConfigure.dimmerLevel; localData.configureParamates.dimmerOffTime = classData.pirConfigure.dimmerOffTime; localData.configureParamates.dimmerOnTime = classData.pirConfigure.dimmerOnTime; localData.configureParamates.iasReportPeriod = classData.pirConfigure.iasReportPeriod; localData.configureParamates.levelEnable = classData.pirConfigure.levelEnable; localData.configureParamates.levelSize = classData.pirConfigure.levelSize; localData.configureParamates.mode = classData.pirConfigure.mode; localData.configureParamates.transitionTime = classData.pirConfigure.transitionTime; localData.configureParamates.type = classData.pirConfigure.type; return localData; } /// <summary> /// 设置Pirä¼ æ„Ÿå™¨çš„é…ç½® /// </summary> /// <param name="device"></param> /// <param name="configureParamates"></param> /// <returns></returns> public IASZone.ResponseAllData SetPirSensorLightSettion(CommonDevice device, IASZone.ConfigureParamates configureParamates, string topicName) { //获å–对象 var classData = new ModelPirSensorSettion(); classData = (ModelPirSensorSettion)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.APiré…ç½®, classData); classData.pirConfigure = configureParamates; classData.DataSendDiv = ModelDataSendEnum.Aé€ä¼ æ•°æ®; classData.TopicName = topicName; this.SaveData(device); 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(CommonDevice device) { //获å–对象 var classData = new ModelPanelVibrationInfo(); classData = (ModelPanelVibrationInfo)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A颿¿éœ‡åŠ¨åŠŸèƒ½, classData); var data = new UserCenter.HdlDevicePanelLogic.PanelVibrationInfo(); data.A震动使能 = classData.vibrationInfo.A震动使能; data.A震动强度 = classData.vibrationInfo.A震动强度; data.A震动时间 = classData.vibrationInfo.A震动时间; return data; } /// <summary> /// è®¾ç½®é¢æ¿éœ‡åŠ¨åŠŸèƒ½ /// </summary> /// <param name="device"></param> /// <param name="datainfo"></param> /// <param name="topicName"></param> /// <returns></returns> public bool SetPanelVibrationInfo(CommonDevice device, UserCenter.HdlDevicePanelLogic.PanelVibrationInfo datainfo, string topicName) { //获å–对象 var classData = new ModelPanelVibrationInfo(); classData = (ModelPanelVibrationInfo)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A颿¿éœ‡åŠ¨åŠŸèƒ½, classData); classData.TopicName = topicName; classData.vibrationInfo = datainfo; classData.DataSendDiv = ModelDataSendEnum.Aé€ä¼ æ•°æ®; this.SaveData(device); 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, string topicName) { //获å–对象 var classData = new ModelDeviceMacNameInfo(); classData = (ModelDeviceMacNameInfo)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A设备åç§°, classData); classData.deviceMacName = macName; classData.TopicName = topicName; classData.DataSendDiv = ModelDataSendEnum.Aç§æœ‰åè®®; this.SaveData(device); 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, string topicName) { //获å–对象 var classData = new ModelDeviceEpointNameInfo(); classData = (ModelDeviceEpointNameInfo)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A端点åç§°, classData); classData.deviceEpointName = deviceName; classData.TopicName = topicName; classData.DataSendDiv = ModelDataSendEnum.Aç§æœ‰åè®®; this.SaveData(device); return new CommonDevice.DeviceRenameAllData { deviceRenameData = new CommonDevice.DeviceRenameResponseData { Result = 0, DeviceName = deviceName } }; } #endregion #region â– é¢æ¿èƒŒå…‰ç¯è®¾ç½®_____________________ /// <summary> /// 获å–设备亮度é…置(uiå«äº®åº¦è°ƒèŠ‚,使用返回值的panelDirectionsLevel) /// </summary> /// <param name="device"></param> /// <returns></returns> public Panel.PanelSwitchLevelInfo GetDeviceLightSettion(CommonDevice device) { //获å–对象 var classData = new ModelPanelBackLightInfo(); classData = (ModelPanelBackLightInfo)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A颿¿èƒŒå…‰ç¯, classData); var data = new Panel.PanelSwitchLevelInfo(); data.panelBacklightLevel = classData.linghtLevelInfo.panelBacklightLevel == -1 ? 0 : classData.linghtLevelInfo.panelBacklightLevel; data.panelDirectionsLevel = classData.linghtLevelInfo.panelDirectionsLevel == -1 ? 0 : classData.linghtLevelInfo.panelDirectionsLevel; return data; } /// <summary> /// 设置设备亮度(uiå«äº®åº¦è°ƒèŠ‚ï¼‰ /// </summary> /// <param name="panel">设备对象</param> /// <param name="directionsLevel">0-100(这个是点击åŽçš„值)</param> /// <param name="backlightLevel">0-100(这个是点击å‰çš„值)</param> /// <returns></returns> public bool SetDeviceLightSettion(CommonDevice device, int directionsLevel, int backlightLevel, string topicName) { //获å–对象 var classData = new ModelPanelBackLightInfo(); classData = (ModelPanelBackLightInfo)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A颿¿èƒŒå…‰ç¯, classData); classData.TopicName = topicName; classData.linghtLevelInfo.panelBacklightLevel = backlightLevel; classData.linghtLevelInfo.panelDirectionsLevel = directionsLevel; classData.DataSendDiv = ModelDataSendEnum.Aé€ä¼ æ•°æ®; this.SaveData(device); return true; } /// <summary> /// 获å–设备节能模å¼çš„é…置状æ€(uiå«èŠ‚èƒ½æ¨¡å¼) /// </summary> /// <param name="device"></param> /// <returns></returns> public Panel.PanelSaveEnergyModeInfo GetDeviceEnergyConservationMode(CommonDevice device) { //获å–对象 var classData = new ModelPanelBackLightInfo(); classData = (ModelPanelBackLightInfo)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A颿¿èƒŒå…‰ç¯, classData); var data = new Panel.PanelSaveEnergyModeInfo(); data.enable = classData.energyModeInfo.enable; data.level = classData.energyModeInfo.level == -1 ? 0 : classData.energyModeInfo.level; data.time = classData.energyModeInfo.time == -1 ? 0 : classData.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> /// <returns></returns> public bool SetDeviceEnergyConservationMode(CommonDevice device, bool modeEnable, int modeTime, int level,string topicName) { //获å–对象 var classData = new ModelPanelBackLightInfo(); classData = (ModelPanelBackLightInfo)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A颿¿èƒŒå…‰ç¯, classData); classData.TopicName = topicName; classData.DataSendDiv = ModelDataSendEnum.Aé€ä¼ æ•°æ®; classData.energyModeInfo.enable = modeEnable; classData.energyModeInfo.time = modeTime; classData.energyModeInfo.level = level; this.SaveData(device); return true; } /// <summary> /// èŽ·å–æŒ‰é”®æŒ‡ç¤ºç¯å¼€å…³é¢œè‰². /// </summary> /// <param name="device"></param> /// <param name="keyNum"></param> /// <returns></returns> public Panel.KeyColorDataResponseAllData GetPanelColorInfo(CommonDevice device, Panel.KeyNum keyNum) { //获å–对象 var classData = new ModelPanelBackLightInfo(); classData = (ModelPanelBackLightInfo)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A颿¿èƒŒå…‰ç¯, classData); var data = new Panel.KeyColorDataResponseAllData(); data.keyColorData = new Panel.KeyColorData(); data.keyColorData.CloseColorB = string.IsNullOrEmpty(classData.keyColorData.CloseColorB) == true ? "0" : classData.keyColorData.CloseColorB; data.keyColorData.CloseColorG = string.IsNullOrEmpty(classData.keyColorData.CloseColorG) == true ? "0" : classData.keyColorData.CloseColorG; data.keyColorData.CloseColorR = string.IsNullOrEmpty(classData.keyColorData.CloseColorR) == true ? "0" : classData.keyColorData.CloseColorR; data.keyColorData.OpenColorB = string.IsNullOrEmpty(classData.keyColorData.OpenColorB) == true ? "0" : classData.keyColorData.OpenColorB; data.keyColorData.OpenColorG = string.IsNullOrEmpty(classData.keyColorData.OpenColorG) == true ? "0" : classData.keyColorData.OpenColorG; data.keyColorData.OpenColorR = string.IsNullOrEmpty(classData.keyColorData.OpenColorR) == true ? "0" : classData.keyColorData.OpenColorR; data.keyColorData.keyNum = keyNum; return data; } ///<summary > ///é…置按键指示ç¯é¢œè‰² /// </summary> public CommonDevice.ResponseAllData SetPanelColorInfo(CommonDevice device, Panel.KeyColorData keyColorData, Panel.KeyNumStatus keyNumStatus, string topicName) { //获å–对象 var classData = new ModelPanelBackLightInfo(); classData = (ModelPanelBackLightInfo)this.GetDeviceModelDataClass(device, ModelDeviceSaveEnum.A颿¿èƒŒå…‰ç¯, classData); classData.TopicName = topicName; classData.DataSendDiv = ModelDataSendEnum.Aé€ä¼ æ•°æ®; classData.keyColorData.keyNum = keyColorData.keyNum; classData.keyColorData.OpenColorB = keyColorData.OpenColorB; classData.keyColorData.OpenColorG = keyColorData.OpenColorG; classData.keyColorData.OpenColorR = keyColorData.OpenColorR; classData.keyColorData.CloseColorB = keyColorData.CloseColorB; classData.keyColorData.CloseColorG = keyColorData.CloseColorG; classData.keyColorData.CloseColorR = keyColorData.CloseColorR; classData.KeyNum.Key1 = keyNumStatus.Key1; classData.KeyNum.Key2 = keyNumStatus.Key2; classData.KeyNum.Key3 = keyNumStatus.Key3; classData.KeyNum.Key4 = keyNumStatus.Key4; classData.KeyNum.Key5 = keyNumStatus.Key5; classData.KeyNum.Key6 = keyNumStatus.Key6; classData.KeyNum.Key7 = keyNumStatus.Key7; classData.KeyNum.Key8 = keyNumStatus.Key8; classData.KeyNum.Key9 = keyNumStatus.Key9; classData.KeyNum.Key10 = keyNumStatus.Key10; classData.KeyNum.Key11 = keyNumStatus.Key11; classData.KeyNum.Key12 = keyNumStatus.Key12; classData.KeyNum.Key13 = keyNumStatus.Key13; classData.KeyNum.Key14 = keyNumStatus.Key14; classData.KeyNum.Key15 = keyNumStatus.Key15; classData.KeyNum.Key16 = keyNumStatus.Key16; this.SaveData(device); return new CommonDevice.ResponseAllData { responseData = new CommonDevice.ResponseData { status = 0 } }; } #endregion #region â– ä¿å˜æ•°æ®___________________________ /// <summary> /// ä¿å˜ç¼“å˜æ•°æ® /// </summary> /// <param name="device">设备对象</param> private void SaveData(CommonDevice device) { //需è¦åˆ¤æ–,如果ä¸å˜åœ¨äº†,需è¦åˆ 除文件 } #endregion #region ■一般方法___________________________ /// <summary> /// 获å–设备ä¿å˜çš„æ¨¡æ¿å¯¹è±¡ /// </summary> /// <param name="device"></param> /// <param name="saveEnum"></param> /// <returns></returns> private ModelDeviceDataCommon GetDeviceModelDataClass(CommonDevice device, ModelDeviceSaveEnum saveEnum, ModelDeviceDataCommon newClass) { string mainkey = Common.LocalDevice.Current.GetDeviceMainKeys(device); if (this.modelData.dicAllData.ContainsKey(mainkey) == false) { //创建å˜å‚¨ç©ºé—´ this.modelData.dicAllData[mainkey] = new List<ModelDeviceDataCommon>(); } foreach (var data in this.modelData.dicAllData[mainkey]) { //如果是已ç»å˜åœ¨äº†çš„ if (data.DataSaveDiv == saveEnum) { return data; } } //新建一个新的对象 newClass.DataSaveDiv = saveEnum; newClass.DeviceEpoint = device.DeviceEpoint; newClass.DeviceMac = device.DeviceAddr; this.modelData.dicAllData[mainkey].Add(newClass); return newClass; } #endregion } }