private void SetBootloader()
        {
            try
            {
                _logger.Log("Переход в режим bootloader");

                var cmd = new SetBootloaderCommand();

                _logger.Log("Команда перехода в режим bootloader поставлена в очередь");
                _commandSenderHost.Sender.SendCommandAsync(
                    _targerAddressHost.TargetAddress
                    , cmd
                    , TimeSpan.FromSeconds(1.0), 1
                    , (exception, bytes) => _userInterfaceRoot.Notifier.Notify(() =>
                {
                    try
                    {
                        if (exception != null)
                        {
                            throw new Exception("Ошибка при передаче данных: " + exception.Message, exception);
                        }
                        _logger.Log("Команда перехода в режим bootloader была отправлена");
                    }
                    catch (Exception ex)
                    {
                        _logger.Log(ex.Message);
                    }
                }));
            }
            catch (Exception ex)
            {
                _logger.Log("Не удалось поставить команду перехода в режим bootloader в очередь: " + ex.Message);
            }
        }
        private void Flash()
        {
            try
            {
                _logger.Log("Переход в режим bootloader");

                var cmd = new SetBootloaderCommand();

                _logger.Log("Команда перехода в режим bootloader поставлена в очередь");
                _commandSenderHost.Sender.SendCommandAsync(
                    _targerAddressHost.TargetAddress
                    , cmd
                    , TimeSpan.FromSeconds(1.0), 1
                    , (exception, bytes) => _userInterfaceRoot.Notifier.Notify(() =>
                {
                    try
                    {
                        if (exception != null
                            ) //throw new Exception("Ошибка при передаче данных: " + exception.Message, exception);
                        {
                            _logger.Log("Произошла ошибка при передаче данных, но это нормально");
                        }
                        _logger.Log(
                            "Команда перехода в режим bootloader была отправлена, отключаемся от COM-порта");
                        var psi     = new ProcessStartInfo("flash.bat");
                        var process = new Process {
                            StartInfo = psi
                        };
                        process.Start();
                    }
                    catch (Exception ex)
                    {
                        _logger.Log(ex.Message);
                    }
                }));
                _linkControl.CloseComPort();
            }
            catch (Exception ex)
            {
                _logger.Log("Не удалось поставить команду перехода в режим bootloader в очередь: " + ex.Message);
            }
        }