首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从node.js中的VID和PID获取USB设备的/dev路径

在node.js中,可以通过使用usb-detection模块来获取USB设备的VID(Vendor ID)和PID(Product ID),然后根据这些信息来获取USB设备的/dev路径。

以下是完善且全面的答案:

USB设备的VID和PID是用于唯一标识USB设备的两个重要参数。VID是供应商ID,用于标识设备的制造商,而PID是产品ID,用于标识设备的具体产品型号。

在node.js中,可以使用usb-detection模块来获取USB设备的VID和PID。该模块提供了一组用于检测和监视USB设备连接和断开的API。通过监听add事件,我们可以获取到新连接的USB设备的VID和PID。

获取USB设备的VID和PID后,我们可以通过遍历/dev目录下的设备文件来找到对应的USB设备的/dev路径。在Linux系统中,USB设备通常以/dev/ttyUSB*/dev/ttyACM*的形式存在,其中*表示设备的编号。

以下是一个示例代码,演示如何从node.js中的VID和PID获取USB设备的/dev路径:

代码语言:javascript
复制
const usbDetect = require('usb-detection');
const fs = require('fs');

// 监听USB设备连接事件
usbDetect.on('add', async function(device) {
  if (device.vendorId === YOUR_VID && device.productId === YOUR_PID) {
    // 获取USB设备的/dev路径
    const devPath = await getDevPath(device);
    console.log('USB设备的/dev路径:', devPath);
  }
});

// 获取USB设备的/dev路径
function getDevPath(device) {
  return new Promise((resolve, reject) => {
    fs.readdir('/dev', (err, files) => {
      if (err) {
        reject(err);
      } else {
        const devFiles = files.filter(file => file.startsWith('ttyUSB') || file.startsWith('ttyACM'));
        const devPath = devFiles.find(file => {
          const devNum = file.substring(7); // 提取设备编号
          return device.deviceName.includes(devNum);
        });
        resolve(`/dev/${devPath}`);
      }
    });
  });
}

// 开始监听USB设备连接事件
usbDetect.startMonitoring();

上述代码中,我们使用usb-detection模块监听USB设备的add事件,并在事件处理函数中判断设备的VID和PID是否与目标设备匹配。如果匹配,则调用getDevPath函数获取USB设备的/dev路径。

getDevPath函数通过读取/dev目录下的文件列表,并根据文件名的格式来筛选出USB设备的设备文件。然后,通过比较设备文件名中的设备编号和USB设备的设备名称来找到对应的设备文件。最后,返回USB设备的/dev路径。

需要注意的是,上述代码仅适用于Linux系统。在其他操作系统上,USB设备的/dev路径可能会有所不同,需要根据具体情况进行调整。

推荐的腾讯云相关产品:腾讯云物联网开发平台(IoT Explorer)

腾讯云物联网开发平台(IoT Explorer)是一款全面的物联网解决方案,提供了设备接入、设备管理、数据存储、数据分析等功能,帮助开发者快速构建和管理物联网应用。

产品介绍链接地址:腾讯云物联网开发平台(IoT Explorer)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

USB 设备PID-Product ID,VID-Vendor ID

