Skip to content

Commit 06f00e0

Browse files
committed
Begin new exporter for Geekworm x728
0 parents  commit 06f00e0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+5868
-0
lines changed

cmd/ups_exporter/main.go

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
package main
2+
3+
import (
4+
"os"
5+
6+
rpio "github.com/stianeikeland/go-rpio/v4"
7+
8+
"github.com/xaque208/znet/pkg/util"
9+
10+
"github.com/go-kit/log"
11+
"github.com/go-kit/log/level"
12+
13+
"github.com/go-daq/smbus"
14+
)
15+
16+
type PowerState int64
17+
18+
const (
19+
Powered PowerState = 0
20+
Unpowered = 1
21+
)
22+
23+
func main() {
24+
25+
logger := util.NewLogger()
26+
27+
err := rpio.Open()
28+
if err != nil {
29+
_ = level.Error(logger).Log("msg", "failed to open gpio", "err", err)
30+
os.Exit(1)
31+
}
32+
33+
_ = level.Info(logger).Log("msg", "battery", "percent", batteryPercent(logger))
34+
_ = level.Info(logger).Log("msg", "power", "state", powerState(logger))
35+
}
36+
37+
func batteryPercent(logger log.Logger) float64 {
38+
var max float64 = 255
39+
40+
c, err := smbus.Open(1, 0x36)
41+
if err != nil {
42+
_ = level.Error(logger).Log("msg", "failed to open smbus", "err", err)
43+
os.Exit(1)
44+
}
45+
defer c.Close()
46+
47+
v, err := c.ReadReg(0x36, 0x1)
48+
if err != nil {
49+
_ = level.Error(logger).Log("msg", "failed to read register", "err", err)
50+
os.Exit(1)
51+
}
52+
53+
return (float64(v) / max) * 100
54+
}
55+
56+
func powerState(logger log.Logger) PowerState {
57+
// Power Loss Detection (PLD) pin 6
58+
pin := rpio.Pin(6)
59+
pin.Input()
60+
s := pin.Read()
61+
62+
if s == 0 {
63+
return Powered
64+
}
65+
66+
// Make a noise when there is no power.
67+
// buzzer := rpio.Pin(20)
68+
// buzzer.Output()
69+
// buzzer.Write(rpio.High)
70+
// time.Sleep(time.Millisecond * 500)
71+
// buzzer.Write(rpio.Low)
72+
73+
return Unpowered
74+
}

go.mod

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
module github.com/xaque208/geekworm_exporter
2+
3+
go 1.18
4+
5+
require (
6+
github.com/go-daq/smbus v0.0.0-20201216173259-5725b4593606
7+
github.com/go-kit/log v0.2.1
8+
github.com/stianeikeland/go-rpio/v4 v4.6.0
9+
github.com/xaque208/znet v0.31.5
10+
)
11+
12+
require github.com/go-logfmt/logfmt v0.5.1 // indirect

go.sum

Lines changed: 1172 additions & 0 deletions
Large diffs are not rendered by default.

vendor/github.com/go-daq/smbus/LICENSE

Lines changed: 23 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/go-daq/smbus/README.md

Lines changed: 33 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/go-daq/smbus/smbus.go

Lines changed: 231 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/go-kit/log/.gitignore

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)