From 3725980462c8f95e9501562435a1cc5c530bc201 Mon Sep 17 00:00:00 2001 From: Alex Johnson Date: Thu, 4 Mar 2021 11:02:19 -0500 Subject: [PATCH 1/3] Adds better stream debugging for SendText methods --- Pepperdash Core/Pepperdash Core/Comm/GenericSshClient.cs | 2 +- Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient.cs | 2 +- Pepperdash Core/Pepperdash Core/Comm/GenericUdpServer.cs | 2 +- Pepperdash Core/Pepperdash Core/CommunicationExtras.cs | 7 ++++++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Pepperdash Core/Pepperdash Core/Comm/GenericSshClient.cs b/Pepperdash Core/Pepperdash Core/Comm/GenericSshClient.cs index 3bc7c21..904f87a 100644 --- a/Pepperdash Core/Pepperdash Core/Comm/GenericSshClient.cs +++ b/Pepperdash Core/Pepperdash Core/Comm/GenericSshClient.cs @@ -432,7 +432,7 @@ namespace PepperDash.Core if (Client != null) { if (StreamDebugging.TxStreamDebuggingIsEnabled) - Debug.Console(0, this, "Sending {0} characters of text: '{1}'", text.Length, text); + Debug.Console(0, this, "Sending {0} characters of text: '{1}'", text.Length, ComTextHelper.GetDebugText(text)); TheStream.Write(text); TheStream.Flush(); diff --git a/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient.cs b/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient.cs index f151b57..9f2102b 100644 --- a/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient.cs +++ b/Pepperdash Core/Pepperdash Core/Comm/GenericTcpIpClient.cs @@ -376,7 +376,7 @@ namespace PepperDash.Core var bytes = Encoding.GetEncoding(28591).GetBytes(text); // Check debug level before processing byte array if (StreamDebugging.TxStreamDebuggingIsEnabled) - Debug.Console(0, this, "Sending {0} bytes: '{1}'", bytes.Length, ComTextHelper.GetEscapedText(bytes)); + Debug.Console(0, this, "Sending {0} characters of text: '{1}'", text.Length, ComTextHelper.GetDebugText(text)); if(Client != null) Client.SendData(bytes, bytes.Length); diff --git a/Pepperdash Core/Pepperdash Core/Comm/GenericUdpServer.cs b/Pepperdash Core/Pepperdash Core/Comm/GenericUdpServer.cs index 1ed3d68..81cf4a2 100644 --- a/Pepperdash Core/Pepperdash Core/Comm/GenericUdpServer.cs +++ b/Pepperdash Core/Pepperdash Core/Comm/GenericUdpServer.cs @@ -329,7 +329,7 @@ namespace PepperDash.Core if (IsConnected && Server != null) { if (StreamDebugging.TxStreamDebuggingIsEnabled) - Debug.Console(0, this, "Sending {0} characters of text: '{1}'", text.Length, text); + Debug.Console(0, this, "Sending {0} characters of text: '{1}'", text.Length, ComTextHelper.GetDebugText(text)); Server.SendData(bytes, bytes.Length); } diff --git a/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs b/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs index c5892a4..6c40979 100644 --- a/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs +++ b/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using Crestron.SimplSharp; using Crestron.SimplSharp.CrestronSockets; - +using System.Text.RegularExpressions; using Newtonsoft.Json; using Newtonsoft.Json.Linq; @@ -138,5 +138,10 @@ namespace PepperDash.Core var bytes = Encoding.GetEncoding(28591).GetBytes(text); return String.Concat(bytes.Select(b => string.Format(@"[{0:X2}]", (int)b)).ToArray()); } + + public static string GetDebugText(string text) + { + return Regex.Replace(text, @"[^\u0000-\u007F]|\p{Cc}", a => string.Format("[{0:X2}]", (byte)a.Value[0])); + } } } \ No newline at end of file From 1ae2483110c55450d281b35908a691c4516980a7 Mon Sep 17 00:00:00 2001 From: Alex Johnson Date: Thu, 4 Mar 2021 11:47:25 -0500 Subject: [PATCH 2/3] Uses existing method to get escaped text for console --- Pepperdash Core/Pepperdash Core/CommunicationExtras.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs b/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs index 6c40979..207f438 100644 --- a/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs +++ b/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs @@ -141,7 +141,7 @@ namespace PepperDash.Core public static string GetDebugText(string text) { - return Regex.Replace(text, @"[^\u0000-\u007F]|\p{Cc}", a => string.Format("[{0:X2}]", (byte)a.Value[0])); + return Regex.Replace(text, @"[^\u0000-\u007F]|\p{Cc}", a => GetEscapedText(a.Value)); } } } \ No newline at end of file From e7d54092d89f0e0a8b01fcb63d36f6bf600806ec Mon Sep 17 00:00:00 2001 From: Alex Johnson Date: Thu, 4 Mar 2021 12:07:07 -0500 Subject: [PATCH 3/3] Simplifies regex for detecting non-printable characters --- Pepperdash Core/Pepperdash Core/CommunicationExtras.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs b/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs index 207f438..9dc4b48 100644 --- a/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs +++ b/Pepperdash Core/Pepperdash Core/CommunicationExtras.cs @@ -141,7 +141,7 @@ namespace PepperDash.Core public static string GetDebugText(string text) { - return Regex.Replace(text, @"[^\u0000-\u007F]|\p{Cc}", a => GetEscapedText(a.Value)); + return Regex.Replace(text, @"[^\u0020-\u007E]", a => GetEscapedText(a.Value)); } } } \ No newline at end of file