tbf/TBF/Rig/Network/Adapter/Netadapter.cs

49 lines
1.3 KiB
C#

///
/// Copyright (c) 2017 Sensus Metering Systems
///
using System.Net;
using Common;
using log4net;
namespace TBF.Rig.Network.Adapter
{
public class Netadapter : ComponentBase, GenericDevices.INetworkAdapter
{
private static readonly ILog log = LogManager.GetLogger(typeof(Netadapter));
public override string ToString() { return string.Format("{0}({1})", ClassName, Cfg.ToString(-1)); }
readonly NetadapterCfg netadapterCfg;
IPAddress ipAddress;
IPAddress netMask;
IPAddress broadcastAddress;
public IPAddress IPAddress { get { return ipAddress; } }
public IPAddress NetMask { get { return netMask; } }
public IPAddress BroadcastAddress { get { return broadcastAddress; } }
public Netadapter() { }
public Netadapter(Generic.IComponentCfg cfg)
: base(cfg)
{
netadapterCfg = cfg as NetadapterCfg;
log.Warn(this.ToString());
}
public override void Initialize()
{
AdapterInfo.RefreshNetAdaptersInfo();
AdapterInfo netadapter = AdapterInfo.GetNetAdapter(netadapterCfg.Description);
ipAddress = netadapter.IPAddress;
netMask = netadapter.NetMask;
if (this.Cfg.DebugLevel != DebugMode.Simulate)
{
broadcastAddress = netadapter.GetBroadcastAddress();
}
}
}
}