【发布时间】:2013-10-08 21:12:35
【问题描述】:
作为一个宠物项目,我想通过 USB 从血糖仪中获取数据。但该设备不会显示为串行设备。我需要帮助来确定我的下一步是什么,非常欢迎提供文档和/或示例。
这是我第一次尝试通过 USB 进行通信。
我只从nrjavaserial(我在 Mac 上)将这些设备列为串行设备:
/dev/cu.Bluetooth-PDA-Sync
/dev/tty.Bluetooth-Modem
但是如果我运行下面的命令,我可以看到有关设备的信息:
$ system_profiler SPUSBDataType
Hub:
Product ID: 0x2513
Vendor ID: 0x0424 (SMSC)
Version: b.b3
Speed: Up to 480 Mb/sec
Location ID: 0xfd100000 / 2
Current Available (mA): 500
Current Required (mA): 2
Abbott Stereo Plug Cable:
Product ID: 0x3410
Vendor ID: 0x1a61 (Abbott Diabetes Care)
Version: 1,01
Speed: Up to 12 Mb/sec
Manufacturer: Abbott Labs
Location ID: 0xfd120000 / 4
Current Available (mA): 500
Current Required (mA): Unknown (Device has not been configured)
当我在 Linux 中测试类似的命令(lsusb 和 ls /dev/ttyS*)时,它没有被列为串行设备,这让我觉得我遗漏了一些明显的东西。
我看到有人使用 C# 和串行 USB 与类似设备 (The-Beginnings-of-a-Glucose-Meter-Downloader) 进行通信的示例,这让我相信我应该能够对这个设备做同样的事情。
【问题讨论】:
-
并非所有设备都将自己暴露为串行端口。设备列出的兼容 ID 是什么?
-
没有完全按照你的意思。您指的是 /dev/tty* 列表还是上面 Abbott Stereo Plug 电缆下列表中的 id? (他是实际设备,电缆是 USB 的立体声插头)
-
我不知道在 Linux 下在哪里可以找到它,但在 Windows 下,有一个用于 USB 设备的“兼容 ID”的位置。这将适用于您的电缆。虽然,既然您提到您的 USB 设备实际上是一个电缆适配器,我怀疑它实际上是一个 USB/串行适配器。您是否尝试过 PL2303 的所有常用驱动程序?制作自己的电缆可能更容易。设备上可能是 3.3V 串口。
-
嗯,我从雅培买了一条全新的电缆,它是立体声插头到 USB 电缆。在这种情况下,我认为新电缆不会有帮助。我认为这是一个问题,即我如何与不显示为串行设备的设备进行通信。如果我可以将“原始”数据发送到某个 tty 以及如何确定要使用哪个 tty。
-
不,听着,那样不行。您需要的是您的那条电缆的串行驱动程序。如果你没有,你就不能使用它。就是这么简单。您建议的是编写自己的驱动程序。如果您真的想要这样做,那么您需要重新表述您的问题。你的那根电缆不仅仅是一根电缆,它是某种 USB 设备,可能是 USB 转 3.3V 串行适配器。要使用它,您需要将虚拟串行设备公开给您的操作系统的驱动程序。
标签: java serial-port usb