Files
agent/usb/eeprom.js
2017-08-07 03:02:21 +02:00

33 lines
853 B
JavaScript
Executable File

#!/usr/bin/env node
let fs = require('fs');
let uhk = require('./uhk');
let eepromTransferType = process.argv[2];
let eepromTransferId = uhk.eepromTransfer[eepromTransferType];
if (eepromTransferId === undefined) {
console.error(`Gotta provide one of ${Object.keys(uhk.eepromTransfer).join(', ')}`);
process.exit(1);
}
let isFirstSend = true;
let isFirstReceive = true;
let isEepromBusy = true;
uhk.sendUsbPacketsByCallback(() => {
if (isFirstSend) {
isFirstSend = false;
return new Buffer([uhk.usbCommands.launchEepromTransfer, eepromTransferId]);
} else {
return isEepromBusy ? new Buffer([uhk.usbCommands.getKeyboardState]) : null;
}
});
uhk.registerReceiveCallback((buffer) => {
if (isFirstReceive) {
isFirstReceive = false;
} else {
isEepromBusy = buffer[1] === 1;
}
});