2016-02-19 157 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 =(uptime /%_ 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%的時候?對我來說似乎很奇怪...... – Murphy

+0

它們是不同情況或不同電池的示例(不在我頭頂)。他們對同一檯筆記本電腦沒有意義,所以請選擇其他輸入並查看輸出是否有意義。 – marklark

1

要計算剩餘時間,使用POWER_SUPPLY_CHARGE_NOW/POWER_SUPPLY_CURRENT_NOW這將讓你離開秒。

現在是消費率的快照,現在收費是剩餘金額。使用acpi -b會給你相同的答案。