X-Git-Url: https://git.xandkar.net/?p=khatus.git;a=blobdiff_plain;f=src%2Fawk%2Fexe%2Fparse_upower.awk;h=09150c914c1096cad69ebad2a62580f3cebce307;hp=07af1cbf133346ab06dd4322816e243b25dbb3f6;hb=f6bfbe281bcdef49b8bb1e9efe7328b2901d6bff;hpb=22939cbcc5e6eb9e2d840e844a3fa026b7968aec diff --git a/src/awk/exe/parse_upower.awk b/src/awk/exe/parse_upower.awk index 07af1cb..09150c9 100644 --- a/src/awk/exe/parse_upower.awk +++ b/src/awk/exe/parse_upower.awk @@ -10,6 +10,11 @@ next } +/ native-path:/ && device["path"] { + device["native_path"] = $2 + next +} + # BEGIN battery / battery/ && device["path"] { device["is_battery"] = 1 @@ -21,6 +26,16 @@ next } +/ energy:/ && device["is_battery"] { + device["energy"] = $2 + next +} + +/ energy-full:/ && device["is_battery"] { + device["energy_full"] = $2 + next +} + / percentage:/ && device["is_battery"] { device["battery_percentage"] = $2 sub("%$", "", device["battery_percentage"]) @@ -28,8 +43,8 @@ } /^$/ && device["is_battery"] { - print("battery_state" , device["battery_state"]) - print("battery_percentage", device["battery_percentage"]) + print("battery_state" , aggregate_battery_state()) + print("battery_percentage", aggregate_battery_percentage()) } # END battery @@ -53,3 +68,27 @@ delete device next } + +function aggregate_battery_percentage( bat, curr, full) { + _battery_energy[device["native_path"]] = device["energy"] + _battery_energy_full[device["native_path"]] = device["energy_full"] + for (bat in _battery_energy) { + curr = curr + _battery_energy[bat] + full = full + _battery_energy_full[bat] + } + return ((curr / full) * 100) +} + +function aggregate_battery_state( curr, bat, new) { + _battery_state[device["native_path"]] = device["battery_state"] + curr = device["battery_state"] + for (bat in _battery_state) { + new = _battery_state[bat] + if (new == "discharging") { + curr = new + } else if (curr != "discharging" && new == "charging") { + curr = new + } + } + return curr +}