update node script to always shift dummy reportID like python

allow specify all product id with 0xFFFF in boards.js
This commit is contained in:
hathach 2021-08-10 15:40:25 +07:00
parent 312fd5f839
commit 40afc8c5de
No known key found for this signature in database
GPG Key ID: 2FA891220FBFD581
2 changed files with 7 additions and 10 deletions

View File

@ -1,4 +1,4 @@
module.exports = { module.exports = {
"Feather_nRF52840":[0X239A,0X8029], "Adafruit Boards":[0x239A,0xFFFF],
"Metro_nRF52840":[0X239A,0X803F], "TinyUSB example":[0xCAFE,0xFFFF]
} }

View File

@ -5,8 +5,6 @@ var HID = require('node-hid');
var os = require('os') var os = require('os')
// list of supported devices // list of supported devices
var boards = require('./boards.js') var boards = require('./boards.js')
var isWin = (os.platform() === 'win32');
var devices = HID.devices(); var devices = HID.devices();
// this will choose any device found in the boards.js file // 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 // 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)}); var messageBuffer = Array.from(message, function(c){return c.charCodeAt(0)});
// Windows wants you to prepend a 0 to whatever you send // HIDAPI requires us to prepend a 0 for single hid report as dummy reportID
if(isWin){ messageBuffer.unshift(0)
messageBuffer.unshift(0)
}
// Some OSes expect that you always send a buffer that equals your report length // 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 // So lets fill up the rest of the buffer with zeros
@ -66,6 +62,7 @@ function anySupportedBoard(d) {
function isDevice(board,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);
} }