Пример #1
0
 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();
     }
 }
Пример #2
0
 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);
 }
Пример #3
0
 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();
 }
Пример #5
0
 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);
 }
Пример #6
0
        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();
     }
 }
Пример #8
0
 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();
 }
Пример #9
0
 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();
            }
        }
Пример #11
0
 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();
     }
 }
Пример #13
0
 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);
 }
Пример #14
0
 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);
     }
 }
Пример #15
0
 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
     }
 }
Пример #16
0
 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);
 }
Пример #20
0
 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
     }
 }
Пример #21
0
        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();
     }
 }
Пример #23
0
 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();
     }
 }
Пример #25
0
 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);
 }
Пример #26
0
 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)
 {
 }
Пример #28
0
 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);
 }
Пример #30
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("MacAddress", MacAddress);
 }