2016-02-19 2 views
0

Я хочу рассчитать время, пока аккумулятор в моем ноутбуке не разрядится. Данные, которые я могу использовать доступен через sysfs, но я не уверен, какие файлы и алгоритм использования:Вычислить оставшееся время до разряда батареи?

$ ls /sys/class/power_supply/BAT0/ | sort 
alarm 
charge_full 
charge_full_design 
charge_now 
current_now 
cycle_count 
device 
manufacturer 
model_name 
power 
present 
serial_number 
status 
subsystem 
technology 
type 
uevent 
voltage_min_design 
voltage_no 

Что такое правильный алгоритм для определения времени, оставшегося в часах и минутах, прежде чем батарея разряжена?

+1

Попробуйте что-то вроде: charge_now/charge_full =% _left, time_left = (время безотказной работы /% _ слева) - время безотказной работы; (Я просто вытаскиваю его из уха - он выглядит близко в нескольких быстрых случаях) – marklark

ответ

1

Чтобы развернуть на мой комментарий выше ...

charge_now = 75% (случай 1), 25% (случай 2)

charge_full = 100% Провел = 2 часа

= >% _used = 0,75 (случай 1), 25% (пример 2)

(случай 1) TIME_LEFT = (2 часа/0,75) - 2 часа = (2,67 - 2) часов

(случай 2) time_left = (2 часа/0.25) - 2 часа = (8 - 2) часа

Ваш пробег может варьироваться ...: ^)

+0

2 часа безотказной работы, плата составляет 25%, а 6 часов осталось? А на 75% 0,67 часа осталось? Кажется странным для меня ... – Murphy

+0

Это примеры (с моей головы) для разных ситуаций или разных батарей. Они не имеют смысла для одного и того же ноутбука, поэтому выберите некоторые другие входы и посмотрите, есть ли на выходе. – marklark

1

Чтобы рассчитать оставшееся время, используйте POWER_SUPPLY_CHARGE_NOW/POWER_SUPPLY_CURRENT_NOW Это поможет вам секунд осталось.

Текущий текущий снимок потребления, а теперь плата за оставшееся количество. Используя acpi -b, вы получите тот же ответ.

Смежные вопросы