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
|
}
|
}
|