mirror of
https://github.com/thegecko/web-bluetooth-dfu.git
synced 2025-12-12 20:18:13 +08:00
Use switch statement for DFU OTA message sequence instead of if else.
This commit is contained in:
33
dist/dfu.js
vendored
33
dist/dfu.js
vendored
@@ -322,9 +322,14 @@
|
||||
return reject(err);
|
||||
}
|
||||
|
||||
if (req_opcode === OPCODE.START_DFU && majorVersion > 6) {
|
||||
switch(req_opcode) {
|
||||
case OPCODE.START_DFU:
|
||||
log('write init packet');
|
||||
|
||||
if(majorVersion >= 6) { // init packet is not used in SDK v6 (so not used in mbed).
|
||||
break;
|
||||
}
|
||||
|
||||
controlChar.writeValue(new Uint8Array([2,0]))
|
||||
.then(() => {
|
||||
return packetChar.writeValue(generateInitPacket());
|
||||
@@ -337,9 +342,9 @@
|
||||
log(error);
|
||||
reject(error);
|
||||
});
|
||||
|
||||
} else if (req_opcode === OPCODE.START_DFU || req_opcode === OPCODE.INITIALIZE_DFU_PARAMETERS) {
|
||||
log('complete, send packet count');
|
||||
break;
|
||||
case OPCODE.INITIALIZE_DFU_PARAMETERS:
|
||||
log('send packet count');
|
||||
|
||||
var buffer = new ArrayBuffer(3);
|
||||
view = new DataView(buffer);
|
||||
@@ -360,9 +365,9 @@
|
||||
log(error);
|
||||
reject(error);
|
||||
});
|
||||
|
||||
} else if (req_opcode === OPCODE.RECEIVE_FIRMWARE_IMAGE) {
|
||||
log('complete, check length');
|
||||
break;
|
||||
case OPCODE.RECEIVE_FIRMWARE_IMAGE:
|
||||
log('check length');
|
||||
|
||||
controlChar.writeValue(new Uint8Array([7]))
|
||||
.catch(error => {
|
||||
@@ -370,11 +375,11 @@
|
||||
log(error);
|
||||
reject(error);
|
||||
});
|
||||
|
||||
} else if (req_opcode === OPCODE.REPORT_RECEIVED_IMAGE_SIZE) {
|
||||
break;
|
||||
case OPCODE.REPORT_RECEIVED_IMAGE_SIZE:
|
||||
var byteCount = view.getUint32(3, LITTLE_ENDIAN);
|
||||
log('length: ' + byteCount);
|
||||
log('complete, validate...');
|
||||
log('validate...');
|
||||
|
||||
controlChar.writeValue(new Uint8Array([4]))
|
||||
.catch(error => {
|
||||
@@ -382,8 +387,8 @@
|
||||
log(error);
|
||||
reject(error);
|
||||
});
|
||||
|
||||
} else if (req_opcode === OPCODE.VALIDATE_FIRMWARE) {
|
||||
break;
|
||||
case OPCODE.VALIDATE_FIRMWARE:
|
||||
log('complete, reset...');
|
||||
/*
|
||||
// Disconnect event currently not implemented
|
||||
@@ -401,6 +406,10 @@
|
||||
log(error);
|
||||
reject(error);
|
||||
});
|
||||
break;
|
||||
default:
|
||||
log('unexpected req opCode - ERROR');
|
||||
break;
|
||||
}
|
||||
|
||||
} else if (opCode === OPCODE.PACKET_RECEIPT_NOTIFICATION) {
|
||||
|
||||
Reference in New Issue
Block a user