Abo*_*P S 4 javascript serial-port node.js meteor
我是 Node.js 的新手。我想检测是否有任何 USB/大容量存储设备连接到系统。
因为我们在 C# 中有一些事情要做
// Add USB plugged event watching
watcherAttach = new ManagementEventWatcher();
watcherAttach.EventArrived += watcherAttach_EventArrived;
watcherAttach.Query = new WqlEventQuery("SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 2");
watcherAttach.Start();
// Add USB unplugged event watching
watcherDetach = new ManagementEventWatcher();
watcherDetach.EventArrived += watcherDetach_EventArrived;
watcherDetach.Query = new WqlEventQuery("SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 3");
watcherDetach.Start();
Run Code Online (Sandbox Code Playgroud)
请建议我们如何在 Node.js 中做类似 C# 的事情。
节点USB是一个节点库,我认为它提供了您正在寻找的确切东西。我不确定如何在没有库的情况下做到这一点,但如果您不想使用外部库,也许您可以检查它们的源代码。
根据他们的文档,您可以使用
var usb = require('usb')
usb.on('attach', function(device) { ... });
Run Code Online (Sandbox Code Playgroud)
连接新设备时运行回调。
更好的解决方案是使用“usb-detection” https://www.npmjs.com/package/usb-detection
您可以通过 productId 或 vendorId 来监听特定的 USB 设备过滤:
// Detect add or remove (change)
usbDetect.on('change', function(device) { console.log('change', device); });
usbDetect.on('change:vid', function(device) { console.log('change', device); });
usbDetect.on('change:vid:pid', function(device) { console.log('change', device); });
// Get a list of USB devices on your system, optionally filtered by `vid` or `pid`
usbDetect.find(function(err, devices) { console.log('find', devices, err); });
usbDetect.find(vid, function(err, devices) { console.log('find', devices, err); });
usbDetect.find(vid, pid, function(err, devices) { console.log('find', devices, err); });
// Promise version of `find`:
usbDetect.find().then(function(devices) { console.log(devices); }).catch(function(err) { console.log(err); });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18457 次 |
| 最近记录: |