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); }