diff --git a/package-lock.json b/package-lock.json index 62019abc..edf7400a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5838,8 +5838,7 @@ "jsbn": { "version": "0.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "json-schema": { "version": "0.2.3", diff --git a/packages/uhk-usb/package-lock.json b/packages/uhk-usb/package-lock.json index c9063373..3afb5622 100644 --- a/packages/uhk-usb/package-lock.json +++ b/packages/uhk-usb/package-lock.json @@ -1,11 +1,14 @@ { - "requires": true, + "name": "uhk-usb", + "version": "1.0.0", "lockfileVersion": 1, + "requires": true, "dependencies": { "@types/node": { "version": "8.0.28", "resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.28.tgz", - "integrity": "sha512-HupkFXEv3O3KSzcr3Ylfajg0kaerBg1DyaZzRBBQfrU3NN1mTBRE7sCveqHwXLS5Yrjvww8qFzkzYQQakG9FuQ==" + "integrity": "sha512-HupkFXEv3O3KSzcr3Ylfajg0kaerBg1DyaZzRBBQfrU3NN1mTBRE7sCveqHwXLS5Yrjvww8qFzkzYQQakG9FuQ==", + "dev": true }, "ansi-regex": { "version": "2.1.1", @@ -144,6 +147,11 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, + "lodash-es": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.10.tgz", + "integrity": "sha512-iesFYPmxYYGTcmQK0sL8bX3TGHyM6b2qREaB4kamHfQyfPJP0xgoGxp19nsH16nsfquLdiyKyX3mQkfiSGV8Rg==" + }, "mimic-response": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz", diff --git a/packages/uhk-usb/package.json b/packages/uhk-usb/package.json index 11a813de..65320df2 100644 --- a/packages/uhk-usb/package.json +++ b/packages/uhk-usb/package.json @@ -11,6 +11,7 @@ "@types/node": "8.0.28" }, "dependencies": { + "lodash-es": "^4.17.10", "node-hid": "0.5.7", "uhk-common": "1.0.0" } diff --git a/packages/uhk-usb/src/uhk-hid-device.ts b/packages/uhk-usb/src/uhk-hid-device.ts index 5632fe85..a01f8432 100644 --- a/packages/uhk-usb/src/uhk-hid-device.ts +++ b/packages/uhk-usb/src/uhk-hid-device.ts @@ -1,3 +1,4 @@ +import { cloneDeep, isEqual } from 'lodash-es'; import { Device, devices, HID } from 'node-hid'; import { CommandLineArgs, LogService } from 'uhk-common'; @@ -24,6 +25,7 @@ export class UhkHidDevice { * Internal variable that represent the USB UHK device * @private */ + private _prevDevices = {}; private _device: HID; private _hasPermission = false; @@ -233,7 +235,12 @@ export class UhkHidDevice { private connectToDevice(): HID { try { const devs = devices(); - this.logService.debug('[UhkHidDevice] Available devices:', devs); + if (!isEqual(this._prevDevices, devs)) { + this.logService.debug('[UhkHidDevice] Available devices:', devs); + this._prevDevices = devs; + } else { + this.logService.debug('[UhkHidDevice] Available devices unchanged'); + } const dev = devs.find((x: Device) => x.vendorId === Constants.VENDOR_ID &&