mirror of
https://github.com/thegecko/web-bluetooth-dfu.git
synced 2025-12-14 13:08:14 +08:00
Use the CRC we generate for the image in the init packet.
This commit is contained in:
3
dist/dfu.js
vendored
3
dist/dfu.js
vendored
@@ -162,10 +162,11 @@
|
|||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
function provision(device, arrayBuffer, imageType) {
|
function provision(device, arrayBuffer, imageType, crc) {
|
||||||
return new Promise(function(resolve, reject) {
|
return new Promise(function(resolve, reject) {
|
||||||
var versionChar = null;
|
var versionChar = null;
|
||||||
imageType = imageType || ImageType.Application;
|
imageType = imageType || ImageType.Application;
|
||||||
|
initPacket.crc = crc;
|
||||||
|
|
||||||
connect(device)
|
connect(device)
|
||||||
.then(function(chars) {
|
.then(function(chars) {
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
var dfu = require('./index').dfu;
|
var dfu = require('./index').dfu;
|
||||||
var hex2bin = require('./index').hex2bin;
|
var hex2bin = require('./index').hex2bin;
|
||||||
|
var crc16 = require('./index').crc16;
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
|
|
||||||
var log = console.log;
|
var log = console.log;
|
||||||
@@ -40,8 +41,9 @@ dfu.findDevice({ services: [0x180D] })
|
|||||||
var hex = file.toString();
|
var hex = file.toString();
|
||||||
var buffer = hex2bin(hex);
|
var buffer = hex2bin(hex);
|
||||||
log("file length: " + buffer.byteLength);
|
log("file length: " + buffer.byteLength);
|
||||||
|
var crc = crc16(buffer);
|
||||||
|
|
||||||
return dfu.provision(device, buffer);
|
return dfu.provision(device, buffer, 4, crc);
|
||||||
})
|
})
|
||||||
.then(() => process.exit())
|
.then(() => process.exit())
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
|
|
||||||
<script src="dist/dfu.js"></script>
|
<script src="dist/dfu.js"></script>
|
||||||
<script src="dist/hex2bin.js"></script>
|
<script src="dist/hex2bin.js"></script>
|
||||||
|
<script src="dist/crc16.js"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
var resultsEl = document.getElementById("results");
|
var resultsEl = document.getElementById("results");
|
||||||
@@ -68,8 +69,9 @@
|
|||||||
.then(hex => {
|
.then(hex => {
|
||||||
var buffer = hex2bin(hex);
|
var buffer = hex2bin(hex);
|
||||||
log("downloaded length: " + buffer.byteLength);
|
log("downloaded length: " + buffer.byteLength);
|
||||||
|
var crc = crc16(buffer);
|
||||||
|
|
||||||
return dfu.provision(device, buffer);
|
return dfu.provision(device, buffer, 4, crc);
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
log('dfu complete');
|
log('dfu complete');
|
||||||
|
|||||||
4
index.js
4
index.js
@@ -2,8 +2,10 @@ require('bleat');
|
|||||||
|
|
||||||
var dfu = require('./dist/dfu');
|
var dfu = require('./dist/dfu');
|
||||||
var hex2bin = require('./dist/hex2bin');
|
var hex2bin = require('./dist/hex2bin');
|
||||||
|
var crc16 = require('./dist/crc16');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
dfu: dfu,
|
dfu: dfu,
|
||||||
hex2bin: hex2bin
|
hex2bin: hex2bin,
|
||||||
|
crc16: crc16
|
||||||
};
|
};
|
||||||
Reference in New Issue
Block a user