using System; using Crestron.SimplSharp; namespace PepperDash.Core { /// /// Extension methods for stream debugging /// public static class StreamDebuggingExtensions { private static readonly string app = CrestronEnvironment.DevicePlatform == eDevicePlatform.Appliance ? $"App {InitialParametersClass.ApplicationNumber}" : $"{InitialParametersClass.RoomId}"; /// /// Print the sent bytes to the console /// /// comms device /// bytes to print public static void PrintSentBytes(this IStreamDebugging comms, byte[] bytes) { if (!comms.StreamDebugging.TxStreamDebuggingIsEnabled) return; var timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); CrestronConsole.PrintLine($"[{timestamp}][{app}][{comms.Key}] Sending {bytes.Length} bytes: '{ComTextHelper.GetEscapedText(bytes)}'"); } /// /// Print the received bytes to the console /// /// comms device /// bytes to print public static void PrintReceivedBytes(this IStreamDebugging comms, byte[] bytes) { if (!comms.StreamDebugging.RxStreamDebuggingIsEnabled) return; var timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); CrestronConsole.PrintLine($"[{timestamp}][{app}][{comms.Key}] Received {bytes.Length} bytes: '{ComTextHelper.GetEscapedText(bytes)}'"); } /// /// Print the sent text to the console /// /// comms device /// text to print public static void PrintSentText(this IStreamDebugging comms, string text) { if (!comms.StreamDebugging.TxStreamDebuggingIsEnabled) return; var timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); CrestronConsole.PrintLine($"[{timestamp}][{app}][{comms.Key}] Sending Text: '{ComTextHelper.GetDebugText(text)}'"); } /// /// Print the received text to the console /// /// comms device /// text to print public static void PrintReceivedText(this IStreamDebugging comms, string text) { if (!comms.StreamDebugging.RxStreamDebuggingIsEnabled) return; var timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); CrestronConsole.PrintLine($"[{timestamp}][{app}][{comms.Key}] Received Text: '{ComTextHelper.GetDebugText(text)}'"); } } }