示例#1
0
        private GXNeighborDiscoverySetup[] LoadNeighborDiscoverySetup(GXXmlReader reader, string name)
        {
            List <GXNeighborDiscoverySetup> list = new List <GXNeighborDiscoverySetup>();

            if (reader.IsStartElement(name, true))
            {
                while (reader.IsStartElement("Item", true))
                {
                    GXNeighborDiscoverySetup it = new GXNeighborDiscoverySetup();
                    list.Add(it);
                    it.MaxRetry      = (byte)reader.ReadElementContentAsInt("MaxRetry");
                    it.RetryWaitTime = (UInt16)reader.ReadElementContentAsInt("RetryWaitTime");
                    it.SendPeriod    = (UInt32)reader.ReadElementContentAsInt("SendPeriod");
                }
                reader.ReadEndElement(name);
            }
            return(list.ToArray());
        }
示例#2
0
 void IGXDLMSBase.SetValue(GXDLMSSettings settings, ValueEventArgs e)
 {
     if (e.Index == 1)
     {
         if (e.Value is string)
         {
             LogicalName = e.Value.ToString();
         }
         else
         {
             LogicalName = GXDLMSClient.ChangeType((byte[])e.Value, DataType.OctetString).ToString();
         }
     }
     else if (e.Index == 2)
     {
         if (e.Value is string)
         {
             this.DataLinkLayerReference = e.Value.ToString();
         }
         else
         {
             this.DataLinkLayerReference = GXDLMSClient.ChangeType((byte[])e.Value, DataType.OctetString).ToString();
         }
     }
     else if (e.Index == 3)
     {
         AddressConfigMode = (AddressConfigMode)Convert.ToInt32(e.Value);
     }
     else if (e.Index == 4)
     {
         List <IPAddress> data = new List <IPAddress>();
         if (e.Value != null)
         {
             foreach (object it in (Object[])e.Value)
             {
                 data.Add(new IPAddress((byte[])it));
             }
         }
         UnicastIPAddress = data.ToArray();
     }
     else if (e.Index == 5)
     {
         List <IPAddress> data = new List <IPAddress>();
         if (e.Value != null)
         {
             foreach (object it in (Object[])e.Value)
             {
                 data.Add(new IPAddress((byte[])it));
             }
         }
         MulticastIPAddress = data.ToArray();
     }
     else if (e.Index == 6)
     {
         List <IPAddress> data = new List <IPAddress>();
         if (e.Value != null)
         {
             foreach (object it in (Object[])e.Value)
             {
                 data.Add(new IPAddress((byte[])it));
             }
         }
         GatewayIPAddress = data.ToArray();
     }
     else if (e.Index == 7)
     {
         if (e.Value == null)
         {
             PrimaryDNSAddress = null;
         }
         else
         {
             PrimaryDNSAddress = new IPAddress((byte[])e.Value);
         }
     }
     else if (e.Index == 8)
     {
         if (e.Value == null)
         {
             SecondaryDNSAddress = null;
         }
         else
         {
             SecondaryDNSAddress = new IPAddress((byte[])e.Value);
         }
     }
     else if (e.Index == 9)
     {
         TrafficClass = Convert.ToByte(e.Value);
     }
     else if (e.Index == 10)
     {
         List <GXNeighborDiscoverySetup> data = new List <GXNeighborDiscoverySetup>();
         if (e.Value != null)
         {
             foreach (object it in (Object[])e.Value)
             {
                 object[] tmp = (object[])it;
                 GXNeighborDiscoverySetup v = new GXNeighborDiscoverySetup();
                 v.MaxRetry      = Convert.ToByte(tmp[0]);
                 v.RetryWaitTime = Convert.ToUInt16(tmp[1]);
                 v.SendPeriod    = Convert.ToUInt32(tmp[2]);
                 data.Add(v);
             }
         }
         NeighborDiscoverySetup = data.ToArray();
     }
     else
     {
         e.Error = ErrorCode.ReadWriteDenied;
     }
 }
示例#3
0
 void IGXDLMSBase.SetValue(GXDLMSSettings settings, ValueEventArgs e)
 {
     if (e.Index == 1)
     {
         LogicalName = GXCommon.ToLogicalName(e.Value);
     }
     else if (e.Index == 2)
     {
         if (e.Value is string)
         {
             DataLinkLayerReference = e.Value.ToString();
         }
         else
         {
             DataLinkLayerReference = GXCommon.ToLogicalName(e.Value);
         }
     }
     else if (e.Index == 3)
     {
         AddressConfigMode = (AddressConfigMode)Convert.ToInt32(e.Value);
     }
     else if (e.Index == 4)
     {
         List <IPAddress> data = new List <IPAddress>();
         if (e.Value != null)
         {
             foreach (object it in (IEnumerable <object>)e.Value)
             {
                 data.Add(new IPAddress((byte[])it));
             }
         }
         UnicastIPAddress = data.ToArray();
     }
     else if (e.Index == 5)
     {
         List <IPAddress> data = new List <IPAddress>();
         if (e.Value != null)
         {
             foreach (object it in (IEnumerable <object>)e.Value)
             {
                 data.Add(new IPAddress((byte[])it));
             }
         }
         MulticastIPAddress = data.ToArray();
     }
     else if (e.Index == 6)
     {
         List <IPAddress> data = new List <IPAddress>();
         if (e.Value != null)
         {
             foreach (object it in (IEnumerable <object>)e.Value)
             {
                 data.Add(new IPAddress((byte[])it));
             }
         }
         GatewayIPAddress = data.ToArray();
     }
     else if (e.Index == 7)
     {
         if (e.Value == null || ((byte[])e.Value).Length == 0)
         {
             PrimaryDNSAddress = null;
         }
         else
         {
             PrimaryDNSAddress = new IPAddress((byte[])e.Value);
         }
     }
     else if (e.Index == 8)
     {
         if (e.Value == null || ((byte[])e.Value).Length == 0)
         {
             SecondaryDNSAddress = null;
         }
         else
         {
             SecondaryDNSAddress = new IPAddress((byte[])e.Value);
         }
     }
     else if (e.Index == 9)
     {
         TrafficClass = Convert.ToByte(e.Value);
     }
     else if (e.Index == 10)
     {
         List <GXNeighborDiscoverySetup> data = new List <GXNeighborDiscoverySetup>();
         if (e.Value != null)
         {
             foreach (object tmp in (IEnumerable <object>)e.Value)
             {
                 List <object> it;
                 if (tmp is List <object> )
                 {
                     it = (List <object>)tmp;
                 }
                 else
                 {
                     it = new List <object>((object[])tmp);
                 }
                 GXNeighborDiscoverySetup v = new GXNeighborDiscoverySetup();
                 v.MaxRetry      = Convert.ToByte(it[0]);
                 v.RetryWaitTime = Convert.ToUInt16(it[1]);
                 v.SendPeriod    = Convert.ToUInt32(it[2]);
                 data.Add(v);
             }
         }
         NeighborDiscoverySetup = data.ToArray();
     }
     else
     {
         e.Error = ErrorCode.ReadWriteDenied;
     }
 }