使NodeJS服务器通过USB自动检测连接的设备

我做了一个使用NodeJS服务器的色度计的Web界面,该服务器使用serialport npm库读取USB串行input,并将该信息发送到本地网页。 比色计基本上是一个使用微控制器的电路, 通过USB连接到我的电脑 ,使用中间USB模块。

该网页的状态信息如: “检测到的设备” (如果该页面已经启动,设备已经插入USB), “设备断开” (如果我从USB拔出设备)。 该消息更新完美的情况下,如从USB端口拔出设备,但我不能使其自动检测插入到USB中,而不会执行浏览器页面刷新。

当USB设备插入 PC并更新状态信息时,是否有任何解决方法使节点服务器自动检测

服务器代码: https : boardPort = '/dev/ttyACM0';目前,我正在Linux上这就是为什么boardPort = '/dev/ttyACM0'; 。 我也在Windows或其他编程语言的解决scheme。

也许尝试node-usb 。 在https://github.com/tessel/node-usb上查看UsbDetection

  usb.on('attach', function(device) { ... }); 

附上回拨插入设备。

  usb.on('detach', function(device) { ... }); 

附上回拨来拔下设备。

由于我想要实现一个可以连接到任何types的串口的服务器,不仅是USB(作为节点USB库),我成功地实现了一个自动检测function,该function监听并且知道关心的设备已连接。

 let boardPort = ''; let boardKeywordIdentifier = 'Arduino'; //my device identifier let checkingTimeInterval = 1000; let waitForUsb = setInterval(getBoardPortName, checkingTimeInterval); function getBoardPortName() { SerialPort.list(function(err,ports) { ports.forEach(function(port){ if(port.manufacturer.includes(boardKeywordIdentifier)) { boardPort = port.comName; } }) }); if(boardPort != '') { clearInterval(waitForUsb); listenToTheBoard(boardPort); //function to be executed when board is connected } }