
Тестовая лаборатория «Компостера» представила очередной инженерный релиз утилиты PowerInfo, обеспечивающей мониторинг состояния подсистемы электропитания, в частности UPS и батарей ноутбуков. Изменения коснулись в основном подачи информации: данные о питании платформы разнесены по закладкам Power Status и Battery Details.
Реализованы 32-х и 64-битные варианты
Утилита доступна в вариантах для 32 и 64-битных ОС Microsoft Windows. Так как Win64 способна запускать 32-битные приложения в режиме совместимости, 32-битная редакция должна быть универсальной для 32 и 64-битных ОС. В отличие, например от бенчмарок оперативной памяти или процедур идентификации процессора, взаимодействие с программно-доступными ресурсами подсистемы электропитания не содержит операций, для которых возможностей 32-битного процессора и ОС было бы недостаточно. С другой стороны, несмотря на положительный результат проверки совместимости 32-битной версии утилиты с 64-битной ОС, мы все же рекомендуем для 64-битных ОС использовать 64-битный вариант утилиты, поскольку (гипотетически) существуют ограничения в работе некоторых функций Power Management API и IOCTL в 32-битном режиме совместимости. Чтобы не критиковать Microsoft напрасно, еще раз отметим, что данный тезис — исключительно наша перестраховка. Фактов, подтверждающих такие опасения, на данный момент не выявлено.
Представление информации
Параметры в левой закладке Power status отражают текущее состояние электропитания. Визуализируются динамически при изменении состояния во время просмотра.

Рис 1. Состояние подсистемы электропитания мобильной платформы Dell Latutude E6430s
Параметры в правой закладке Battery details несут информацию о батарее. Выбор одной из анализируемых батарей осуществляется посредством меню Battery enumeration path, содержащей информацию об устройстве в формате, принятом для функций IOCTL (Input-Output Control) операционной системы.

Рис 2. Информация о состоянии аккумуляторных батарей ноутбука Dell Latutude E6430s
В отличие от визуализируемой динамически Power status, закладка Battery details и список найденных батарей формируется один раз при старте программы. Автоматическую визуализацию при горячем подключении и отключении источников питания, а также изменении их параметров, планируется реализовать в последующих версиях программы.
Power status – текущее состояние электропитания
Закладка формируется на основе параметров, возвращаемых WinAPI функцией GetSystemPowerStatus. Сохранены оригинальные имена параметров, приведенные в описании этой функции в MSDN. С этим обстоятельством связан пропуск пробелов в некоторых строках.

Рис 3. Закладка Power Status информирует о состоянии источника бесперебойного питания
ACLineStatus
Текущее состояние электропитания. Online означает питание от электросети, Offline означает питание от батареи в условиях отсутствия напряжения электросети.
BatteryFlag
Набор индикаторов для состояний: уровень заряда батареи более 66 процентов, менее 33 процентов, критический. А также режим заряда (charging), собственно факт наличия батареи и возможность программно определить ее состояние.
BatteryLifePercent
Текущий уровень заряда батареи в процентах. Увеличение этого параметра при заряде и уменьшение при разряде батареи, визуализируется динамически.
SystemStatusFlag
Индицирует активность режима энергосбережения, позволяющего увеличить длительность работы мобильного устройства от батареи. Как правило, такой режим реализуется за счет снижения производительности. Значения Battery saver is OFF, Battery saver ON, характеризуют состояние в текущий момент времени. Конкретные действия, предпринимаемые контроллером электропитания определяются схемотехникой последнего и особенностями драйверов, что определяет Vendor-Specific политику энергосбережения.
BatteryLifeTime
Ожидаемое время работы системы от батареи, при текущем уровне заряда. В силу особенностей реализации подсистемы мониторинга, этот параметр может становится доступным в случае отключения сетевого электропитания. Значение -1 означает, что измерение в данный момент выполнить нельзя.
BatteryFullLifeTime
Ожидаемое время работы системы от батареи, при условии полного заряда батареи. Отметим, что точное определение для этого и предыдущего параметра невозможно, даже в случае идеально точной оценки состояния батареи, поскольку заранее неизвестен уровень потребления энергии системой и его изменение во времени. Очевидно, имеет место зависимость от действий пользователя, например запуска ресурсоемких приложений.
Battery details – детальная информация о батарее
Закладка формируется на основании информации, полученной посредством интерфейса IOCTL (Input-Output Control). Строка, содержащая системное имя устройства, которым оперирует нумератор IOCTL, визуализируется в строке Battery enumeration path. В зависимости от архитектуры и интеллекта подсистемы электропитания, информация может относиться к конкретной батарее, источнику бесперебойного питания в целом, либо программно формироваться драйвером без получения данных из физического устройства.

