mirror of
https://github.com/thegecko/web-bluetooth-dfu.git
synced 2025-12-12 12:08:13 +08:00
Updated library to use latest revision of web-bluetooth specification
This commit is contained in:
30
dist/dfu.js
vendored
30
dist/dfu.js
vendored
@@ -114,13 +114,12 @@
|
|||||||
*/
|
*/
|
||||||
function writeMode(device) {
|
function writeMode(device) {
|
||||||
return new Promise(function(resolve, reject) {
|
return new Promise(function(resolve, reject) {
|
||||||
/*
|
|
||||||
// TODO: once disconnect event is implemented we should resolve in its callback...
|
|
||||||
device.addEventListener("gattserverdisconnected", function() {
|
device.addEventListener("gattserverdisconnected", function() {
|
||||||
log("DFU Target issued GAP Disconnect and reset into Bootloader/DFU mode.");
|
log("DFU Target issued GAP Disconnect and reset into Bootloader/DFU mode.");
|
||||||
resolve(device);
|
resolve(device);
|
||||||
});
|
});
|
||||||
*/
|
|
||||||
var characteristics = null;
|
var characteristics = null;
|
||||||
|
|
||||||
connect(device)
|
connect(device)
|
||||||
@@ -135,11 +134,6 @@
|
|||||||
})
|
})
|
||||||
.then(function() {
|
.then(function() {
|
||||||
log("modeData written");
|
log("modeData written");
|
||||||
// Hack to gracefully disconnect without disconnect event
|
|
||||||
setTimeout(function() {
|
|
||||||
characteristics.server.disconnect();
|
|
||||||
resolve(device);
|
|
||||||
}, 2000);
|
|
||||||
})
|
})
|
||||||
.catch(function(error) {
|
.catch(function(error) {
|
||||||
error = "writeMode error: " + error;
|
error = "writeMode error: " + error;
|
||||||
@@ -180,9 +174,8 @@
|
|||||||
return versionChar.readValue()
|
return versionChar.readValue()
|
||||||
.then(function(data) {
|
.then(function(data) {
|
||||||
console.log('read versionChar');
|
console.log('read versionChar');
|
||||||
var view = new DataView(data);
|
var major = data.getUint8(0);
|
||||||
var major = view.getUint8(0);
|
var minor = data.getUint8(1);
|
||||||
var minor = view.getUint8(1);
|
|
||||||
return transfer(chars, arrayBuffer, imageType, major, minor);
|
return transfer(chars, arrayBuffer, imageType, major, minor);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
@@ -217,7 +210,7 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
device.connectGATT()
|
device.gatt.connect()
|
||||||
.then(function(gattServer) {
|
.then(function(gattServer) {
|
||||||
// Connected
|
// Connected
|
||||||
server = gattServer;
|
server = gattServer;
|
||||||
@@ -307,8 +300,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
function handleControl(event) {
|
function handleControl(event) {
|
||||||
var data = event.target.value;
|
var view = event.target.value;
|
||||||
var view = new DataView(data);
|
|
||||||
|
|
||||||
var opCode = view.getUint8(0);
|
var opCode = view.getUint8(0);
|
||||||
var req_opcode = view.getUint8(1);
|
var req_opcode = view.getUint8(1);
|
||||||
@@ -387,20 +379,14 @@
|
|||||||
break;
|
break;
|
||||||
case OPCODE.VALIDATE_FIRMWARE:
|
case OPCODE.VALIDATE_FIRMWARE:
|
||||||
log('complete, reset...');
|
log('complete, reset...');
|
||||||
/*
|
|
||||||
// TODO: Resolve in disconnect event handler when implemented in Web Bluetooth API.
|
|
||||||
controlChar.service.device.addEventListener("gattserverdisconnected", function() {
|
controlChar.service.device.addEventListener("gattserverdisconnected", function() {
|
||||||
resolve();
|
resolve();
|
||||||
});
|
});
|
||||||
*/
|
|
||||||
controlChar.writeValue(new Uint8Array([OPCODE.ACTIVATE_IMAGE_AND_RESET]))
|
controlChar.writeValue(new Uint8Array([OPCODE.ACTIVATE_IMAGE_AND_RESET]))
|
||||||
.then(function() {
|
.then(function() {
|
||||||
log('image activated and dfu target reset');
|
log('image activated and dfu target reset');
|
||||||
// Hack to gracefully disconnect without disconnect event
|
|
||||||
setTimeout(function() {
|
|
||||||
chars.server.disconnect();
|
|
||||||
resolve();
|
|
||||||
}, 2000);
|
|
||||||
})
|
})
|
||||||
.catch(function(error) {
|
.catch(function(error) {
|
||||||
error = "error resetting: " + error;
|
error = "error resetting: " + error;
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
"web-bluetooth"
|
"web-bluetooth"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bleat": "git://github.com/thegecko/bleat.git#web-bluetooth"
|
"bleat": "git://github.com/thegecko/bleat.git#spec-updates"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"gulp": "^3.9.1",
|
"gulp": "^3.9.1",
|
||||||
|
|||||||
Reference in New Issue
Block a user