Move writeHca() to uhk.js

This commit is contained in:
László Monda
2018-04-02 14:47:48 +02:00
parent e19e4bc5a4
commit 0d9ac50999
2 changed files with 35 additions and 33 deletions

View File

@@ -1,5 +1,8 @@
const util = require('util');
const HID = require('node-hid');
const {HardwareConfiguration, UhkBuffer} = require('uhk-common');
const {getTransferBuffers, ConfigBufferId, UhkHidDevice, UsbCommand} = require('uhk-usb');
const Logger = require('./logger');
const debug = process.env.DEBUG;
function bufferToString(buffer) {
@@ -327,6 +330,35 @@ async function launchEepromTransfer(device, operation, configBuffer) {
} while (isBusy);
};
async function writeHca(isIso) {
const hardwareConfig = new HardwareConfiguration();
hardwareConfig.signature = 'UHK';
hardwareConfig.majorVersion = 1;
hardwareConfig.minorVersion = 0;
hardwareConfig.patchVersion = 0;
hardwareConfig.brandId = 0;
hardwareConfig.deviceId = 1;
hardwareConfig.uniqueId = Math.floor(2**32 * Math.random());
hardwareConfig.isVendorModeOn = false;
hardwareConfig.isIso = isIso;
const logger = new Logger();
const device = new UhkHidDevice(logger);
const hardwareBuffer = new UhkBuffer();
hardwareConfig.toBinary(hardwareBuffer);
const buffer = hardwareBuffer.getBufferContent();
const fragments = getTransferBuffers(UsbCommand.WriteHardwareConfig, buffer);
logger.debug('USB[T]: Write hardware configuration to keyboard');
for (const fragment of fragments) {
await device.write(fragment);
}
logger.debug('USB[T]: Write hardware configuration to EEPROM');
await device.writeConfigToEeprom(ConfigBufferId.hardwareConfig);
}
uhk = exports = module.exports = moduleExports = {
bufferToString,
getUint16,
@@ -351,6 +383,7 @@ uhk = exports = module.exports = moduleExports = {
writeConfig,
applyConfig,
launchEepromTransfer,
writeHca,
usbCommands: {
getDeviceProperty : 0x00,
reenumerate : 0x01,

View File

@@ -1,7 +1,5 @@
#!/usr/bin/env node
const {HardwareConfiguration, UhkBuffer} = require('uhk-common');
const {EepromTransfer, getTransferBuffers, ConfigBufferId, UhkHidDevice, UsbCommand} = require('uhk-usb');
const Logger = require('./logger');
const uhk = require('./uhk');
if (process.argv.length < 2) {
console.log(`use: write-hca {iso|ansi}`);
@@ -14,36 +12,7 @@ if (layout !== 'iso' && layout !== 'ansi') {
process.exit(1);
}
async function writeHca(isIso) {
const hardwareConfig = new HardwareConfiguration();
hardwareConfig.signature = 'UHK';
hardwareConfig.majorVersion = 1;
hardwareConfig.minorVersion = 0;
hardwareConfig.patchVersion = 0;
hardwareConfig.brandId = 0;
hardwareConfig.deviceId = 1;
hardwareConfig.uniqueId = Math.floor(2**32 * Math.random());
hardwareConfig.isVendorModeOn = false;
hardwareConfig.isIso = isIso;
const logger = new Logger();
const device = new UhkHidDevice(logger);
const hardwareBuffer = new UhkBuffer();
hardwareConfig.toBinary(hardwareBuffer);
const buffer = hardwareBuffer.getBufferContent();
const fragments = getTransferBuffers(UsbCommand.WriteHardwareConfig, buffer);
logger.debug('USB[T]: Write hardware configuration to keyboard');
for (const fragment of fragments) {
await device.write(fragment);
}
logger.debug('USB[T]: Write hardware configuration to EEPROM');
await device.writeConfigToEeprom(ConfigBufferId.hardwareConfig);
}
writeHca(layout === 'iso')
uhk.writeHca(layout === 'iso')
.catch((err)=>{
console.error(err);
});