Рис 4. Закладка Battert Details информирует о состоянии батарей Smart-UPS 750XL
Battery tag
Идентификатор, обеспечивающий адресацию ресурсов подсистемы электропитания в рамках операций IOCTL.
Battery model
Модель батареи, возвращается как текстовая строка.
Battery vendor
Название компании производителя батареи, возвращается как текстовая строка.
Manufacture date
Дата выпуска батареи. Возвращается в числовом виде и декодируется программой. Для источников бесперебойного питания, как правило возвращается дата выпуска устройства, поскольку батареи UPS не поддерживают канал передачи данных и программное чтение даты выпуска. Замечено, что драйверы, работающие в составе некоторых серверных ОС, возвращают текущую дату.
Serial number
Серийный номер батареи. Возвращается в виде текстовой строки. Достаточно часто этот параметр недоступен.
Unique ID
Уникальный идентификатор батареи. Возвращается в виде текстовой строки. Теоретически, может использоваться для фиксации программным обеспечением факта замены батареи. На практике, достаточно часто этот параметр недоступен. Иногда его содержимое повторяет серийный номер.
Battery chemistry
Электрохимический тип батареи. На серверных и виртуализованных системах, данный параметр может быть изменен или недоступен. Например, Oracle Virtual Box возвращает строку «VBOX».
Battery technology flag
Отражает возможность (Rechargeable) или невозможность (Nonrechargeable) перезаряда батареи.
Battery designed capacity
Емкость батареи, определенная при ее разработке. Опционально, может быть представлена в милливатт-часах (mWh) либо условных баллах. Замечено также, что ряд серверных платформ используют формат представления данного параметра, не описанный в базе знаний MSDN. Данное обстоятельство является предметом исследований с целью адекватной поддержки в следующих версиях программы.
Battery full charged capacity
Емкость батареи, доступная в ее текущем состоянии (уровень, до которого ее возможно зарядить, с учетом текущего износа, не путать с уровнем, до которого она в данный момент заряжена, это другой параметр Current capacity). Опционально, может быть представлена в милливатт-часах (mWh) либо условных баллах. На основании сравнения этого параметра с предыдущим, можно определить степень износа батареи.
Default alert level #1
Параметр для формирования предупреждения, предполагается, что при снижении заряда батареи до данного уровня, формируется системное сообщение. Реакция на данное событие, а также соотношение между уровнями level #1, level #2 (см. также следующий параметр), является Vendor-Specific характеристикой.
Default alert level #2
Параметр для формирования предупреждения, предполагается, что при снижении заряда батареи до данного уровня, формируется системное сообщение. Реакция на данное событие, а также соотношение между уровнями level #1, level #2 (см. также предыдущий параметр), является Vendor-Specific характеристикой.
Critical bias
Критический уровень заряда, при достижении которого батарея считается полностью разряженной и отключается от нагрузки, во избежание разрушения в результате необратимых химических процессов. Возможны Vendor-Specific различия в интерпретации этого параметра.
Cycle count
Количество выполненных циклов перезаряда. Далеко не все устройства обеспечивают возможность программного чтения для данного и ряда следующих параметров.
Battery temperature
Текущая температура батареи. Программа переводит значение, возвращаемое в Кельвинах, в градусы Цельсия. К сожалению, подход к формированию данного, весьма информативного и существенного параметра может различаться у разных производителей, включая варианты представления, не документированные в базе знаний MSDN.
Current power state
Ряд флагов, характеризующих текущее состояние электропитания. Online: устройство подключено к сети, Charging, Discharging: процессы заряда и разряда батареи, Critical: критический уровень заряда батареи: гарантированное питание с использованием данной батареи, без ее подзарядки, невозможно.
Current capacity
Текущая заряженная емкость батареи (уровень, до которого она в данный момент заряжена, не путать с уровнем, до которого она может заряжаться как функция текущего уровня износа, это другой параметр, Battery full charged capacity).
Current voltage
Текущее напряжение батареи в вольтах. К сожалению, подход к формированию данного, весьма информативного и существенного параметра может различаться у разных производителей, включая варианты представления, не документированные в базе знаний MSDN.
Current rate
Текущая скорость заряда или разряда в милливаттах в час. Положительная величина соответствует заряду, отрицательная — разряду.
Загрузить PowerInfo
Скачать утилиту PowerInfo v0.82, предназначенную для информирования пользователя о подсистеме электропитания можно прямо с нашего сайта. На сегодня доступна кроссплатформенная Java-версия, поддерживающая 32 и 64-битные ОС Microsoft Windows и Linux. Замечания и предложения о ее работе приветствуются.