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