From 8e121d88ab6156493c12ab6ae0c52d1c14b3058c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Mon, 11 Dec 2017 20:39:29 +0100 Subject: [PATCH] Finalize the format of HardwareConfiguration. (#514) --- .../config-items/hardware-configuration.ts | 59 +++++++++++-------- .../src/app/store/effects/user-config.ts | 2 +- packages/usb/write-hca.js | 26 +++----- 3 files changed, 46 insertions(+), 41 deletions(-) diff --git a/packages/uhk-common/src/config-serializer/config-items/hardware-configuration.ts b/packages/uhk-common/src/config-serializer/config-items/hardware-configuration.ts index b1358acd..12a1184a 100644 --- a/packages/uhk-common/src/config-serializer/config-items/hardware-configuration.ts +++ b/packages/uhk-common/src/config-serializer/config-items/hardware-configuration.ts @@ -6,67 +6,80 @@ export class HardwareConfiguration { signature: string; @assertUInt8 - dataModelVersion: number; + majorVersion: number; @assertUInt8 - deviceId: number; + minorVersion: number; + + @assertUInt8 + patchVersion: number; @assertUInt8 brandId: number; + @assertUInt8 + deviceId: number; + @assertUInt32 - uuid: number; + uniqueId: number; + + isVendorModeOn: boolean; isIso: boolean; - hasBacklighting: boolean; - fromJsonObject(jsonObject: any): HardwareConfiguration { this.signature = jsonObject.signature; - this.dataModelVersion = jsonObject.dataModelVersion; - this.deviceId = jsonObject.deviceId; + this.majorVersion = jsonObject.majorVersion; + this.minorVersion = jsonObject.minorVersion; + this.patchVersion = jsonObject.patchVersion; this.brandId = jsonObject.brandId; - this.uuid = jsonObject.uuid; + this.deviceId = jsonObject.deviceId; + this.uniqueId = jsonObject.uniqueId; + this.isVendorModeOn = jsonObject.isVendorModeOn; this.isIso = jsonObject.isIso; - this.hasBacklighting = jsonObject.hasBacklighting; return this; } fromBinary(buffer: UhkBuffer): HardwareConfiguration { this.signature = buffer.readString(); - this.dataModelVersion = buffer.readUInt16(); - this.deviceId = buffer.readUInt8(); - this.uuid = buffer.readUInt32(); + this.majorVersion = buffer.readUInt8(); + this.minorVersion = buffer.readUInt8(); + this.patchVersion = buffer.readUInt8(); this.brandId = buffer.readUInt8(); + this.deviceId = buffer.readUInt8(); + this.uniqueId = buffer.readUInt32(); + this.isVendorModeOn = buffer.readBoolean(); this.isIso = buffer.readBoolean(); - this.hasBacklighting = buffer.readBoolean(); return this; } toJsonObject(): any { return { signature: this.signature, - dataModelVersion: this.dataModelVersion, - deviceId: this.deviceId, + majorVersion: this.majorVersion, + minorVersion: this.minorVersion, + patchVersion: this.patchVersion, brandId: this.brandId, - uuid: this.uuid, - isIso: this.isIso, - hasBacklighting: this.hasBacklighting + deviceId: this.deviceId, + uniqueId: this.uniqueId, + isVendorModeOn: this.isVendorModeOn, + isIso: this.isIso }; } toBinary(buffer: UhkBuffer): void { buffer.writeString(this.signature); - buffer.writeUInt16(this.dataModelVersion); - buffer.writeUInt8(this.deviceId); + buffer.writeUInt8(this.majorVersion); + buffer.writeUInt8(this.minorVersion); + buffer.writeUInt8(this.patchVersion); buffer.writeUInt8(this.brandId); - buffer.writeUInt32(this.uuid); + buffer.writeUInt8(this.deviceId); + buffer.writeUInt32(this.uniqueId); + buffer.writeBoolean(this.isVendorModeOn); buffer.writeBoolean(this.isIso); - buffer.writeBoolean(this.hasBacklighting); } toString(): string { return ``; } - } diff --git a/packages/uhk-web/src/app/store/effects/user-config.ts b/packages/uhk-web/src/app/store/effects/user-config.ts index 750fbf73..1ebec0bd 100644 --- a/packages/uhk-web/src/app/store/effects/user-config.ts +++ b/packages/uhk-web/src/app/store/effects/user-config.ts @@ -64,7 +64,7 @@ export class UserConfigEffects { const hardwareConfig = new HardwareConfiguration(); hardwareConfig.fromBinary(UhkBuffer.fromArray(data)); - if (hardwareConfig.uuid > 0) { + if (hardwareConfig.uniqueId > 0) { return hardwareConfig; } return null; diff --git a/packages/usb/write-hca.js b/packages/usb/write-hca.js index 51c15af6..1183e020 100755 --- a/packages/usb/write-hca.js +++ b/packages/usb/write-hca.js @@ -3,36 +3,28 @@ const {HardwareConfiguration, UhkBuffer} = require('uhk-common'); const {EepromTransfer, getTransferBuffers, UhkHidDevice, UsbCommand} = require('uhk-usb'); const Logger = require('./logger'); -if (process.argv.length < 3) { - console.log(`use: write-hca - -- layout: iso or ansi -- manufactureId: max 32 bit integer -`); +if (process.argv.length < 2) { + console.log(`use: write-hca {iso|ansi}`); process.exit(1); } const layout = process.argv[2]; if (layout !== 'iso' && layout !== 'ansi') { - console.log('Invalid layout. Layout should be on of: iso, ansi'); + console.log('Invalid layout. Layout should be either iso or ansi'); process.exit(1); } -const uuid = Number.parseInt(process.argv[3]); - -if (isNaN(uuid)) { - console.log('Manufacture Id is not a integer'); - process.exit(1); -} const hardwareConfig = new HardwareConfiguration(); hardwareConfig.signature = 'UHK'; -hardwareConfig.dataModelVersion = 0; -hardwareConfig.deviceId = 1; -hardwareConfig.uuid = uuid; +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 = layout === 'iso'; -hardwareConfig.hasBacklighting = false; const logger = new Logger();