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 @@
+
+