根据USB规范规定,所有的USB设备都有供应商ID(VID产品识别码(PID),主机通过不同VIDPID来区别不同设备VIDPID都是两个字节长,其中,供应商ID(VID)由供应商向USB...VIDPID通常情况下有两种存储方式,第一种是主控生产商VIDPID,存储在主控bootcode;第二种是设备生产商VIDPID,该VIDPID存储在主控外部非易失性存储设备(EEPROM...或Flash)设备固件,当USB设备连接主机时,如果固件中有设备生产商VIDPID,会将该VIDPID报告给主机,而忽略主控生产商VIDPID。...由于VIDPID重复并不会对产品使用带来严重影响,很多USB设备生产商(山寨厂居多)为了方便,并不会向USB执行论坛申请自己VID,而是依然沿用主控生产商VID或随便向产品写入VIDPID;同时...,这个问题大家在使用USB设备过程需要注意。

2.4K80

CMD魔法堂:获取进程路径PID方法集

所以第一步需要获取Weblogic应用窗口PID然后将其kill掉。下面将记录曾经各种尝试,以便日后查阅。...二、wmic命令                             windows自带功能,功能十分强大 示例1——获取所有进程信息: wmic process 示例2——指定进程执行路径获取PID...实践经验   上述方法无法通过Weblogic应用startWebLogic.cmd路径作为查询条件来获取PID,由于startWebLogic.cmd内是通过java命令启动应用,所以ExecutablePath...其他获取进程路径方法 vbs c++:java需要通过jni来调用。...三、netstat -aon | findstr 端口号                 示例1: netstat -aon | findstr 7001 若存在占用该端口号进程,则会返回PID;否则返回空

1.7K72

Windows设备信息获取:(摄像头,声卡为例)Qt,WindowsAPI对比说明(1)

系统环境 Windows:Win10 Qt:5.8.5 VS:vs2013 相关资料 USB 获取设备VID,HID windows SetupAPI 介绍使用 获取指定USB设备VID PID...SerialNumber 代码片段 USB HID,VID说明 USB 获取设备VID,HID 里边源码说明:路径:https://github.com/signal11/hidapi , 进入下载...,序列号,打开设备 设备信息结构体(链表) :hid_device_info:驱动路径VID,PID,序列号,设备发行号,生产厂商,设备名称,设备使用页,接口编号 /** hidapi info...,获取HID,VID,然后根据相关信息获取设备详细信息,得到所需要参数。...获取指定USB设备VID PIDSerialNumber struct hid_device_info HID_API_EXPORT * HID_API_CALL hid_enumerate_all

1.9K20

用于监控USB设备连接事件取证工具

USB设备,这些设备出现在历史记录但不会出现在auth.json; 当使用-s标志安装时创建加密存储(7zip存档)以在crontab调度程序帮助下自动备份积累USB事件; 根据特定USB设备...启用-s开关后,不仅会安装usbrip项目,还会创建受信任USB设备,历史记录违规存储列表。 注意:在安装期间使用-s选项时,请确保系统日志至少包含一个外部USB设备条目。...”,“VID”,“PID”,“Disconnected”表(-t,--table) “序列号”列(-c COLUMN [COLUMN],--column COLUMN [COLUMN])按日期过滤外部文件获取日志...),其中包含9月26日连接前三个设备VIDPID”属性: $ usbrip events gen_auth trusted/auth.json -a vid pid -n 3 -d "Sep...)PID(--pid PID)搜索特定USB设备详细信息: $ usbrip ids search --vid 0781 --pid 5580 下载最新版本usb_ids/usb.ids数据库(源码可在此处查看

2.2K30

手把手教你视频监控之 MJPG-Streamer 方案

