aboutsummaryrefslogtreecommitdiff
path: root/advertisement.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-12-11 03:21:39 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-12-11 03:21:39 +0100
commitc9c0f74a41c0cb6e5c9561a3f0e50ddc596a1cc2 (patch)
tree23b6aa46021823b247cac2f289e97a21866c695d /advertisement.go
parentb3404a173132496fb4bc1c5cf2e467b66a44b81f (diff)
wip
Diffstat (limited to 'advertisement.go')
-rw-r--r--advertisement.go19
1 files changed, 18 insertions, 1 deletions
diff --git a/advertisement.go b/advertisement.go
index 443ae1d..87e51ed 100644
--- a/advertisement.go
+++ b/advertisement.go
@@ -1,5 +1,7 @@
package anki
+import "fmt"
+
const (
stateFullBattery = 1 << 4
stateLowBattery = 1 << 5
@@ -7,12 +9,27 @@ const (
)
type VehicleAdvInfo struct {
- VehicleAdvState uint8 // Battery
+ VehicleAdvState uint8 // Battery level bits
Version uint16
Reserved [5]uint8
Name [13]byte // UTF8: 12 bytes + NULL
}
+func (v VehicleAdvInfo) String() string {
+ b := "unknown"
+ if v.FullBattery() {
+ b = "full"
+ }
+ if v.LowBattery() {
+ b = "low"
+ }
+ if v.OnCharger() {
+ b = "charging"
+ }
+ return fmt.Sprintf("Battery: %v, Version %v, Name: %v",
+ b, v.Version, string(v.Name[:12]))
+}
+
func (v VehicleAdvInfo) FullBattery() bool {
return v.VehicleAdvState&stateFullBattery != 0
}