C++ 使用Python访问USB硬件(带有本机C+;+;API的压力传感器矩阵)

C++ 使用Python访问USB硬件(带有本机C+;+;API的压力传感器矩阵),c++,python,usb,sensors,hardware-interface,C++,Python,Usb,Sensors,Hardware Interface,我正在使用一个带有USB接口的压力感应床垫。该制造商为Windows提供USB设备驱动程序,以及用C++编写的API,具有请求数据和设置参数的功能。 目前,我无法使用此传感器直接测试一些Python数据可视化脚本,因为我不得不让同事为我编写一个文本记录器,然后我用Python离线读取这些信息 此外,我根本不能将Linux与传感器一起使用,因为Linux没有驱动程序,我不知道从哪里开始“黑客”传感器,这就是为什么我要问: “如果我试图用Python直接从这个传感器读取数据,也许是在Linux中,我

我正在使用一个带有USB接口的压力感应床垫。该制造商为Windows提供USB设备驱动程序,以及用C++编写的API,具有请求数据和设置参数的功能。 目前,我无法使用此传感器直接测试一些Python数据可视化脚本,因为我不得不让同事为我编写一个文本记录器,然后我用Python离线读取这些信息

此外,我根本不能将Linux与传感器一起使用,因为Linux没有驱动程序,我不知道从哪里开始“黑客”传感器,这就是为什么我要问:

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

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


任何帮助都是非常受欢迎的

很可能这是一个HID设备,在这种情况下,您可以开始使用它编写用户空间linux驱动程序。首先要列举一棵树,它为您提供有关其功能的信息。(
lsusb-vvv
or)

如果失败了,您仍然可以在linux(现在还有其他平台)上编写用户空间驱动程序。您将需要使用或来查看官方驱动程序在与设备通话时所做的操作,并从那里进行模拟

从Python方面,您可能可以使用相对较少的努力生成一个象形的包装器到C++ C++ API,特别是与开发一个完全定制的驱动程序相比。 更新:

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


如果不是,你想尝试发现官方软件发送了什么,让它开始播放。您又回到了嗅探领域,但我认为可能有一些东西可以在串行层而不是windows的USB层进行嗅探(尽管我无法说出任何东西)。您还可以通过尝试让他们的库使用软件模拟串行端口而不是FTDI设备来学习一些东西,并看看它写了什么。

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


真遗憾,我没有早点看到帖子

非常完整的答案,我将不得不花时间忍受这一切,因为我不熟悉C.+1!不久前,我为一个HID设备编写了一个简单的用户空间驱动程序。我会尽力把它挖出来。尽管如此,我仍然建议在任何一天都用swig包装现有代码,而不是真正的低级代码!如果直接沿着HID路线走,则跳过C侧。“我现在找不到我的小例子,我想它是在一台关闭的工作电脑上。很好的提示,@awoodland。”。我正在阅读API文档,并记得传感器使用ftd2x.dll驱动程序(我猜与FTDI有关)。它改变了什么吗?它和HID一样吗?很可能是串行设备。同样的事情也适用于嗅探,除非你想使用usbserial内核模块来访问它。好吧,我非常感谢你的回答!不幸的是,我们已经把这个项目搁置了很长时间,除此之外,我正在学习用C#已经:o)编程