void IGXDLMSBase.Save(GXXmlWriter writer) { writer.WriteElementString("ImageBlockSize", ImageBlockSize); writer.WriteElementString("ImageTransferredBlocksStatus", ImageTransferredBlocksStatus); writer.WriteElementString("ImageFirstNotTransferredBlockNumber", ImageFirstNotTransferredBlockNumber); writer.WriteElementString("ImageTransferEnabled", ImageTransferEnabled); writer.WriteElementString("ImageTransferStatus", (int)ImageTransferStatus); if (ImageActivateInfo != null) { writer.WriteStartElement("ImageActivateInfo"); foreach (GXDLMSImageActivateInfo it in ImageActivateInfo) { writer.WriteStartElement("Item"); writer.WriteElementString("Size", it.Size); writer.WriteElementString("Identification", it.Identification); writer.WriteElementString("Signature", it.Signature); writer.WriteEndElement(); } writer.WriteEndElement(); } }
void IGXDLMSBase.Save(GXXmlWriter writer) { writer.WriteElementString("MaxHops", MaxHops); writer.WriteElementString("WeakLqiValue", WeakLqiValue); writer.WriteElementString("SecurityLevel", SecurityLevel); SavePrefixTable(writer); SaveRoutingConfiguration(writer); writer.WriteElementString("BroadcastLogTableEntryTtl", BroadcastLogTableEntryTtl); SaveRoutingTable(writer); SaveContextInformationTable(writer); SaveBlacklistTable(writer); SaveBroadcastLogTable(writer); SaveGroupTable(writer); writer.WriteElementString("MaxJoinWaitTime", MaxJoinWaitTime); writer.WriteElementString("PathDiscoveryTime", PathDiscoveryTime); writer.WriteElementString("ActiveKeyIndex", ActiveKeyIndex); writer.WriteElementString("MetricType", MetricType); writer.WriteElementString("CoordShortAddress", CoordShortAddress); writer.WriteElementString("DisableDefaultRouting", DisableDefaultRouting); writer.WriteElementString("DeviceType", (int)DeviceType); }
private void SaveWeekProfileTable(GXXmlWriter writer, GXDLMSWeekProfile[] list, string name) { if (list != null) { writer.WriteStartElement(name); foreach (GXDLMSWeekProfile it in list) { writer.WriteStartElement("Item"); writer.WriteElementString("Name", GXDLMSTranslator.ToHex(it.Name)); writer.WriteElementString("Monday", it.Monday); writer.WriteElementString("Tuesday", it.Tuesday); writer.WriteElementString("Wednesday", it.Wednesday); writer.WriteElementString("Thursday", it.Thursday); writer.WriteElementString("Friday", it.Friday); writer.WriteElementString("Saturday", it.Saturday); writer.WriteElementString("Sunday", it.Sunday); writer.WriteEndElement(); } writer.WriteEndElement(); } }
void IGXDLMSBase.Save(GXXmlWriter writer) { writer.WriteElementString("ImageBlockSize", ImageBlockSize, 2); writer.WriteElementString("ImageTransferredBlocksStatus", ImageTransferredBlocksStatus, 3); writer.WriteElementString("ImageFirstNotTransferredBlockNumber", ImageFirstNotTransferredBlockNumber, 4); writer.WriteElementString("ImageTransferEnabled", ImageTransferEnabled, 5); writer.WriteElementString("ImageTransferStatus", (int)ImageTransferStatus, 6); writer.WriteStartElement("ImageActivateInfo", 7); if (ImageActivateInfo != null) { foreach (GXDLMSImageActivateInfo it in ImageActivateInfo) { writer.WriteStartElement("Item", 7); writer.WriteElementString("Size", it.Size, 7); writer.WriteElementString("Identification", GXCommon.ToHex(it.Identification, false), 7); writer.WriteElementString("Signature", GXCommon.ToHex(it.Signature, false), 7); writer.WriteEndElement(); } } writer.WriteEndElement(); }
void IGXDLMSBase.Save(GXXmlWriter writer) { writer.WriteElementString("Buffer", GXCommon.ToHex(Buffer, false)); if (CaptureObjects.Count != 0) { writer.WriteStartElement("CaptureObjects"); foreach (GXKeyValuePair <GXDLMSObject, GXDLMSCaptureObject> it in CaptureObjects) { writer.WriteStartElement("Item"); writer.WriteElementString("ObjectType", (int)it.Key.ObjectType); writer.WriteElementString("LN", it.Key.LogicalName); writer.WriteElementString("Attribute", it.Value.AttributeIndex); writer.WriteElementString("Data", it.Value.DataIndex); writer.WriteEndElement(); } writer.WriteEndElement(); } writer.WriteElementString("TemplateId", TemplateId); writer.WriteElementString("TemplateDescription", GXCommon.ToHex(TemplateDescription, false)); writer.WriteElementString("CaptureMethod", (int)CaptureMethod); }
void IGXDLMSBase.Save(GXXmlWriter writer) { writer.WriteElementString("PaymentMode", (int)PaymentMode); writer.WriteElementString("AccountStatus", (int)AccountStatus); writer.WriteElementString("CurrentCreditInUse", CurrentCreditInUse); writer.WriteElementString("CurrentCreditStatus", (byte)CurrentCreditStatus); writer.WriteElementString("AvailableCredit", AvailableCredit); writer.WriteElementString("AmountToClear", AmountToClear); writer.WriteElementString("ClearanceThreshold", ClearanceThreshold); writer.WriteElementString("AggregatedDebt", AggregatedDebt); SaveReferences(writer, CreditReferences, "CreditReferences"); SaveReferences(writer, ChargeReferences, "ChargeReferences"); SaveCreditChargeConfigurations(writer, CreditChargeConfigurations); SaveTokenGatewayConfigurations(writer, TokenGatewayConfigurations); if (AccountActivationTime != null) { writer.WriteElementString("AccountActivationTime", AccountActivationTime.ToFormatString(System.Globalization.CultureInfo.InvariantCulture)); } else { writer.WriteElementString("AccountActivationTime", ""); } if (AccountClosureTime != null) { writer.WriteElementString("AccountClosureTime", AccountClosureTime.ToFormatString(System.Globalization.CultureInfo.InvariantCulture)); } else { writer.WriteElementString("AccountClosureTime", ""); } writer.WriteElementString("CurrencyName", Currency.Name); writer.WriteElementString("CurrencyScale", Currency.Scale); writer.WriteElementString("CurrencyUnit", (int)Currency.Unit); writer.WriteElementString("LowCreditThreshold", LowCreditThreshold); writer.WriteElementString("NextCreditAvailableThreshold", NextCreditAvailableThreshold); writer.WriteElementString("MaxProvision", MaxProvision); writer.WriteElementString("MaxProvisionPeriod", MaxProvisionPeriod); }
/// <summary> /// Save COSEM objects to the file. /// </summary> /// <param name="filename">File name.</param> /// <param name="settings">XML write settings.</param> public void Save(string filename, GXXmlWriterSettings settings) { using (GXXmlWriter writer = new GXXmlWriter(filename, settings.IgnoreDefaultValues)) { writer.WriteStartDocument(); writer.WriteStartElement("Objects"); foreach (GXDLMSObject it in this) { if (settings == null || !settings.Old) { writer.WriteStartElement("GXDLMS" + it.ObjectType.ToString()); } else { writer.WriteStartElement("Object"); writer.WriteAttributeString("Type", ((int)it.ObjectType).ToString()); } // Add SN if (it.ShortName != 0) { writer.WriteElementString("SN", it.ShortName); } // Add LN writer.WriteElementString("LN", it.LogicalName); // Add description if given. if (!string.IsNullOrEmpty(it.Description)) { writer.WriteElementString("Description", it.Description); } if (settings == null || settings.Values) { (it as IGXDLMSBase).Save(writer); } // Close object. writer.WriteEndElement(); } writer.WriteEndElement(); writer.WriteEndDocument(); } }
private void SaveCommunications(GXXmlWriter writer, int index) { writer.WriteStartElement("Communications", index); if (Communications != null) { foreach (GXMacPhyCommunication it in Communications) { writer.WriteStartElement("Item", index); writer.WriteElementString("Eui", GXCommon.ToHex(it.Eui, false), index); writer.WriteElementString("TxPower", it.TxPower, index); writer.WriteElementString("TxCoding", it.TxCoding, index); writer.WriteElementString("RxCoding", it.RxCoding, index); writer.WriteElementString("RxLvl", it.RxLvl, index); writer.WriteElementString("Snr", it.Snr, index); writer.WriteElementString("TxPowerModified", it.TxPowerModified, index); writer.WriteElementString("TxCodingModified", it.TxCodingModified, index); writer.WriteElementString("RxCodingModified", it.RxCodingModified, index); writer.WriteEndElement(); } } writer.WriteEndElement(); }
private static void SaveUnitCharge(GXXmlWriter writer, string name, GXUnitCharge charge, int index) { writer.WriteStartElement(name, index); writer.WriteElementString("Scale", charge.ChargePerUnitScaling.CommodityScale, index); writer.WriteElementString("PriceScale", charge.ChargePerUnitScaling.PriceScale, index); writer.WriteElementString("Type", (int)charge.Commodity.Target.ObjectType, index); writer.WriteElementString("Ln", charge.Commodity.Target.LogicalName, index); writer.WriteElementString("Index", charge.Commodity.Index, index); writer.WriteStartElement("ChargeTables", 0); if (charge.ChargeTables != null) { foreach (GXChargeTable it in charge.ChargeTables) { writer.WriteStartElement("Item", 0); writer.WriteElementString("Index", it.Index, index); writer.WriteElementString("ChargePerUnit", it.ChargePerUnit, index); writer.WriteEndElement(); } } writer.WriteEndElement(); writer.WriteEndElement(); }
void IGXDLMSBase.Save(GXXmlWriter writer) { if (Thresholds != null) { writer.WriteStartElement("Thresholds"); foreach (Object it in Thresholds) { writer.WriteElementObject("Value", it); } writer.WriteEndElement(); } if (MonitoredValue != null) { writer.WriteStartElement("MonitoredValue"); writer.WriteElementString("ObjectType", (int)MonitoredValue.ObjectType); writer.WriteElementString("LN", MonitoredValue.LogicalName); writer.WriteElementString("Index", MonitoredValue.AttributeIndex); writer.WriteEndElement(); } if (Actions != null) { writer.WriteStartElement("Actions"); foreach (GXDLMSActionSet it in Actions) { writer.WriteStartElement("Item"); writer.WriteStartElement("Up"); writer.WriteElementString("LN", it.ActionUp.LogicalName); writer.WriteElementString("Selector", it.ActionUp.ScriptSelector); writer.WriteEndElement(); writer.WriteStartElement("Down"); writer.WriteElementString("LN", it.ActionDown.LogicalName); writer.WriteElementString("Selector", it.ActionDown.ScriptSelector); writer.WriteEndElement(); writer.WriteEndElement(); } writer.WriteEndElement(); } }
void IGXDLMSBase.Save(GXXmlWriter writer) { writer.WriteElementString("Mode", (int)Mode); writer.WriteElementString("Repetitions", Repetitions); writer.WriteElementString("RepetitionDelay", RepetitionDelay); if (CallingWindow != null) { writer.WriteStartElement("CallingWindow"); foreach (KeyValuePair <GXDateTime, GXDateTime> it in CallingWindow) { writer.WriteStartElement("Item"); writer.WriteElementString("Start", it.Key.ToFormatString(System.Globalization.CultureInfo.InvariantCulture)); writer.WriteElementString("End", it.Value.ToFormatString(System.Globalization.CultureInfo.InvariantCulture)); writer.WriteEndElement(); } writer.WriteEndElement(); } if (Destinations != null) { writer.WriteElementString("Destinations", string.Join(";", Destinations)); } }
void IGXDLMSBase.Save(GXXmlWriter writer) { writer.WriteElementString("SecurityPolicy", (byte)SecurityPolicy, 2); writer.WriteElementString("SecuritySuite", (int)SecuritySuite, 3); writer.WriteElementString("ClientSystemTitle", GXDLMSTranslator.ToHex(ClientSystemTitle), 4); writer.WriteElementString("ServerSystemTitle", GXDLMSTranslator.ToHex(ServerSystemTitle), 5); if (Certificates != null) { writer.WriteStartElement("Certificates", 6); foreach (GXDLMSCertificateInfo it in Certificates) { writer.WriteStartElement("Item", 0); writer.WriteElementString("Entity", (int)it.Entity, 0); writer.WriteElementString("Type", (int)it.Type, 0); writer.WriteElementString("SerialNumber", it.SerialNumber.ToString(), 0); writer.WriteElementString("Issuer", it.Issuer, 0); writer.WriteElementString("Subject", it.Subject, 0); writer.WriteElementString("SubjectAltName", it.SubjectAltName, 0); writer.WriteEndElement(); } writer.WriteEndElement(); } }
void IGXDLMSBase.Save(GXXmlWriter writer) { writer.WriteElementString("MBusPortReference", MBusPortReference); if (CaptureDefinition != null) { writer.WriteStartElement("CaptureDefinition"); foreach (KeyValuePair <string, string> it in CaptureDefinition) { writer.WriteStartElement("Item"); writer.WriteElementString("Data", it.Key); writer.WriteElementString("Value", it.Value); writer.WriteEndElement(); } writer.WriteEndElement(); } writer.WriteElementString("CapturePeriod", CapturePeriod); writer.WriteElementString("PrimaryAddress", PrimaryAddress); writer.WriteElementString("IdentificationNumber", IdentificationNumber); writer.WriteElementString("ManufacturerID", ManufacturerID); writer.WriteElementString("DataHeaderVersion", DataHeaderVersion); writer.WriteElementString("DeviceType", DeviceType); writer.WriteElementString("AccessNumber", AccessNumber); }
void IGXDLMSBase.Save(GXXmlWriter writer) { writer.WriteElementString("Mode", (int)Mode, 2); writer.WriteElementString("Repetitions", Repetitions, 3); writer.WriteElementString("RepetitionDelay", RepetitionDelay, 4); writer.WriteStartElement("CallingWindow", 5); if (CallingWindow != null) { foreach (KeyValuePair <GXDateTime, GXDateTime> it in CallingWindow) { writer.WriteStartElement("Item", 5); //Some meters are returning time here, not date-time. writer.WriteElementString("Start", new GXDateTime(it.Key), 5); writer.WriteElementString("End", new GXDateTime(it.Value), 5); writer.WriteEndElement(); } } writer.WriteEndElement(); if (Destinations != null) { writer.WriteElementString("Destinations", string.Join(";", Destinations), 6); } }
void IGXDLMSBase.Save(GXXmlWriter writer) { if (Entries != null) { writer.WriteStartElement("Entries"); foreach (GXScheduleEntry it in Entries) { writer.WriteStartElement("Item"); writer.WriteElementString("Index", it.Index); writer.WriteElementString("Enable", it.Enable); writer.WriteElementString("LogicalName", it.LogicalName); writer.WriteElementString("ScriptSelector", it.ScriptSelector); writer.WriteElementObject("SwitchTime", it.SwitchTime); writer.WriteElementString("ValidityWindow", it.ValidityWindow); writer.WriteElementString("ExecWeekdays", it.ExecWeekdays); writer.WriteElementString("ExecSpecDays", it.ExecSpecDays); writer.WriteElementObject("BeginDate", it.BeginDate); writer.WriteElementObject("EndDate", it.EndDate); writer.WriteEndElement(); } writer.WriteEndElement();//Entries } }
void IGXDLMSBase.Save(GXXmlWriter writer) { if (Scripts != null) { writer.WriteStartElement("Scripts"); foreach (GXDLMSScript it in Scripts) { writer.WriteStartElement("Script"); writer.WriteElementString("ID", it.Id.ToString()); writer.WriteStartElement("Actions"); foreach (GXDLMSScriptAction a in it.Actions) { writer.WriteStartElement("Action"); writer.WriteElementString("Type", ((int)a.Type).ToString()); if (a.Target == null) { writer.WriteElementString("ObjectType", (int)ObjectType.None); writer.WriteElementString("LN", "0.0.0.0.0.0"); writer.WriteElementString("Index", "0"); writer.WriteElementString("ParameterDataType", (int)DataType.None); writer.WriteElementObject("Parameter", ""); } else { writer.WriteElementString("ObjectType", (int)a.Target.ObjectType); writer.WriteElementString("LN", a.Target.LogicalName); writer.WriteElementString("Index", a.Index); writer.WriteElementObject("Parameter", a.Parameter); } writer.WriteEndElement(); } writer.WriteEndElement(); //Actions writer.WriteEndElement(); //Script } writer.WriteEndElement(); //Scripts } }
void IGXDLMSBase.Save(GXXmlWriter writer) { if (CommunicationSpeed != BaudRate.Baudrate300) { writer.WriteElementString("CommunicationSpeed", ((int)CommunicationSpeed).ToString()); } if (InitialisationStrings != null) { writer.WriteStartElement("InitialisationStrings"); foreach (GXDLMSModemInitialisation it in InitialisationStrings) { writer.WriteStartElement("Initialisation"); writer.WriteElementString("Request", it.Request); writer.WriteElementString("Response", it.Response); writer.WriteElementString("Delay", it.Delay); writer.WriteEndElement(); } writer.WriteEndElement(); } if (ModemProfile != null) { writer.WriteElementString("ModemProfile", string.Join(";", ModemProfile)); } }
void SaveNeighbourTable(GXXmlWriter writer, int index) { writer.WriteStartElement("NeighbourTable", index); if (NeighbourTable != null) { foreach (GXDLMSNeighbourTable it in NeighbourTable) { writer.WriteStartElement("Item", index); writer.WriteElementString("ShortAddress", it.ShortAddress, index); writer.WriteElementString("Enabled", it.Enabled, index); writer.WriteElementString("ToneMap", it.ToneMap, index); writer.WriteElementString("Modulation", (int)it.Modulation, index); writer.WriteElementString("TxGain", it.TxGain, index); writer.WriteElementString("TxRes", (int)it.TxRes, index); writer.WriteElementString("TxCoeff", it.TxCoeff, index); writer.WriteElementString("Lqi", it.Lqi, index); writer.WriteElementString("PhaseDifferential", it.PhaseDifferential, index); writer.WriteElementString("TMRValidTime", it.TMRValidTime, index); writer.WriteElementString("NeighbourValidTime", it.NeighbourValidTime, index); writer.WriteEndElement(); } } writer.WriteEndElement();//NeighbourTable }
void IGXDLMSBase.Save(GXXmlWriter writer) { writer.WriteElementString("ShortAddress", ShortAddress, 2); writer.WriteElementString("RcCoord", RcCoord, 3); writer.WriteElementString("PANId", PANId, 4); SaveKeyTable(writer, 5); writer.WriteElementString("FrameCounter", FrameCounter, 6); writer.WriteElementString("ToneMask", ToneMask, 7); writer.WriteElementString("TmrTtl", TmrTtl, 8); writer.WriteElementString("MaxFrameRetries", MaxFrameRetries, 9); writer.WriteElementString("NeighbourTableEntryTtl", NeighbourTableEntryTtl, 10); SaveNeighbourTable(writer, 11); writer.WriteElementString("HighPriorityWindowSize", HighPriorityWindowSize, 12); writer.WriteElementString("CscmFairnessLimit", CscmFairnessLimit, 13); writer.WriteElementString("BeaconRandomizationWindowLength", BeaconRandomizationWindowLength, 14); writer.WriteElementString("A", A, 15); writer.WriteElementString("K", K, 16); writer.WriteElementString("MinCwAttempts", MinCwAttempts, 17); writer.WriteElementString("CenelecLegacyMode", CenelecLegacyMode, 18); writer.WriteElementString("FccLegacyMode", FccLegacyMode, 19); writer.WriteElementString("MaxBe", MaxBe, 20); writer.WriteElementString("MaxCsmaBackoffs", MaxCsmaBackoffs, 21); writer.WriteElementString("MinBe", MinBe, 22); }
void SaveNeighbourTable(GXXmlWriter writer) { if (NeighbourTable != null) { writer.WriteStartElement("NeighbourTable"); foreach (GXDLMSNeighbourTable it in NeighbourTable) { writer.WriteStartElement("Item"); writer.WriteElementString("ShortAddress", it.ShortAddress); writer.WriteElementString("Enabled", it.Enabled); writer.WriteElementString("ToneMap", it.ToneMap); writer.WriteElementString("Modulation", (int)it.Modulation); writer.WriteElementString("TxGain", it.TxGain); writer.WriteElementString("TxRes", (int)it.TxRes); writer.WriteElementString("TxCoeff", it.TxCoeff); writer.WriteElementString("Lqi", it.Lqi); writer.WriteElementString("PhaseDifferential", it.PhaseDifferential); writer.WriteElementString("TMRValidTime", it.TMRValidTime); writer.WriteElementString("NeighbourValidTime", it.NeighbourValidTime); writer.WriteEndElement(); } writer.WriteEndElement();//NeighbourTable } }
void IGXDLMSBase.Save(GXXmlWriter writer) { writer.WriteElementString("CommunicationSpeed", ((int)CommunicationSpeed), (int)BaudRate.Baudrate300, 2); writer.WriteStartElement("InitialisationStrings", 3); if (InitialisationStrings != null) { foreach (GXDLMSModemInitialisation it in InitialisationStrings) { writer.WriteStartElement("Initialisation", 3); writer.WriteElementString("Request", it.Request, 3); writer.WriteElementString("Response", it.Response, 3); writer.WriteElementString("Delay", it.Delay, 3); writer.WriteEndElement(); } } writer.WriteEndElement(); string str = null; if (ModemProfile != null) { str = string.Join(";", ModemProfile); } writer.WriteElementString("ModemProfile", str, 4); }
private void SaveDayProfileTable(GXXmlWriter writer, GXDLMSDayProfile[] list, string name, int index) { if (list != null) { writer.WriteStartElement(name, index); foreach (GXDLMSDayProfile it in list) { writer.WriteStartElement("Item", index); writer.WriteElementString("DayId", it.DayId, index); writer.WriteStartElement("Actions", index); foreach (GXDLMSDayProfileAction d in it.DaySchedules) { writer.WriteStartElement("Action", index); writer.WriteElementString("Start", d.StartTime, index); writer.WriteElementString("LN", d.ScriptLogicalName, index); writer.WriteElementString("Selector", d.ScriptSelector, index); writer.WriteEndElement(); } writer.WriteEndElement(); writer.WriteEndElement(); } writer.WriteEndElement(); } }
void IGXDLMSBase.Save(GXXmlWriter writer) { writer.WriteElementString("ShortAddress", ShortAddress); writer.WriteElementString("RcCoord", RcCoord); writer.WriteElementString("PANId", PANId); SaveKeyTable(writer); writer.WriteElementString("FrameCounter", FrameCounter); writer.WriteElementString("ToneMask", ToneMask); writer.WriteElementString("TmrTtl", TmrTtl); writer.WriteElementString("MaxFrameRetries", MaxFrameRetries); writer.WriteElementString("NeighbourTableEntryTtl", NeighbourTableEntryTtl); SaveNeighbourTable(writer); writer.WriteElementString("HighPriorityWindowSize", HighPriorityWindowSize); writer.WriteElementString("CscmFairnessLimit", CscmFairnessLimit); writer.WriteElementString("BeaconRandomizationWindowLength", BeaconRandomizationWindowLength); writer.WriteElementString("A", A); writer.WriteElementString("K", K); writer.WriteElementString("MinCwAttempts", MinCwAttempts); writer.WriteElementString("CenelecLegacyMode", CenelecLegacyMode); writer.WriteElementString("FccLegacyMode", FccLegacyMode); writer.WriteElementString("MaxBe", MaxBe); writer.WriteElementString("MaxCsmaBackoffs", MaxCsmaBackoffs); writer.WriteElementString("MinBe", MinBe); }
private void SaveDayProfileTable(GXXmlWriter writer, GXDLMSDayProfile[] list, string name) { if (list != null) { writer.WriteStartElement(name); foreach (GXDLMSDayProfile it in list) { writer.WriteStartElement("Item"); writer.WriteElementString("DayId", it.DayId.ToString()); writer.WriteStartElement("Actions"); foreach (GXDLMSDayProfileAction d in it.DaySchedules) { writer.WriteStartElement("Action"); writer.WriteElementString("Start", d.StartTime.ToFormatString(CultureInfo.InvariantCulture)); writer.WriteElementString("LN", d.ScriptLogicalName); writer.WriteElementString("Selector", d.ScriptSelector); writer.WriteEndElement(); } writer.WriteEndElement(); writer.WriteEndElement(); } writer.WriteEndElement(); } }
void IGXDLMSBase.Save(GXXmlWriter writer) { if (SynchronizationRegister != null) { writer.WriteStartElement("SynchronizationRegisters"); foreach (KeyValuePair <UInt16, UInt32> it in SynchronizationRegister) { writer.WriteStartElement("Item"); writer.WriteElementString("Key", it.Key); writer.WriteElementString("Value", it.Value); writer.WriteEndElement(); } writer.WriteEndElement(); } writer.WriteElementString("PhysicalLayerDesynchronization", PhysicalLayerDesynchronization); writer.WriteElementString("TimeOutNotAddressedDesynchronization", TimeOutNotAddressedDesynchronization); writer.WriteElementString("TimeOutFrameNotOkDesynchronization", TimeOutFrameNotOkDesynchronization); writer.WriteElementString("WriteRequestDesynchronization", WriteRequestDesynchronization); writer.WriteElementString("WrongInitiatorDesynchronization", WrongInitiatorDesynchronization); if (BroadcastFramesCounter != null) { writer.WriteStartElement("BroadcastFramesCounters"); foreach (KeyValuePair <UInt16, UInt32> it in BroadcastFramesCounter) { writer.WriteStartElement("Item"); writer.WriteElementString("Key", it.Key); writer.WriteElementString("Value", it.Value); writer.WriteEndElement(); } writer.WriteEndElement(); } writer.WriteElementString("RepetitionsCounter", RepetitionsCounter); writer.WriteElementString("TransmissionsCounter", TransmissionsCounter); writer.WriteElementString("CrcOkFramesCounter", CrcOkFramesCounter); writer.WriteElementString("CrcNOkFramesCounter", CrcNOkFramesCounter); }
void IGXDLMSBase.Save(GXXmlWriter writer) { writer.WriteElementString("PaymentMode", (int)PaymentMode, 2); writer.WriteElementString("AccountStatus", (int)AccountStatus, 3); writer.WriteElementString("CurrentCreditInUse", CurrentCreditInUse, 4); writer.WriteElementString("CurrentCreditStatus", (byte)CurrentCreditStatus, 5); writer.WriteElementString("AvailableCredit", AvailableCredit, 6); writer.WriteElementString("AmountToClear", AmountToClear, 7); writer.WriteElementString("ClearanceThreshold", ClearanceThreshold, 8); writer.WriteElementString("AggregatedDebt", AggregatedDebt, 9); SaveReferences(writer, CreditReferences, "CreditReferences", 19); SaveReferences(writer, ChargeReferences, "ChargeReferences", 11); SaveCreditChargeConfigurations(writer, CreditChargeConfigurations, 12); SaveTokenGatewayConfigurations(writer, TokenGatewayConfigurations, 13); writer.WriteElementString("AccountActivationTime", AccountActivationTime, 14); writer.WriteElementString("AccountClosureTime", AccountClosureTime, 15); writer.WriteElementString("CurrencyName", Currency.Name, 16); writer.WriteElementString("CurrencyScale", Currency.Scale, 17); writer.WriteElementString("CurrencyUnit", (int)Currency.Unit, 18); writer.WriteElementString("LowCreditThreshold", LowCreditThreshold, 19); writer.WriteElementString("NextCreditAvailableThreshold", NextCreditAvailableThreshold, 20); writer.WriteElementString("MaxProvision", MaxProvision, 21); writer.WriteElementString("MaxProvisionPeriod", MaxProvisionPeriod, 22); }
void IGXDLMSBase.Save(GXXmlWriter writer) { }
void IGXDLMSBase.Save(GXXmlWriter writer) { writer.WriteElementString("Unit", (int)Unit); writer.WriteElementString("Scaler", Scaler, 1); writer.WriteElementObject("Value", Value); }
void IGXDLMSBase.Save(GXXmlWriter writer) { if (Buffer != null) { writer.WriteStartElement("Buffer"); GXDateTime lastdt = null; int add = CapturePeriod; //Some meters are returning 0 if capture period is one hour. if (add == 0) { add = 60; } foreach (object[] row in Buffer) { writer.WriteStartElement("Row"); int pos = 0; foreach (object it in row) { GXKeyValuePair <GXDLMSObject, GXDLMSCaptureObject> c = CaptureObjects[pos]; ++pos; if (CaptureObjects != null && c.Key is GXDLMSClock && c.Value.AttributeIndex == 2) { if (it != null) { lastdt = (c.Key as GXDLMSClock).Time; } else if (lastdt != null) { lastdt = new GXDateTime(lastdt.Value.AddMinutes(add)); writer.WriteElementObject("Cell", lastdt, false); continue; } else { writer.WriteElementObject("Cell", DateTime.MinValue, false); } } writer.WriteElementObject("Cell", it, false); } writer.WriteEndElement(); } writer.WriteEndElement(); } if (CaptureObjects != null) { writer.WriteStartElement("CaptureObjects"); foreach (GXKeyValuePair <GXDLMSObject, GXDLMSCaptureObject> it in CaptureObjects) { writer.WriteStartElement("Item"); writer.WriteElementString("ObjectType", (int)it.Key.ObjectType); writer.WriteElementString("LN", it.Key.LogicalName); writer.WriteElementString("Attribute", it.Value.AttributeIndex); writer.WriteElementString("Data", it.Value.DataIndex); writer.WriteEndElement(); } writer.WriteEndElement(); } writer.WriteElementString("CapturePeriod", CapturePeriod); writer.WriteElementString("SortMethod", (int)SortMethod); if (SortObject != null) { writer.WriteStartElement("SortObject"); writer.WriteElementString("ObjectType", (int)SortObject.ObjectType); writer.WriteElementString("LN", SortObject.LogicalName); writer.WriteEndElement();//SortObject } writer.WriteElementString("EntriesInUse", EntriesInUse); writer.WriteElementString("ProfileEntries", ProfileEntries); }
void IGXDLMSBase.Save(GXXmlWriter writer) { writer.WriteElementString("MacAddress", MacAddress); }