4

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

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

4

2 回答 2

4

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

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

于 2008-10-04T14:20:31.507 回答
3

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

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

您可以使用 USB 总线分析器查看正在将哪些数据传输到设备,这对于业余爱好者来说是一个昂贵的提议,但大多数从事 USB 开发的企业都可以做到。例如,催化剂征服是 1199 美元。另一家成熟的制造商是LeCroy(原 CATC)。还有一些软件 USB 分析器可以连接到操作系统的 USB 堆栈,但它们不会显示总线上的所有流量,并且可能不那么可靠。

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

于 2008-10-04T13:55:06.287 回答