2

我正在使用具有 USB 接口的压力感应床垫。该制造商提供适用于 Windows 的 USB 设备驱动程序,以及用 C++ 编写的 API,该 API 具有请求数据和设置一些参数的功能。

目前,我不能使用这个传感器直接测试一些 Python 数据可视化脚本,不得不让我的同事为我编写一个文本记录器,然后我用 Python 离线读取这些信息。

此外,我根本无法将 Linux 与传感器一起使用,因为没有适用于 Linux 的驱动程序,而且我不知道从哪里开始“破解”传感器,这就是我问的原因:

“如果我要尝试直接用 Python 或者在 Linux 中从这个传感器读取数据,我应该先做什么,还是先读取?”

编辑:如果有帮助,该设备有一个 FTDI 驱动程序 (FTD2XX.dll)。

非常欢迎任何帮助

4

2 回答 2

3

可能性相当不错,它是一个 HID 设备,在这种情况下,您可能可以开始使用libhid为其编写用户空间 linux 驱动程序。首先要开始枚举树,为您提供有关其功能的信息。(lsusb -vvv示例

如果您仍然无法在 linux(以及其他平台)上使用libusb来编写用户空间驱动程序。您将需要使用类似 usbsnoop真正的硬件等价物来查看官方驱动程序在与设备交谈时会做什么并从那里模仿它。

从 python 方面,您可以使用SWIG为现有的 C++ API 生成一个体面的包装器,而且工作量相对较小,尤其是与开发完全自定义的驱动程序相比。

更新:

如果它是 FTDI 设备,那么使用起来可能会简单得多。根据供应商和产品 ID 显示的内容,它可能会自动与 Linux 中的 FTDI 驱动程序一起使用,为您提供 USB 串行端口。如果模块没有参数 -vendorproduct相信你可以使用它来让它声明除了它已经知道的 pid/vid 组合之外的其他设备。从那里您可以尝试使用不同的设置打开串行端口设备。幸运的是,它可能已经定期发送状态信息。

如果不是,您想尝试发现官方软件发送的内容以使其开始播放。你又回到了嗅探的领域,但我认为很可能在串行层而不是 Windows 的 USB 层上做这件事(尽管我不能说出任何名字)。您还可以通过尝试让他们的库使用软件模拟串行端口而不是 FTDI 设备并查看它写入的内容来学习一些东西。

于 2011-08-18T18:15:55.933 回答
1

FTDI 芯片有一个 linux 驱动程序。只需访问 FTDI 网站并下载即可。驱动程序创建一个虚拟串行端口。您可以使用 PySerial 与之交互。

可惜没早点看到帖子!

于 2013-05-08T23:16:05.777 回答