[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Состояние батареи



Доброго времени суток уважаемые.

Есть задача получить информацию о состоянии батареи в приложении. Уровень заряда в частности, который понятное дело меняется во время использования.

Для получения информации о текущем заряде у нас есть acpi, sysfs и возможно что-то есть для dbus (его вообще рассматривать не будем).

При этом acpilib пользует sysfs для получения информации. Из этого следует, что для того, чтобы отслеживать уровень заряда надо либо переодичски дёргать тот-же acpi либо читать sysfs. Т.е. получается пулинг. Не очень красиво.

Далее есть laptop mode, в котором есть такое вот:

This module allows laptop mode to react to battery level changes, even if the battery does not send out frequent ACPI events for such battery level changes.

Note that this does NOT make ACPI-only features work on non-ACPI hardware.

Т.е. модуль может работать как в режиме пулинга, так и получать какие-то эвенты.

Собственно и вопрос, что это за эвенты, как на них подписаться и\или в какую сторону смотреть. Есть ли какая-то возможность подписаться на события от ядра? Оно ведь знает о состоянии батареи для того чтобы предоставлять его в sysfs.

Суть проста, не пулить постоянно состояние батареи (будь то через acpilib или sysfs), а делать это только тогда когда состояние действительно изменилось.

Заранее спасибо.
--
Best regards,
Dim


Reply to: