mirror of
https://github.com/betaflight/betaflight-configurator.git
synced 2025-07-16 12:55:14 +03:00
Merge pull request #2836 from ctzsnooze/check-every-100ms-for-dfu-mode-when-flashing
check every 100ms for DFU mode
This commit is contained in:
commit
a8a9ac6b6a
1 changed files with 20 additions and 4 deletions
|
@ -114,10 +114,26 @@ STM32_protocol.prototype.connect = function (port, baud, hex, options, callback)
|
|||
|
||||
const onDisconnect = disconnectionResult => {
|
||||
if (disconnectionResult) {
|
||||
// delay to allow board to boot in bootloader mode
|
||||
// required to detect if a DFU device appears
|
||||
// MacOs seems to need about 5 seconds delay
|
||||
setTimeout(startFlashing, GUI.operating_system === 'MacOS' ? 5000 : 1000);
|
||||
// wait until board boots into bootloader mode
|
||||
// MacOs may need 5 seconds delay
|
||||
function waitForDfu() {
|
||||
if (PortHandler.dfu_available) {
|
||||
console.log(`DFU available after ${failedAttempts / 10} seconds`);
|
||||
clearInterval(dfuWaitInterval);
|
||||
startFlashing();
|
||||
} else {
|
||||
failedAttempts++;
|
||||
if (failedAttempts > 100) {
|
||||
clearInterval(dfuWaitInterval);
|
||||
console.log(`failed to get DFU connection, gave up after 10 seconds`);
|
||||
GUI.log(i18n.getMessage('serialPortOpenFail'));
|
||||
GUI.connect_lock = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let failedAttempts = 0;
|
||||
const dfuWaitInterval = setInterval(waitForDfu, 100);
|
||||
} else {
|
||||
GUI.connect_lock = false;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue