Skip to content
This repository was archived by the owner on Jul 20, 2025. It is now read-only.

Commit 7c5ea73

Browse files
committed
Merge remote-tracking branch 'origin/build-id-hotfix' into development
2 parents 575b7ce + 5264f29 commit 7c5ea73

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

lib/metawear.js

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -298,11 +298,15 @@ function onDisconnect(context, caller, handler) {
298298
}
299299

300300
MetaWear.prototype.updateFirmwareToRev = function (rev, callback) {
301+
this.updateFirmwareToRevAndFlavor(rev, 'vanilla', callback);
302+
}
303+
304+
MetaWear.prototype.updateFirmwareToRevAndFlavor = function (rev, flavor, callback) {
301305
var sanitaizedCallback = (typeof callback === 'function') ? callback : function () { };
302306
// Helper block to do the update
303307
var doUpdate = function () {
304308
debug('updating...');
305-
findAndPerformDfu.call(this, rev, function (error) {
309+
findAndPerformDfu.call(this, rev, flavor, function (error) {
306310
debug('metaboot updateFirmware: ' + error);
307311
sanitaizedCallback(error);
308312
});
@@ -317,7 +321,8 @@ MetaWear.prototype.updateFirmwareToRev = function (rev, callback) {
317321
sanitaizedCallback(error);
318322
return;
319323
}
320-
if (firmwareRev === rev) {
324+
var currentFlavor = MetaWear.mbl_mw_settings_get_firware_build_id(this.board).toString();
325+
if ((firmwareRev === rev) && (currentFlavor === flavor)) {
321326
sanitaizedCallback(null);
322327
return;
323328
}
@@ -370,7 +375,7 @@ MetaWear.prototype.updateFirmwareWithUrl = function (url, callback) {
370375
}.bind(this));
371376
};
372377

373-
function findAndPerformDfu(firmwareRev, callback) {
378+
function findAndPerformDfu(firmwareRev, flavor, callback) {
374379
this.readModelNumber(function (error, modelNumber) {
375380
if (error) {
376381
console.error(error);
@@ -386,12 +391,12 @@ function findAndPerformDfu(firmwareRev, callback) {
386391
}
387392
debug('hardwareRev: ' + hardwareRev);
388393
// Use the zip firmware if it exists
389-
var url = firmwareUrl(hardwareRev, modelNumber, firmwareRev, 'firmware.zip');
394+
var url = firmwareUrl(hardwareRev, modelNumber, flavor, firmwareRev, 'firmware.zip');
390395
urlExists(url, function (err, exists) {
391396
if (exists) {
392397
this.updateFirmwareWithUrl(url, callback);
393398
} else {
394-
url = firmwareUrl(hardwareRev, modelNumber, firmwareRev, 'firmware.bin');
399+
url = firmwareUrl(hardwareRev, modelNumber, flavor, firmwareRev, 'firmware.bin');
395400
urlExists(url, function (err, exists) {
396401
if (exists) {
397402
this.updateFirmwareWithUrl(url, callback);
@@ -405,8 +410,8 @@ function findAndPerformDfu(firmwareRev, callback) {
405410
}.bind(this));
406411
}
407412

408-
function firmwareUrl(hardwareRev, modelNumber, firmwareRev, filename) {
409-
return "https://mbientlab.com/releases/metawear/" + hardwareRev + "/" + modelNumber + "/vanilla/" + firmwareRev + "/" + filename;
413+
function firmwareUrl(hardwareRev, modelNumber, flavor, firmwareRev, filename) {
414+
return "https://mbientlab.com/releases/metawear/" + hardwareRev + "/" + modelNumber + "/" + flavor + "/" + firmwareRev + "/" + filename;
410415
}
411416

412417
function download(url, dest, cb) {

0 commit comments

Comments
 (0)