これは非常に簡単な質問ですが、アクア出力があるという事実にその単純さがあると思います。
/sys/class/power_supply
状況は、ホストされているファイルとシステムのバッテリ監視を管理するファイルをよりよく理解したいと思います。私の場合は、バッテリー付きのノートパソコンを使用していますが、そのディレクトリはにあります/sys/class/power_supply/BAT0
。ACアダプター/sys/class/power_supply/AC0
私が理解する限り、インターフェースはここ。
バッテリーインターフェース内でさまざまなファイルが見つかりました。
/sys/class/power_supply/BAT0$ ls
alarm model_name
capacity power
capacity_level present
charge_full serial_number
charge_full_design status
charge_now subsystem
current_now technology
cycle_count type
device uevent
hwmon2 voltage_min_design
manufacturer voltage_now
私はこれがcapacity
現在のバッテリー比を意味することを知っています。私も文脈を通して理解していますcapacity_level
。status
/sys/class/power_supply/BAT0$ cat capacity
81
/sys/class/power_supply/BAT0$ cat capacity_level
Normal
/sys/class/power_supply/BAT0$ cat status
Discharging
charge_full
ただし、または次のような他のファイルを理解できませんcharge_full_design
。charge_now
current_now
cycle_count
/sys/class/power_supply/BAT0$ cat charge_full
900000
/sys/class/power_supply/BAT0$ cat charge_full_design
4100000
/sys/class/power_supply/BAT0$ cat charge_now
630000
/sys/class/power_supply/BAT0$ cat current_now
1191000
/sys/class/power_supply/BAT0$ cat cycle_count
0
このコースでは、以前uevent
の各変数を見て、詳細を学ぶことができます。
POWER_SUPPLY_NAME=BAT0
POWER_SUPPLY_TYPE=Battery
POWER_SUPPLY_STATUS=Discharging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_CYCLE_COUNT=0
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=11400000
POWER_SUPPLY_VOLTAGE_NOW=11759000
POWER_SUPPLY_CURRENT_NOW=1089000
POWER_SUPPLY_CHARGE_FULL_DESIGN=4100000
POWER_SUPPLY_CHARGE_FULL=900000
POWER_SUPPLY_CHARGE_NOW=675000
POWER_SUPPLY_CAPACITY=75
POWER_SUPPLY_CAPACITY_LEVEL=Normal
POWER_SUPPLY_MODEL_NAME=standard
POWER_SUPPLY_MANUFACTURER=OEM
POWER_SUPPLY_SERIAL_NUMBER=00001
バッテリー容量のパーセンテージの明確な理解は、POWER_SUPPLY_CHARGE_NOW
(/sys/class/power_supply/BAT0/charge_now
)〜POWER_SUPPLY_CHARGE_FULL
(/sys/class/power_supply/BAT0/charge_full
)の計算から得られます:100 * 675000 / 900000 = 75。
しかし、これらの価値をどのように理解していますか?それはどこから出たのPOWER_SUPPLY_CHARGE_NOW
?上記の値の電圧に干渉がありますか?
答え1
Linux 電源装置クラスがどのように定義されるかを知りたい場合もあります。include/linux/power_supply.hLinuxカーネルのソースコードから。ここで説明されているデータ構造の値は、次のように表示されます/sys/class/power_supply/*
。
/*
* All voltages, currents, charges, energies, time and temperatures in uV,
* µA, µAh, µWh, seconds and tenths of degree Celsius unless otherwise
* stated. It's driver's job to convert its raw values to units in which
* this class operates.
*/
/*
* For systems where the charger determines the maximum battery capacity
* the min and max fields should be used to present these values to user
* space. Unused/unknown fields will not appear in sysfs.
*/
したがって、すべてのcharge_*
値はマイクロアンペア時の単位であり、current_now
単位はマイクロアンペアです。
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=11400000
POWER_SUPPLY_VOLTAGE_NOW=11759000
バッテリの最小設計電圧(=この電圧以下では決して放電されません)は11400000マイクロボルト= 11.4Vです。
現在の電圧レベルは11.759Vです。
POWER_SUPPLY_CURRENT_NOW=1089000
今バッテリーは1.089Aを提供します。
POWER_SUPPLY_CHARGE_FULL_DESIGN=4100000
POWER_SUPPLY_CHARGE_FULL=900000
POWER_SUPPLY_CHARGE_NOW=675000
新しいバッテリーの場合、バッテリーのフル充電容量は4.10アンペア時間であると主張しましたが、その後の性能が低下し、現在はフル充電容量は0.9アンペア時間に過ぎません。現在0.675アンペア時間が残っています。
したがって、現在のバッテリから流れる電流を基準に簡単に推定すると、0.675 Ah / 1.089 A =約0.62時間、つまり約37分程度の残りの充電時間になります。
ファイルpower_supply.h
には、さまざまな値の意味を直接説明する他の有益な説明がたくさんあります。このコメントを読んでみたいかもしれません。