using HDL_ON.Entity;
|
using System;
|
using System.Collections.Generic;
|
using System.Text;
|
|
namespace HDL_ON.Stan
|
{
|
/// <summary>
|
/// 设备状态推送逻辑(继承于EditorFormBase的界面专用)
|
/// </summary>
|
public class HdlDeviceStatuPushLogic
|
{
|
#region ■ 变量声明___________________________
|
|
/// <summary>
|
/// 设备状态推送逻辑(继承于EditorFormBase的界面专用)
|
/// </summary>
|
private static HdlDeviceStatuPushLogic m_Current = null;
|
/// <summary>
|
/// 设备状态推送逻辑(继承于EditorFormBase的界面专用)
|
/// </summary>
|
public static HdlDeviceStatuPushLogic Current
|
{
|
get
|
{
|
if (m_Current == null)
|
{
|
m_Current = new HdlDeviceStatuPushLogic();
|
}
|
return m_Current;
|
}
|
}
|
#endregion
|
|
#region ■ 状态更新___________________________
|
|
/// <summary>
|
/// 设备状态更新
|
/// </summary>
|
/// <param name="updateData">云端推送的更新数据</param>
|
public Function UpdateDeviceStatu(string sId ,List<AttributesStatus> 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
|
}
|
}
|