|
|
@ -218,14 +218,15 @@ bool PX4FirmwareUpgradeThreadWorker::_findBootloader(const QGCSerialPortInfo& po |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_bootloaderPort = new QextSerialPort(QextSerialPort::Polling); |
|
|
|
_bootloaderPort = new QextSerialPort(QextSerialPort::Polling); |
|
|
|
Q_CHECK_PTR(_bootloaderPort); |
|
|
|
|
|
|
|
if (radioMode) { |
|
|
|
if (radioMode) { |
|
|
|
_bootloaderPort->setBaudRate(BAUD115200); |
|
|
|
_bootloaderPort->setBaudRate(BAUD115200); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Wait a little while for the USB port to initialize.
|
|
|
|
// Wait a little while for the USB port to initialize.
|
|
|
|
|
|
|
|
bool openFailed = true; |
|
|
|
for (int i=0; i<10; i++) { |
|
|
|
for (int i=0; i<10; i++) { |
|
|
|
if (_bootloader->open(_bootloaderPort, portInfo.systemLocation())) { |
|
|
|
if (_bootloader->open(_bootloaderPort, portInfo.systemLocation())) { |
|
|
|
|
|
|
|
openFailed = false; |
|
|
|
break; |
|
|
|
break; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
QGC::SLEEP::msleep(100); |
|
|
|
QGC::SLEEP::msleep(100); |
|
|
@ -236,6 +237,16 @@ bool PX4FirmwareUpgradeThreadWorker::_findBootloader(const QGCSerialPortInfo& po |
|
|
|
QGC::SLEEP::msleep(2000); |
|
|
|
QGC::SLEEP::msleep(2000); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (openFailed) { |
|
|
|
|
|
|
|
qCDebug(FirmwareUpgradeLog) << "Bootloader open port failed:" << _bootloader->errorString(); |
|
|
|
|
|
|
|
if (errorOnNotFound) { |
|
|
|
|
|
|
|
emit error(_bootloader->errorString()); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
_bootloaderPort->deleteLater(); |
|
|
|
|
|
|
|
_bootloaderPort = NULL; |
|
|
|
|
|
|
|
return false; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (_bootloader->sync(_bootloaderPort)) { |
|
|
|
if (_bootloader->sync(_bootloaderPort)) { |
|
|
|
bool success; |
|
|
|
bool success; |
|
|
|
|
|
|
|
|
|
|
|