trying file progress from remote, due to packet loss

This commit is contained in:
2025-12-01 20:30:37 +00:00
parent a7d5880057
commit b471d0e20f

View File

@@ -213,9 +213,6 @@ export default class Updater {
return new Promise((resolve, reject) => {
this.bleObject.writeWithoutResponse(this.bleDeviceId, this._updaterServiceUUID, this._updateFileCharacteristicUUID, packet.buffer,
() => {
console.log("Wrote")
console.log(packet.length);
this._fileProgress += packet.length;
resolve(true);
},
(error) => {
@@ -244,11 +241,12 @@ export default class Updater {
// write file length
return new Promise(async (resolve, reject) => {
// set mtu
this.bleObject.requestMtu(this.bleDeviceId, this._packetSize, (mtu: number) => {
this._packetSize = mtu;
this._packetSize = await this.bleObject.withPromises.requestMtu(this.bleDeviceId, this._packetSize);
// start notify
this.bleObject.startNotification(this.bleDeviceId, this._updaterServiceUUID, this._updaterCommandCharacterisitcUUID,
(rawData: ArrayBuffer): void => {
let dataView = new Uint8Array(rawData);
console.log(dataView);
if (dataView[0] == 1) {
// send file
this.sendNextPacket();
@@ -256,7 +254,7 @@ export default class Updater {
} else if (dataView[0] == 2) {
// done logic
console.log(`progress >= filesize: ${this._fileProgress} vs ${this._fileSize}`);
if (this._fileProgress >= this._fileSize) {
if (this._fileProgress >= (this._fileSize - this._packetSize)) {
console.log("true");
// send agree
this.sendEndCmd(true);
@@ -287,12 +285,12 @@ export default class Updater {
progressCallback(`Board is on`);
}
else {
// no command
progressCallback(`Error on remote`);
reject("Error: command does not exist");
// should be the file progress
let fileProgressView = new Uint32Array(rawData);
this._fileProgress += fileProgressView[0];
this.sendNextPacket();
}
}, (error) => {
reject("Error: Failed to start notify");
}, (error) => { reject("Error: Failed to start notify");
console.error(error);
}
);
@@ -301,10 +299,6 @@ export default class Updater {
view[0] = this._fileSize;
this.bleObject.withPromises.write(this.bleDeviceId, this._updaterServiceUUID, this._updaterCommandCharacterisitcUUID, buffer);
});
// start notify
});
}
}