예제 #1
0
 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);
 }
예제 #2
0
 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");
 }
예제 #3
0
 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);
 }