aboutsummaryrefslogtreecommitdiff
path: root/protocol.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-12-30 13:22:26 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-12-30 13:22:26 +0100
commit03fae13a609c0d9f653406a134032fc1f0c9db46 (patch)
tree855a8f8e83c0e563cf3d7727ac011309f81c9c43 /protocol.go
parent7e62f728fe33fd81ccadf11eca43d424a9260d09 (diff)
Split prettyprinting
Diffstat (limited to 'protocol.go')
-rw-r--r--protocol.go71
1 files changed, 14 insertions, 57 deletions
diff --git a/protocol.go b/protocol.go
index 3317f55..6f2ee38 100644
--- a/protocol.go
+++ b/protocol.go
@@ -3,7 +3,6 @@ package anki
import (
"bytes"
"encoding/binary"
- "fmt"
"log"
)
@@ -11,10 +10,6 @@ import (
// VehicleMsgPayloadMaxSize = 18
// VehicleMsgBaseSize = 1
-//go:generate stringer -type=ID
-
-type ID uint8
-
// Identifier for a vehicle message
const (
// BLE Connection
@@ -98,12 +93,6 @@ type VehicleMsgVersionResponse struct {
Version uint32
}
-type MilliVolt uint16
-
-func (v MilliVolt) String() string {
- return fmt.Sprintf("%6.4fV", float64(v)/1000.0)
-}
-
type VehicleMsgBatteryLevelResponse struct {
Size uint8
MsgID ID
@@ -124,27 +113,15 @@ func (v *VehicleMsgSDKMode) Set(on uint8, flags uint8) {
v.Flags = flags
}
-type Accel uint16
-
-func (a Accel) String() string {
- return fmt.Sprintf("%5.3fm/s²", float64(a)/1000.0)
-}
-
-type Speed uint16
-
-func (s Speed) String() string {
- return fmt.Sprintf("%5.3fm/s", float64(s)/1000.0)
-}
-
type VehicleMsgSetSpeed struct {
Size uint8
MsgID ID
- Speed Speed // mm/sec
- Accel Accel // mm/sec²
- SpeedLimit uint8 // respect road piece speed limit
+ Speed MMperSec // mm/sec
+ Accel MMperSecSQ // mm/sec²
+ SpeedLimit Bool // respect road piece speed limit
}
-func (v *VehicleMsgSetSpeed) Set(speed Speed, accel Accel) {
+func (v *VehicleMsgSetSpeed) Set(speed MMperSec, accel MMperSecSQ) {
v.Size = uint8(binary.Size(v) - 1)
v.MsgID = VehicleMsgC2VSetSpeed
v.Speed = speed
@@ -195,12 +172,6 @@ type VehicleMsgSetOffsetFromRoadCenter struct {
Offset Offset // mm
}
-type Offset float32
-
-func (c Offset) String() string {
- return fmt.Sprintf("%4.1fmm", c)
-}
-
func (v *VehicleMsgSetOffsetFromRoadCenter) Set(offset Offset) {
v.Size = uint8(binary.Size(v) - 1)
v.MsgID = VehicleMsgC2VSetOffsetFromRoadCenter
@@ -210,14 +181,14 @@ func (v *VehicleMsgSetOffsetFromRoadCenter) Set(offset Offset) {
type VehicleMsgChangeLane struct {
Size uint8
MsgID ID
- HorizontalSpeed Speed // mm/sec
- HorizontalAccel Accel // mm/sec²
- Offset Offset // from road center mm
+ HorizontalSpeed MMperSec // mm/sec
+ HorizontalAccel MMperSecSQ // mm/sec²
+ Offset Offset // from road center mm
HopIntent uint8
Tag uint8
}
-func (v *VehicleMsgChangeLane) Set(hspeed Speed, haccel Accel, offset Offset) {
+func (v *VehicleMsgChangeLane) Set(hspeed MMperSec, haccel MMperSecSQ, offset Offset) {
v.Size = uint8(binary.Size(v) - 1)
v.MsgID = VehicleMsgC2VChangeLane
v.HorizontalSpeed = hspeed
@@ -225,8 +196,6 @@ func (v *VehicleMsgChangeLane) Set(hspeed Speed, haccel Accel, offset Offset) {
v.Offset = offset
}
-type Flags uint8
-
const (
ParseflagsMaskNumBits Flags = 0x0f
ParseflagsMaskInvertedColor Flags = 0x80
@@ -234,34 +203,22 @@ const (
ParseflagsMaskReverseDriving Flags = 0x20
)
-func (f Flags) String() string {
- return fmt.Sprintf("{Bits: %d InvColor: %t RevParse: %t RevDrive: %t}",
- f&ParseflagsMaskNumBits,
- f&ParseflagsMaskInvertedColor != 0,
- f&ParseflagsMaskReverseParsing != 0,
- f&ParseflagsMaskReverseDriving != 0,
- )
-}
-
type VehicleLocalizationPositionUpdate struct {
Size uint8
MsgID ID
LocalizationID uint8
RoadPieceID uint8
- Offset Offset // from road center mm
- Speed Speed // mm/sec
+ Offset Offset // from road center mm
+ Speed MMperSec // mm/sec
ParsingFlags Flags
// ACK commands received
LastRecvLaneChangeCmdID uint8
LastExecLaneChangeCmdID uint8
- LastDesiredHorizontalSpeed Speed // mm/sec
- LastDesiredSpeed Speed // mm/sec
+ LastDesiredHorizontalSpeed MMperSec // mm/sec
+ LastDesiredSpeed MMperSec // mm/sec
}
-//go:generate stringer -type=Direction
-type Direction uint8
-
// VehicleDrivingDirection
const (
Forward Direction = iota
@@ -280,8 +237,8 @@ type VehicleMsgLocalizationTransitionUpdate struct {
// ACK commands received
LastRecvLaneChangeCmdID uint8
LastExecLaneChangeCmdID uint8
- LastDesiredHorizontalSpeed Speed // mm/sec
- LastDesiredSpeed Speed // mm/sec
+ LastDesiredHorizontalSpeed MMperSec // mm/sec
+ LastDesiredSpeed MMperSec // mm/sec
// track grade detection
UphillCounter uint8