mirror of https://github.com/cjbassi/gotop.git
27a9ea080b
Got PR merged upstream https://github.com/distatus/battery/pull/10 |
||
---|---|---|
.. | ||
.gitignore | ||
.travis.yml | ||
LICENSE.md | ||
README.md | ||
battery.go | ||
battery_darwin.go | ||
battery_freebsd_dragonfly_.go | ||
battery_linux.go | ||
battery_netbsd.go | ||
battery_openbsd.go | ||
battery_solaris.go | ||
battery_windows.go | ||
errors.go | ||
ioctl.go |
README.md
battery
Cross-platform, normalized battery information library.
Gives access to a system independent, typed battery state, capacity, charge and voltage values recalculated as necessary to be returned in mW, mWh or V units.
Currently supported systems:
- Linux 2.6.39+
- OS X 10.10+
- Windows XP+
- FreeBSD
- DragonFlyBSD
- NetBSD
- OpenBSD
- Solaris
Installation
$ go get -u github.com/distatus/battery
Code Example
import (
"fmt"
"github.com/distatus/battery"
)
func main() {
batteries, err := battery.GetAll()
if err != nil {
fmt.Println("Could not get battery info!")
return
}
for i, battery := range batteries {
fmt.Printf("Bat%d: ", i)
fmt.Printf("state: %f, ", battery.State)
fmt.Printf("current capacity: %f mWh, ", battery.Current)
fmt.Printf("last full capacity: %f mWh, ", battery.Full)
fmt.Printf("design capacity: %f mWh, ", battery.Design)
fmt.Printf("charge rate: %f mW, ", battery.ChargeRate)
fmt.Printf("voltage: %f V, ", battery.Voltage)
fmt.Printf("design voltage: %f V\n", battery.DesignVoltage)
}
}
CLI
There is also a little utility which - more or less - mimicks the GNU/Linux acpi -b
command.
Installation
$ go get -u github.com/distatus/battery/cmd/battery
Usage
$ battery
BAT0: Full, 95.61% [Voltage: 12.15V (design: 12.15V)]