APM ばってりーもにたー
 All Classes Files Functions Variables Enumerations Enumerator Pages
バッテリー状態の取得について

バッテリー状態を取得する実装方法について記述する。

Linux

/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" [%] 

とする。

Windows

GetSystemPowerStatus() を使う

SYSTEM_POWER_STATUS status;
if (! GetSystemPowerStatus(&status)) {
return false;
}

となる。

Mac OS