32 lines
986 B
JavaScript
Executable File
32 lines
986 B
JavaScript
Executable File
#!/usr/bin/env node
|
|
const uhk = require('./uhk');
|
|
|
|
const eepromTransferType = process.argv[2];
|
|
const eepromTransferId = uhk.eepromTransfer[eepromTransferType];
|
|
|
|
if (eepromTransferId === undefined) {
|
|
console.error(`Gotta provide one of ${Object.keys(uhk.eepromTransfer).join(', ')}`);
|
|
process.exit(1);
|
|
}
|
|
|
|
const device = uhk.getUhkDevice();
|
|
device.write(uhk.getTransferData(new Buffer([uhk.usbCommands.launchEepromTransferLegacy, eepromTransferId])));
|
|
const buffer = Buffer.from(device.readSync());
|
|
const responseCode = buffer[0];
|
|
if (responseCode !== 0) {
|
|
console.error(`Write user config to eeprom failed. Response code: ${responseCode}`);
|
|
process.exit(1);
|
|
}
|
|
|
|
function waitUntilKeyboardBusy() {
|
|
|
|
device.write(uhk.getTransferData(new Buffer([uhk.usbCommands.getKeyboardState])));
|
|
const keyboardStateBuffer = Buffer.from(device.readSync());
|
|
|
|
if (keyboardStateBuffer[1] === 1) {
|
|
setTimeout(waitUntilKeyboardBusy, 200);
|
|
}
|
|
}
|
|
|
|
waitUntilKeyboardBusy();
|