使用Python在Mac上进行USB驱动程序开发

时间:2008-10-04 12:45:47

标签: python macos usb drivers

我想在Mac上用Python写一个驱动程序与我的Suunto t3手表交谈。我的日常工作是在C#中进行基本的Web工作,所以我对Python的熟悉和在Mac上的开发是有限的。

你能否建议如何开始一般的驱动程序开发,然后更具体地说是在Mac上。即如何轻松查看正在传输到设备的数据?我已启动并运行Python 2.5(MacPorts)。

2 个答案:

答案 0 :(得分:4)

Mac已经拥有支持USB的底层基础架构,因此您需要一个可以利用它的Python库。对于任何需要串行支持的Python项目,无论是USB,RS-232还是GPIB,我都会在SourceForge上推荐PyVisa库。请参阅http://pyvisa.sourceforge.net/

如果您的设备没有VISA驱动程序,则必须直接处理USB系统。您可以在SourceForge上使用另一个库:http://pyusb.berlios.de/

答案 1 :(得分:3)

如果手表支持standard USB device class specification(如HID或串行通信),则可能已有内置于操作系统中的Macintosh驱动程序。否则,您将不得不从以下三个来源之一获取有关用于与之通信的供应商命令的信息:制造商;逆向工程Windows驱动程序使用的协议;或者来自已经反向设计协议的其他人,以便在Linux或BSD上支持该设备。

USB是基于数据包的总线,了解各种事务类型非常重要。阅读USB specification是一个很好的起点。

您可以使用USB总线分析仪查看正在向设备传输的数据,这对于业余爱好者来说是一个昂贵的主张,但是大多数企业都在进行USB开发。例如,Catalyst Conquest是1199美元。另一家成熟的制造商是LeCroy (formerly CATC)。还有软件USB分析器挂在操作系统的USB堆栈中,但它们不会显示总线上的所有流量,并且可能不那么可靠。

我不是Mac专家,所以请谨慎使用这一段:Apple有一个名为I/O Kit的驱动程序开发工具包,显然需要您用C ++编写驱动程序,除非他们也有某种用户模式驱动程序框架。如果你用Python编写它,它可能更像是一个Python库,可以与其他人(Apple的?)通用USB驱动程序连接。