Использование IO Kit для связи с USB в Xcode 4 - PullRequest
3 голосов
/ 06 января 2012

Я делаю приложение в Xcode 4 для MAC, целью которого является нарисовать график чтения ЭКГ.Чтение должно быть принято через USB / последовательный порт.Поэтому мне нужно написать код для приложения, которое может читать и записывать символы в порт USB.

Я думаю, что лучший способ сделать это - использовать IO Kit и POSIX ...

Честно говоря, документация по IOKit, которую я нашел на веб-сайте разработчика, была довольно трудной для понимания.

Существуют ли базовые учебные пособия по использованию IOKit для общения и получения информации от аппаратного обеспечения?устройства?

Если это не так, существуют ли базовые учебные пособия по основным понятиям архитектуры OSX?Когда они начинают говорить о задачах Маха и результатах Керн, я полностью теряюсь.

Заранее спасибо

1 Ответ

3 голосов
/ 07 января 2012

Если ваше устройство представляет собой просто последовательное устройство, подключенное к стандартному USB / последовательному адаптеру, вам не нужно переходить на уровень IOKit. Найдите символьное устройство UNIX для вашего последовательного порта и откройте его для небуферизованного файлового ввода-вывода. Возможно, вы захотите пройти реестр реестра I / O исключительно для перечисления портов, но он вам не нужен для реального ввода / вывода.

Чтобы начать с этим, вам нужно создать соответствующий словарь с:

IOServiceMatching(kIOSerialBSDServiceValue);

, а затем получите пути к файлам возвращаемых устройств через свойство kIOCalloutDeviceKey.

Если это не стандартный USB / последовательный адаптер, вам нужно использовать IOKit. К сожалению, я не знаю лучших веб-ресурсов, чем Apple, по теме USB и драйверов, но есть книги:

  • Программирование ядра OS X и iOS специально предназначено для (начинающих) программистов драйверов. Он состоит из 2 глав по USB, одна из которых посвящена основам USB и драйверам пространства ядра, а другая - USB-драйверам пользовательского пространства. Надеюсь, вы сможете начать работать с ними. ( Отказ от ответственности: Я был одним из технических рецензентов для этой книги; однако, мне не платят за рекламу, и я не получаю роялти)

  • Mac OS X Internals начинает показывать свой возраст (актуально для OS X 10.4) и специально не является книгой по разработке драйверов. Это действительно дает очень подробное описание многих частей OS X и его ядра. Не так уж много на USB, если я правильно помню.

Для USB у вас есть 2 варианта: драйверы пространства пользователя и kenel. Если у вас нет веских причин делать это в ядре, я предлагаю делать это в пространстве пользователя. API очень разные, API ядра - C ++, пользовательское пространство - C. (нет, я их не перепутал) при просмотре документации, убедитесь, что вы смотрите на правильный один из 2 - они оба называется I / O Kit!

...