using HDL_ON.Entity;
using System;
using System.Collections.Generic;
using System.Text;
namespace HDL_ON.Stan
{
///
/// 设备状态推送逻辑(继承于EditorFormBase的界面专用)
///
public class HdlDeviceStatuPushLogic
{
#region ■ 变量声明___________________________
///
/// 设备状态推送逻辑(继承于EditorFormBase的界面专用)
///
private static HdlDeviceStatuPushLogic m_Current = null;
///
/// 设备状态推送逻辑(继承于EditorFormBase的界面专用)
///
public static HdlDeviceStatuPushLogic Current
{
get
{
if (m_Current == null)
{
m_Current = new HdlDeviceStatuPushLogic();
}
return m_Current;
}
}
#endregion
#region ■ 状态更新___________________________
///
/// 设备状态更新
///
/// 云端推送的更新数据
public Function UpdateDeviceStatu(string sId ,List updateData)
{
var localDevice = FunctionList.List.GetDeviceFunctionList().Find((obj) => obj.sid == sId);
if (localDevice != null)
{
foreach (var attr in updateData)
{
//var localAttr2 = localDevice.attributes.Find((obj) => obj.key == attr.key);
//if (localAttr2 == null)
//{
// //本身它就没有这个属性,则不处理
// continue;
//}
////更改属性值
//localAttr2.curValue = attr.value;
//var localAttr = localDevice.status.Find((obj) => obj.key == attr.key);
//if (localAttr == null)
//{
// //status是当前设备上报过的属性才会存在,也就是它的个数有可能和attributes不一致
// localAttr = new AttributesStatus() { key = attr.key, value = attr.value };
// localDevice.status.Add(localAttr);
//}
////更改属性值
//localAttr.value = attr.value;
localDevice.SetAttrState(attr.key, attr.value);
}
//全部界面推送
HdlFormLogic.Current.DeviceStatuPush(localDevice);
}
return localDevice;
}
#endregion
}
}