バッテリー状態を取得する実装方法について記述する。
/proc/acpi/battery/BAT1/state の情報を参照する
電源が接続されているとき
% cat /proc/acpi/battery/BAT1/state present: yes capacity state: ok charging state: charged present rate: 0 mW remaining capacity: 83520 mWh present voltage: 8406 mV
電源が接続されていないとき
% cat /proc/acpi/battery/BAT1/state present: yes capacity state: ok charging state: discharging present rate: 13440 mW remaining capacity: 83490 mWh present voltage: 8318 mV
電源が接続されていないときの残り時間は、
"remaining capacity" / "present rate" [h]
とする。
また、充電割合の計算は /proc/acpi/battery/BAT1/info を用いて
% cat /proc/acpi/battery/BAT1/info present: yes design capacity: 83520 mWh last full capacity: 83520 mWh battery technology: rechargeable design voltage: 7200 mV design capacity warning: 7510 mWh design capacity low: 1000 mWh capacity granularity 1: 10 mWh capacity granularity 2: 10 mWh model number: CF-VZSU59 serial number: 01122 battery type: LION OEM info: Panasonic
の値を用いて
100.0 * "remaining capacity" / "last full capacity" [%]
とする。
GetSystemPowerStatus() を使う
となる。