首页 文章

如何识别特定的USB端口

提问于
浏览
2

我在一个必须在USB笔式驱动器上执行“测试”的项目中 . 为此,我正在使用USB集线器(49端口Asic Miner - 由于端口数量,我正在使用它) .

我打算在HUB上插入49个USB Pen驱动器,并使用Linux Java App进行测试 . 测试包括“检查是否识别”,“存储和删除数据”和“检查大小” .

我的问题是第一步 . 如果有任何Pen Drive无法正常工作,系统将识别48个笔式驱动器,但我永远不会知道特定设备无法正常工作 .

我的问题是:有没有办法知道USB集线器上特定USB端口的地址(或类似的东西)?例如:如果我在端口“34”上只连接一个USB笔式驱动器,我的软件将知道该设备已连接到该特定端口 .

非常感谢您的时间和帮助!

2 回答

  • 1

    使用Runtime执行Linux命令 mount . 它将列出当前安装的所有设备,手动或自动,如:

    /dev/sdb5 on /media/xdrive type ext4 (rw,nosuid,nodev,uhelper=udisks)
    /dev/sdj1 on /media/Website type vfat (rw,nosuid,nodev,uhelper=udisks,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,flush)
    

    这里,第二行描述了我刚刚插入的USB记忆棒(运行Ubuntu) . 它可以很容易地从文件系统中识别出来(vfat,上面的硬盘驱动器使用ext4)并且它安装在/ media / Website上(因为'Website'是在vfat中格式化棒时使用的棒标签) . 解析输出并定位安装的棒应该是微不足道的(格式化时,我建议给出与棒号匹配的已知标签) .

    如果需要,您可以直接在小贴士上将更多信息放入小文件中 .

    您可以通过 Process.getOutputStream() 捕获输出 .

    完成后,您可以在将它们拔出之前安全地卸下它们:

    umount /media/Website
    
  • 1

    您应该检查这些库jUSBusb2java(虽然它们有点过时) .

    但是JNI将允许您创建与不同操作系统交互的界面 . 这将允许您进行跨平台功能 . 我会调查libUSB(因为你正在寻找Linux),这是一个良好的开端!

    希望有所帮助! :)

相关问题