void IGXDLMSBase.Load(GXXmlReader reader) { CurrentAverageValue = reader.ReadElementContentAsObject("CurrentAverageValue", null); LastAverageValue = reader.ReadElementContentAsObject("LastAverageValue", null); Scaler = reader.ReadElementContentAsDouble("Scaler", 1); Unit = (Unit)reader.ReadElementContentAsInt("Unit"); Status = reader.ReadElementContentAsObject("Status", null); string str = reader.ReadElementContentAsString("CaptureTime"); if (str == null) { CaptureTime = null; } else { CaptureTime = new GXDateTime(str); } str = reader.ReadElementContentAsString("StartTimeCurrent"); if (str == null) { StartTimeCurrent = null; } else { StartTimeCurrent = new GXDateTime(str); } Period = (UInt32)reader.ReadElementContentAsInt("Period"); NumberOfPeriods = (UInt16)reader.ReadElementContentAsInt("NumberOfPeriods"); }
void IGXDLMSBase.Load(GXXmlReader reader) { Unit = (Unit)reader.ReadElementContentAsInt("Unit", 0); Scaler = reader.ReadElementContentAsDouble("Scaler", 1); Value = reader.ReadElementContentAsObject("Value", null); Status = reader.ReadElementContentAsObject("Status", null); CaptureTime = (GXDateTime)reader.ReadElementContentAsObject("CaptureTime", null); }
void IGXDLMSBase.Load(GXXmlReader reader) { if (reader.IsStartElement("MonitoredValue", true)) { ObjectType ot = (ObjectType)reader.ReadElementContentAsInt("ObjectType"); string ln = reader.ReadElementContentAsString("LN"); if (ot != ObjectType.None && ln != null) { MonitoredValue = reader.Objects.FindByLN(ot, ln); //If item is not serialized yet. if (MonitoredValue == null) { MonitoredValue = GXDLMSClient.CreateObject(ot); MonitoredValue.LogicalName = ln; } } reader.ReadEndElement("MonitoredValue"); } ThresholdActive = reader.ReadElementContentAsObject("ThresholdActive", null); ThresholdNormal = reader.ReadElementContentAsObject("ThresholdNormal", null); ThresholdEmergency = reader.ReadElementContentAsObject("ThresholdEmergency", null); MinOverThresholdDuration = (UInt16)reader.ReadElementContentAsInt("MinOverThresholdDuration"); MinUnderThresholdDuration = (UInt16)reader.ReadElementContentAsInt("MinUnderThresholdDuration"); if (reader.IsStartElement("EmergencyProfile", true)) { EmergencyProfile.ID = (UInt16)reader.ReadElementContentAsInt("ID"); EmergencyProfile.ActivationTime = (GXDateTime)reader.ReadElementContentAsObject("Time", new GXDateTime()); EmergencyProfile.Duration = (UInt16)reader.ReadElementContentAsInt("Duration"); reader.ReadEndElement("EmergencyProfile"); } List <UInt16> list = new List <ushort>(); if (reader.IsStartElement("EmergencyProfileGroupIDs", true)) { while (reader.IsStartElement("Value", false)) { list.Add((UInt16)reader.ReadElementContentAsInt("Value")); } reader.ReadEndElement("EmergencyProfileGroupIDs"); } EmergencyProfileGroupIDs = list.ToArray(); EmergencyProfileActive = reader.ReadElementContentAsInt("Active") != 0; if (reader.IsStartElement("ActionOverThreshold", true)) { ActionOverThreshold.LogicalName = reader.ReadElementContentAsString("LN"); ActionOverThreshold.ScriptSelector = (UInt16)reader.ReadElementContentAsInt("ScriptSelector"); reader.ReadEndElement("ActionOverThreshold"); } if (reader.IsStartElement("ActionUnderThreshold", true)) { ActionUnderThreshold.LogicalName = reader.ReadElementContentAsString("LN"); ActionUnderThreshold.ScriptSelector = (UInt16)reader.ReadElementContentAsInt("ScriptSelector"); reader.ReadEndElement("ActionUnderThreshold"); } }
void IGXDLMSBase.Load(GXXmlReader reader) { Scripts.Clear(); if (reader.IsStartElement("Scripts", true)) { while (reader.IsStartElement("Script", true)) { GXDLMSScript it = new GXDLMSScript(); Scripts.Add(it); it.Id = reader.ReadElementContentAsInt("ID"); if (reader.IsStartElement("Actions", true)) { while (reader.IsStartElement("Action", true)) { GXDLMSScriptAction a = new Objects.GXDLMSScriptAction(); a.Type = (ScriptActionType)reader.ReadElementContentAsInt("Type"); ObjectType ot = (ObjectType)reader.ReadElementContentAsInt("ObjectType"); string ln = reader.ReadElementContentAsString("LN"); a.Index = reader.ReadElementContentAsInt("Index"); a.Target = reader.Objects.FindByLN(ot, ln); if (a.Target == null) { a.Target = GXDLMSClient.CreateObject(ot); a.Target.LogicalName = ln; } a.ParameterDataType = (DataType)reader.ReadElementContentAsInt("ParameterDataType"); a.Parameter = reader.ReadElementContentAsObject("Parameter", null); } reader.ReadEndElement("Actions"); } } reader.ReadEndElement("Scripts"); } }
void IGXDLMSBase.Load(GXXmlReader reader) { Unit = (Unit)reader.ReadElementContentAsInt("Unit", 0); Scaler = reader.ReadElementContentAsDouble("Scaler", 1); Value = reader.ReadElementContentAsObject("Value", null, this, 2); Status = reader.ReadElementContentAsObject("Status", null, this, 4); GXDateTime dt = reader.ReadElementContentAsDateTime("CaptureTime"); if (dt == null) { CaptureTime = DateTime.MinValue; } else { CaptureTime = dt.Value.ToLocalTime().LocalDateTime; } }
void IGXDLMSBase.Load(GXXmlReader reader) { List <object> thresholds = new List <object>(); if (reader.IsStartElement("Thresholds", true)) { while (reader.IsStartElement("Value", false)) { object it = reader.ReadElementContentAsObject("Value", null); thresholds.Add(it); } reader.ReadEndElement("Thresholds"); } Thresholds = thresholds.ToArray(); if (reader.IsStartElement("MonitoredValue", true)) { MonitoredValue.ObjectType = (ObjectType)reader.ReadElementContentAsInt("ObjectType"); MonitoredValue.LogicalName = reader.ReadElementContentAsString("LN"); MonitoredValue.AttributeIndex = reader.ReadElementContentAsInt("Index"); reader.ReadEndElement("MonitoredValue"); } List <GXDLMSActionSet> list = new List <GXDLMSActionSet>(); if (reader.IsStartElement("Actions", true)) { while (reader.IsStartElement("Item", true)) { GXDLMSActionSet it = new GXDLMSActionSet(); list.Add(it); if (reader.IsStartElement("Up", true)) { it.ActionUp.LogicalName = reader.ReadElementContentAsString("LN", null); if (it.ActionUp.LogicalName == "") { it.ActionUp.LogicalName = "0.0.0.0.0.0"; } it.ActionUp.ScriptSelector = (UInt16)reader.ReadElementContentAsInt("Selector"); reader.ReadEndElement("Up"); } if (reader.IsStartElement("Down", true)) { it.ActionDown.LogicalName = reader.ReadElementContentAsString("LN", null); if (it.ActionDown.LogicalName == "") { it.ActionDown.LogicalName = "0.0.0.0.0.0"; } it.ActionDown.ScriptSelector = (UInt16)reader.ReadElementContentAsInt("Selector"); reader.ReadEndElement("Down"); } } reader.ReadEndElement("Actions"); } Actions = list.ToArray(); }
private void LoadPrefixTable(GXXmlReader reader) { List <object> list = new List <object>(); if (reader.IsStartElement("PrefixTable", true)) { while (reader.IsStartElement("Value", false)) { list.Add(reader.ReadElementContentAsObject("Value", null)); } reader.ReadEndElement("PrefixTable"); } PrefixTable = list.ToArray(); }
void IGXDLMSBase.Load(GXXmlReader reader) { Entries.Clear(); if (reader.IsStartElement("Entries", true)) { while (reader.IsStartElement("Item", true)) { GXScheduleEntry it = new GXScheduleEntry(); it.Index = (byte)reader.ReadElementContentAsInt("Index"); it.Enable = reader.ReadElementContentAsInt("Enable") != 0; it.LogicalName = reader.ReadElementContentAsString("LogicalName"); it.ScriptSelector = (byte)reader.ReadElementContentAsInt("ScriptSelector"); it.SwitchTime = (GXDateTime)reader.ReadElementContentAsObject("SwitchTime", new GXDateTime()); it.ValidityWindow = (byte)reader.ReadElementContentAsInt("ValidityWindow"); it.ExecWeekdays = reader.ReadElementContentAsString("ExecWeekdays"); it.ExecSpecDays = reader.ReadElementContentAsString("ExecSpecDays"); it.BeginDate = (GXDateTime)reader.ReadElementContentAsObject("BeginDate", new GXDateTime()); it.EndDate = (GXDateTime)reader.ReadElementContentAsObject("EndDate", new GXDateTime()); Entries.Add(it); } reader.ReadEndElement("Entries"); } }
void IGXDLMSBase.Load(GXXmlReader reader) { Buffer.Clear(); if (reader.IsStartElement("Buffer", true)) { while (reader.IsStartElement("Row", true)) { List <object> row = new List <object>(); while (reader.IsStartElement("Cell", false)) { row.Add(reader.ReadElementContentAsObject("Cell", null)); } Buffer.Add(row.ToArray()); } reader.ReadEndElement("Buffer"); } CaptureObjects.Clear(); if (reader.IsStartElement("CaptureObjects", true)) { while (reader.IsStartElement("Item", true)) { ObjectType ot = (ObjectType)reader.ReadElementContentAsInt("ObjectType"); string ln = reader.ReadElementContentAsString("LN"); int ai = reader.ReadElementContentAsInt("Attribute"); int di = reader.ReadElementContentAsInt("Data"); GXDLMSCaptureObject co = new GXDLMSCaptureObject(ai, di); GXDLMSObject obj = reader.Objects.FindByLN(ot, ln); if (obj == null) { obj = GXDLMSClient.CreateObject(ot); obj.LogicalName = ln; } CaptureObjects.Add(new GXKeyValuePair <GXDLMSObject, GXDLMSCaptureObject>(obj, co)); } reader.ReadEndElement("CaptureObjects"); } CapturePeriod = reader.ReadElementContentAsInt("CapturePeriod"); SortMethod = (SortMethod)reader.ReadElementContentAsInt("SortMethod"); if (reader.IsStartElement("SortObject", true)) { CapturePeriod = reader.ReadElementContentAsInt("CapturePeriod"); ObjectType ot = (ObjectType)reader.ReadElementContentAsInt("ObjectType"); string ln = reader.ReadElementContentAsString("LN"); SortObject = reader.Objects.FindByLN(ot, ln); reader.ReadEndElement("SortObject"); } EntriesInUse = reader.ReadElementContentAsInt("EntriesInUse"); ProfileEntries = reader.ReadElementContentAsInt("ProfileEntries"); }
void IGXDLMSBase.Load(GXXmlReader reader) { PHYReference = reader.ReadElementContentAsString("PHYReference"); List <GXDLMSPppSetupLcpOption> options = new List <GXDLMSPppSetupLcpOption>(); if (reader.IsStartElement("LCPOptions", true)) { while (reader.IsStartElement("Item", true)) { GXDLMSPppSetupLcpOption it = new GXDLMSPppSetupLcpOption(); it.Type = (PppSetupLcpOptionType)reader.ReadElementContentAsInt("Type"); it.Length = (byte)reader.ReadElementContentAsInt("Length"); it.Data = reader.ReadElementContentAsObject("Data", null); } reader.ReadEndElement("LCPOptions"); } LCPOptions = options.ToArray(); List <GXDLMSPppSetupIPCPOption> list = new List <GXDLMSPppSetupIPCPOption>(); if (reader.IsStartElement("IPCPOptions", true)) { while (reader.IsStartElement("Item", true)) { GXDLMSPppSetupIPCPOption it = new GXDLMSPppSetupIPCPOption(); it.Type = (PppSetupIPCPOptionType)reader.ReadElementContentAsInt("Type"); it.Length = (byte)reader.ReadElementContentAsInt("Length"); it.Data = reader.ReadElementContentAsObject("Data", null); } reader.ReadEndElement("IPCPOptions"); } IPCPOptions = list.ToArray(); UserName = GXDLMSTranslator.HexToBytes(reader.ReadElementContentAsString("UserName")); Password = GXDLMSTranslator.HexToBytes(reader.ReadElementContentAsString("Password")); }
void IGXDLMSBase.Load(GXXmlReader reader) { ChangedParameter = new GXDLMSTarget(); if (reader.IsStartElement("ChangedParameter", true)) { ObjectType ot = (ObjectType)reader.ReadElementContentAsInt("Type"); string ln = reader.ReadElementContentAsString("LN"); ChangedParameter.Target = reader.Objects.FindByLN(ot, ln); if (ChangedParameter.Target == null) { ChangedParameter.Target = GXDLMSClient.CreateObject(ot); ChangedParameter.Target.LogicalName = ln; } ChangedParameter.AttributeIndex = (byte)reader.ReadElementContentAsInt("Index"); ChangedParameter.Value = reader.ReadElementContentAsObject("Value", null); reader.ReadEndElement("ChangedParameter"); } if (string.Compare("Time", reader.Name, true) == 0) { CaptureTime = new GXDateTime(reader.ReadElementContentAsString("Time"), CultureInfo.InvariantCulture); } else { CaptureTime = DateTime.MinValue; } Parameters.Clear(); if (reader.IsStartElement("Parameters", true)) { while (reader.IsStartElement("Item", true)) { GXDLMSTarget obj = new GXDLMSTarget(); ObjectType ot = (ObjectType)reader.ReadElementContentAsInt("Type"); string ln = reader.ReadElementContentAsString("LN"); obj.Target = reader.Objects.FindByLN(ot, ln); if (obj.Target == null) { obj.Target = GXDLMSClient.CreateObject(ot); obj.Target.LogicalName = ln; } obj.AttributeIndex = (byte)reader.ReadElementContentAsInt("Index"); Parameters.Add(obj); } reader.ReadEndElement("Parameters"); } }
void IGXDLMSBase.Load(GXXmlReader reader) { Unit = (Unit)reader.ReadElementContentAsInt("Unit", 0); Scaler = reader.ReadElementContentAsDouble("Scaler", 1); Value = reader.ReadElementContentAsObject("Value", null); }
void IGXDLMSBase.Load(GXXmlReader reader) { Value = reader.ReadElementContentAsObject("Value", null, this, 2); }