void IGXDLMSBase.Save(GXXmlWriter writer) { writer.WriteElementString("DataLinkLayerReference", DataLinkLayerReference, 2); writer.WriteElementString("IPAddress", IPAddress.ToString(), 3); writer.WriteStartElement("MulticastIPAddress", 4); if (MulticastIPAddress != null) { foreach (IPAddress it in MulticastIPAddress) { writer.WriteElementString("Value", it.ToString(), 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", SubnetMask.ToString(), 6); writer.WriteElementString("GatewayIPAddress", GatewayIPAddress.ToString(), 7); writer.WriteElementString("UseDHCP", UseDHCP, 8); writer.WriteElementString("PrimaryDNSAddress", PrimaryDNSAddress.ToString(), 9); writer.WriteElementString("SecondaryDNSAddress", SecondaryDNSAddress.ToString(), 10); }
void IGXDLMSBase.Save(GXXmlWriter writer) { writer.WriteElementString("DataLinkLayerReference", DataLinkLayerReference); writer.WriteElementString("AddressConfigMode", (int)AddressConfigMode); SaveIPAddress(writer, UnicastIPAddress, "UnicastIPAddress"); SaveIPAddress(writer, MulticastIPAddress, "MulticastIPAddress"); SaveIPAddress(writer, GatewayIPAddress, "GatewayIPAddress"); if (PrimaryDNSAddress != null) { writer.WriteElementString("PrimaryDNSAddress", PrimaryDNSAddress.ToString()); } if (SecondaryDNSAddress != null) { writer.WriteElementString("SecondaryDNSAddress", SecondaryDNSAddress.ToString()); } writer.WriteElementString("TrafficClass", TrafficClass); SaveNeighborDiscoverySetup(writer, NeighborDiscoverySetup, "NeighborDiscoverySetup"); }
object IGXDLMSBase.GetValue(GXDLMSSettings settings, ValueEventArgs e) { if (e.Index == 1) { return(this.LogicalName); } if (e.Index == 2) { return(this.DataLinkLayerReference); } if (e.Index == 3) { return(AddressConfigMode); } if (e.Index == 4) { GXByteBuffer data = new GXByteBuffer(); data.SetUInt8((byte)DataType.Array); if (UnicastIPAddress == null) { //Object count is zero. data.SetUInt8(0); } else { GXCommon.SetObjectCount(UnicastIPAddress.Length, data); foreach (IPAddress it in UnicastIPAddress) { GXCommon.SetData(settings, data, DataType.OctetString, it.GetAddressBytes()); } } return(data.Array()); } if (e.Index == 5) { GXByteBuffer data = new GXByteBuffer(); data.SetUInt8((byte)DataType.Array); if (MulticastIPAddress == null) { //Object count is zero. data.SetUInt8(0); } else { GXCommon.SetObjectCount(MulticastIPAddress.Length, data); foreach (IPAddress it in MulticastIPAddress) { GXCommon.SetData(settings, data, DataType.OctetString, it.GetAddressBytes()); } } return(data.Array()); } if (e.Index == 6) { GXByteBuffer data = new GXByteBuffer(); data.SetUInt8((byte)DataType.Array); if (GatewayIPAddress == null) { //Object count is zero. data.SetUInt8(0); } else { GXCommon.SetObjectCount(GatewayIPAddress.Length, data); foreach (IPAddress it in GatewayIPAddress) { GXCommon.SetData(settings, data, DataType.OctetString, it.GetAddressBytes()); } } return(data.Array()); } if (e.Index == 7) { return(PrimaryDNSAddress.GetAddressBytes()); } if (e.Index == 8) { return(SecondaryDNSAddress.GetAddressBytes()); } if (e.Index == 9) { return(TrafficClass); } if (e.Index == 10) { GXByteBuffer data = new GXByteBuffer(); data.SetUInt8((byte)DataType.Array); if (NeighborDiscoverySetup == null) { //Object count is zero. data.SetUInt8(0); } else { GXCommon.SetObjectCount(NeighborDiscoverySetup.Length, data); foreach (GXNeighborDiscoverySetup it in NeighborDiscoverySetup) { data.SetUInt8((byte)DataType.Structure); data.SetUInt8(3); GXCommon.SetData(settings, data, DataType.UInt8, it.MaxRetry); GXCommon.SetData(settings, data, DataType.UInt16, it.RetryWaitTime); GXCommon.SetData(settings, data, DataType.UInt32, it.SendPeriod); } } return(data.Array()); } e.Error = ErrorCode.ReadWriteDenied; return(null); }