public override async ValueTask ExecuteAsync(IConsole console) { var cancellationToken = console.RegisterCancellationHandler(); using var device = await MeadowDeviceManager.GetMeadowForSerialPort(SerialPortName, true, cancellationToken).ConfigureAwait(false); var deviceInfoString = await device.GetDeviceInfo(cancellationToken : cancellationToken).ConfigureAwait(false); if (string.IsNullOrWhiteSpace(deviceInfoString)) { throw new Exception("Unable to retrieve device info"); } var deviceInfo = new MeadowDeviceInfo(deviceInfoString); _logger.LogInformation(deviceInfo.ToString()); }
internal void SetDeviceInfo(MeadowDeviceInfo deviceInfo) { MeadowOS.GetFirmwareVersion().ContinueWith((arg) => { var latestVersion = arg.Result; var meadowVersion = new Version(deviceInfo.MeadowOSVersion.Substring(0, (deviceInfo.MeadowOSVersion.IndexOf(' ')))); var sb = new StringBuilder(); sb.Append($"{spanBlue}SerialNo:</span> {deviceInfo.SerialNumber} "); sb.Append($"{spanBlue}OSVersion:</span> "); if (meadowVersion.CompareTo(latestVersion) > 0) { sb.Append($"{spanRed}{deviceInfo.MeadowOSVersion}</span> "); WriteToConsole("MeadowOS out of date", tagRedBold); } else { sb.Append($"{spanGreen}{deviceInfo.MeadowOSVersion}</span> "); } sb.Append($"{spanBlue}Model:</span> {deviceInfo.Model} "); sb.Append($"{spanBlue}Proccessor:</span> {deviceInfo.Proccessor} "); sb.Append($"{spanBlue}CoProcessor:</span> {deviceInfo.CoProcessor} "); sb.Append($"{spanBlue}CoProcessorOs:</span> {deviceInfo.CoProcessorOs} "); sb.Append($"{spanBlue}ProcessorId:</span> {deviceInfo.ProcessorId} "); Gtk.Application.Invoke(delegate { labelInfo.Markup = sb.ToString(); meadowPad.Window.Title = $"Meadow {deviceInfo.SerialNumber}"; }); }); }