mirror of
https://github.com/pybricks/pybricks-code.git
synced 2026-09-12 01:23:52 +00:00
Merge pull request #215 from pybricks/dlech
fix timeout when firmware size is 10x packet size
This commit is contained in:
@@ -280,7 +280,7 @@ function* flashFirmware(action: FlashFirmwareFlashAction): Generator {
|
||||
throw Error('Missing hub type in MaxProgramFlashSize');
|
||||
}
|
||||
|
||||
for (let offset = 0; offset < firmware.length; offset += maxDataSize) {
|
||||
for (let offset = 0; ; ) {
|
||||
const payload = firmware.slice(offset, offset + maxDataSize);
|
||||
const programAction = (yield put(
|
||||
programRequest(info[0].startAddress + offset, payload.buffer),
|
||||
@@ -289,6 +289,13 @@ function* flashFirmware(action: FlashFirmwareFlashAction): Generator {
|
||||
|
||||
yield put(progress(offset, firmware.length));
|
||||
|
||||
// we don't want to request checksum if this is the last packet since
|
||||
// the bootloader will send a response to the program request already.
|
||||
offset += maxDataSize;
|
||||
if (offset >= firmware.length) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (connectResult.canWriteWithoutResponse) {
|
||||
// Request checksum every 10 packets to prevent buffer overrun on
|
||||
// the hub because of sending too much data at once. The actual
|
||||
|
||||
Reference in New Issue
Block a user