IOPMPowerSource
См. IOKit/pwr_mgt/IOPM.h для ключей источника питания, относящихся к этому классу. Эти ключи типа отчета требуются для вызовов к IOPMPowerSource:: setReportables (), и они определяют интерфейс IORegistry, через который данные пасуются назад до остальной части системы.
Драйвер разделения на подклассы, не хотящий делать что-либо необычное, должен:
Подкласс IOPMPowerSource
Установите его собственные уведомления замены батареи или опрос подпрограммы, которая может разговаривать с фактическими аппаратными средствами батареи.
Когда изменения состояния батареи, замените соответствующие задействованные переменные через setCurrentCapacity () средства доступа стиля.
Вызовите updateStatus () на себе, когда будут обновлены все такие настройки.
Драйвер подкласса должен также первоначально заполнить свои настройки и вызвать updateStatus () на запуске.
Настройки:
ExternalConnectedType: boolIORegistry Key: kIOPMPSExternalConnectedKeyTrue if computer is drawing external powerExternalChargeCapableType: boolIORegistry Key: kIOPMPSExternalChargeCapableKeyTrue if external power is capable of charging internal batteryBatteryInstalledType: boolIORegistry Key: kIOPMPSBatteryInstalledKeyTrue if a battery is present; false if removedIsChargingType: boolIORegistry Key: kIOPMPSIsChargingKeyTrue if battery is charging itself from external powerAtWarnLevelType: boolIORegistry Key: kIOPMPSAtWarnLevelKeyTrue if draining battery capacity and past warn levelAtCriticalLevelType: boolIORegistry Key: kIOPMPSAtCriticalLevelKeyTrue if draining battery capacity and past critical levelCurrentCapacityMaxCapacityType: unsigned intIORegistry Key: kIOPMPSCurrentCapacityKey, kIOPMPSMaxCapacityKeyCapacity measured in mAhTimeRemainingType: intIORegistry Key: kIOPMPSTimeRemainingKeyTime remaining measured in minutesAmperageType: intIORegistry Key: kIOPMPSAmperageKeyCurrent is measured in mAVoltageType: unsigned intIORegistry Key: kIOPMPSVoltageKeyVoltage measured in mVCycleCountType: unsigned intIORegistry Key: kIOPMPSCycleCountKeyNumber of charge/discharge cyclesAdapterInfoType: intIORegistry Key: kIOPMPSAdapterInfoKeyPower adapter informationLocationType: intIORegistry Key: kIOPMPSLocationKeyClue about battery's location in machine - Left vs. RightErrorConditionType: OSSymbolIORegistry Key: kIOPMPSErrorConditionKeyString describing error state of batteryManufacturerType: OSSymbolIORegistry Key: kIOPMPSManufacturerKeyString describing battery manufacturerManufactured DateType: unsigned 16-bit bitfieldIORegistry Key: kIOPMPSManufactureDateKeyDate is published in a bitfield per the Smart Battery Data spec rev 1.1in section 5.1.26Bits 0...4 => day (value 1-31; 5 bits)Bits 5...8 => month (value 1-12; 4 bits)Bits 9...15 => years since 1980 (value 0-127; 7 bits)ModelType: OSSymbolIORegistry Key: kIOPMPSModelKeyString describing model numberSerialType: OSSymbolIORegistry Key: kIOPMPSSerialKeyString describing serial number or unique infoThe serial number published hear bears no correspondence to the Apple serialnumber printed on each battery. This is a manufacturer serial number withno correlation to the printed serial number.LegacyIOBatteryInfoType: OSDictionaryIORegistry Key: kIOPMPSLegacyBatteryInfoKeyDictionary conforming to the OS X 10.0-10.4
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.0 и позже.
-
Создает новый кусок IOPMPowerSource. Должен быть присоединен к IORegistry, и зарегистрированный провайдером.
Объявление
C++
static IOPMPowerSource *powerSource(void); -
Объявление
C++
void setPSProperty( const OSSymbol *, OSObject *);Обсуждение
Все эти методы направляют через универсальный метод доступа setPSProperty. Вызывающая сторона может передать в любом произвольном ключе OSSymbol, и то значение будет сохранено в словаре настроек премьер-министра и передано на IORegistry во время обновления.
-
Когда состояние батареи изменилось значительно, должен быть вызван физическим контроллером батареи.
Объявление
C++
virtual void updateStatus(void);Обсуждение
Система не опросит этот объект относительно обновлений батареи. Скорее \контроллер батареи должен вызвать updateStatus () каждый раз, когда изменения состояния \и настройки будут переданы к более высоким уровням управления питанием. \драйвер разделения на подклассы должен переопределить это, только если драйвер должен добавить \новые настройки к базовому классу.
-
Используемый подклассами, чтобы определить, были ли какие-либо настройки изменены через средства доступа ниже начиная с последней возможности обновить (). истина является настройками, изменились; ложь иначе.
Объявление
C++
bool settingsChangedSinceUpdate; -
Используемый подклассами, чтобы определить, были ли какие-либо настройки изменены через средства доступа ниже начиная с последней возможности обновить (). истина является настройками, изменились; ложь иначе.
Объявление
C++
bool settingsChangedSinceUpdate; -
Состояние источника питания хранилищ
Объявление
C++
OSDictionary *properties;
