コード例 #1
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("SearchInitiatorTimeout", SearchInitiatorTimeout);
     writer.WriteElementString("SynchronizationConfirmationTimeout", SynchronizationConfirmationTimeout);
     writer.WriteElementString("TimeOutNotAddressed", TimeOutNotAddressed);
     writer.WriteElementString("TimeOutFrameNotOK", TimeOutFrameNotOK);
 }
コード例 #2
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);
        }
コード例 #3
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
     }
 }
コード例 #4
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();
     }
 }
コード例 #5
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("CrcIncorrectCount", CrcIncorrectCount, 2);
     writer.WriteElementString("CrcFailedCount", CrcFailedCount, 3);
     writer.WriteElementString("TxDropCount", TxDropCount, 4);
     writer.WriteElementString("RxDropCount", RxDropCount, 5);
 }
コード例 #6
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("DefaultBaud", (int)DefaultBaud, 2);
     writer.WriteElementString("AvailableBaud", (int)AvailableBaud, 3);
     writer.WriteElementString("AddressState", (int)AddressState, 4);
     writer.WriteElementString("BusAddress", BusAddress, 5);
 }
コード例 #7
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));
            }
        }
コード例 #8
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("Unit", (int)Unit, 2);
     writer.WriteElementString("Scaler", Scaler, 1, 2);
     writer.WriteElementObject("Value", Value, GetDataType(2), GetUIDataType(2), 3);
     writer.WriteElementObject("Status", Status, 4);
     writer.WriteElementString("CaptureTime", CaptureTime, 5);
 }
コード例 #9
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("Unit", (int)Unit);
     writer.WriteElementString("Scaler", Scaler, 1);
     writer.WriteElementObject("Value", Value);
     writer.WriteElementObject("Status", Status);
     writer.WriteElementObject("CaptureTime", CaptureTime);
 }
コード例 #10
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("Port", Port);
     writer.WriteElementString("IPReference", IPReference);
     writer.WriteElementString("MaximumSegmentSize", MaximumSegmentSize);
     writer.WriteElementString("MaximumSimultaneousConnections", MaximumSimultaneousConnections);
     writer.WriteElementString("InactivityTimeout", InactivityTimeout);
 }
コード例 #11
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("NodeId", NodeId, 2);
     writer.WriteElementString("SubnetId", SubnetId, 3);
     writer.WriteElementString("DomainId", DomainId, 4);
     writer.WriteElementString("ProgramId", ProgramId, 5);
     writer.WriteElementString("UniqueNodeId", UniqueNodeId, 6);
 }
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("MaximumOctetsACnPdu", MaximumOctetsACnPdu, 2);
     writer.WriteElementString("MaximumTransmissions", MaximumTransmissions, 3);
     writer.WriteElementString("AcknowledgementTime", AcknowledgementTime, 4);
     writer.WriteElementString("ReceiveLifetime", ReceiveLifetime, 5);
     writer.WriteElementString("TransmitLifetime", TransmitLifetime, 6);
 }
コード例 #13
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);
     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();
 }
コード例 #14
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("Mode", (int)Mode, 2);
     writer.WriteElementString("Speed", (int)Speed, 3);
     writer.WriteElementString("PrimaryAddresses", GXDLMSTranslator.ToHex(PrimaryAddresses), 4);
     if (Tabis != null)
     {
         byte[] tmp = new byte[Tabis.Length];
         Buffer.BlockCopy(Tabis, 0, tmp, 0, Tabis.Length);
         writer.WriteElementString("Tabis", GXDLMSTranslator.ToHex(tmp), 5);
     }
 }
コード例 #15
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("CalendarNameActive", CalendarNameActive, 2);
     SaveSeasonProfile(writer, SeasonProfileActive, "SeasonProfileActive", 3);
     SaveWeekProfileTable(writer, WeekProfileTableActive, "WeekProfileTableActive", 4);
     SaveDayProfileTable(writer, DayProfileTableActive, "DayProfileTableActive", 5);
     writer.WriteElementString("CalendarNamePassive", CalendarNamePassive, 6);
     SaveSeasonProfile(writer, SeasonProfilePassive, "SeasonProfilePassive", 7);
     SaveWeekProfileTable(writer, WeekProfileTablePassive, "WeekProfileTablePassive", 8);
     SaveDayProfileTable(writer, DayProfileTablePassive, "DayProfileTablePassive", 9);
     writer.WriteElementString("Time", Time, 10);
 }
