From 40afc8c5de7785d7da7653763abad03b9a548542 Mon Sep 17 00:00:00 2001 From: hathach Date: Tue, 10 Aug 2021 15:40:25 +0700 Subject: [PATCH] update node script to always shift dummy reportID like python allow specify all product id with 0xFFFF in boards.js --- examples/device/hid_generic_inout/boards.js | 6 +++--- examples/device/hid_generic_inout/hid_test.js | 11 ++++------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/examples/device/hid_generic_inout/boards.js b/examples/device/hid_generic_inout/boards.js index e8437cf53..6b78231a7 100644 --- a/examples/device/hid_generic_inout/boards.js +++ b/examples/device/hid_generic_inout/boards.js @@ -1,4 +1,4 @@ module.exports = { - "Feather_nRF52840":[0X239A,0X8029], - "Metro_nRF52840":[0X239A,0X803F], -} \ No newline at end of file + "Adafruit Boards":[0x239A,0xFFFF], + "TinyUSB example":[0xCAFE,0xFFFF] +} diff --git a/examples/device/hid_generic_inout/hid_test.js b/examples/device/hid_generic_inout/hid_test.js index eed6b78e2..daa958fd5 100644 --- a/examples/device/hid_generic_inout/hid_test.js +++ b/examples/device/hid_generic_inout/hid_test.js @@ -5,8 +5,6 @@ var HID = require('node-hid'); var os = require('os') // list of supported devices var boards = require('./boards.js') - -var isWin = (os.platform() === 'win32'); var devices = HID.devices(); // this will choose any device found in the boards.js file @@ -19,10 +17,8 @@ var message = "Hello World!" // This means if you have characters in your string that are not Latin-1 you will have to add additional logic for character codes above 255 var messageBuffer = Array.from(message, function(c){return c.charCodeAt(0)}); -// Windows wants you to prepend a 0 to whatever you send -if(isWin){ - messageBuffer.unshift(0) -} +// HIDAPI requires us to prepend a 0 for single hid report as dummy reportID +messageBuffer.unshift(0) // Some OSes expect that you always send a buffer that equals your report length // So lets fill up the rest of the buffer with zeros @@ -66,6 +62,7 @@ function anySupportedBoard(d) { function isDevice(board,d){ - return d.vendorId==board[0] && d.productId==board[1]; + // product id 0xff is matches all + return d.vendorId==board[0] && (d.productId==board[1] || board[1] == 0xFFFF); }