我在Xcode 4中为MAC做了一个应用程序,目的是绘制一个心电读数的图表。读取应该是通过USB/串行接收。因此,我需要为能够将字符读写到USB端口的应用程序编写代码。
我认为做这件事的方法是使用IO工具包和POSIX.
老实说,我在开发人员网站上找到的IOKit文档很难理解。
是否有任何关于使用IOKit与硬件设备对话和获取信息的基本教程?
如果没有,是否有关于OSX体系结构基本概念的基本教程?当他们开始谈论马赫任务和克恩结果时,我完全迷失了方向。
提前感谢
发布于 2012-01-07 10:50:42
如果您的设备基本上只是一个插入标准USB/串行适配器的串行设备,则不需要降到IOKit级别。定位您的串口的UNIX字符设备,并为未缓冲的文件I/O打开它。您可能想要遍历I/O工具包注册表,纯粹是为了枚举端口,但是对于实际的I/O,您不应该需要它。
要开始这样做,您需要创建一个匹配的字典,其中包括:
IOServiceMatching(kIOSerialBSDServiceValue);然后通过kIOCalloutDeviceKey属性获取返回的设备的文件路径。
如果它不是一个标准的USB/串行适配器,您将需要使用IOKit。不幸的是,在USB和驱动程序方面,我不知道比苹果更好的网络资源,但是有一些书:
对于USB,您有两个选项:用户空间和kenel空间驱动程序。除非您有充分的理由在内核中这样做,否则我建议在用户空间中这样做。API是非常不同的,内核API是C++,用户空间是C (不,我没有混淆它们),在查看文档时,确保您看到的是两个中的正确一个--它们都被称为I/O Kit!
https://stackoverflow.com/questions/8763384
复制相似问题