コード例 #16
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("CurrentCreditAmount", CurrentCreditAmount, 2);
     writer.WriteElementString("Type", (byte)Type, 3);
     writer.WriteElementString("Priority", Priority, 4);
     writer.WriteElementString("WarningThreshold", WarningThreshold, 5);
     writer.WriteElementString("Limit", Limit, 6);
     writer.WriteElementString("CreditConfiguration", (byte)CreditConfiguration, 7);
     writer.WriteElementString("Status", (byte)Status, 8);
     writer.WriteElementString("PresetCreditAmount", PresetCreditAmount, 9);
     writer.WriteElementString("CreditAvailableThreshold", CreditAvailableThreshold, 10);
     writer.WriteElementString("Period", Period, 11);
 }
コード例 #17
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("CurrentCreditAmount", CurrentCreditAmount);
     writer.WriteElementString("Type", (byte)Type);
     writer.WriteElementString("Priority", Priority);
     writer.WriteElementString("WarningThreshold", WarningThreshold);
     writer.WriteElementString("Limit", Limit);
     writer.WriteElementString("CreditConfiguration", (byte)CreditConfiguration);
     writer.WriteElementString("Status", (byte)Status);
     writer.WriteElementString("PresetCreditAmount", PresetCreditAmount);
     writer.WriteElementString("CreditAvailableThreshold", CreditAvailableThreshold);
     writer.WriteElementString("Period", Period);
 }
コード例 #18
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("PlcSignalQualityStatus", PlcSignalQualityStatus);
     writer.WriteElementString("TransceiverState", TransceiverState);
     writer.WriteElementString("ReceivedMessageStatus", ReceivedMessageStatus);
     writer.WriteElementString("NoReceiveBuffer", NoReceiveBuffer);
     writer.WriteElementString("TransmitNoData", TransmitNoData);
     writer.WriteElementString("UnexpectedPlcCommandCount", UnexpectedPlcCommandCount);
     writer.WriteElementString("BacklogOverflows", BacklogOverflows);
     writer.WriteElementString("LateAck", LateAck);
     writer.WriteElementString("FrequencyInvalid", FrequencyInvalid);
     writer.WriteElementString("PlcTestRate", PlcTestRate);
 }
コード例 #19
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("TransmissionErrors", TransmissionErrors, 2);
     writer.WriteElementString("TransmitFailure", TransmitFailure, 3);
     writer.WriteElementString("TransmitRetries", TransmitRetries, 4);
     writer.WriteElementString("ReceiveFull", ReceiveFull, 5);
     writer.WriteElementString("LostMessages", LostMessages, 6);
     writer.WriteElementString("MissedMessages", MissedMessages, 7);
     writer.WriteElementString("Layer2Received", Layer2Received, 8);
     writer.WriteElementString("Layer3Received", Layer3Received, 9);
     writer.WriteElementString("MessagesReceived", MessagesReceived, 10);
     writer.WriteElementString("MessagesValidated", MessagesValidated, 11);
 }
コード例 #20
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("TransmissionErrors", TransmissionErrors);
     writer.WriteElementString("TransmitFailure", TransmitFailure);
     writer.WriteElementString("TransmitRetries", TransmitRetries);
     writer.WriteElementString("ReceiveFull", ReceiveFull);
     writer.WriteElementString("LostMessages", LostMessages);
     writer.WriteElementString("MissedMessages", MissedMessages);
     writer.WriteElementString("Layer2Received", Layer2Received);
     writer.WriteElementString("Layer3Received", Layer3Received);
     writer.WriteElementString("MessagesReceived", MessagesReceived);
     writer.WriteElementString("MessagesValidated", MessagesValidated);
 }
コード例 #21
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     if (CommunicationSpeed != BaudRate.Baudrate9600)
     {
         writer.WriteElementString("Speed", (int)CommunicationSpeed);
     }
     if (WindowSizeTransmit != 1)
     {
         writer.WriteElementString("WindowSizeTx", WindowSizeTransmit);
     }
     if (WindowSizeReceive != 1)
     {
         writer.WriteElementString("WindowSizeRx", WindowSizeReceive);
     }
     if (MaximumInfoLengthTransmit != 0x80)
     {
         writer.WriteElementString("MaximumInfoLengthTx", MaximumInfoLengthTransmit);
     }
     if (MaximumInfoLengthReceive != 0x80)
     {
         writer.WriteElementString("MaximumInfoLengthRx", MaximumInfoLengthReceive);
     }
     if (InterCharachterTimeout != 30)
     {
         writer.WriteElementString("InterCharachterTimeout", InterCharachterTimeout);
     }
     if (InactivityTimeout != 120)
     {
         writer.WriteElementString("InactivityTimeout", InactivityTimeout);
     }
     if (DeviceAddress != 0)
     {
         writer.WriteElementString("DeviceAddress", DeviceAddress);
     }
 }
