Управление питанием для Macintosh; начало работы
Управление питанием - то, что часть Mac OS X и Mac OS 9, который обеспечивает функциональность для компьютера, чтобы спать и проснуться для приложений и драйверов для регистрации для события питания, и больше...
Но где Вы находите весь связанный материал?
Это Техническое примечание предназначается, чтобы помочь Вам определить местоположение различных заголовочных файлов Управления питанием, документации, Дарвинских источников, примеров кода и Комплектов разработчика, доступных разработчикам.
Определение местоположения заголовочных файлов управления питанием
Если Вы разрабатываете приложение Mac OS X, использующее управление питанием, Ваши заголовочные файлы расположены в этом абсолютном пути.
/System/Library/Frameworks/IOKit.framework/Versions/A/Headers/pwr_mgt Посмотрите рисунок 1 Управление питанием, DDK для Mac OS X содержит различные выборки, показывающие Вам, как использовать заголовочные файлы в этой категории. Используйте эти заголовочные файлы, если Вы разрабатываете из UNIX, Какао и среды Углерода.
Однако при использовании Углерода существует также один другой Mac OS 9 требуемых заголовочных файлов. Этот заголовочный файл является power.h и расположен в этом абсолютном пути./System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/Headers/Power.h

Если Вы разрабатываете драйвер устройства в ядре (KEXT), использующий управление питанием, заголовочные файлы, в которых Вы нуждаетесь, расположены в этих двух абсолютных путях. APIs является частью IOService.h.
/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/IOKit/IOService.h Посмотрите, что рисунок 3/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/IOKit/pwr_mgt видит рисунок 2



