Make jump-to-bootloader.js wait for the UHK and time out.

This commit is contained in:
László Monda
2017-02-28 00:12:17 +01:00
parent 2c17074ead
commit 33de26b3ab
2 changed files with 38 additions and 6 deletions

View File

@@ -1,3 +1,26 @@
#!/usr/bin/env node #!/usr/bin/env node
let uhk = require('./uhk'); let uhk = require('./uhk');
uhk.sendUsbPacket(new Buffer([uhk.usbCommands.jumpToBootloader]));
let timeoutMs = 10000;
let pollingIntervalMs = 100;
console.log('Trying to jump to the bootloader...');
setInterval(() => {
timeoutMs -= pollingIntervalMs;
if (uhk.getBootloaderDevice()) {
console.log('Bootloader is up');
process.exit(0);
}
if (timeoutMs <= 0) {
console.log("Couldn't jump to the bootloader");
process.exit(1);
}
if (uhk.getUhkDevice()) {
console.log('UHK found, jumping to bootloader');
uhk.sendUsbPacket(new Buffer([uhk.usbCommands.jumpToBootloader]));
}
}, pollingIntervalMs);

View File

@@ -14,11 +14,17 @@ function bufferToString(buffer) {
let usbEndpoints; let usbEndpoints;
function getUsbEndpoints() { function getUhkDevice() {
let vid = 0x16d3; return usb.findByIds(0x16d3, 0x05ea);
let pid = 0x05ea; }
let device = usb.findByIds(vid, pid); function getBootloaderDevice() {
return usb.findByIds(0x15a2, 0x0073);
}
function getUsbEndpoints() {
let device = getUhkDevice();
device = getUhkDevice();
device.open(); device.open();
let usbInterface = device.interface(0); let usbInterface = device.interface(0);
@@ -87,6 +93,8 @@ function sendUsbPackets(packets) {
exports = module.exports = { exports = module.exports = {
DelayMs, DelayMs,
bufferToString, bufferToString,
getUhkDevice,
getBootloaderDevice,
getUsbEndpoints, getUsbEndpoints,
sendUsbPacket, sendUsbPacket,
sendUsbPackets, sendUsbPackets,
@@ -102,7 +110,8 @@ exports = module.exports = {
readMergeSensor: 7, readMergeSensor: 7,
uploadConfig: 8, uploadConfig: 8,
applyConfig: 9, applyConfig: 9,
setLedPwm: 10 setLedPwm: 10,
getBridgeMessageCounter: 11
}, },
leftLedDriverAddress: 0b1110100, leftLedDriverAddress: 0b1110100,
rightLedDriverAddress: 0b1110111 rightLedDriverAddress: 0b1110111