diff --git a/companion/src/process_flash.cpp b/companion/src/process_flash.cpp index 95d38e766..49118ff85 100755 --- a/companion/src/process_flash.cpp +++ b/companion/src/process_flash.cpp @@ -200,6 +200,9 @@ void FlashProcess::analyseStandardError(const QString &text) if (text.contains("-E-") && !text.contains("-E- No receive file name")) { hasErrors = true; } + if (text.contains("No DFU capable USB device found")) { + hasErrors = true; + } } void FlashProcess::onReadyReadStandardOutput() @@ -218,7 +221,8 @@ void FlashProcess::onReadyReadStandardError() void FlashProcess::errorWizard() { - QString output; // TODO = ui->plainTextEdit->toPlainText(); + QString output=progress->getText(); // TODO = ui->plainTextEdit->toPlainText(); + if (output.contains("avrdude: Expected signature for")) { // wrong signature int pos=output.indexOf("avrdude: Device signature = "); bool fwexist=false; @@ -259,6 +263,12 @@ void FlashProcess::errorWizard() Firmware *firmware = GetCurrentFirmware(); QMessageBox::warning(NULL, "Companion - Tip of the day", tr("Your radio uses a %1 CPU!!!\n\nPlease select an appropriate firmware type to program it.").arg(DeviceStr)+FwStr+tr("\nYou are currently using:\n %1").arg(firmware->getName())); } + } else if (output.contains("No DFU capable USB device found")){ +#if defined WIN32 || !defined __GNUC__ + QMessageBox::warning(NULL, "Companion - Tip of the day", tr("Your radio does not seem connected to USB or the driver is not installed!!!\n\nPlease use ZADIG to properly install the driver.")); +#else + QMessageBox::warning(NULL, "Companion - Tip of the day", tr("Your radio does not seem connected to USB or the driver is not initialized!!!.")); +#endif } } @@ -270,7 +280,7 @@ void FlashProcess::onFinished(int code=0) } if (code) { progress->setInfo(tr("Flashing done (exit code = %1)").arg(code)); - if (cmd.toLower().contains("avrdude")) { + if (cmd.toLower().contains("avrdude") || cmd.toLower().contains("dfu")) { errorWizard(); } } diff --git a/companion/src/progresswidget.cpp b/companion/src/progresswidget.cpp index 10484a69a..9c19aa01e 100755 --- a/companion/src/progresswidget.cpp +++ b/companion/src/progresswidget.cpp @@ -78,6 +78,11 @@ void ProgressWidget::addText(const QString &text) } } +QString ProgressWidget::getText() +{ + return ui->textEdit->toPlainText(); +} + void ProgressWidget::setProgressColor(const QColor &color) { ui->progressBar->setStyleSheet(QString("QProgressBar {text-align: center;} QProgressBar::chunk { background-color: %1; text-align:center;}:").arg(color.name())); diff --git a/companion/src/progresswidget.h b/companion/src/progresswidget.h index 392511f4e..ba1007963 100755 --- a/companion/src/progresswidget.h +++ b/companion/src/progresswidget.h @@ -16,6 +16,7 @@ class ProgressWidget : public QWidget ~ProgressWidget(); void lock(bool lock); void addText(const QString &text); + QString getText(); void setInfo(const QString &text); void setMaximum(int value); int maximum();