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}";
                });
            });
        }