var HID = require('node-hid');
var os = require('os')
var boards = require('./boards.js')
var devices = HID.devices();
var deviceInfo = devices.find(anySupportedBoard);
var reportLen = 64;
var message = "Hello World!"
var messageBuffer = Array.from(message, function(c){return c.charCodeAt(0)});
messageBuffer.unshift(0)
var paddingBuf = Array(reportLen-messageBuffer.length);
paddingBuf.fill(0)
messageBuffer = messageBuffer.concat(paddingBuf)
if( deviceInfo ) {
console.log(deviceInfo)
var device = new HID.HID( deviceInfo.path );
device.on("data", function(data) {
console.log(data.toString('ascii'));
});
device.on("error", function(err) {console.log(err)});
setInterval(function () {
device.write(messageBuffer);
},500)
}
function anySupportedBoard(d) {
for (var key in boards) {
if (boards.hasOwnProperty(key)) {
if (isDevice(boards[key],d)) {
console.log("Found " + d.product);
return true;
}
}
}
return false;
}
function isDevice(board,d){
return d.vendorId==board[0] && (d.productId==board[1] || board[1] == 0xFFFF);
}