package anki const ( VehicleMsgV2CSpeedUpdate ID = 0x36 VehicleMsgV2CStatusUpdate ID = 0x3f VehicleMsgV2CLaneChangeUpdate ID = 0x41 VehicleMsgV2CDelocAutoRecoveryEntered ID = 0x43 VehicleMsgV2CDelocAutoRecoverySuccess ID = 0x44 VehicleMsgV2CCollisionDetected ID = 0x4d VehicleMsgV2CCycleOvertime ID = 0x86 VehicleMsgV2CDebug ID = 0xc9 ) // 07 36 20 03 98 3A 2A 00 cchhh type VehicleMsgSpeedUpdate struct { Size uint8 MsgID ID DesiredSpeed MMperSec // mm/sec Accel MMperSecSQ // mm/sec² -- missing on older firmware CurrentSpeed MMperSec // mm/sec -- missing on older firmware } // 05 3F 01 00 01 00 type VehicleMsgStatusUpdate struct { Size uint8 MsgID ID IsOnTrack uint8 IsOnCharger uint8 HasLowBattery uint8 HasChargedBattery uint8 } // ID(65) | 00 00 99 42 00 00 99 42 00 00 F4 01 81 type VehicleMsgLaneChangeUpdate struct { Size uint8 MsgID ID CurrentOffsetFromRoadCenter float32 TargetOffsetFromRoadCenter float32 HorizontalSpeed MMperSec VerticalSpeed MMperSec LaneChangeID uint8 } // 03 4D 01 00 type VehicleMsgCollisionDetected struct { Size uint8 MsgID ID WasSideOnCollision Bool WasFrontBackCollision Bool } // 0B 86 11 00 26 08 00 00 13 10 00 00 cchii type VehicleMsgCycleOvertime struct { Size uint8 MsgID ID NumOvertimeCycles uint16 AverageCycleTime MicroSec // µsec MaxCycleTime MicroSec // µsec } // ID(201) | 04 15 03 00 00 // case 0: read char // case 1: read char // case 2: read uint16 // case 3: read uint16: Debug message (s16) from vehicle // case 4: read uint32 // case 5: read uint32 // case 6: read float: Debug message (float) from vehicle // case 7: read char: Vehicle Error: Error triggered on vehicle // default: Invalid CMD_DEBUG type