说明:博主并没有使用下载emmc镜像方式,而是使用 tftp 下载内核设备树, nfs 网络挂载根文件系统。 调通了局域网视频监控,效果如下: 实现框架: ?...ID分为VIDPID,根据USB规范规定,所有的USB设备都有供应商ID(VID产品识别码(PID),主机通过不同VIDPID来区别不同设备。 ? 这里显示是05a3:9230。...即可,博主亲测xawtvguvcview是可以显示图像,guvcview界面很友好,推荐。命令:guvcview /dev/videoX ,效果如图: ? ?...3、如何打开Linux内核UVC功能 在Linux内核源码目录下,输入make menuconfig,路径为Device Drivers/Multimedia support/Media USB Adapters...在Linux下,如果Linux内核没有给你写好UVC驱动,你就要自己写摄像头驱动,我们知道USB协议是比较难,更别说在此基础上加上视频传输,所以如果不是Linux内核集成了很多现成UVC驱动,我们自己零调试也是很难

2.2K30

嵌入式Linux开发板_WIFI无线网卡驱动移植

嵌入式设备想要联网,无非就 有线无线 两种方式。 有线就插上网线,没什么好说;无线的话一种是将WIFI模块集成焊接在板子上,另一种是WIFI模块以USB方式接到板子上。...1.2 选择无线网卡 首先是选择合适无线网卡,选取原则是根据WIFI无线网卡VIDPID判断内核是否支持该无线网卡。...我无线网卡VID是0x148F,PID是0x3070; 2.查询内核是否支持 可以wireless.kernel.org得到支持设备列表。...可以列表搜到前面的VIDPID,因此说明内核是支持现在使用无线网卡。此外,还可以得知对应驱动应该为rt2800usb、rt2870sta。 ?...从这里可以看出,最后WIFI名字密码,都会被保存到一个配置文件里,在Linux路径就是/etc/wpa_supplicant.conf。

7.6K21

libudev+V4L2 linux usb摄像头列表发现以及热拔插事件

,无法摄像头名称区分所需要摄像头,所以另起了一个别名,用来区分管理摄像头设备。...存在两个摄像头设备为CameraLog,在遍历过程第一个获取为 CameraLog,使用原始名称,第二个获取设备名为 CameraLog(1)。.../dev/video0 获取对应摄像头分辨率。 在实际,摄像头通常支持多种视频格式,yuyv,mjeg等其他格式,但是在博主实际使用,只是用yuyv格式,所以只获取了yuyv对应分辨率列表。...在查相关资料时候,经常能看到通过 摄像头名称获取VID.PID信息,但是在实际打印摄像头名称全量并没有获取到,另一个种方法是 通过Input 事件 过滤获取,具体链接与源码不贴了。...但是直接过滤为错误。‘vid’,‘pid’。 博主获取VID,PID为两种情况 一种为 现有的video设备。通过 ioctl(fd, EVIOCGID, &inputId) 获取对应信息。

2.7K30

USBVID,PID

一、VIDPID 根据USB规范规定,所有的USB设备都有供应商ID(VID产品识别码(PID),主机通过不同VIDPID来区别不同设备VIDPID都是两个字节长,其中,供应商ID...VIDPID通常情况下有两种存储方式,第一种是主控生产商VIDPID,存储在主控bootcode;第二种是设备生产商VIDPID,该VIDPID存储在主控外部非易失性存储设备(EEPROM...或Flash)设备固件,当USB设备连接主机时,如果固件中有设备生产商VIDPID,会将该VIDPID报告给主机,而忽略主控生产商VIDPID。...由于VIDPID重复并不会对产品使用带来严重影响,很多USB设备生产商(山寨厂居多)为了方便,并不会向USB执行论坛申请自己VID,而是依然沿用主控生产商VID或随便向产品写入VIDPID;同时...,这个问题大家在使用USB设备过程需要注意。

1.3K10

单片机外围模块漫谈之五,USB开发,这个错误你犯了吗?

我们可以把USARTTXRX短接,这样PC端下发数据会原样回传给PC端。 这个例程使用硬件是STM3210C-EVAL,原理图可以在stmcu.org.cn找到。...在设备管理器我们看到多出来一个串口,看它属性会看到它VIDPID跟我们程序设置一致。 ? 用串口助手打开此串口,发送字符串,会看到返回同样字符串。 ? 下面我们来看一下具体工作过程。...主机等待100ms设备稳定后复位并使能此端口,此时设备可以Vbus获取不超过 100mA 电流,其默认地址是0,处于Default状态。...还有一个很重要问题我们千万不要忽视,就是VIDPID,既厂商识别符(Vendor ID)产品识别符(Product ID)。我们例程中使用VID 0x0483, PID 0x5740。...如果我们要开发USB设备,还要向USB组织申请自己VID,之后还要做微软徽标认证,就可以畅行无阻了。

61520

CY7C68013A一点总结

一、 值得参考资料:FX2 TechRefManual、USB应用开发宝典、 LabVIEW-USB通信简单教程(用于参考生成labview驱动程序)、USB设备请求和描述符整理(仅用于理解描述符作用...都配置成正确路径(keilcypress程序安装目录下找,有些项含有两种路径中间用;隔开)。...注意:烧写iic文件并不想hex文件那样立即变成固件描述设备,而是要拔出USB一下才可以。...三、驱动程序:不同上位机软件对应不同驱动程序 四、固件设计: (1) 自定义用户请求 注意请求号不能系统请求号冲突 五、Verilog 程序: 注意:1修改VIDPID可修改设备受哪种上位机软件控制...2注意固件描述符、load.inf(在cypress安装程序下)、生成驱动过程VID\PID不同相同之处。

1.3K80

Android Root设备su权限获取使用详解

ROOT权限简介: ROOT权限是Linux内核最高权限,如果你身份是ROOT,那么你就具有了ROOT权限。...有了最高权限,你就可以为所欲为,换句话说,如果恶意程序获取到了ROOT权限,那么就可以肆意地破坏你手机,获取隐私…所以厂商一般在生产手机时候,不会提供给用户ROOT权限,官方宣称是为了保护用户手机安全...苹果用户获取ROOT权限,是为了可以免费安装各种软件,以及为了获取更加灵活操作体验,苹果不会安装一堆恶心软件;而安卓普通用户获取ROOT权限,最大目的就是为了卸载这些恶心自带软件,安卓极客用户则是为了各种折腾安卓手机...就像仙剑奇侠传三里面的景天,是个凡人,法力有限,但是大家都知道,他前世是飞蓬将军,法力高强,天界无人能敌,只有魔界至尊重楼可以与他一较高下,当他们来到天庭时候,玉帝施法,让景天直接切换成飞蓬将军,于是他就有了飞蓬将军记忆法力...高通平台上,su相关代码位于: LINUX/android/system/extras/su/su.c Android开发,偶有会遇到对一些定制设备开发,一般这种设备都会有root权限,开发也会用到

4.2K10

C#进阶——记一次USB HID各种坑(x86,x64,win10,win7)

一、简叙 写工控上位机搬砖人,难免会遇到USB通讯,在一个项目中,我写上位机使用USB HID协议和STM32通讯传输数据,零大概花了几天找例程,找资料,最后是各种搬砖修补,终于出来了一个出版DOME...HID识别设备主要通过设备PID(厂商ID)VID(产品ID),进而区分。 二、主体程序 网上找了很多版本,主体程序都是大同小异,最后我便借鉴了一篇博文,来砌我主体程序。.../// /// 设备vID /// 设备pID</param...hid设备路径 /// /// 包含每个设备路径字符串数组 public static void...我在x86下,调用“SetupDiGetClassDevs”获取设备信息集句柄时返回地址大概是9位数左右,而在x64,返回地址大概是13位数。

2.1K30

基于WDM专用USB设备驱动程序开发

l 值得注意是,EEPROM包含产品ID(PID厂商ID(VID固件代码程序中所包含PIDVID分别对应INF文件两组ID,由一个INF文件根据这两组ID进行两次枚举,即完成驱动程序安装...以UM-2002IO型USB通用数字IO设备.inf为例,两组ID号如下定义: [Manufacturer] %Cypress%=Cypress [Cypress] %USB/VID_04B4&PID..._0366.DeviceDesc%=EZUSBDIGIT.Dev,USB/VID_04B4&PID_0366 %USB/VID_04B4&PID_0306.DeviceDesc%=EZUSBDI.Dev..., USB/VID_04B4&PID_0306 第一组为EEPROM包含ID号,第二组为固件代码程序包含ID号。...将实例INF文件另存为自己INF文件,如yunio.inf;l 在自己INF文件,规划好两组PIDVID号,前一组为EEPROMID号,后一组ID要与固件程序ID一致;l 用自己建立两个驱动程序文件名替代实例

1.6K20
领券