From 32fc4b3527f9400151c02d02655ab93854261661 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Mon, 11 Dec 2017 21:22:13 +0100 Subject: [PATCH 01/10] Change UsbCommandId_SetTestLed from 0x02 to 0x14 --- packages/usb/uhk.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/usb/uhk.js b/packages/usb/uhk.js index c80bf0e8..4f19ed64 100644 --- a/packages/usb/uhk.js +++ b/packages/usb/uhk.js @@ -53,7 +53,7 @@ exports = module.exports = moduleExports = { usbCommands: { getProperty: 0, reenumerate: 1, - setTestLed: 2, + setTestLed: 0x14, writeUserConfig: 8, applyConfig: 9, setLedPwmBrightness: 10, From 27988f0e6bdffd482439fd2ac1b7f0a5d3602502 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Mon, 11 Dec 2017 21:46:06 +0100 Subject: [PATCH 02/10] Change UsbCommandId_JumpToModuleBootloader from 0x12 to 0x02. --- packages/uhk-usb/src/constants.ts | 2 +- packages/usb/uhk.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/uhk-usb/src/constants.ts b/packages/uhk-usb/src/constants.ts index 5350414b..7b4f0e74 100644 --- a/packages/uhk-usb/src/constants.ts +++ b/packages/uhk-usb/src/constants.ts @@ -17,7 +17,7 @@ export enum UsbCommand { WriteHardwareConfig = 14, ReadUserConfig = 15, GetKeyboardState = 16, - JumpToModuleBootloader = 18, + JumpToModuleBootloader = 0x02, SendKbootCommandToModule = 19 } diff --git a/packages/usb/uhk.js b/packages/usb/uhk.js index 4f19ed64..68388e37 100644 --- a/packages/usb/uhk.js +++ b/packages/usb/uhk.js @@ -64,7 +64,7 @@ exports = module.exports = moduleExports = { readUserConfig: 15, getKeyboardState: 16, getDebugInfo: 17, - jumpToModuleBootloader: 18, + jumpToModuleBootloader: 0x02, sendKbootCommandToModule: 19, }, enumerationModes: { From 0454dfd4d833f5b3e40beedf2ee3bdf870173680 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Mon, 11 Dec 2017 22:16:28 +0100 Subject: [PATCH 03/10] Change UsbCommandId_SendKbootCommandToModule from 0x13 to 0x03. --- packages/uhk-usb/src/constants.ts | 2 +- packages/usb/uhk.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/uhk-usb/src/constants.ts b/packages/uhk-usb/src/constants.ts index 7b4f0e74..4b8fb25d 100644 --- a/packages/uhk-usb/src/constants.ts +++ b/packages/uhk-usb/src/constants.ts @@ -18,7 +18,7 @@ export enum UsbCommand { ReadUserConfig = 15, GetKeyboardState = 16, JumpToModuleBootloader = 0x02, - SendKbootCommandToModule = 19 + SendKbootCommandToModule = 0x03 } export enum EepromTransfer { diff --git a/packages/usb/uhk.js b/packages/usb/uhk.js index 68388e37..8f3a3b34 100644 --- a/packages/usb/uhk.js +++ b/packages/usb/uhk.js @@ -65,7 +65,7 @@ exports = module.exports = moduleExports = { getKeyboardState: 16, getDebugInfo: 17, jumpToModuleBootloader: 0x02, - sendKbootCommandToModule: 19, + sendKbootCommandToModule: 0x03, }, enumerationModes: { bootloader: 0, From 88d92130d5d396e4097aabd06cdbfacc1fd8aa64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Tue, 12 Dec 2017 01:24:29 +0100 Subject: [PATCH 04/10] Replace UsbCommandId_ReadHardwareConfig and UsbCommandId_ReadUserConfig with UsbCommandId_ReadConfig. --- packages/uhk-usb/src/constants.ts | 19 ++++++++++++------- packages/uhk-usb/src/uhk-operations.ts | 17 +++++++++++------ packages/usb/read-config.js | 6 +++--- packages/usb/uhk.js | 16 ++++++++++------ 4 files changed, 36 insertions(+), 22 deletions(-) diff --git a/packages/uhk-usb/src/constants.ts b/packages/uhk-usb/src/constants.ts index 4b8fb25d..ae602e3b 100644 --- a/packages/uhk-usb/src/constants.ts +++ b/packages/uhk-usb/src/constants.ts @@ -8,17 +8,22 @@ export namespace Constants { * UHK USB Communications command. All communication package should have start with a command code. */ export enum UsbCommand { - GetProperty = 0, - Reenumerate = 1, + GetProperty = 0x00, + Reenumerate = 0x01, + JumpToModuleBootloader = 0x02, + SendKbootCommandToModule = 0x03, + ReadConfig = 0x04, UploadUserConfig = 8, ApplyConfig = 9, LaunchEepromTransfer = 12, - ReadHardwareConfig = 13, WriteHardwareConfig = 14, - ReadUserConfig = 15, - GetKeyboardState = 16, - JumpToModuleBootloader = 0x02, - SendKbootCommandToModule = 0x03 + GetKeyboardState = 16 +} + +export enum ConfigBufferId { + hardwareConfig = 0, + stagingUserConfig = 1, + validatedUserConfig = 2 } export enum EepromTransfer { diff --git a/packages/uhk-usb/src/uhk-operations.ts b/packages/uhk-usb/src/uhk-operations.ts index e2b23525..dca4ba84 100644 --- a/packages/uhk-usb/src/uhk-operations.ts +++ b/packages/uhk-usb/src/uhk-operations.ts @@ -5,7 +5,8 @@ import * as fs from 'fs'; import { UhkBlhost } from './uhk-blhost'; import { UhkHidDevice } from './uhk-hid-device'; import { snooze } from './util'; -import { convertBufferToIntArray, EepromTransfer, getTransferBuffers, SystemPropertyIds, UsbCommand } from '../index'; +import { convertBufferToIntArray, EepromTransfer, getTransferBuffers, SystemPropertyIds, UsbCommand, ConfigBufferId + } from '../index'; import { LoadConfigurationsResult } from './models/load-configurations-result'; export class UhkOperations { @@ -69,12 +70,12 @@ export class UhkOperations { await this.device.waitUntilKeyboardBusy(); const userConfiguration = await this.loadConfiguration( SystemPropertyIds.MaxUserConfigSize, - UsbCommand.ReadUserConfig, + ConfigBufferId.validatedUserConfig, 'user configuration'); const hardwareConfiguration = await this.loadConfiguration( SystemPropertyIds.HardwareConfigSize, - UsbCommand.ReadHardwareConfig, + ConfigBufferId.hardwareConfig, 'hardware configuration'); return { @@ -90,7 +91,10 @@ export class UhkOperations { * Return with the actual user / hardware fonfiguration from UHK Device * @returns {Promise} */ - public async loadConfiguration(property: SystemPropertyIds, config: UsbCommand, configName: string): Promise { + public async loadConfiguration( + property: SystemPropertyIds, + configBufferId: ConfigBufferId , + configName: string): Promise { let response = []; try { @@ -106,12 +110,13 @@ export class UhkOperations { this.logService.debug(`[DeviceOperation] USB[T]: Read ${configName} from keyboard`); while (offset < configSize) { const chunkSizeToRead = Math.min(chunkSize, configSize - offset); - const writeBuffer = Buffer.from([config, chunkSizeToRead, offset & 0xff, offset >> 8]); + const writeBuffer = Buffer.from( + [UsbCommand.ReadConfig, configBufferId, chunkSizeToRead, offset & 0xff, offset >> 8]); const readBuffer = await this.device.write(writeBuffer); configBuffer = Buffer.concat([configBuffer, new Buffer(readBuffer.slice(1, chunkSizeToRead + 1))]); offset += chunkSizeToRead; - if (firstRead && config === UsbCommand.ReadUserConfig) { + if (firstRead && configBufferId !== ConfigBufferId.hardwareConfig) { firstRead = false; configSize = readBuffer[7] + (readBuffer[8] << 8); this.logService.debug(`[DeviceOperation] userConfigSize: ${configSize}`); diff --git a/packages/usb/read-config.js b/packages/usb/read-config.js index fbe2c518..d3969882 100755 --- a/packages/usb/read-config.js +++ b/packages/usb/read-config.js @@ -23,10 +23,10 @@ device.write(uhk.getTransferData(payload)); let buffer = Buffer.from(device.readSync()); configSize = buffer[1] + (buffer[2]<<8); console.log(`${configTypeString}configSize:`, configSize); -while(offset < configSize) { - const usbCommand = isHardwareConfig ? uhk.usbCommands.readHardwareConfig : uhk.usbCommands.readUserConfig; +while (offset < configSize) { + const configBufferId = isHardwareConfig ? uhk.configBufferIds.hardwareConfig : uhk.configBufferIds.validatedUserConfig; chunkSizeToRead = Math.min(chunkSize, configSize - offset); - buffer = Buffer.from([usbCommand, chunkSizeToRead, offset & 0xff, offset >> 8]); + buffer = Buffer.from([uhk.usbCommands.readConfig, configBufferId, chunkSizeToRead, offset & 0xff, offset >> 8]); console.log('write to keyboard', uhk.bufferToString(buffer)); device.write(uhk.getTransferData(buffer)); buffer = Buffer.from(device.readSync()); diff --git a/packages/usb/uhk.js b/packages/usb/uhk.js index 8f3a3b34..52dc06c5 100644 --- a/packages/usb/uhk.js +++ b/packages/usb/uhk.js @@ -51,21 +51,20 @@ exports = module.exports = moduleExports = { getTransferData, checkModuleSlot, usbCommands: { - getProperty: 0, - reenumerate: 1, + getProperty : 0x00, + reenumerate : 0x01, + jumpToModuleBootloader : 0x02, + sendKbootCommandToModule: 0x03, + readConfig : 0x04, setTestLed: 0x14, writeUserConfig: 8, applyConfig: 9, setLedPwmBrightness: 10, getAdcValue: 11, launchEepromTransferLegacy: 12, - readHardwareConfig: 13, writeHardwareConfig: 14, - readUserConfig: 15, getKeyboardState: 16, getDebugInfo: 17, - jumpToModuleBootloader: 0x02, - sendKbootCommandToModule: 0x03, }, enumerationModes: { bootloader: 0, @@ -94,6 +93,11 @@ exports = module.exports = moduleExports = { hardwareConfigSize: 4, userConfigSize: 5, }, + configBufferIds: { + hardwareConfig: 0, + stagingUserConfig: 1, + validatedUserConfig: 2, + }, eepromTransfer: { readHardwareConfig: 0, writeHardwareConfig: 1, From 8420c83ebf7174f23ccdab29769dbd6b643ab1b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Tue, 12 Dec 2017 02:02:26 +0100 Subject: [PATCH 05/10] Change UsbCommandId_WriteHardwareConfig and UsbCommandId_WriteUserConfig to 0x05 and 0x06. --- packages/uhk-usb/src/constants.ts | 4 ++-- packages/uhk-usb/src/uhk-operations.ts | 2 +- packages/usb/uhk.js | 4 ++-- packages/usb/write-config.js | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/uhk-usb/src/constants.ts b/packages/uhk-usb/src/constants.ts index ae602e3b..d41cdf28 100644 --- a/packages/uhk-usb/src/constants.ts +++ b/packages/uhk-usb/src/constants.ts @@ -13,10 +13,10 @@ export enum UsbCommand { JumpToModuleBootloader = 0x02, SendKbootCommandToModule = 0x03, ReadConfig = 0x04, - UploadUserConfig = 8, + WriteHardwareConfig = 0x05, + WriteStagingUserConfig = 0x06, ApplyConfig = 9, LaunchEepromTransfer = 12, - WriteHardwareConfig = 14, GetKeyboardState = 16 } diff --git a/packages/uhk-usb/src/uhk-operations.ts b/packages/uhk-usb/src/uhk-operations.ts index dca4ba84..df6662cd 100644 --- a/packages/uhk-usb/src/uhk-operations.ts +++ b/packages/uhk-usb/src/uhk-operations.ts @@ -171,7 +171,7 @@ export class UhkOperations { */ private async sendUserConfigToKeyboard(json: string): Promise { const buffer: Buffer = new Buffer(JSON.parse(json).data); - const fragments = getTransferBuffers(UsbCommand.UploadUserConfig, buffer); + const fragments = getTransferBuffers(UsbCommand.WriteStagingUserConfig, buffer); for (const fragment of fragments) { await this.device.write(fragment); } diff --git a/packages/usb/uhk.js b/packages/usb/uhk.js index 52dc06c5..c5d592f4 100644 --- a/packages/usb/uhk.js +++ b/packages/usb/uhk.js @@ -56,13 +56,13 @@ exports = module.exports = moduleExports = { jumpToModuleBootloader : 0x02, sendKbootCommandToModule: 0x03, readConfig : 0x04, + writeHardwareConfig : 0x05, + writeStagingUserConfig : 0x06, setTestLed: 0x14, - writeUserConfig: 8, applyConfig: 9, setLedPwmBrightness: 10, getAdcValue: 11, launchEepromTransferLegacy: 12, - writeHardwareConfig: 14, getKeyboardState: 16, getDebugInfo: 17, }, diff --git a/packages/usb/write-config.js b/packages/usb/write-config.js index 9a671fb0..5690a933 100755 --- a/packages/usb/write-config.js +++ b/packages/usb/write-config.js @@ -24,7 +24,7 @@ let buffer = Buffer.from(device.readSync()); configSize = buffer[1] + (buffer[2]<<8); console.log(`${configTypeString}configSize:`, configSize); -while (offset < configSize){ +while (offset < configSize) { const usbCommand = isHardwareConfig ? uhk.usbCommands.writeHardwareConfig : uhk.usbCommands.writeUserConfig; chunkSizeToRead = Math.min(chunkSize, configSize - offset); buffer = Buffer.concat([ From c296e6f49b9f1865d2671da6ac62289359db720c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Tue, 12 Dec 2017 02:15:57 +0100 Subject: [PATCH 06/10] Change UsbCommandId_ApplyConfig to 0x07. --- packages/uhk-usb/src/constants.ts | 2 +- packages/usb/uhk.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/uhk-usb/src/constants.ts b/packages/uhk-usb/src/constants.ts index d41cdf28..9ae50fad 100644 --- a/packages/uhk-usb/src/constants.ts +++ b/packages/uhk-usb/src/constants.ts @@ -15,7 +15,7 @@ export enum UsbCommand { ReadConfig = 0x04, WriteHardwareConfig = 0x05, WriteStagingUserConfig = 0x06, - ApplyConfig = 9, + ApplyConfig = 0x07, LaunchEepromTransfer = 12, GetKeyboardState = 16 } diff --git a/packages/usb/uhk.js b/packages/usb/uhk.js index c5d592f4..4536c2b4 100644 --- a/packages/usb/uhk.js +++ b/packages/usb/uhk.js @@ -58,8 +58,8 @@ exports = module.exports = moduleExports = { readConfig : 0x04, writeHardwareConfig : 0x05, writeStagingUserConfig : 0x06, + applyConfig : 0x07, setTestLed: 0x14, - applyConfig: 9, setLedPwmBrightness: 10, getAdcValue: 11, launchEepromTransferLegacy: 12, From 6b6024118059dfc9422a858129f9dc34276fa59b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Tue, 12 Dec 2017 03:26:57 +0100 Subject: [PATCH 07/10] Change the arguments of UsbCommandId_LaunchEepromTransfer and its id to 0x08. --- packages/uhk-usb/src/constants.ts | 14 ++++----- packages/uhk-usb/src/uhk-hid-device.ts | 11 +++++-- packages/uhk-usb/src/uhk-operations.ts | 4 +-- packages/usb/eeprom.js | 6 ++-- packages/usb/uhk.js | 40 +++++++++++++++++++------- packages/usb/write-config.js | 2 +- 6 files changed, 50 insertions(+), 27 deletions(-) diff --git a/packages/uhk-usb/src/constants.ts b/packages/uhk-usb/src/constants.ts index 9ae50fad..70096a7d 100644 --- a/packages/uhk-usb/src/constants.ts +++ b/packages/uhk-usb/src/constants.ts @@ -16,23 +16,21 @@ export enum UsbCommand { WriteHardwareConfig = 0x05, WriteStagingUserConfig = 0x06, ApplyConfig = 0x07, - LaunchEepromTransfer = 12, + LaunchEepromTransfer = 0x08, GetKeyboardState = 16 } +export enum EepromOperation { + read = 0, + write = 1 +} + export enum ConfigBufferId { hardwareConfig = 0, stagingUserConfig = 1, validatedUserConfig = 2 } -export enum EepromTransfer { - ReadHardwareConfig = 0, - WriteHardwareConfig = 1, - ReadUserConfig = 2, - WriteUserConfig = 3 -} - export enum SystemPropertyIds { UsbProtocolVersion = 0, BridgeProtocolVersion = 1, diff --git a/packages/uhk-usb/src/uhk-hid-device.ts b/packages/uhk-usb/src/uhk-hid-device.ts index 6fdef263..828e065f 100644 --- a/packages/uhk-usb/src/uhk-hid-device.ts +++ b/packages/uhk-usb/src/uhk-hid-device.ts @@ -2,8 +2,9 @@ import { Device, devices, HID } from 'node-hid'; import { LogService } from 'uhk-common'; import { + ConfigBufferId, Constants, - EepromTransfer, + EepromOperation, enumerationModeIdToProductId, EnumerationModes, KbootCommands, @@ -81,8 +82,12 @@ export class UhkHidDevice { }); } - public async writeConfigToEeprom(transferType: EepromTransfer): Promise { - await this.write(new Buffer([UsbCommand.LaunchEepromTransfer, transferType])); + public async writeUserConfigToEeprom(): Promise { + await this.write(new Buffer([ + UsbCommand.LaunchEepromTransfer, + EepromOperation.write, + ConfigBufferId.validatedUserConfig + ])); await this.waitUntilKeyboardBusy(); } diff --git a/packages/uhk-usb/src/uhk-operations.ts b/packages/uhk-usb/src/uhk-operations.ts index df6662cd..15dbdc7b 100644 --- a/packages/uhk-usb/src/uhk-operations.ts +++ b/packages/uhk-usb/src/uhk-operations.ts @@ -5,7 +5,7 @@ import * as fs from 'fs'; import { UhkBlhost } from './uhk-blhost'; import { UhkHidDevice } from './uhk-hid-device'; import { snooze } from './util'; -import { convertBufferToIntArray, EepromTransfer, getTransferBuffers, SystemPropertyIds, UsbCommand, ConfigBufferId +import { convertBufferToIntArray, getTransferBuffers, SystemPropertyIds, UsbCommand, ConfigBufferId } from '../index'; import { LoadConfigurationsResult } from './models/load-configurations-result'; @@ -153,7 +153,7 @@ export class UhkOperations { this.logService.debug('[DeviceOperation] USB[T]: Write user configuration to keyboard'); await this.sendUserConfigToKeyboard(json); this.logService.debug('[DeviceOperation] USB[T]: Write user configuration to EEPROM'); - await this.device.writeConfigToEeprom(EepromTransfer.WriteUserConfig); + await this.device.writeUserConfigToEeprom(); } catch (error) { this.logService.error('[DeviceOperation] Transferring error', error); diff --git a/packages/usb/eeprom.js b/packages/usb/eeprom.js index 76b5c0a3..f0f245f0 100755 --- a/packages/usb/eeprom.js +++ b/packages/usb/eeprom.js @@ -2,15 +2,15 @@ const uhk = require('./uhk'); const eepromTransferType = process.argv[2]; -const eepromTransferId = uhk.eepromTransfer[eepromTransferType]; +const eepromTransfer = uhk.eepromTransfer[eepromTransferType]; -if (eepromTransferId === undefined) { +if (eepromTransfer === 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]))); +device.write(uhk.getTransferData(new Buffer([uhk.usbCommands.launchEepromTransfer, eepromTransfer.operation, eepromTransfer.configBuffer]))); const buffer = Buffer.from(device.readSync()); const responseCode = buffer[0]; if (responseCode !== 0) { diff --git a/packages/usb/uhk.js b/packages/usb/uhk.js index 4536c2b4..6dc71696 100644 --- a/packages/usb/uhk.js +++ b/packages/usb/uhk.js @@ -44,6 +44,17 @@ function getBootloaderDevice() { return foundDevice; } +let configBufferIds = { + hardwareConfig: 0, + stagingUserConfig: 1, + validatedUserConfig: 2, +}; + +let eepromOperations = { + read: 0, + write: 1, +}; + exports = module.exports = moduleExports = { bufferToString, getUhkDevice, @@ -59,10 +70,10 @@ exports = module.exports = moduleExports = { writeHardwareConfig : 0x05, writeStagingUserConfig : 0x06, applyConfig : 0x07, + launchEepromTransfer : 0x08, setTestLed: 0x14, setLedPwmBrightness: 10, getAdcValue: 11, - launchEepromTransferLegacy: 12, getKeyboardState: 16, getDebugInfo: 17, }, @@ -93,16 +104,25 @@ exports = module.exports = moduleExports = { hardwareConfigSize: 4, userConfigSize: 5, }, - configBufferIds: { - hardwareConfig: 0, - stagingUserConfig: 1, - validatedUserConfig: 2, - }, + configBufferIds, + eepromOperations, eepromTransfer: { - readHardwareConfig: 0, - writeHardwareConfig: 1, - readUserConfig: 2, - writeUserConfig: 3, + readHardwareConfig: { + operation: eepromOperations.read, + configBuffer: configBufferIds.hardwareConfig, + }, + writeHardwareConfig: { + operation: eepromOperations.write, + configBuffer:configBufferIds.hardwareConfig, + }, + readUserConfig: { + operation: eepromOperations.read, + configBuffer: configBufferIds.validatedUserConfig, + }, + writeUserConfig: { + operation: eepromOperations.write, + configBuffer: configBufferIds.validatedUserConfig, + }, }, kbootCommands: { idle: 0, diff --git a/packages/usb/write-config.js b/packages/usb/write-config.js index 5690a933..2ae75bcd 100755 --- a/packages/usb/write-config.js +++ b/packages/usb/write-config.js @@ -25,7 +25,7 @@ configSize = buffer[1] + (buffer[2]<<8); console.log(`${configTypeString}configSize:`, configSize); while (offset < configSize) { - const usbCommand = isHardwareConfig ? uhk.usbCommands.writeHardwareConfig : uhk.usbCommands.writeUserConfig; + const usbCommand = isHardwareConfig ? uhk.usbCommands.writeHardwareConfig : uhk.usbCommands.writeStagingUserConfig; chunkSizeToRead = Math.min(chunkSize, configSize - offset); buffer = Buffer.concat([ new Buffer([usbCommand, chunkSizeToRead, offset & 0xff, offset >> 8]), From 2eb31603f166ebf215bdd232016baf03a1d1c3ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Tue, 12 Dec 2017 18:49:40 +0100 Subject: [PATCH 08/10] Change the value of UsbCommandId_{GetDeviceState,SetTestLed,GetDebugBuffer,GetAdcValue,SetLedPwmBrightness}. --- packages/uhk-usb/src/constants.ts | 6 +++++- packages/uhk-usb/src/uhk-hid-device.ts | 2 +- packages/usb/eeprom.js | 2 +- .../usb/{get-keyboard-state.js => get-device-state.js} | 2 +- packages/usb/uhk.js | 10 +++++----- 5 files changed, 13 insertions(+), 9 deletions(-) rename packages/usb/{get-keyboard-state.js => get-device-state.js} (91%) diff --git a/packages/uhk-usb/src/constants.ts b/packages/uhk-usb/src/constants.ts index 70096a7d..9b9889c9 100644 --- a/packages/uhk-usb/src/constants.ts +++ b/packages/uhk-usb/src/constants.ts @@ -17,7 +17,11 @@ export enum UsbCommand { WriteStagingUserConfig = 0x06, ApplyConfig = 0x07, LaunchEepromTransfer = 0x08, - GetKeyboardState = 16 + GetDeviceState = 0x09, + SetTestLed = 0x0a, + GetDebugBuffer = 0x0b, + GetAdcValue = 0x0c, + SetLedPwmBrightness = 0x0d } export enum EepromOperation { diff --git a/packages/uhk-usb/src/uhk-hid-device.ts b/packages/uhk-usb/src/uhk-hid-device.ts index 828e065f..be22c7a5 100644 --- a/packages/uhk-usb/src/uhk-hid-device.ts +++ b/packages/uhk-usb/src/uhk-hid-device.ts @@ -106,7 +106,7 @@ export class UhkHidDevice { public async waitUntilKeyboardBusy(): Promise { while (true) { - const buffer = await this.write(new Buffer([UsbCommand.GetKeyboardState])); + const buffer = await this.write(new Buffer([UsbCommand.GetDeviceState])); if (buffer[1] === 0) { break; } diff --git a/packages/usb/eeprom.js b/packages/usb/eeprom.js index f0f245f0..3b903231 100755 --- a/packages/usb/eeprom.js +++ b/packages/usb/eeprom.js @@ -20,7 +20,7 @@ if (responseCode !== 0) { function waitUntilKeyboardBusy() { - device.write(uhk.getTransferData(new Buffer([uhk.usbCommands.getKeyboardState]))); + device.write(uhk.getTransferData(new Buffer([uhk.usbCommands.getDeviceState]))); const keyboardStateBuffer = Buffer.from(device.readSync()); if (keyboardStateBuffer[1] === 1) { diff --git a/packages/usb/get-keyboard-state.js b/packages/usb/get-device-state.js similarity index 91% rename from packages/usb/get-keyboard-state.js rename to packages/usb/get-device-state.js index 8372f0e7..2115c62e 100755 --- a/packages/usb/get-keyboard-state.js +++ b/packages/usb/get-device-state.js @@ -3,7 +3,7 @@ const uhk = require('./uhk'); const device = uhk.getUhkDevice(); function readKeyboardState() { - const payload = new Buffer([uhk.usbCommands.getKeyboardState]); + const payload = new Buffer([uhk.usbCommands.getDeviceState]); console.log('Sending ', uhk.bufferToString(payload)); device.write(uhk.getTransferData(payload)); const receivedBuffer = device.readSync(); diff --git a/packages/usb/uhk.js b/packages/usb/uhk.js index 6dc71696..c5c85329 100644 --- a/packages/usb/uhk.js +++ b/packages/usb/uhk.js @@ -71,11 +71,11 @@ exports = module.exports = moduleExports = { writeStagingUserConfig : 0x06, applyConfig : 0x07, launchEepromTransfer : 0x08, - setTestLed: 0x14, - setLedPwmBrightness: 10, - getAdcValue: 11, - getKeyboardState: 16, - getDebugInfo: 17, + getDeviceState : 0x09, + setTestLed : 0x0a, + getDebugBuffer : 0x0b, + getAdcValue : 0x0c, + setLedPwmBrightness : 0x0d, }, enumerationModes: { bootloader: 0, From 5b20f685e57dd8df9b3af54b8fbbb0f6d86af710 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Tue, 12 Dec 2017 18:50:29 +0100 Subject: [PATCH 09/10] Use firmware 6.0.0 --- packages/uhk-agent/src/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/uhk-agent/src/package.json b/packages/uhk-agent/src/package.json index 949bda06..b120eb4c 100644 --- a/packages/uhk-agent/src/package.json +++ b/packages/uhk-agent/src/package.json @@ -16,8 +16,8 @@ "dependencies": { "node-hid": "0.5.7" }, - "firmwareVersion": "5.0.1", + "firmwareVersion": "6.0.0", "dataModelVersion": "4.0.0", - "usbProtocolVersion": "2.0.0", + "usbProtocolVersion": "3.0.0", "slaveProtocolVersion": "3.0.0" } From 622b19045a85738e65d612e3acfd046daec79772 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Wed, 13 Dec 2017 02:56:08 +0100 Subject: [PATCH 10/10] Make write-hca.js work. --- packages/uhk-usb/src/uhk-hid-device.ts | 8 ++------ packages/uhk-usb/src/uhk-operations.ts | 2 +- packages/usb/write-hca.js | 4 ++-- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/packages/uhk-usb/src/uhk-hid-device.ts b/packages/uhk-usb/src/uhk-hid-device.ts index be22c7a5..d771e9f8 100644 --- a/packages/uhk-usb/src/uhk-hid-device.ts +++ b/packages/uhk-usb/src/uhk-hid-device.ts @@ -82,12 +82,8 @@ export class UhkHidDevice { }); } - public async writeUserConfigToEeprom(): Promise { - await this.write(new Buffer([ - UsbCommand.LaunchEepromTransfer, - EepromOperation.write, - ConfigBufferId.validatedUserConfig - ])); + public async writeConfigToEeprom(configBufferId: ConfigBufferId): Promise { + await this.write(new Buffer([UsbCommand.LaunchEepromTransfer, EepromOperation.write, configBufferId])); await this.waitUntilKeyboardBusy(); } diff --git a/packages/uhk-usb/src/uhk-operations.ts b/packages/uhk-usb/src/uhk-operations.ts index 15dbdc7b..69713006 100644 --- a/packages/uhk-usb/src/uhk-operations.ts +++ b/packages/uhk-usb/src/uhk-operations.ts @@ -153,7 +153,7 @@ export class UhkOperations { this.logService.debug('[DeviceOperation] USB[T]: Write user configuration to keyboard'); await this.sendUserConfigToKeyboard(json); this.logService.debug('[DeviceOperation] USB[T]: Write user configuration to EEPROM'); - await this.device.writeUserConfigToEeprom(); + await this.device.writeConfigToEeprom(ConfigBufferId.validatedUserConfig); } catch (error) { this.logService.error('[DeviceOperation] Transferring error', error); diff --git a/packages/usb/write-hca.js b/packages/usb/write-hca.js index 1183e020..8b7d9459 100755 --- a/packages/usb/write-hca.js +++ b/packages/usb/write-hca.js @@ -1,6 +1,6 @@ #!/usr/bin/env node const {HardwareConfiguration, UhkBuffer} = require('uhk-common'); -const {EepromTransfer, getTransferBuffers, UhkHidDevice, UsbCommand} = require('uhk-usb'); +const {EepromTransfer, getTransferBuffers, ConfigBufferId, UhkHidDevice, UsbCommand} = require('uhk-usb'); const Logger = require('./logger'); if (process.argv.length < 2) { @@ -40,7 +40,7 @@ async function writeHca() { } logger.debug('USB[T]: Write hardware configuration to EEPROM'); - await device.writeConfigToEeprom(EepromTransfer.WriteHardwareConfig); + await device.writeConfigToEeprom(ConfigBufferId.hardwareConfig); } writeHca()