コード例 #22
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     if (OutputState)
     {
         writer.WriteElementString("OutputState", "1");
     }
     if (ControlState != 0)
     {
         writer.WriteElementString("ControlState", ((int)ControlState).ToString());
     }
     if (ControlMode != 0)
     {
         writer.WriteElementString("ControlMode", ((int)ControlMode).ToString());
     }
 }
コード例 #23
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
     }
 }
コード例 #24
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("CalendarNameActive", CalendarNameActive);
     SaveSeasonProfile(writer, SeasonProfileActive, "SeasonProfileActive");
     SaveWeekProfileTable(writer, WeekProfileTableActive, "WeekProfileTableActive");
     SaveDayProfileTable(writer, DayProfileTableActive, "DayProfileTableActive");
     writer.WriteElementString("CalendarNamePassive", CalendarNamePassive);
     SaveSeasonProfile(writer, SeasonProfilePassive, "SeasonProfilePassive");
     SaveWeekProfileTable(writer, WeekProfileTablePassive, "WeekProfileTablePassive");
     SaveDayProfileTable(writer, DayProfileTablePassive, "DayProfileTablePassive");
     if (Time != null)
     {
         writer.WriteElementString("Time", Time.ToFormatString(System.Globalization.CultureInfo.InvariantCulture));
     }
 }
コード例 #25
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("TotalAmountPaid", TotalAmountPaid, 2);
     writer.WriteElementString("ChargeType", (int)ChargeType, 3);
     writer.WriteElementString("Priority", Priority, 4);
     SaveUnitCharge(writer, "UnitChargeActive", UnitChargeActive, 5);
     SaveUnitCharge(writer, "UnitChargePassive", UnitChargePassive, 6);
     writer.WriteElementString("UnitChargeActivationTime", UnitChargeActivationTime, 7);
     writer.WriteElementString("Period", Period, 8);
     writer.WriteElementString("ChargeConfiguration", (int)ChargeConfiguration, 9);
     writer.WriteElementString("LastCollectionTime", LastCollectionTime, 10);
     writer.WriteElementString("LastCollectionAmount", LastCollectionAmount, 11);
     writer.WriteElementString("TotalAmountRemaining", TotalAmountRemaining, 12);
     writer.WriteElementString("Proportion", Proportion, 13);
 }
コード例 #26
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();
 }
コード例 #27
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("CalendarNameActive", CalendarNameActive);
     SaveSeasonProfile(writer, SeasonProfileActive, "SeasonProfileActive");
     SaveWeekProfileTable(writer, WeekProfileTableActive, "WeekProfileTableActive");
     SaveDayProfileTable(writer, DayProfileTableActive, "DayProfileTableActive");
     writer.WriteElementString("CalendarNamePassive", CalendarNamePassive);
     SaveSeasonProfile(writer, SeasonProfilePassive, "SeasonProfilePassive");
     SaveWeekProfileTable(writer, WeekProfileTablePassive, "WeekProfileTablePassive");
     SaveDayProfileTable(writer, DayProfileTablePassive, "DayProfileTablePassive");
     if (Time != null)
     {
         writer.WriteElementString("Time", Time.ToFormatString());
     }
 }
コード例 #28
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();
     }
 }
コード例 #29
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();
     }
 }
コード例 #30
0
 void IGXDLMSBase.Save(GXXmlWriter writer)
 {
     writer.WriteElementString("TotalAmountPaid", TotalAmountPaid);
     writer.WriteElementString("ChargeType", (int)ChargeType);
     writer.WriteElementString("Priority", Priority);
     SaveUnitChargeActive(writer, "UnitChargeActive", UnitChargeActive);
     SaveUnitChargeActive(writer, "UnitChargePassive", UnitChargePassive);
     writer.WriteElementString("UnitChargeActivationTime", UnitChargeActivationTime);
     writer.WriteElementString("Period", Period);
     writer.WriteElementString("ChargeConfiguration", ChargeConfiguration);
     writer.WriteElementString("LastCollectionTime", LastCollectionTime);
     writer.WriteElementString("LastCollectionAmount", LastCollectionAmount);
     writer.WriteElementString("TotalAmountRemaining", TotalAmountRemaining);
     writer.WriteElementString("Proportion", Proportion);
 }