diff --git a/TestBenchFramework/BenchControl/Network/Camera/CLP1611/Camera.cs b/TestBenchFramework/BenchControl/Network/Camera/CLP1611/Camera.cs index 1a172310f..58edaeacb 100644 --- a/TestBenchFramework/BenchControl/Network/Camera/CLP1611/Camera.cs +++ b/TestBenchFramework/BenchControl/Network/Camera/CLP1611/Camera.cs @@ -174,7 +174,7 @@ namespace TBF.BenchControl.Network.Camera.CLP1611 if (cameraDetected) { /// Open telnet clint and start the log-in process - Telnet = new Telnet.TelnetClient(this, CameraCfg.Name, ClpUserName, ClpPassword, TelnetPrompt, TelnetSkipFirstLine); + Telnet = new Telnet.TelnetClient(this, CameraCfg.Name, ClpUserName, ClpPassword, TelnetPrompt, TelnetSkipFirstLine, CameraCfg.DisplayTerminal); if (CameraCfg.DisplayTerminal) { diff --git a/TestBenchFramework/BenchControl/Network/Telnet/DummyVT.cs b/TestBenchFramework/BenchControl/Network/Telnet/DummyVT.cs new file mode 100644 index 000000000..963c38684 --- /dev/null +++ b/TestBenchFramework/BenchControl/Network/Telnet/DummyVT.cs @@ -0,0 +1,15 @@ +/// +/// Copyright (c) 2017 Sensus Metering Systems +/// +namespace TBF.BenchControl.Network.Telnet +{ + public class DummyVT : IVirtualTerminal + { + public DummyVT() { } + + public void ClearScreen() { } + public void WriteVt(char c) { } + public void WriteVt(string txt) { } + public string Text { get { return string.Empty; } } + } +} diff --git a/TestBenchFramework/BenchControl/Network/Telnet/IVirtualTerminal.cs b/TestBenchFramework/BenchControl/Network/Telnet/IVirtualTerminal.cs new file mode 100644 index 000000000..8faf3b84f --- /dev/null +++ b/TestBenchFramework/BenchControl/Network/Telnet/IVirtualTerminal.cs @@ -0,0 +1,13 @@ +/// +/// Copyright (c) 2017 Sensus Metering Systems +/// +namespace TBF.BenchControl.Network.Telnet +{ + public interface IVirtualTerminal + { + void ClearScreen(); + void WriteVt(char c); + void WriteVt(string txt); + string Text { get; } + } +} diff --git a/TestBenchFramework/BenchControl/Network/Telnet/TelnetClient.cs b/TestBenchFramework/BenchControl/Network/Telnet/TelnetClient.cs index e55c9bac7..77d22471d 100644 --- a/TestBenchFramework/BenchControl/Network/Telnet/TelnetClient.cs +++ b/TestBenchFramework/BenchControl/Network/Telnet/TelnetClient.cs @@ -146,7 +146,7 @@ namespace TBF.BenchControl.Network.Telnet /// Private fields /// object objRef; /// Reference to object to be included in info sent by event handlers - VirtualTerminal vt; /// Virtual terminal + IVirtualTerminal vt; /// Virtual terminal string hostname; /// Telnet server host name or IP address. int portNr = DefaultTelnetPortNumber; /// Telnet server port number. TcpClient tcp = null; /// Reference to TcpClient @@ -223,7 +223,7 @@ namespace TBF.BenchControl.Network.Telnet /// Hostname (IP address) and the port number is passed to worker thread /// in a Command with CmdAction.CONNECT and str=hostname. /// - public TelnetClient(object objRef, string threadId, string userName, string password, string defaultPrompt, bool skipFirstLine) + public TelnetClient(object objRef, string threadId, string userName, string password, string defaultPrompt, bool skipFirstLine, bool useVT) { this.objRef = objRef; this.telnetUserName = userName; @@ -232,7 +232,17 @@ namespace TBF.BenchControl.Network.Telnet this.skipFirstLine = skipFirstLine; state = TelnetState.Inactive; /// Device's icon is being updated by HNIP - vt = new VirtualTerminal(); /// TODO: pass a VirtualTerminal reference + /// + if (useVT) + { + vt = new VirtualTerminal(); + } + else + { + vt = new DummyVT(); + } + + /// TODO: pass a VirtualTerminal reference this.portNr = DefaultTelnetPortNumber; queueEvent = new AutoResetEvent(false); disconnectDone = new AutoResetEvent(false); @@ -986,7 +996,7 @@ namespace TBF.BenchControl.Network.Telnet /// /// Public properties (read only) /// - public VirtualTerminal Vt { get { return vt; } } + public IVirtualTerminal Vt { get { return vt; } } public string Hostname { get { return hostname; } } public string NotificationText { get { return notificationText; } } public string ErrorText { get { return fatalErrorText; } } diff --git a/TestBenchFramework/BenchControl/Network/Telnet/VirtualTerminal.cs b/TestBenchFramework/BenchControl/Network/Telnet/VirtualTerminal.cs index a40faadbf..b137dab84 100644 --- a/TestBenchFramework/BenchControl/Network/Telnet/VirtualTerminal.cs +++ b/TestBenchFramework/BenchControl/Network/Telnet/VirtualTerminal.cs @@ -12,7 +12,7 @@ namespace TBF.BenchControl.Network.Telnet /// - ClearScreen() and WriteVt() methods called from one thread only /// - properties Text, etc. can be safely read from an arbitrary thread /// - public class VirtualTerminal + public class VirtualTerminal : IVirtualTerminal { const uint DefaultVtRowsCount = 80; /// Default VT height (number of rows) const uint DefaultVtColumnsCount = 132; /// Default VT width (number of columns) diff --git a/TestBenchFramework/TBF.csproj b/TestBenchFramework/TBF.csproj index 6c05c3302..29043ae9f 100644 --- a/TestBenchFramework/TBF.csproj +++ b/TestBenchFramework/TBF.csproj @@ -618,7 +618,9 @@ + +