diff options
author | Emeric Planet <emeric.planet@gmail.com> | 2017-04-13 21:46:21 +0200 |
---|---|---|
committer | Michael Stapelberg <stapelberg@users.noreply.github.com> | 2017-04-13 21:46:21 +0200 |
commit | c7dea747519f99584002084df3dce546f37df8b5 (patch) | |
tree | 4315dd2be5fde515a6c590c903b43efd557a1de8 | |
parent | 94651257cea4ff419f9cf2143d93193d5a5ccb96 (diff) |
Add battery capacity parsing (#216)
The Linux power supply class defines three entries to provide battery status.
One of them wasn't used: POWER_SUPPLY_CAPACITY.
https://www.kernel.org/doc/Documentation/power/power_supply_class.txt
-rw-r--r-- | src/print_battery_info.c | 4 | ||||
-rw-r--r-- | testcases/014-battery-capacity/expected_output.txt | 1 | ||||
-rw-r--r-- | testcases/014-battery-capacity/i3status.conf | 13 | ||||
-rw-r--r-- | testcases/014-battery-capacity/uevent | 7 | ||||
-rw-r--r-- | testcases/015-battery-capacity/expected_output.txt | 1 | ||||
-rw-r--r-- | testcases/015-battery-capacity/i3status.conf | 13 | ||||
-rw-r--r-- | testcases/015-battery-capacity/uevent | 10 |
7 files changed, 49 insertions, 0 deletions
diff --git a/src/print_battery_info.c b/src/print_battery_info.c index 7883a11..f15cbfa 100644 --- a/src/print_battery_info.c +++ b/src/print_battery_info.c @@ -138,9 +138,13 @@ static bool slurp_battery_info(struct battery_info *batt_info, yajl_gen json_gen if (BEGINS_WITH(last, "POWER_SUPPLY_ENERGY_NOW=")) { watt_as_unit = true; batt_info->remaining = atoi(walk + 1); + batt_info->percentage_remaining = -1; } else if (BEGINS_WITH(last, "POWER_SUPPLY_CHARGE_NOW=")) { watt_as_unit = false; batt_info->remaining = atoi(walk + 1); + batt_info->percentage_remaining = -1; + } else if (BEGINS_WITH(last, "POWER_SUPPLY_CAPACITY=") && batt_info->remaining == -1) { + batt_info->percentage_remaining = atoi(walk + 1); } else if (BEGINS_WITH(last, "POWER_SUPPLY_CURRENT_NOW=")) batt_info->present_rate = abs(atoi(walk + 1)); else if (BEGINS_WITH(last, "POWER_SUPPLY_VOLTAGE_NOW=")) diff --git a/testcases/014-battery-capacity/expected_output.txt b/testcases/014-battery-capacity/expected_output.txt new file mode 100644 index 0000000..3f97d1b --- /dev/null +++ b/testcases/014-battery-capacity/expected_output.txt @@ -0,0 +1 @@ +Touchpad: 100.00% BAT
\ No newline at end of file diff --git a/testcases/014-battery-capacity/i3status.conf b/testcases/014-battery-capacity/i3status.conf new file mode 100644 index 0000000..d48aa50 --- /dev/null +++ b/testcases/014-battery-capacity/i3status.conf @@ -0,0 +1,13 @@ +general { + output_format = "none" +} + +order += "battery 1" + +battery 1 { + format = "Touchpad: %percentage %status %remaining" + format_down = "No touchpad" + path = "/sys/class/power_supply/hid-ff:ff:ff:ff:ff:ff-battery/uevent" + path = "testcases/014-battery-capacity/uevent" + low_threshold = 10 +} diff --git a/testcases/014-battery-capacity/uevent b/testcases/014-battery-capacity/uevent new file mode 100644 index 0000000..5f06cc9 --- /dev/null +++ b/testcases/014-battery-capacity/uevent @@ -0,0 +1,7 @@ +POWER_SUPPLY_NAME=hid-70:cd:60:f7:a0:5c-battery +POWER_SUPPLY_PRESENT=1 +POWER_SUPPLY_ONLINE=1 +POWER_SUPPLY_CAPACITY=100 +POWER_SUPPLY_MODEL_NAME=applemagictrackpad +POWER_SUPPLY_STATUS=Discharging +POWER_SUPPLY_SCOPE=Device diff --git a/testcases/015-battery-capacity/expected_output.txt b/testcases/015-battery-capacity/expected_output.txt new file mode 100644 index 0000000..663a593 --- /dev/null +++ b/testcases/015-battery-capacity/expected_output.txt @@ -0,0 +1 @@ +Touchpad: 30.64% BAT 02:09:32 diff --git a/testcases/015-battery-capacity/i3status.conf b/testcases/015-battery-capacity/i3status.conf new file mode 100644 index 0000000..60e626f --- /dev/null +++ b/testcases/015-battery-capacity/i3status.conf @@ -0,0 +1,13 @@ +general { + output_format = "none" +} + +order += "battery 1" + +battery 1 { + format = "Touchpad: %percentage %status %remaining" + format_down = "No touchpad" + path = "/sys/class/power_supply/hid-ff:ff:ff:ff:ff:ff-battery/uevent" + path = "testcases/015-battery-capacity/uevent" + low_threshold = 10 +} diff --git a/testcases/015-battery-capacity/uevent b/testcases/015-battery-capacity/uevent new file mode 100644 index 0000000..ac74624 --- /dev/null +++ b/testcases/015-battery-capacity/uevent @@ -0,0 +1,10 @@ +POWER_SUPPLY_CAPACITY=100 +POWER_SUPPLY_CURRENT_NOW=1107000 +POWER_SUPPLY_CHARGE_FULL_DESIGN=7800000 +POWER_SUPPLY_CHARGE_NOW=2390000 +POWER_SUPPLY_NAME=hid-70:cd:60:f7:a0:5c-battery +POWER_SUPPLY_PRESENT=1 +POWER_SUPPLY_ONLINE=1 +POWER_SUPPLY_MODEL_NAME=applemagictrackpad +POWER_SUPPLY_STATUS=Discharging +POWER_SUPPLY_SCOPE=Device |