Updated library to use latest revision of web-bluetooth specification

This commit is contained in:
Rob Moran
2016-02-25 12:35:43 +00:00
parent 0459cf2975
commit 53e9c24d7b
2 changed files with 9 additions and 23 deletions

30
dist/dfu.js vendored
View File

@@ -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;

View File

@@ -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",