From 5d01200309a786d20532b27f3e3b747c9fc2a5e5 Mon Sep 17 00:00:00 2001 From: Michael Dietz Date: Tue, 1 Mar 2016 14:38:35 +0100 Subject: [PATCH 1/3] Adding disconnect event listener from characteristic was giving an error for Chrome Book. --- dist/dfu.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/dist/dfu.js b/dist/dfu.js index de90066..ab26c39 100644 --- a/dist/dfu.js +++ b/dist/dfu.js @@ -116,8 +116,8 @@ return new Promise(function(resolve, reject) { device.addEventListener("gattserverdisconnected", function() { - log("DFU Target issued GAP Disconnect and reset into Bootloader/DFU mode."); - resolve(device); + log("DFU target issued GAP disconnect and reset into bootloader/DFU mode"); + resolve(device); }); var characteristics = null; @@ -130,7 +130,7 @@ }) .then(function() { log("writing modeData"); - return characteristics.controlChar.writeValue(new Uint8Array([1, 4])); + return characteristics.controlChar.writeValue(new Uint8Array([OPCODE.START_DFU, ImageType.Application])); }) .then(function() { log("modeData written"); @@ -216,6 +216,10 @@ .then(function(gattServer) { // Connected server = gattServer; + if (gattServer.connected === false) { + log('not able to connect to device - ERROR'); + } + log(device.uuids); log("connected to device"); return server.getPrimaryService(serviceUUID); }) @@ -256,6 +260,7 @@ var offset; function transfer(chars, arrayBuffer, imageType, majorVersion, minorVersion) { return new Promise(function(resolve, reject) { + var server = chars.server; var controlChar = chars.controlChar; var packetChar = chars.packetChar; log('using dfu version ' + majorVersion + "." + minorVersion); @@ -382,7 +387,7 @@ case OPCODE.VALIDATE_FIRMWARE: log('complete, reset...'); - controlChar.service.device.addEventListener("gattserverdisconnected", function() { + server.device.addEventListener("gattserverdisconnected", function() { resolve(); }); From a497d1af8f17535f2735c4bc4532c63dd073124b Mon Sep 17 00:00:00 2001 From: Michael Dietz Date: Tue, 1 Mar 2016 14:40:23 +0100 Subject: [PATCH 2/3] Remove some garbage. --- dist/dfu.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/dist/dfu.js b/dist/dfu.js index ab26c39..572a5f2 100644 --- a/dist/dfu.js +++ b/dist/dfu.js @@ -214,13 +214,8 @@ device.gatt.connect() .then(function(gattServer) { - // Connected - server = gattServer; - if (gattServer.connected === false) { - log('not able to connect to device - ERROR'); - } - log(device.uuids); log("connected to device"); + server = gattServer; return server.getPrimaryService(serviceUUID); }) .then(function(primaryService) { From 75b0e0fd3918cc188150b0229fbd8f896e9fe58a Mon Sep 17 00:00:00 2001 From: Michael Dietz Date: Wed, 2 Mar 2016 12:49:11 +0100 Subject: [PATCH 3/3] Small change, just add log when dfu completes and remote ble device resets to start the new application. --- dist/dfu.js | 1 + 1 file changed, 1 insertion(+) diff --git a/dist/dfu.js b/dist/dfu.js index 572a5f2..83fec13 100644 --- a/dist/dfu.js +++ b/dist/dfu.js @@ -383,6 +383,7 @@ log('complete, reset...'); server.device.addEventListener("gattserverdisconnected", function() { + log('disconnected and completed the DFU transfer'); resolve(); });