diff --git a/nanoFirmwareFlasher/Program.cs b/nanoFirmwareFlasher/Program.cs index 8b932a10..4969a49c 100644 --- a/nanoFirmwareFlasher/Program.cs +++ b/nanoFirmwareFlasher/Program.cs @@ -1149,7 +1149,7 @@ static async Task RunOptionsAndReturnExitCodeAsync(Options o) } // set VCP baud rate (if needed) - _ = SilinkCli.SetVcpBaudRate(o.JLinkDeviceId is null ? connectedJLinkDevices.First() : ""); + _ = SilinkCli.SetVcpBaudRate(o.JLinkDeviceId is null ? connectedJLinkDevices.First() : "", _verbosityLevel); // set verbosity jlinkDevice.Verbosity = _verbosityLevel; @@ -1201,7 +1201,7 @@ static async Task RunOptionsAndReturnExitCodeAsync(Options o) operationPerformed = true; // set VCP baud rate (if needed) - _ = SilinkCli.SetVcpBaudRate(o.JLinkDeviceId is null ? connectedJLinkDevices.First() : ""); + _ = SilinkCli.SetVcpBaudRate(o.JLinkDeviceId is null ? connectedJLinkDevices.First() : "", _verbosityLevel); if (_exitCode != ExitCodes.OK) { diff --git a/nanoFirmwareFlasher/SilinkCli.cs b/nanoFirmwareFlasher/SilinkCli.cs index 6a5b658e..02ea8093 100644 --- a/nanoFirmwareFlasher/SilinkCli.cs +++ b/nanoFirmwareFlasher/SilinkCli.cs @@ -50,7 +50,14 @@ public static ExitCodes SetVcpBaudRate( return ExitCodes.E8002; } + Console.ForegroundColor = ConsoleColor.White; + // launch silink + if (verbosity >= VerbosityLevel.Detailed) + { + Console.WriteLine("Launching silink..."); + } + var silinkCli = RunSilinkCLI(Path.Combine(probeId)); var silinkSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); @@ -58,6 +65,11 @@ public static ExitCodes SetVcpBaudRate( try { + if (verbosity >= VerbosityLevel.Diagnostic) + { + Console.WriteLine("Connecting to admin console..."); + } + silinkSocket.Connect(silinkEndPoint); Thread.Sleep(250); @@ -66,6 +78,11 @@ public static ExitCodes SetVcpBaudRate( byte[] buffer = Encoding.Default.GetBytes("serial vcom\r"); silinkSocket.Send(buffer); + if (verbosity >= VerbosityLevel.Diagnostic) + { + Console.WriteLine("Querying current config..."); + } + Thread.Sleep(250); buffer = new byte[1024]; @@ -73,6 +90,11 @@ public static ExitCodes SetVcpBaudRate( var currentConfig = Encoding.Default.GetString(buffer, 0, receiveCount); + if (verbosity >= VerbosityLevel.Diagnostic) + { + Console.WriteLine($"{currentConfig}"); + } + if (!string.IsNullOrEmpty(currentConfig)) { // interpret reply @@ -86,21 +108,30 @@ public static ExitCodes SetVcpBaudRate( // verify current setting if (int.TryParse(currentBaud.Groups["baudrate"].Value, out int baudRate) && baudRate == TargetBaudRate) { + if (verbosity >= VerbosityLevel.Detailed) + { + Console.WriteLine("VCP baud rate it's correct! Nothing to do here."); + } + return ExitCodes.OK; } } // need to set baud rate because it's different - if (verbosity >= VerbosityLevel.Normal) + if (verbosity == VerbosityLevel.Normal) { - Console.Write("Setting VCP baud rate..."); + Console.Write("Trying to set VCP baud rate..."); + } + else if (verbosity > VerbosityLevel.Normal) + { + Console.WriteLine("Trying to set VCP baud rate..."); } Thread.Sleep(250); // compose command - buffer = Encoding.Default.GetBytes("serial vcom config speed {TargetBaudRate}\r"); + buffer = Encoding.Default.GetBytes($"serial vcom config speed {TargetBaudRate}\r"); silinkSocket.Send(buffer); Thread.Sleep(250); @@ -110,9 +141,14 @@ public static ExitCodes SetVcpBaudRate( var opResult = Encoding.Default.GetString(buffer, 0, receiveCount); - if (opResult.Contains("Baudrate set to 921600 bps")) + if (verbosity >= VerbosityLevel.Diagnostic) { - if (verbosity >= VerbosityLevel.Normal) + Console.WriteLine($"{opResult}"); + } + + if (opResult.Contains($"Baudrate set to {TargetBaudRate} bps")) + { + if (verbosity == VerbosityLevel.Normal) { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine(" OK"); @@ -121,12 +157,16 @@ public static ExitCodes SetVcpBaudRate( Console.ForegroundColor = ConsoleColor.White; } + else if (verbosity > VerbosityLevel.Normal) + { + Console.WriteLine("Success!"); + } return ExitCodes.OK; } else { - if (verbosity >= VerbosityLevel.Normal) + if (verbosity == VerbosityLevel.Normal) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("FAILED!"); @@ -139,6 +179,13 @@ public static ExitCodes SetVcpBaudRate( Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(""); } + else if (verbosity > VerbosityLevel.Normal) + { + Console.ForegroundColor = ConsoleColor.Red; + Console.WriteLine("FAILED!"); + Console.ForegroundColor = ConsoleColor.White; + Console.WriteLine(""); + } return ExitCodes.E8002; } @@ -149,7 +196,7 @@ public static ExitCodes SetVcpBaudRate( Console.WriteLine(""); Console.ForegroundColor = ConsoleColor.Red; - Console.WriteLine($"Error occurred: {ex.Message}"); + Console.WriteLine($"Exception occurred: {ex.Message}"); Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("");