next
}
+/ native-path:/ && device["path"] {
+ device["native_path"] = $2
+ next
+}
+
# BEGIN battery
/ battery/ && device["path"] {
device["is_battery"] = 1
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"])
}
/^$/ && 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
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
+}