From 0d9ac509991d7d7fade42b4e195e0c7b32f801e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Mon, 2 Apr 2018 14:47:48 +0200 Subject: [PATCH] Move writeHca() to uhk.js --- packages/usb/uhk.js | 33 +++++++++++++++++++++++++++++++++ packages/usb/write-hca.js | 35 ++--------------------------------- 2 files changed, 35 insertions(+), 33 deletions(-) diff --git a/packages/usb/uhk.js b/packages/usb/uhk.js index 3a7ef87a..2644dfab 100644 --- a/packages/usb/uhk.js +++ b/packages/usb/uhk.js @@ -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, diff --git a/packages/usb/write-hca.js b/packages/usb/write-hca.js index f79c67ac..39ba6d70 100755 --- a/packages/usb/write-hca.js +++ b/packages/usb/write-hca.js @@ -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); });