Определение местоположения Дарвинских файлов управления питанием
Существует три Дарвинских подпроекта, имеющие дело с Управлением питанием: IOKitUser, PowerManagement и xnu.
Подпроект IOKitUser/pwr_mgt (http://www.opensource.apple.com/darwinsource/10.2.6/IOKitUser/pwr_mgt.subproj/) содержит пространство пользователя APIs и примеры приложения.
Подпроект PowerManagement (http://www.opensource.apple.com/darwinsource/10.2.6/PowerManagement/) содержит поддержку бэкэнда пространства пользователя. В этом проекте нет никакого APIs, но pmset исходный код содержится в этом подпроекте.
подпроект xnu (http://www .opensource.apple.com/darwinsource/10.2.6/xnu/iokit/IOKit/pwr_mgt/) содержит интерфейс ядра.
Определение местоположения комплектов разработчика управления питанием
Существует два Комплекта разработчика Управления питанием, один для Mac OS X и один для Mac OS 9 как показано на рисунке 3. Используйте этот URL для определения местоположения этих наборов.
(http://developer .apple.com/sdk/index.html)

Определение местоположения документации управления питанием
Управление питанием описано в Главе 10 В Mac OS X: Основные принципы Набора I/O. Можно просмотреть этот документ в http://developer .apple.com/documentation/Darwin/#IOKit, Это - также часть Разработчика SDK. Когда Ваш Разработчик, SDK установлен, можно определить местоположение его через этот путь.
/Developer/Documentation/Darwin/IOKit/IOKitFundamentals
Определение местоположения инструментов управления питанием
Существует много инструментов OS X для чтения и записи параметров управления питанием. Эти инструменты являются частью OS X Управления питанием DDK. Существует два инструмента интереса, названного pmset и SleepCycler, который должен быть упомянут здесь.
pmset является инструментом командной строки, обходящим энергетические Установки системы Средства сохранения. Это выполняется как корень и предназначается для тестирования. См. страницы справочника для подробных данных. Вот резюме для pmset:
«изменения pmset и настройки управлением электропитанием чтений, такие как неактивная синхронизация сна, проснитесь на административном доступе, автоматическом перезапуске на потерях мощности, и т.д.»
SleepCycler является приложением, постоянно циклически повторяющим Вашу машину от состояния 'активных' (т.е., 'несон'), чтобы 'спать' (или 'дремота' для машин, не поддерживающих 'глубокий сон').
Прежде всего SleepCycler был разработан к программному обеспечению Системы управления питанием стресс-теста в Mac OS X. Это также полезно начиная с него поведение Управления питанием драйвера устройства стресс-тестов, а также полное поведение системы.
Управление питанием и Ваша среда разработки
Независимо от Вашей среды разработки (Углерод, Какао, Ядро или UNIX) Управление питанием DDK для Mac OS X имеет некоторые очень простые примеры для запущения Вас. После установки DDK можно найти выборки в папке под названием Регистр для Сна (как показано на рисунке 4). Чтобы упростить выбирать правильный код для Ваших потребностей, выборки располагаются в подпапках, соответствующих различным средам разработки.

Все примеры делают ту же вещь. Они регистрируются для сна и обеспечивают подпрограмму обратного вызова. Независимо от Вашей среды эти примеры служат необходимыми основами, заголовочными файлами и другими средствами управления для быстрого создания примеров. Проверьте их путем загрузки DDK.
Основные глюки управления питанием
На основе вопросов об управлении питанием, представленных Разработке DTS, вот список некоторых общих разработчиков ситуаций, обнаруживают во время их цикла разработки.
Углерод и оба диспетчера электропитания
Если Вы разрабатываете для Углерода, необходимо знать, что нет просто заголовков диспетчера электропитания Mac OS X, существует также Mac OS 9 заголовков. Они не то же. Все другие среды разработки только должны использовать заголовки Mac OS X. Углерод power.h заголовки является устаревшим и не полностью реализован в Mac OS X, но является необходимым для Mac OS 9.
Влиятельный политик по сравнению с контроллером мощности
Глава 10 Основных принципов Набора I/O содержит подробное объяснение того, что эти два условия среднее значение и как они взаимодействуют. Однако краткое описание поможет Вам начать. Оба объекта, живые в ядре, но влиятельном политике, имеет интерфейс пользователя в энергетических Установках системы Средства сохранения как показано на рисунке 5.

Пользователь использует Системное Предпочтение Средства сохранения Engery, чтобы связаться с влиятельным политиком и установить энергетические предпочтения. Контроллер мощности находится в KEXT и берет свои заказы от влиятельного политика. Эти «заказы» состоят из событий питания, таких как сон. Несмотря на то, что Вы никогда не будете, вероятно, реализовывать влиятельного политика при разработке драйвера устройства, необходимо будет реализовать контроллер мощности. Это вызвано тем, что только драйвер устройства знает, как удалить питание из устройства, таким образом, это может безопасно спать. Поскольку Вы читаете Главу 10 Основных принципов Набора I/O, можно хотеть просмотреть информацию о влиятельном политике и концентрат вместо этого на материале контроллера мощности.
Сон означает сон; не приостанавливают или завершают работу
Разработка DTS заметила, что разработчики от UNIX или фона Windows могут использовать различную терминологию для «сна», чем традиционные разработчики Macintosh. Вот определение сна от Справки SleepCycler для Вашего удобства. SleepCycler расположен на Управлении питанием DDK для Mac OS X.
Существует два различных типов сна, в настоящее время поддерживаемого в Mac OS X - полный сон (глубокий сон) и более легкая дремота.
В целом машины, полностью поддерживающие Управление питанием, будут спать, в то время как те, которые не делают, будут дремать.
В состоянии сна почти все аппаратные средства кроме минимальных требуемых вещей как PMU (Блок управления питанием) приостановлены/повернуты прочь, включая CPU - это означает, что процессы не планируются или выполняются.
Большинство машин, официально поддерживающих Mac OS X, способно ко сну, однако несколько машин, таких как исходные iMac (пред загрузка слота) и Син/Бело-бежевый G3s не полностью поддерживают сон, и таким образом дремлют.
В спящем режиме приостановлены все устройства, которые способны к управлению питанием (как сообщается их драйверами), но те, которые утверждают, что не были управляемы питанием, не временно отстранены, и таким образом препятствуют тому, чтобы спала целая машина.
OS выключает как можно больше остальных устройств, однако, CPU остается работать, и таким образом программы все еще активно планируются и выполнение.
Почему не будет спать эта машина?
Существует много допустимых причин, почему машина не будет спать (см. Диспетчера электропитания OS X DDK для подробных данных). Однако, все эти причины попадают в одну широкую категорию: действие от других событий в многозадачной среде. В то время как отладка Ваших приложений и аппаратных средств пытается сделать так от мягкой среды. Другими словами, выключите все энергетические Предпочтения Средства сохранения (если возможный), и не запускайте ненужные приложения. Дополнительные приложения могут «щекотать» таймеры действия, которые могут предотвратить Вашу машину от сна IDLE.
Сохраните свое настольное покрытие закрытым...
при отладке устройства PCI. Многим из нас нравится иметь корпус, открытый, чтобы видеть, что LEDs мерцает на наших устройствах PCI. Визуальная обратная связь является большой при отладке. Вы знали, однако, что «немного», компьютерные корпуса имеют пультовый переключатель, когда открытый отключающий управление питанием от функционирования? Это могло означать событие сна, что Вы ожидаете происходить, когда Вы выполнитесь, строка кода «сна» будет проигнорирована Питанием Managment, потому что корпус открыт. Наличие открытого корпуса может препятствовать тому, чтобы аппаратные тепловые датчики действовали, заставляя Управление питанием проигнорировать события сна.
Мое устройство PCI паникует во время следа
Это обычно, потому что Ваше устройство не регистрируется для событий питания. Когда событие сна имеет место, питание удалено из шины PCI, и поэтому Ваше устройство должно будет быть повторно инициализировано, когда событие следа будет иметь место.
Куда пойти отсюда
Два места приходят на ум. Ни в каком порядке попробуйте Главу 10 Основных принципов Набора I/O. Диспетчер электропитания DDK является также другим источником выборок, инструментов, и т.д.
Удача с Вашим усилием по разработке. Разработка DTS
История версии документа
| Дата | Примечания |
|---|---|
| 30.05.2003 | Новый документ, обрисовывающий в общих чертах доступную документацию и ее расположение для управления питанием на Mac OS X и OS 9. |