From 03fae13a609c0d9f653406a134032fc1f0c9db46 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Fri, 30 Dec 2016 13:22:26 +0100 Subject: Split prettyprinting --- protocol.go | 71 ++++++++++++------------------------------------------------- 1 file changed, 14 insertions(+), 57 deletions(-) (limited to 'protocol.go') 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 -- cgit v1.2.3