void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteStartElement("ChangedParameter", 2);
     if (ChangedParameter != null && ChangedParameter.Target != null)
     {
         writer.WriteElementString("Type", (int)ChangedParameter.Target.ObjectType, 2);
         writer.WriteElementString("LN", ChangedParameter.Target.LogicalName, 2);
         writer.WriteElementString("Index", ChangedParameter.AttributeIndex, 2);
         writer.WriteElementObject("Value", ChangedParameter.Value, 2);
     }
     writer.WriteEndElement();
     writer.WriteElementString("Time", CaptureTime, 3);
     writer.WriteStartElement("Parameters", 4);
     if (Parameters != null && Parameters.Count != 0)
     {
         foreach (GXDLMSTarget it in Parameters)
         {
             writer.WriteStartElement("Item", 4);
             writer.WriteElementString("Type", (int)it.Target.ObjectType, 4);
             writer.WriteElementString("LN", it.Target.LogicalName, 4);
             writer.WriteElementString("Index", it.AttributeIndex, 4);
             writer.WriteEndElement();
         }
     }
     writer.WriteEndElement();
 }
Пример #2
0
 /// <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))
     {
         writer.WriteStartDocument();
         writer.WriteStartElement("Objects");
         foreach (GXDLMSObject it in this)
         {
             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.Values)
             {
                 (it as IGXDLMSBase).Save(writer);
             }
             // Close object.
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
         writer.WriteEndDocument();
     }
 }
 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);
     if (charge.Commodity.Target != null)
     {
         writer.WriteElementString("Type", (int)charge.Commodity.Target.ObjectType, index);
         writer.WriteElementString("Ln", charge.Commodity.Target.LogicalName, index);
     }
     else
     {
         writer.WriteElementString("Type", 0, index);
         writer.WriteElementString("Ln", "0.0.0.0.0.0", 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();
 }
Пример #4
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("PHYReference", PHYReference);
     if (LCPOptions != null)
     {
         writer.WriteStartElement("LCPOptions");
         foreach (GXDLMSPppSetupLcpOption it in LCPOptions)
         {
             writer.WriteStartElement("Item");
             writer.WriteElementString("Type", (int)it.Type);
             writer.WriteElementString("Length", it.Length);
             writer.WriteElementObject("Data", it.Data);
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
     if (IPCPOptions != null)
     {
         writer.WriteStartElement("IPCPOptions");
         foreach (GXDLMSPppSetupIPCPOption it in IPCPOptions)
         {
             writer.WriteStartElement("Item");
             writer.WriteElementString("Type", ((int)it.Type));
             writer.WriteElementString("Length", it.Length);
             writer.WriteElementObject("Data", it.Data);
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
     writer.WriteElementString("UserName", GXDLMSTranslator.ToHex(UserName));
     writer.WriteElementString("Password", GXDLMSTranslator.ToHex(Password));
 }
Пример #5
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     if (PushObjectList != null)
     {
         writer.WriteStartElement("ObjectList");
         foreach (KeyValuePair <GXDLMSObject, GXDLMSCaptureObject> it in PushObjectList)
         {
             writer.WriteStartElement("Item");
             writer.WriteElementString("ObjectType", (int)it.Key.ObjectType);
             writer.WriteElementString("LN", it.Key.LogicalName);
             writer.WriteElementString("AI", it.Value.AttributeIndex);
             writer.WriteElementString("DI", it.Value.DataIndex);
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
     writer.WriteElementString("Service", (int)Service);
     writer.WriteElementString("Destination", Destination);
     writer.WriteElementString("Message", (int)Message);
     if (CommunicationWindow != null)
     {
         writer.WriteStartElement("CommunicationWindow");
         foreach (KeyValuePair <GXDateTime, GXDateTime> it in CommunicationWindow)
         {
             writer.WriteStartElement("Item");
             writer.WriteElementString("Start", it.Key.ToFormatString());
             writer.WriteElementString("End", it.Value.ToFormatString());
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
     writer.WriteElementString("RandomisationStartInterval", RandomisationStartInterval);
     writer.WriteElementString("NumberOfRetries", NumberOfRetries);
     writer.WriteElementString("RepetitionDelay", RepetitionDelay);
 }
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     if (ChangedParameter != null && ChangedParameter.Target != null)
     {
         writer.WriteStartElement("ChangedParameter");
         writer.WriteElementString("Type", (int)ChangedParameter.Target.ObjectType);
         writer.WriteElementString("LN", ChangedParameter.Target.LogicalName);
         writer.WriteElementString("Index", ChangedParameter.AttributeIndex);
         writer.WriteElementObject("Value", ChangedParameter.Value);
         writer.WriteEndElement();
     }
     if (CaptureTime != null && CaptureTime != DateTime.MinValue)
     {
         writer.WriteElementString("Time", CaptureTime.ToString(CultureInfo.InvariantCulture));
     }
     if (Parameters != null && Parameters.Count != 0)
     {
         writer.WriteStartElement("Parameters");
         foreach (GXDLMSTarget it in Parameters)
         {
             writer.WriteStartElement("Item");
             writer.WriteElementString("Type", (int)it.Target.ObjectType);
             writer.WriteElementString("LN", it.Target.LogicalName);
             writer.WriteElementString("Index", it.AttributeIndex);
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
 }
Пример #7
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     if (Version == 0)
     {
         writer.WriteElementString("SecurityPolicy", (int)SecurityPolicy, 2);
     }
     else
     {
         writer.WriteElementString("SecurityPolicy0", (int)SecurityPolicy0, 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, 0);
             writer.WriteElementString("Issuer", it.Issuer, 0);
             writer.WriteElementString("Subject", it.Subject, 0);
             writer.WriteElementString("SubjectAltName", it.SubjectAltName, 0);
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
 }
Пример #8
0
        void IGXDLMSBase.Save(GXXmlWriter writer)
        {
            writer.WriteElementString("Operator", Operator);
            writer.WriteElementString("Status", (int)Status);
            writer.WriteElementString("CircuitSwitchStatus", (int)CircuitSwitchStatus);
            writer.WriteElementString("PacketSwitchStatus", (int)PacketSwitchStatus);
            if (CellInfo != null)
            {
                writer.WriteStartElement("CellInfo");
                writer.WriteElementString("CellId", CellInfo.CellId);
                writer.WriteElementString("LocationId", CellInfo.LocationId);
                writer.WriteElementString("SignalQuality", CellInfo.SignalQuality);
                writer.WriteElementString("Ber", CellInfo.Ber);
                writer.WriteEndElement();
            }

            if (AdjacentCells != null)
            {
                writer.WriteStartElement("AdjacentCells");
                foreach (AdjacentCell it in AdjacentCells)
                {
                    writer.WriteStartElement("Item");
                    writer.WriteElementString("CellId", it.CellId);
                    writer.WriteElementString("SignalQuality", it.SignalQuality);
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
            }
            writer.WriteElementObject("CaptureTime", CaptureTime);
        }
Пример #9
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("DataLinkLayerReference", DataLinkLayerReference);
     writer.WriteElementString("IPAddress", IPAddress);
     if (MulticastIPAddress != null)
     {
         writer.WriteStartElement("MulticastIPAddress");
         foreach (string it in MulticastIPAddress)
         {
             writer.WriteElementString("Value", it);
         }
         writer.WriteEndElement();
     }
     if (IPOptions != null)
     {
         writer.WriteStartElement("IPOptions");
         foreach (GXDLMSIp4SetupIpOption it in IPOptions)
         {
             writer.WriteStartElement("IPOptions");
             writer.WriteElementString("Type", (int)it.Type);
             writer.WriteElementString("Length", it.Length);
             writer.WriteElementString("Data", GXDLMSTranslator.ToHex(it.Data));
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
     writer.WriteElementString("SubnetMask", SubnetMask);
     writer.WriteElementString("GatewayIPAddress", GatewayIPAddress);
     writer.WriteElementString("UseDHCP", UseDHCP);
     writer.WriteElementString("PrimaryDNSAddress", PrimaryDNSAddress);
     writer.WriteElementString("SecondaryDNSAddress", SecondaryDNSAddress);
 }
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("MBusPortReference", MBusPortReference, 2);
     writer.WriteStartElement("CaptureDefinition", 3);
     if (CaptureDefinition != null)
     {
         foreach (KeyValuePair <string, string> it in CaptureDefinition)
         {
             writer.WriteStartElement("Item", 3);
             writer.WriteElementString("Data", it.Key, 3);
             writer.WriteElementString("Value", it.Value, 3);
             writer.WriteEndElement();
         }
     }
     writer.WriteEndElement();
     writer.WriteElementString("CapturePeriod", CapturePeriod, 4);
     writer.WriteElementString("PrimaryAddress", PrimaryAddress, 5);
     writer.WriteElementString("IdentificationNumber", IdentificationNumber, 6);
     writer.WriteElementString("ManufacturerID", ManufacturerID, 7);
     writer.WriteElementString("DataHeaderVersion", DataHeaderVersion, 8);
     writer.WriteElementString("DeviceType", DeviceType, 9);
     writer.WriteElementString("AccessNumber", AccessNumber, 10);
     writer.WriteElementString("Status", Status, 11);
     writer.WriteElementString("Alarm", Alarm, 12);
     if (Version > 0)
     {
         writer.WriteElementString("Configuration", Configuration, 13);
         writer.WriteElementString("EncryptionKeyStatus", (int)EncryptionKeyStatus, 14);
     }
 }
Пример #11
0
        void IGXDLMSBase.Save(GXXmlWriter writer)
        {
            if (RegisterAssignment != null)
            {
                writer.WriteStartElement("RegisterAssignment");
                foreach (GXDLMSObjectDefinition it in RegisterAssignment)
                {
                    writer.WriteStartElement("Item");
                    writer.WriteElementString("ObjectType", (int)it.ObjectType);
                    writer.WriteElementString("LN", it.LogicalName);
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
            }

            if (MaskList != null)
            {
                writer.WriteStartElement("MaskList");
                foreach (KeyValuePair <byte[], byte[]> it in MaskList)
                {
                    writer.WriteStartElement("Item");
                    writer.WriteElementString("Mask", GXDLMSTranslator.ToHex(it.Key));
                    writer.WriteElementString("Index", GXDLMSTranslator.ToHex(it.Value).Replace(" ", ";"));
                    writer.WriteEndElement();
                }
                writer.WriteEndElement();
            }
            if (ActiveMask != null)
            {
                writer.WriteElementString("ActiveMask", GXDLMSTranslator.ToHex(ActiveMask));
            }
        }
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("Operator", Operator, 2);
     writer.WriteElementString("Status", (int)Status, 3);
     writer.WriteElementString("CircuitSwitchStatus", (int)CircuitSwitchStatus, 4);
     writer.WriteElementString("PacketSwitchStatus", (int)PacketSwitchStatus, 5);
     writer.WriteStartElement("CellInfo", 6);
     if (CellInfo != null)
     {
         writer.WriteElementString("CellId", CellInfo.CellId, 6);
         writer.WriteElementString("LocationId", CellInfo.LocationId, 6);
         writer.WriteElementString("SignalQuality", CellInfo.SignalQuality, 6);
         writer.WriteElementString("Ber", CellInfo.Ber, 6);
     }
     writer.WriteEndElement();
     writer.WriteStartElement("AdjacentCells", 7);
     if (AdjacentCells != null)
     {
         foreach (AdjacentCell it in AdjacentCells)
         {
             writer.WriteStartElement("Item", 7);
             writer.WriteElementString("CellId", it.CellId, 7);
             writer.WriteElementString("SignalQuality", it.SignalQuality, 7);
             writer.WriteEndElement();
         }
     }
     writer.WriteEndElement();
     writer.WriteElementString("CaptureTime", CaptureTime, 8);
 }
Пример #13
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("DataLinkLayerReference", DataLinkLayerReference, 2);
     writer.WriteElementString("IPAddress", Convert.ToString(IPAddress), 3);
     writer.WriteStartElement("MulticastIPAddress", 4);
     if (MulticastIPAddress != null)
     {
         foreach (IPAddress it in MulticastIPAddress)
         {
             writer.WriteElementString("Value", Convert.ToString(it), 4);
         }
     }
     writer.WriteEndElement();
     writer.WriteStartElement("IPOptions", 5);
     if (IPOptions != null)
     {
         foreach (GXDLMSIp4SetupIpOption it in IPOptions)
         {
             writer.WriteStartElement("IPOption", 5);
             writer.WriteElementString("Type", (int)it.Type, 5);
             writer.WriteElementString("Length", it.Length, 5);
             writer.WriteElementString("Data", GXDLMSTranslator.ToHex(it.Data), 5);
             writer.WriteEndElement();
         }
     }
     writer.WriteEndElement();
     writer.WriteElementString("SubnetMask", Convert.ToString(SubnetMask), 6);
     writer.WriteElementString("GatewayIPAddress", Convert.ToString(GatewayIPAddress), 7);
     writer.WriteElementString("UseDHCP", UseDHCP, 8);
     writer.WriteElementString("PrimaryDNSAddress", Convert.ToString(PrimaryDNSAddress), 9);
     writer.WriteElementString("SecondaryDNSAddress", Convert.ToString(SecondaryDNSAddress), 10);
 }
Пример #14
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     if (Entries != null)
     {
         writer.WriteStartElement("Entries", 2);
         foreach (GXScheduleEntry it in Entries)
         {
             writer.WriteStartElement("Item", 2);
             writer.WriteElementString("Index", it.Index, 2);
             writer.WriteElementString("Enable", it.Enable, 2);
             if (it.Script != null)
             {
                 writer.WriteElementString("LogicalName", it.Script.LogicalName, 2);
             }
             writer.WriteElementString("ScriptSelector", it.ScriptSelector, 2);
             writer.WriteElementString("SwitchTime", it.SwitchTime, 2);
             writer.WriteElementString("ValidityWindow", it.ValidityWindow, 2);
             writer.WriteElementString("ExecWeekdays", (int)it.ExecWeekdays, 2);
             writer.WriteElementString("ExecSpecDays", it.ExecSpecDays, 2);
             writer.WriteElementString("BeginDate", it.BeginDate, 2);
             writer.WriteElementString("EndDate", it.EndDate, 2);
             writer.WriteEndElement();
         }
         writer.WriteEndElement();//Entries
     }
 }
Пример #15
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("APN", APN);
     writer.WriteElementString("PINCode", PINCode);
     if (DefaultQualityOfService != null)
     {
         writer.WriteStartElement("DefaultQualityOfService");
         writer.WriteElementString("Precedence", DefaultQualityOfService.Precedence);
         writer.WriteElementString("Delay", DefaultQualityOfService.Delay);
         writer.WriteElementString("Reliability", DefaultQualityOfService.Reliability);
         writer.WriteElementString("PeakThroughput", DefaultQualityOfService.PeakThroughput);
         writer.WriteElementString("MeanThroughput", DefaultQualityOfService.MeanThroughput);
         writer.WriteEndElement();
     }
     if (RequestedQualityOfService != null)
     {
         writer.WriteStartElement("RequestedQualityOfService");
         writer.WriteElementString("Precedence", RequestedQualityOfService.Precedence);
         writer.WriteElementString("Delay", RequestedQualityOfService.Delay);
         writer.WriteElementString("Reliability", RequestedQualityOfService.Reliability);
         writer.WriteElementString("PeakThroughput", RequestedQualityOfService.PeakThroughput);
         writer.WriteElementString("MeanThroughput", RequestedQualityOfService.MeanThroughput);
         writer.WriteEndElement();
     }
 }
 private void SaveRoutingConfiguration(GXXmlWriter writer)
 {
     if (RoutingConfiguration != null)
     {
         writer.WriteStartElement("RoutingConfiguration");
         foreach (GXDLMSRoutingConfiguration it in RoutingConfiguration)
         {
             writer.WriteStartElement("Item");
             writer.WriteElementString("NetTraversalTime", it.NetTraversalTime);
             writer.WriteElementString("RoutingTableEntryTtl", it.RoutingTableEntryTtl);
             writer.WriteElementString("Kr", it.Kr);
             writer.WriteElementString("Km", it.Km);
             writer.WriteElementString("Kc", it.Kc);
             writer.WriteElementString("Kq", it.Kq);
             writer.WriteElementString("Kh", it.Kh);
             writer.WriteElementString("Krt", it.Krt);
             writer.WriteElementString("RreqRetries", it.RreqRetries);
             writer.WriteElementString("RreqRerrWait", it.RreqRerrWait);
             writer.WriteElementString("BlacklistTableEntryTtl", it.BlacklistTableEntryTtl);
             writer.WriteElementString("UnicastRreqGenEnable", it.UnicastRreqGenEnable);
             writer.WriteElementString("RlcEnabled", it.RlcEnabled);
             writer.WriteElementString("AddRevLinkCost", it.AddRevLinkCost);
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
 }
Пример #17
0
 private void SaveReferences(GXXmlWriter writer, List <string> list, string name, int index)
 {
     writer.WriteStartElement(name, index);
     if (list != null)
     {
         foreach (string it in list)
         {
             writer.WriteStartElement("Item", 0);
             writer.WriteElementString("Name", it, 0);
             writer.WriteEndElement();
         }
     }
     writer.WriteEndElement();
 }
Пример #18
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("ClientSAP", ClientSAP);
     writer.WriteElementString("ServerSAP", ServerSAP);
     if (ApplicationContextName != null)
     {
         writer.WriteStartElement("ApplicationContextName");
         writer.WriteElementString("JointIsoCtt", ApplicationContextName.JointIsoCtt);
         writer.WriteElementString("Country", ApplicationContextName.Country);
         writer.WriteElementString("CountryName", ApplicationContextName.CountryName);
         writer.WriteElementString("IdentifiedOrganization", ApplicationContextName.IdentifiedOrganization);
         writer.WriteElementString("DlmsUA", ApplicationContextName.DlmsUA);
         writer.WriteElementString("ApplicationContext", ApplicationContextName.ApplicationContext);
         writer.WriteElementString("ContextId", (int)ApplicationContextName.ContextId);
         writer.WriteEndElement();
     }
     if (XDLMSContextInfo != null)
     {
         writer.WriteStartElement("XDLMSContextInfo");
         writer.WriteElementString("Conformance", ((int)XDLMSContextInfo.Conformance));
         writer.WriteElementString("MaxReceivePduSize", XDLMSContextInfo.MaxReceivePduSize);
         writer.WriteElementString("MaxSendPduSize", XDLMSContextInfo.MaxSendPduSize);
         writer.WriteElementString("DlmsVersionNumber", XDLMSContextInfo.DlmsVersionNumber);
         writer.WriteElementString("QualityOfService", XDLMSContextInfo.QualityOfService);
         writer.WriteElementString("CypheringInfo", GXDLMSTranslator.ToHex(XDLMSContextInfo.CypheringInfo));
         writer.WriteEndElement();
     }
     if (AuthenticationMechanismName != null)
     {
         writer.WriteStartElement("XDLMSContextInfo");
         writer.WriteElementString("JointIsoCtt", AuthenticationMechanismName.JointIsoCtt);
         writer.WriteElementString("Country", AuthenticationMechanismName.Country);
         writer.WriteElementString("CountryName", AuthenticationMechanismName.CountryName);
         writer.WriteElementString("IdentifiedOrganization", AuthenticationMechanismName.IdentifiedOrganization);
         writer.WriteElementString("DlmsUA", AuthenticationMechanismName.DlmsUA);
         writer.WriteElementString("AuthenticationMechanismName", AuthenticationMechanismName.AuthenticationMechanismName);
         writer.WriteElementString("MechanismId", (int)AuthenticationMechanismName.MechanismId);
         writer.WriteEndElement();
     }
     writer.WriteElementString("Secret", GXDLMSTranslator.ToHex(Secret));
     writer.WriteElementString("AssociationStatus", (int)AssociationStatus);
     if (string.IsNullOrEmpty(SecuritySetupReference))
     {
         writer.WriteElementString("SecuritySetupReference", "0.0.0.0.0.0");
     }
     else
     {
         writer.WriteElementString("SecuritySetupReference", SecuritySetupReference);
     }
 }
Пример #19
0
        void IGXDLMSBase.Save(GXXmlWriter writer)
        {
            if (MonitoredValue != null)
            {
                writer.WriteStartElement("MonitoredValue");
                writer.WriteElementString("ObjectType", (int)MonitoredValue.ObjectType);
                writer.WriteElementString("LN", MonitoredValue.LogicalName);
                writer.WriteEndElement();
            }
            writer.WriteElementObject("ThresholdActive", ThresholdActive);
            writer.WriteElementObject("ThresholdNormal", ThresholdNormal);
            writer.WriteElementObject("ThresholdEmergency", ThresholdEmergency);
            writer.WriteElementString("MinOverThresholdDuration", MinOverThresholdDuration);
            writer.WriteElementString("MinUnderThresholdDuration", MinUnderThresholdDuration);
            if (EmergencyProfile != null)
            {
                writer.WriteStartElement("EmergencyProfile");
                writer.WriteElementString("ID", EmergencyProfile.ID);
                writer.WriteElementObject("Time", EmergencyProfile.ActivationTime);
                writer.WriteElementString("Duration", EmergencyProfile.Duration);
                writer.WriteEndElement();
            }
            if (EmergencyProfileGroupIDs != null)
            {
                writer.WriteStartElement("EmergencyProfileGroupIDs");
                foreach (UInt16 it in EmergencyProfileGroupIDs)
                {
                    writer.WriteElementString("Value", it);
                }
                writer.WriteEndElement();
            }
            writer.WriteElementString("Active", EmergencyProfileActive);

            if (ActionOverThreshold != null)
            {
                writer.WriteStartElement("ActionOverThreshold");
                writer.WriteElementString("LN", ActionOverThreshold.LogicalName);
                writer.WriteElementString("ScriptSelector", ActionOverThreshold.ScriptSelector);
                writer.WriteEndElement();
            }

            if (ActionUnderThreshold != null)
            {
                writer.WriteStartElement("ActionUnderThreshold");
                writer.WriteElementString("LN", ActionUnderThreshold.LogicalName);
                writer.WriteElementString("ScriptSelector", ActionUnderThreshold.ScriptSelector);
                writer.WriteEndElement();
            }
        }
Пример #20
0
 private void SaveMulticastEntries(GXXmlWriter writer, int index)
 {
     writer.WriteStartElement("MulticastEntries", index);
     if (MulticastEntries != null)
     {
         foreach (GXMacMulticastEntry it in MulticastEntries)
         {
             writer.WriteStartElement("Item", index);
             writer.WriteElementString("Id", it.Id, index);
             writer.WriteElementString("Members", it.Members, index);
             writer.WriteEndElement();
         }
     }
     writer.WriteEndElement();
 }
Пример #21
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     if (SapAssignmentList != null)
     {
         writer.WriteStartElement("SapAssignmentList");
         foreach (KeyValuePair <UInt16, string> it in SapAssignmentList)
         {
             writer.WriteStartElement("Item");
             writer.WriteElementString("SAP", it.Key);
             writer.WriteElementString("LDN", it.Value);
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
 }
Пример #22
0
 void SaveKeyTable(GXXmlWriter writer)
 {
     if (KeyTable != null)
     {
         writer.WriteStartElement("KeyTable");
         foreach (GXKeyValuePair <byte, byte[]> it in KeyTable)
         {
             writer.WriteStartElement("Item");
             writer.WriteElementString("Key", it.Key);
             writer.WriteElementString("Data", GXDLMSTranslator.ToHex(it.Value));
             writer.WriteEndElement();
         }
         writer.WriteEndElement();//KeyTable
     }
 }
 private void SaveBlacklistTable(GXXmlWriter writer)
 {
     if (BlacklistTable != null)
     {
         writer.WriteStartElement("BlacklistTable");
         foreach (GXKeyValuePair <UInt16, UInt16> it in BlacklistTable)
         {
             writer.WriteStartElement("Item");
             writer.WriteElementObject("Key", it.Key);
             writer.WriteElementObject("Value", it.Value);
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
 }
Пример #24
0
 private void SaveTokenGatewayConfigurations(GXXmlWriter writer, List <GXTokenGatewayConfiguration> list, int index)
 {
     if (list != null)
     {
         writer.WriteStartElement("TokenGatewayConfigurations", index);
         foreach (GXTokenGatewayConfiguration it in list)
         {
             writer.WriteStartElement("Item", 0);
             writer.WriteElementString("Credit", it.CreditReference, 0);
             writer.WriteElementString("Token", it.TokenProportion, 0);
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
 }
Пример #25
0
        void IGXDLMSBase.Save(GXXmlWriter writer)
        {
            writer.WriteStartElement("MonitoredValue", 2);
            if (MonitoredValue != null)
            {
                writer.WriteElementString("ObjectType", (int)MonitoredValue.ObjectType, 0);
                writer.WriteElementString("LN", MonitoredValue.LogicalName, 0);
            }
            writer.WriteEndElement();
            writer.WriteElementObject("ThresholdActive", ThresholdActive, 3);
            writer.WriteElementObject("ThresholdNormal", ThresholdNormal, 4);
            writer.WriteElementObject("ThresholdEmergency", ThresholdEmergency, 5);
            writer.WriteElementString("MinOverThresholdDuration", MinOverThresholdDuration, 6);
            writer.WriteElementString("MinUnderThresholdDuration", MinUnderThresholdDuration, 7);
            writer.WriteStartElement("EmergencyProfile", 8);
            if (EmergencyProfile != null)
            {
                writer.WriteElementString("ID", EmergencyProfile.ID, 0);
                writer.WriteElementString("Time", EmergencyProfile.ActivationTime, 0);
                writer.WriteElementString("Duration", EmergencyProfile.Duration, 0);
            }
            writer.WriteEndElement();
            writer.WriteStartElement("EmergencyProfileGroupIDs", 9);
            if (EmergencyProfileGroupIDs != null)
            {
                foreach (UInt16 it in EmergencyProfileGroupIDs)
                {
                    writer.WriteElementString("Value", it, 0);
                }
            }
            writer.WriteEndElement();
            writer.WriteElementString("Active", EmergencyProfileActive, 10);
            writer.WriteStartElement("ActionOverThreshold", 11);
            if (ActionOverThreshold != null)
            {
                writer.WriteElementString("LN", ActionOverThreshold.LogicalName, 0);
                writer.WriteElementString("ScriptSelector", ActionOverThreshold.ScriptSelector, 0);
            }
            writer.WriteEndElement();

            writer.WriteStartElement("ActionUnderThreshold", 12);
            if (ActionUnderThreshold != null)
            {
                writer.WriteElementString("LN", ActionUnderThreshold.LogicalName, 0);
                writer.WriteElementString("ScriptSelector", ActionUnderThreshold.ScriptSelector, 0);
            }
            writer.WriteEndElement();
        }
Пример #26
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("InitiatorElectricalPhase", (int)InitiatorElectricalPhase);
     writer.WriteElementString("DeltaElectricalPhase", (int)DeltaElectricalPhase);
     writer.WriteElementString("MaxReceivingGain", MaxReceivingGain);
     writer.WriteElementString("MaxTransmittingGain", MaxTransmittingGain);
     writer.WriteElementString("SearchInitiatorThreshold", SearchInitiatorThreshold);
     writer.WriteElementString("MarkFrequency", MarkFrequency);
     writer.WriteElementString("SpaceFrequency", SpaceFrequency);
     writer.WriteElementString("MacAddress", MacAddress);
     if (MacGroupAddresses != null)
     {
         writer.WriteStartElement("MacGroupAddresses");
         foreach (UInt16 it in MacGroupAddresses)
         {
             writer.WriteElementString("Value", it.ToString());
         }
         writer.WriteEndElement();
     }
     writer.WriteElementString("Repeater", (int)Repeater);
     writer.WriteElementString("RepeaterStatus", RepeaterStatus);
     writer.WriteElementString("MinDeltaCredit", MinDeltaCredit);
     writer.WriteElementString("InitiatorMacAddress", InitiatorMacAddress);
     writer.WriteElementString("SynchronizationLocked", SynchronizationLocked);
     writer.WriteElementString("TransmissionSpeed", (int)TransmissionSpeed);
 }
 private void SaveSeasonProfile(GXXmlWriter writer, GXDLMSSeasonProfile[] list, string name)
 {
     if (list != null)
     {
         writer.WriteStartElement(name);
         foreach (GXDLMSSeasonProfile it in list)
         {
             writer.WriteStartElement("Item");
             writer.WriteElementString("Name", GXDLMSTranslator.ToHex(it.Name));
             writer.WriteElementString("Start", it.Start.ToFormatString(CultureInfo.InvariantCulture));
             writer.WriteElementString("WeekName", GXDLMSTranslator.ToHex(it.WeekName));
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
 }
Пример #28
0
 private void SaveNeighborDiscoverySetup(GXXmlWriter writer, GXNeighborDiscoverySetup[] list, string name)
 {
     if (list != null)
     {
         writer.WriteStartElement(name);
         foreach (GXNeighborDiscoverySetup it in list)
         {
             writer.WriteStartElement("Item");
             writer.WriteElementString("MaxRetry", it.MaxRetry);
             writer.WriteElementString("RetryWaitTime", it.RetryWaitTime);
             writer.WriteElementString("SendPeriod", it.SendPeriod);
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
 }
 private void SaveBroadcastLogTable(GXXmlWriter writer)
 {
     if (BroadcastLogTable != null)
     {
         writer.WriteStartElement("BroadcastLogTable");
         foreach (GXDLMSBroadcastLogTable it in BroadcastLogTable)
         {
             writer.WriteStartElement("Item");
             writer.WriteElementObject("SourceAddress", it.SourceAddress);
             writer.WriteElementObject("SequenceNumber", it.SequenceNumber);
             writer.WriteElementObject("ValidTime", it.ValidTime);
             writer.WriteEndElement();
         }
         writer.WriteEndElement();
     }
 }
Пример #30
0
 private void SaveCreditChargeConfigurations(GXXmlWriter writer, List <GXCreditChargeConfiguration> list, int index)
 {
     writer.WriteStartElement("CreditChargeConfigurations", index);
     if (list != null)
     {
         foreach (GXCreditChargeConfiguration it in list)
         {
             writer.WriteStartElement("Item", 0);
             writer.WriteElementString("Credit", it.CreditReference, 0);
             writer.WriteElementString("Charge", it.ChargeReference, 0);
             writer.WriteElementString("Configuration", (int)it.CollectionConfiguration, 3);
             writer.WriteEndElement();
         }
     }
     writer.WriteEndElement();
 }