using System; using System.Collections.Generic; using System.Text; using DTS.Common.Enums.DASFactory; using DTS.Common.ICommunication; namespace DTS.DASLib.Command.SLICEDB { public abstract class NetworkCommands : CommandBase { protected enum Commands { Reserved = 0x00, QueryIPAddress = 0x01, SetIPAddress = 0x02, QueryNetmask = 0x03, SetNetmask = 0x04, QueryDefaultRoute = 0x05, SetDefaultRoute = 0x06, QueryMACAddress = 0x07, SetMACAddress = 0x08, }; protected abstract Commands _Command { get; } protected NetworkCommands(DTS.Common.Interface.DASFactory.ICommunication sock) : base(sock) { command.Type = CommandPacket.CommandType.Network; command.SetCommand((byte)_Command, _Command.ToString()); } protected NetworkCommands(DTS.Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec) : base(sock, TimeoutMillisec) { command.Type = CommandPacket.CommandType.Network; command.SetCommand((byte)_Command, _Command.ToString()); } public override void CommandToString(ref List> list) { base.CommandToString(ref list); list[0].Add(recorder.ConnectString); } public override void ResponseToString(ref List> lines) { base.ResponseToString(ref lines); lines[0].Add(recorder.ConnectString); } } public class QueryIPAddress : NetworkCommands { protected override NetworkCommands.Commands _Command { get { return Commands.QueryIPAddress; } } public QueryIPAddress(DTS.Common.Interface.DASFactory.ICommunication sock) : base(sock) { } public QueryIPAddress(DTS.Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec) : base(sock, TimeoutMillisec) { } private string _val; /// /// The current IP address of the SLICE DB /// public string IPAddress { get { return _val; } } protected override CommandReceiveAction WholePackage() { if (response.Status == DFConstantsAndEnums.CommandStatus.StatusNoError) { response.GetParameter(0, out _val); } else { _val = string.Empty; } return CommandReceiveAction.StopReceiving; } public override void ResponseToString(ref List> lines) { base.ResponseToString(ref lines); lines.Add(new List() { string.Format("IP Address: {0}", IPAddress) }); } } public class SetIPAddress : NetworkCommands { protected override NetworkCommands.Commands _Command { get { return Commands.SetIPAddress; } } public SetIPAddress(DTS.Common.Interface.DASFactory.ICommunication sock) : base(sock) { } public SetIPAddress(DTS.Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec) : base(sock, TimeoutMillisec) { } private string _val; /// /// The current IP address of the SLICE DB /// public string IPAddress { get { return _val; } set { _val = value; command.Parameter = new byte[_val.Length + 1]; command.SetParameter(0, _val); } } public override void CommandToString(ref List> lines) { base.CommandToString(ref lines); lines.Add(new List() { string.Format("IP Address: {0}", IPAddress) }); } } public class QueryNetmask : NetworkCommands { protected override NetworkCommands.Commands _Command { get { return Commands.QueryNetmask; } } public QueryNetmask(DTS.Common.Interface.DASFactory.ICommunication sock) : base(sock) { } public QueryNetmask(DTS.Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec) : base(sock, TimeoutMillisec) { } private string _val; /// /// The current netmask of the SLICE DB /// public string Netmask { get { return _val; } } protected override CommandReceiveAction WholePackage() { if (response.Status == DFConstantsAndEnums.CommandStatus.StatusNoError) { response.GetParameter(0, out _val); } else { _val = string.Empty; } return CommandReceiveAction.StopReceiving; } public override void ResponseToString(ref List> lines) { base.ResponseToString(ref lines); lines.Add(new List() { string.Format("Netmask: {0}", Netmask) }); } } public class SetNetmask : NetworkCommands { protected override NetworkCommands.Commands _Command { get { return Commands.SetNetmask; } } public SetNetmask(DTS.Common.Interface.DASFactory.ICommunication sock) : base(sock) { } public SetNetmask(DTS.Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec) : base(sock, TimeoutMillisec) { } private string _val; /// /// The current netmask of the SLICE DB /// public string Netmask { get { return _val; } set { _val = value; command.Parameter = new byte[_val.Length + 1]; command.SetParameter(0, _val); } } public override void CommandToString(ref List> lines) { base.CommandToString(ref lines); lines.Add(new List() { string.Format("Netmask: {0}", Netmask) }); } } public class QueryDefaultRoute : NetworkCommands { protected override NetworkCommands.Commands _Command { get { return Commands.QueryDefaultRoute; } } public QueryDefaultRoute(DTS.Common.Interface.DASFactory.ICommunication sock) : base(sock) { } public QueryDefaultRoute(DTS.Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec) : base(sock, TimeoutMillisec) { } private string _val; /// /// The current default route of the SLICE DB /// public string DefaultRoute { get { return _val; } } protected override CommandReceiveAction WholePackage() { if (response.Status == DFConstantsAndEnums.CommandStatus.StatusNoError) { response.GetParameter(0, out _val); } else { _val = string.Empty; } return CommandReceiveAction.StopReceiving; } public override void ResponseToString(ref List> lines) { base.ResponseToString(ref lines); lines.Add(new List() { string.Format("Default route: {0}", DefaultRoute) }); } } public class SetDefaultRoute : NetworkCommands { protected override NetworkCommands.Commands _Command { get { return Commands.SetDefaultRoute; } } public SetDefaultRoute(DTS.Common.Interface.DASFactory.ICommunication sock) : base(sock) { } public SetDefaultRoute(DTS.Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec) : base(sock, TimeoutMillisec) { } private string _val; /// /// The current default route of the SLICE DB /// public string DefaultRoute { get { return _val; } set { _val = value; command.Parameter = new byte[_val.Length + 1]; command.SetParameter(0, _val); } } public override void CommandToString(ref List> lines) { base.CommandToString(ref lines); lines.Add(new List() { string.Format("Default route: {0}", DefaultRoute) }); } } public class QueryMACAddress : NetworkCommands { protected override NetworkCommands.Commands _Command { get { return Commands.QueryMACAddress; } } public QueryMACAddress(DTS.Common.Interface.DASFactory.ICommunication sock) : base(sock) { } public QueryMACAddress(DTS.Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec) : base(sock, TimeoutMillisec) { } private string _val; /// /// The current MAC address (Ethernet hardware address) of the SLICE DB /// public string MACAddress { get { return _val; } } protected override CommandReceiveAction WholePackage() { if (response.Status == DFConstantsAndEnums.CommandStatus.StatusNoError) { response.GetParameter(0, out _val); } else { _val = string.Empty; } return CommandReceiveAction.StopReceiving; } public override void ResponseToString(ref List> lines) { base.ResponseToString(ref lines); lines.Add(new List() { string.Format("MAC Address: {0}", MACAddress) }); } } public class SetMACAddress : NetworkCommands { protected override NetworkCommands.Commands _Command { get { return Commands.SetMACAddress; } } public SetMACAddress(DTS.Common.Interface.DASFactory.ICommunication sock) : base(sock) { } public SetMACAddress(DTS.Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec) : base(sock, TimeoutMillisec) { } private string _val; /// /// The current MAC address (Ethernet hardware address) of the SLICE DB /// public string MACAddress { get { return _val; } set { _val = value; command.Parameter = new byte[_val.Length + 1]; command.SetParameter(0, _val); } } public override void CommandToString(ref List> lines) { base.CommandToString(ref lines); lines.Add(new List() { string.Format("MAC Address: {0}", MACAddress) }); } } }