Опции аппаратного доступа
Много приложений могут обработать все свои потребности аппаратного доступа с помощью высокоуровневого APIs, такие как QuickTime, CFNetwork и Core Audio. Перед осуществлением разработки основанного на приложении драйвера устройства необходимо считать эту главу, чтобы определить, существует ли более подходящее (и вероятно проще) решение.
Если Вы находите, что необходимо использовать Набор I/O или BSD APIs для доступа к устройству, обратите внимание на то, что Apple не обеспечивает интерфейсы Objective C для этого APIs. Однако, потому что это чистый APIs C, можно вызвать их из приложения Какао.
Другой APIs, обеспечивающий доступ к аппаратным средствам
Высокоуровневый OS X APIs, перечисленный здесь, обеспечивает некоторый доступ к аппаратным средствам и не требует использования служб I/O Kit. Этот список не является исчерпывающим. Указатель на документацию для этого APIs предоставлен, где доступный; иначе, ищите для последней документации в Ссылочной Библиотеке.
Сети BSD
Можно получить доступ к сетевым службам от пространства пользователя с помощью сокета BSD API.
socket
структура используется для отслеживания информацию о сети о на основание дескриптора файла: Приложения могут сослатьсяsocket
структура с помощью дескрипторов файлов.Для получения дополнительной информации о BSD снабжают API сокетом, относятся к
man
страницы. В Окне терминала ввестиman socket
. Для просмотра страниц справочника в HTML см. Страницы справочника OS X.Можно использовать функции файлового ввода-вывода POSIX для доступа к дискам, представленным как файлы устройств. Эти функции используют дескриптор файла, целочисленный индекс в список файлов, которые процесс имеет открытый к файлам доступа. Можно управлять дескрипторами файлов с помощью стандартных функций дескриптора файла, такой как
open
,close
,read
, иwrite
. Кроме того, можно использоватьfcntl
иioctl
функции для управления файлами и устройствами.Для получения дополнительной информации об этих функциях обратитесь к
man
страницы. Например, в Окне терминала, ввестиman open
илиman ioctl
. Для просмотра страниц справочника в HTML см. Страницы справочника OS X. Посмотрите Руководство по Доступу Файла устройств для Последовательных устройств и Руководство по Доступу Файла устройств для Устройств хранения для примеров того, как использовать функции дескриптора файла для доступа к этим устройствам.Менеджер событий Углерода обеспечивает подпрограммы, передающие пользовательские действия и дающие уведомление об изменениях в обработке состояния. Можно использовать менеджер событий Углерода, например, для получения информации о событиях от нажатия мыши и событиях клавиатуры.
Для получения дополнительной информации о менеджере событий Углерода, посмотрите События Углерода и Другую Входную Ссылочную Библиотеку.
Диспетчер печати Углерода определяет API, позволяющий приложениям распечатывать и в Mac OS 8 и в 9 с существующими драйверами принтера и в OS X с новыми драйверами принтера.
Для получения дополнительной информации о том, как любое приложение (даже неуглерода) может использовать функции Диспетчера печати Углерода, видеть, что Углерод Распечатывает Ссылочную Библиотеку.
API CFNetwork обеспечивает абстракции, позволяющие Вам легко работать с сокетами BSD, управлять информацией об удаленных узлах и работой с HTTP и Ftp-серверами.
Для получения дополнительной информации о API CFNetwork, см. Руководство по программированию CFNetwork.
Аудио HAL (Уровень аппаратной абстракции) в основе системы Core Audio и обеспечивает интерфейс между приложениями и аппаратными средствами. Аудио HAL позволяет приложениям управлять устройствами и через процедуру ввода/вывода для потоковой передачи и через механизм свойства для управления.
Для получения дополнительной информации об Аудио HAL в частности и Core Audio в целом, посмотрите Music & Audio Reference Library.
2D кварц и кварцевый наборщик
Кварцевый Наборщик (иногда называемый «Core Graphics Services» в более старой документации) состоит из сервера окна OS X и частных системных интерфейсов программирования (SPIs), это реализует. Это создает графический интерфейс пользователя OS X путем составления композита содержания от клиентских библиотек рендеринга графики, таких как 2D Кварц и QuickDraw.
Для получения дополнительной информации о Кварцевом Наборщике и об использовании 2D Кварца, посмотрите Graphics & Imaging Reference Library.
Файловый менеджер позволяет Вашему приложению получать доступ к файлам и папкам на физических устройствах хранения, таких как дисководы. Это поддерживает несколько форматов объема, включая HFS и HFS Плюс.
Для получения дополнительной информации о том, как использовать Файловый менеджер, посмотрите Ссылочную Библиотеку управления файлами Углерода.
Объект NSEvent, или просто событие, содержит информацию о входном действии, таком как щелчок мышью или ключ вниз. Набор Приложения Какао связывает каждое такое пользовательское действие с окном, сообщая о событии приложению, создавшему окно.
В версии 10.4 OS X приложения могут получить события планшета, такие как указание планшета и события близости планшета, как объекты NSEvent.
Для получения дополнительной информации о Какао и Наборе Приложения, посмотрите Ссылочную Библиотеку Какао.
Откройте Transport является Mac OS 8 и 9 API для доступа к сетям TCP/IP на транспортном уровне. Apple обеспечивает, Открывают Transport как библиотеку совместимости для поддержки миграции унаследованных приложений к OS X. Новые приложения Mac должны вместо этого использовать сокеты BSD или высокоуровневую Core Services и Базовую Основу APIs, такие как CFNetwork.
Для получения дополнительной информации об Откройте Transport, посмотрите, что Углерод Объединяет Ссылочную Библиотеку в сеть.
Информация об источнике питания
Можно получить информацию об источниках питания и UPS (источник бесперебойного питания) устройства с помощью источника питания Набора I/O API, расположенный в
/System/Library/Frameworks/IOKit.framework/Headers/ps
. Заголовочные файлы в этой папке,IOPowerSources.h
иIOPSKeys.h
, содержите методы и ключи для извлечения информации и о внешних и о внутренних источниках питания. Например, приложение может получить список присоединенных источников питания, уведомления запроса для изменений в его источниках питания, и определить, сколько питания оставляют в батарее.QuickTime является пакетом кода системного уровня, который высокоуровневое программное обеспечение может использовать для управления основанными на времени данными. QuickTime может обработать видеоданные, неподвижные изображения, изображения с анимацией (спрайты), векторная графика, многократные звуковые каналы, музыка MIDI, 3D объекты, обзоры виртуальной реальности и объекты, и даже текст. Например, можно использовать цифровой преобразователь видео QuickTime и компоненты видеовыхода для доступа к устройствам FireWire DV, таким как цифровые видеокамеры.
Для получения дополнительной информации о QuickTime посмотрите Ссылочную Библиотеку QuickTime.
(Для получения дополнительной информации на поддержке FireWire Apple, включая доступ к комплектам разработчика с интерфейсной устройством поддержкой, посмотрите http://developer .apple.com/hardwaredrivers/firewire/.)
Начинаясь с версии 10.2 OS X, менеджер по SCSI 4.3
SCSIAction
функция осуждается, несмотря на то, что она будет продолжать функционировать на предыдущих версиях OS X, пока пользователи не установят SCSI HBA (шинный контроллер) драйверы, разработанные с новой семьей SCSI Parallel API (поставленный с версией 10.2 OS X).Если Ваше приложение должно получить доступ к устройству Параллели SCSI, которое не было ранее доступно с интерфейсами устройства семьи Model архитектуры SCSI, и Ваше приложение требует совместимости с версиями OS X ранее, чем 10,2, Ваше приложение должно искать устройства SCSI с помощью и нового IOSCSITaskDeviceInterface и старого IOSCSIDeviceInterface APIs. Если пользователь установил новые драйверы HBA, новый IOSCSITaskDeviceInterface API найдет устройство, и Ваш код может использовать тот интерфейс для передачи с устройством. Если функция старого API преуспевает в том, чтобы найти устройство, это - потому что пользователь еще не установил новые драйверы HBA, и Ваш код должен использовать старый API для передачи с устройством.
Для получения дополнительной информации о том, как получить доступ к устройствам SCSI, посмотрите Руководство по Интерфейсу Устройства модели архитектуры SCSI.
Куда пойти отсюда
Если Вы решили, что аппаратные опции доступа перечислили в Другом APIs, Обеспечивающем, Доступ к Аппаратным средствам не удовлетворяют потребности Вашего приложения, можно использовать механизм интерфейса устройства, который много семейств устройства Набора I/O обеспечивают для доступа к устройству.
Если Вы незнакомы с механизмом интерфейса устройства, несомненно, считают следующую главу, Доступ к устройствам и Набор I/O, для получения дополнительной информации. Если Вы задаетесь вопросом, обеспечивает ли семья I/O Kit интерфейс устройства для Вашего устройства, посмотрите Поддержку Доступа к устройствам семьи Набора I/O.