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

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



D.Himro <d.himro@yahoo.com> wrote:
> Доброго времени суток уважаемые.

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

> Для получения информации о текущем заряде у нас есть 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.

> Т.е. модуль может работать как в режиме пулинга, так и получать какие-то 
> эвенты.
Это всего-лишь означает, что модуль "возможно будет получать ACPI эвенты от
батарейки". А на деле - зависит от кривости ACPI в железке.

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

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


Reply to: