IOPMPowerSource
См. IOKit/pwr_mgt/IOPM.h для ключей источника питания, относящихся к этому классу. Эти ключи типа отчета требуются для вызовов к IOPMPowerSource:: setReportables (), и они определяют интерфейс IORegistry, через который данные пасуются назад до остальной части системы.
Драйвер разделения на подклассы, не хотящий делать что-либо необычное, должен:
Подкласс IOPMPowerSource
Установите его собственные уведомления замены батареи или опрос подпрограммы, которая может разговаривать с фактическими аппаратными средствами батареи.
Когда изменения состояния батареи, замените соответствующие задействованные переменные через setCurrentCapacity () средства доступа стиля.
Вызовите updateStatus () на себе, когда будут обновлены все такие настройки.
Драйвер подкласса должен также первоначально заполнить свои настройки и вызвать updateStatus () на запуске.
Настройки:
ExternalConnected
Type: bool
IORegistry Key: kIOPMPSExternalConnectedKey
True if computer is drawing external power
ExternalChargeCapable
Type: bool
IORegistry Key: kIOPMPSExternalChargeCapableKey
True if external power is capable of charging internal battery
BatteryInstalled
Type: bool
IORegistry Key: kIOPMPSBatteryInstalledKey
True if a battery is present; false if removed
IsCharging
Type: bool
IORegistry Key: kIOPMPSIsChargingKey
True if battery is charging itself from external power
AtWarnLevel
Type: bool
IORegistry Key: kIOPMPSAtWarnLevelKey
True if draining battery capacity and past warn level
AtCriticalLevel
Type: bool
IORegistry Key: kIOPMPSAtCriticalLevelKey
True if draining battery capacity and past critical level
CurrentCapacity
MaxCapacity
Type: unsigned int
IORegistry Key: kIOPMPSCurrentCapacityKey, kIOPMPSMaxCapacityKey
Capacity measured in mAh
TimeRemaining
Type: int
IORegistry Key: kIOPMPSTimeRemainingKey
Time remaining measured in minutes
Amperage
Type: int
IORegistry Key: kIOPMPSAmperageKey
Current is measured in mA
Voltage
Type: unsigned int
IORegistry Key: kIOPMPSVoltageKey
Voltage measured in mV
CycleCount
Type: unsigned int
IORegistry Key: kIOPMPSCycleCountKey
Number of charge/discharge cycles
AdapterInfo
Type: int
IORegistry Key: kIOPMPSAdapterInfoKey
Power adapter information
Location
Type: int
IORegistry Key: kIOPMPSLocationKey
Clue about battery's location in machine - Left vs. Right
ErrorCondition
Type: OSSymbol
IORegistry Key: kIOPMPSErrorConditionKey
String describing error state of battery
Manufacturer
Type: OSSymbol
IORegistry Key: kIOPMPSManufacturerKey
String describing battery manufacturer
Manufactured Date
Type: unsigned 16-bit bitfield
IORegistry Key: kIOPMPSManufactureDateKey
Date is published in a bitfield per the Smart Battery Data spec rev 1.1
in section 5.1.26
Bits 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)
Model
Type: OSSymbol
IORegistry Key: kIOPMPSModelKey
String describing model number
Serial
Type: OSSymbol
IORegistry Key: kIOPMPSSerialKey
String describing serial number or unique info
The serial number published hear bears no correspondence to the Apple serial
number printed on each battery. This is a manufacturer serial number with
no correlation to the printed serial number.
LegacyIOBatteryInfo
Type: OSDictionary
IORegistry Key: kIOPMPSLegacyBatteryInfoKey
Dictionary 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;