using Cxx = import "./include/c++.capnp" ;
$ Cxx.namespace ( "cereal" ) ;
using Java = import "./include/java.capnp" ;
$ Java.package ( "ai.comma.openpilot.cereal" ) ;
$ Java.outerClassname ( "Log" ) ;
using Car = import "car.capnp" ;
@0xf3b1f17e25a4285b ;
const logVersion : Int32 = 1 ;
struct Map (Key , Value ) {
entries @0 : List ( Entry ) ;
struct Entry {
key @0 : Key ;
value @1 : Value ;
}
}
struct InitData {
kernelArgs @0 : List ( Text ) ;
kernelVersion @15 : Text ;
gctx @1 : Text ;
dongleId @2 : Text ;
deviceType @3 : DeviceType ;
version @4 : Text ;
gitCommit @10 : Text ;
gitBranch @11 : Text ;
gitRemote @13 : Text ;
androidBuildInfo @5 : AndroidBuildInfo ;
androidSensors @6 : List ( AndroidSensor ) ;
androidProperties @16 : Map ( Text, Text ) ;
chffrAndroidExtra @7 : ChffrAndroidExtra ;
iosBuildInfo @14 : IosBuildInfo ;
pandaInfo @8 : PandaInfo ;
dirty @9 : Bool ;
passive @12 : Bool ;
params @17 : Map ( Text, Text ) ;
enum DeviceType {
unknown @0 ;
neo @1 ;
chffrAndroid @2 ;
chffrIos @3 ;
}
struct AndroidBuildInfo {
board @0 : Text ;
bootloader @1 : Text ;
brand @2 : Text ;
device @3 : Text ;
display @4 : Text ;
fingerprint @5 : Text ;
hardware @6 : Text ;
host @7 : Text ;
id @8 : Text ;
manufacturer @9 : Text ;
model @10 : Text ;
product @11 : Text ;
radioVersion @12 : Text ;
serial @13 : Text ;
supportedAbis @14 : List ( Text ) ;
tags @15 : Text ;
time @16 : Int64 ;
type @17 : Text ;
user @18 : Text ;
versionCodename @19 : Text ;
versionRelease @20 : Text ;
versionSdk @21 : Int32 ;
versionSecurityPatch @22 : Text ;
}
struct AndroidSensor {
id @0 : Int32 ;
name @1 : Text ;
vendor @2 : Text ;
version @3 : Int32 ;
handle @4 : Int32 ;
type @5 : Int32 ;
maxRange @6 : Float32 ;
resolution @7 : Float32 ;
power @8 : Float32 ;
minDelay @9 : Int32 ;
fifoReservedEventCount @10 : UInt32 ;
fifoMaxEventCount @11 : UInt32 ;
stringType @12 : Text ;
maxDelay @13 : Int32 ;
}
struct ChffrAndroidExtra {
allCameraCharacteristics @0 : Map ( Text, Text ) ;
}
struct IosBuildInfo {
appVersion @0 : Text ;
appBuild @1 : UInt32 ;
osVersion @2 : Text ;
deviceModel @3 : Text ;
}
struct PandaInfo {
hasPanda @0 : Bool ;
dongleId @1 : Text ;
stVersion @2 : Text ;
espVersion @3 : Text ;
}
}
struct FrameData {
frameId @0 : UInt32 ;
encodeId @1 : UInt32 ; # DEPRECATED
timestampEof @2 : UInt64 ;
frameLength @3 : Int32 ;
integLines @4 : Int32 ;
globalGain @5 : Int32 ;
lensPos @11 : Int32 ;
lensSag @12 : Float32 ;
lensErr @13 : Float32 ;
lensTruePos @14 : Float32 ;
image @6 : Data ;
frameType @7 : FrameType ;
timestampSof @8 : UInt64 ;
transform @10 : List ( Float32 ) ;
androidCaptureResult @9 : AndroidCaptureResult ;
enum FrameType {
unknown @0 ;
neo @1 ;
chffrAndroid @2 ;
}
struct AndroidCaptureResult {
sensitivity @0 : Int32 ;
frameDuration @1 : Int64 ;
exposureTime @2 : Int64 ;
rollingShutterSkew @3 : UInt64 ;
colorCorrectionTransform @4 : List ( Int32 ) ;
colorCorrectionGains @5 : List ( Float32 ) ;
displayRotation @6 : Int8 ;
}
}
struct GPSNMEAData {
timestamp @0 : Int64 ;
localWallTime @1 : UInt64 ;
nmea @2 : Text ;
}
# android sensor_event_t
struct SensorEventData {
version @0 : Int32 ;
sensor @1 : Int32 ;
type @2 : Int32 ;
timestamp @3 : Int64 ;
uncalibratedDEPRECATED @10 : Bool ;
union {
acceleration @4 : SensorVec ;
magnetic @5 : SensorVec ;
orientation @6 : SensorVec ;
gyro @7 : SensorVec ;
pressure @9 : SensorVec ;
magneticUncalibrated @11 : SensorVec ;
gyroUncalibrated @12 : SensorVec ;
proximity @13 : Float32 ;
light @14 : Float32 ;
}
source @8 : SensorSource ;
struct SensorVec {
v @0 : List ( Float32 ) ;
status @1 : Int8 ;
}
enum SensorSource {
android @0 ;
iOS @1 ;
fiber @2 ;
velodyne @3 ; # Velodyne IMU
bno055 @4 ; # Bosch accelerometer
lsm6ds3 @5 ; # accelerometer (c2)
bmp280 @6 ; # barometer (c2)
mmc3416x @7 ; # magnetometer (c2)
}
}
# android struct GpsLocation
struct GpsLocationData {
# Contains GpsLocationFlags bits.
flags @0 : UInt16 ;
# Represents latitude in degrees.
latitude @1 : Float64 ;
# Represents longitude in degrees.
longitude @2 : Float64 ;
# Represents altitude in meters above the WGS 84 reference ellipsoid.
altitude @3 : Float64 ;
# Represents speed in meters per second.
speed @4 : Float32 ;
# Represents heading in degrees.
bearing @5 : Float32 ;
# Represents expected accuracy in meters. (presumably 1 sigma?)
accuracy @6 : Float32 ;
# Timestamp for the location fix.
# Milliseconds since January 1, 1970.
timestamp @7 : Int64 ;
source @8 : SensorSource ;
# Represents NED velocity in m/s.
vNED @9 : List ( Float32 ) ;
# Represents expected vertical accuracy in meters. (presumably 1 sigma?)
verticalAccuracy @10 : Float32 ;
# Represents bearing accuracy in degrees. (presumably 1 sigma?)
bearingAccuracy @11 : Float32 ;
# Represents velocity accuracy in m/s. (presumably 1 sigma?)
speedAccuracy @12 : Float32 ;
enum SensorSource {
android @0 ;
iOS @1 ;
car @2 ;
velodyne @3 ; # Velodyne IMU
fusion @4 ;
external @5 ;
ublox @6 ;
trimble @7 ;
}
}
struct CanData {
address @0 : UInt32 ;
busTime @1 : UInt16 ;
dat @2 : Data ;
src @3 : UInt8 ;
}
struct ThermalData {
cpu0 @0 : UInt16 ;
cpu1 @1 : UInt16 ;
cpu2 @2 : UInt16 ;
cpu3 @3 : UInt16 ;
mem @4 : UInt16 ;
gpu @5 : UInt16 ;
bat @6 : UInt32 ;
# not thermal
freeSpace @7 : Float32 ;
batteryPercent @8 : Int16 ;
batteryStatus @9 : Text ;
batteryCurrent @15 : Int32 ;
batteryVoltage @16 : Int32 ;
usbOnline @12 : Bool ;
fanSpeed @10 : UInt16 ;
started @11 : Bool ;
startedTs @13 : UInt64 ;
thermalStatus @14 : ThermalStatus ;
chargingError @17 : Bool ;
chargingDisabled @18 : Bool ;
enum ThermalStatus {
green @0 ; # all processes run
yellow @1 ; # critical processes run (kill uploader), engage still allowed
red @2 ; # no engage, will disengage
danger @3 ; # immediate process shutdown
}
}
struct HealthData {
# from can health
voltage @0 : UInt32 ;
current @1 : UInt32 ;
started @2 : Bool ;
controlsAllowed @3 : Bool ;
gasInterceptorDetected @4 : Bool ;
startedSignalDetected @5 : Bool ;
isGreyPanda @6 : Bool ;
}
struct LiveUI {
rearViewCam @0 : Bool ;
alertText1 @1 : Text ;
alertText2 @2 : Text ;
awarenessStatus @3 : Float32 ;
}
struct Live20Data {
canMonoTimes @10 : List ( UInt64 ) ;
mdMonoTime @6 : UInt64 ;
ftMonoTimeDEPRECATED @7 : UInt64 ;
l100MonoTime @11 : UInt64 ;
radarErrors @12 : List ( Car.RadarState.Error ) ;
# all deprecated
warpMatrixDEPRECATED @0 : List ( Float32 ) ;
angleOffsetDEPRECATED @1 : Float32 ;
calStatusDEPRECATED @2 : Int8 ;
calCycleDEPRECATED @8 : Int32 ;
calPercDEPRECATED @9 : Int8 ;
leadOne @3 : LeadData ;
leadTwo @4 : LeadData ;
cumLagMs @5 : Float32 ;
struct LeadData {
dRel @0 : Float32 ;
yRel @1 : Float32 ;
vRel @2 : Float32 ;
aRel @3 : Float32 ;
vLead @4 : Float32 ;
aLeadDEPRECATED @5 : Float32 ;
dPath @6 : Float32 ;
vLat @7 : Float32 ;
vLeadK @8 : Float32 ;
aLeadK @9 : Float32 ;
fcw @10 : Bool ;
status @11 : Bool ;
aLeadTau @12 : Float32 ;
}
}
struct LiveCalibrationData {
# deprecated
warpMatrix @0 : List ( Float32 ) ;
# camera_frame_from_model_frame
warpMatrix2 @5 : List ( Float32 ) ;
warpMatrixBig @6 : List ( Float32 ) ;
calStatus @1 : Int8 ;
calCycle @2 : Int32 ;
calPerc @3 : Int8 ;
# view_frame_from_road_frame
# ui's is inversed needs new
extrinsicMatrix @4 : List ( Float32 ) ;
}
struct LiveTracks {
trackId @0 : Int32 ;
dRel @1 : Float32 ;
yRel @2 : Float32 ;
vRel @3 : Float32 ;
aRel @4 : Float32 ;
timeStamp @5 : Float32 ;
status @6 : Float32 ;
currentTime @7 : Float32 ;
stationary @8 : Bool ;
oncoming @9 : Bool ;
}
struct Live100Data {
canMonoTimeDEPRECATED @16 : UInt64 ;
canMonoTimes @21 : List ( UInt64 ) ;
l20MonoTimeDEPRECATED @17 : UInt64 ;
mdMonoTimeDEPRECATED @18 : UInt64 ;
planMonoTime @28 : UInt64 ;
pathPlanMonoTime @50 : UInt64 ;
state @31 : ControlState ;
vEgo @0 : Float32 ;
vEgoRaw @32 : Float32 ;
aEgoDEPRECATED @1 : Float32 ;
longControlState @30 : LongControlState ;
vPid @2 : Float32 ;
vTargetLead @3 : Float32 ;
upAccelCmd @4 : Float32 ;
uiAccelCmd @5 : Float32 ;
ufAccelCmd @33 : Float32 ;
yActualDEPRECATED @6 : Float32 ;
yDesDEPRECATED @7 : Float32 ;
upSteer @8 : Float32 ;
uiSteer @9 : Float32 ;
ufSteer @34 : Float32 ;
aTargetMinDEPRECATED @10 : Float32 ;
aTargetMaxDEPRECATED @11 : Float32 ;
aTarget @35 : Float32 ;
jerkFactor @12 : Float32 ;
angleSteers @13 : Float32 ; # Steering angle in degrees.
angleSteersDes @29 : Float32 ;
curvature @37 : Float32 ; # path curvature from vehicle model
hudLeadDEPRECATED @14 : Int32 ;
cumLagMs @15 : Float32 ;
startMonoTime @48 : UInt64 ;
mapValid @49 : Bool ;
forceDecel @51 : Bool ;
enabled @19 : Bool ;
active @36 : Bool ;
steerOverride @20 : Bool ;
vCruise @22 : Float32 ;
rearViewCam @23 : Bool ;
alertText1 @24 : Text ;
alertText2 @25 : Text ;
alertStatus @38 : AlertStatus ;
alertSize @39 : AlertSize ;
alertBlinkingRate @42 : Float32 ;
alertType @44 : Text ;
alertSound @45 : Text ;
awarenessStatus @26 : Float32 ;
angleOffset @27 : Float32 ;
gpsPlannerActive @40 : Bool ;
engageable @41 : Bool ; # can OP be engaged?
driverMonitoringOn @43 : Bool ;
# maps
vCurvature @46 : Float32 ;
decelForTurn @47 : Bool ;
enum ControlState {
disabled @0 ;
preEnabled @1 ;
enabled @2 ;
softDisabling @3 ;
}
enum LongControlState {
off @0 ;
pid @1 ;
stopping @2 ;
starting @3 ;
}
enum AlertStatus {
normal @0 ; # low priority alert for user's convenience
userPrompt @1 ; # mid piority alert that might require user intervention
critical @2 ; # high priority alert that needs immediate user intervention
}
enum AlertSize {
none @0 ; # don't display the alert
small @1 ; # small box
mid @2 ; # mid screen
full @3 ; # full screen
}
}
struct LiveEventData {
name @0 : Text ;
value @1 : Int32 ;
}
struct ModelData {
frameId @0 : UInt32 ;
path @1 : PathData ;
leftLane @2 : PathData ;
rightLane @3 : PathData ;
lead @4 : LeadData ;
freePath @6 : List ( Float32 ) ;
settings @5 : ModelSettings ;
struct PathData {
points @0 : List ( Float32 ) ;
prob @1 : Float32 ;
std @2 : Float32 ;
}
struct LeadData {
dist @0 : Float32 ;
prob @1 : Float32 ;
std @2 : Float32 ;
}
struct ModelSettings {
bigBoxX @0 : UInt16 ;
bigBoxY @1 : UInt16 ;
bigBoxWidth @2 : UInt16 ;
bigBoxHeight @3 : UInt16 ;
boxProjection @4 : List ( Float32 ) ;
yuvCorrection @5 : List ( Float32 ) ;
inputTransform @6 : List ( Float32 ) ;
}
}
struct CalibrationFeatures {
frameId @0 : UInt32 ;
p0 @1 : List ( Float32 ) ;
p1 @2 : List ( Float32 ) ;
status @3 : List ( Int8 ) ;
}
struct EncodeIndex {
# picture from camera
frameId @0 : UInt32 ;
type @1 : Type ;
# index of encoder from start of route
encodeId @2 : UInt32 ;
# minute long segment this frame is in
segmentNum @3 : Int32 ;
# index into camera file in segment in presentation order
segmentId @4 : UInt32 ;
# index into camera file in segment in encode order
segmentIdEncode @5 : UInt32 ;
enum Type {
bigBoxLossless @0 ; # rcamera.mkv
fullHEVC @1 ; # fcamera.hevc
bigBoxHEVC @2 ; # bcamera.hevc
chffrAndroidH264 @3 ; # acamera
fullLosslessClip @4 ; # prcamera.mkv
front @5 ; # dcamera.hevc
}
}
struct AndroidLogEntry {
id @0 : UInt8 ;
ts @1 : UInt64 ;
priority @2 : UInt8 ;
pid @3 : Int32 ;
tid @4 : Int32 ;
tag @5 : Text ;
message @6 : Text ;
}
struct LogRotate {
segmentNum @0 : Int32 ;
path @1 : Text ;
}
struct Plan {
mdMonoTime @9 : UInt64 ;
l20MonoTime @10 : UInt64 ;
events @13 : List ( Car.CarEvent ) ;
# lateral, 3rd order polynomial
lateralValidDEPRECATED @0 : Bool ;
dPolyDEPRECATED @1 : List ( Float32 ) ;
laneWidthDEPRECATED @11 : Float32 ;
# longitudinal
longitudinalValidDEPRECATED @2 : Bool ;
vCruise @16 : Float32 ;
aCruise @17 : Float32 ;
vTarget @3 : Float32 ;
vTargetFuture @14 : Float32 ;
vMax @20 : Float32 ;
aTargetMinDEPRECATED @4 : Float32 ;
aTargetMaxDEPRECATED @5 : Float32 ;
aTarget @18 : Float32 ;
vStart @26 : Float32 ;
aStart @27 : Float32 ;
jerkFactor @6 : Float32 ;
hasLead @7 : Bool ;
hasLeftLaneDEPRECATED @23 : Bool ;
hasRightLaneDEPRECATED @24 : Bool ;
fcw @8 : Bool ;
longitudinalPlanSource @15 : LongitudinalPlanSource ;
# gps trajectory in car frame
gpsTrajectory @12 : GpsTrajectory ;
gpsPlannerActive @19 : Bool ;
# maps
vCurvature @21 : Float32 ;
decelForTurn @22 : Bool ;
mapValid @25 : Bool ;
struct GpsTrajectory {
x @0 : List ( Float32 ) ;
y @1 : List ( Float32 ) ;
}
enum LongitudinalPlanSource {
cruise @0 ;
mpc1 @1 ;
mpc2 @2 ;
mpc3 @3 ;
}
}
struct PathPlan {
laneWidth @0 : Float32 ;
dPoly @1 : List ( Float32 ) ;
cPoly @2 : List ( Float32 ) ;
cProb @3 : Float32 ;
lPoly @4 : List ( Float32 ) ;
lProb @5 : Float32 ;
rPoly @6 : List ( Float32 ) ;
rProb @7 : Float32 ;
angleSteers @8 : Float32 ;
valid @9 : Bool ;
}
struct LiveLocationData {
status @0 : UInt8 ;
# 3D fix
lat @1 : Float64 ;
lon @2 : Float64 ;
alt @3 : Float32 ; # m
# speed
speed @4 : Float32 ; # m/s
# NED velocity components
vNED @5 : List ( Float32 ) ;
# roll, pitch, heading (x,y,z)
roll @6 : Float32 ; # WRT to center of earth?
pitch @7 : Float32 ; # WRT to center of earth?
heading @8 : Float32 ; # WRT to north?
# what are these?
wanderAngle @9 : Float32 ;
trackAngle @10 : Float32 ;
# car frame -- https://upload.wikimedia.org/wikipedia/commons/f/f5/RPY_angles_of_cars.png
# gyro, in car frame, deg/s
gyro @11 : List ( Float32 ) ;
# accel, in car frame, m/s^2
accel @12 : List ( Float32 ) ;
accuracy @13 : Accuracy ;
source @14 : SensorSource ;
# if we are fixing a location in the past
fixMonoTime @15 : UInt64 ;
gpsWeek @16 : Int32 ;
timeOfWeek @17 : Float64 ;
positionECEF @18 : List ( Float64 ) ;
poseQuatECEF @19 : List ( Float32 ) ;
pitchCalibration @20 : Float32 ;
yawCalibration @21 : Float32 ;
imuFrame @22 : List ( Float32 ) ;
struct Accuracy {
pNEDError @0 : List ( Float32 ) ;
vNEDError @1 : List ( Float32 ) ;
rollError @2 : Float32 ;
pitchError @3 : Float32 ;
headingError @4 : Float32 ;
ellipsoidSemiMajorError @5 : Float32 ;
ellipsoidSemiMinorError @6 : Float32 ;
ellipsoidOrientationError @7 : Float32 ;
}
enum SensorSource {
applanix @0 ;
kalman @1 ;
orbslam @2 ;
timing @3 ;
dummy @4 ;
}
}
struct EthernetPacket {
pkt @0 : Data ;
ts @1 : Float32 ;
}
struct NavUpdate {
isNavigating @0 : Bool ;
curSegment @1 : Int32 ;
segments @2 : List ( Segment ) ;
struct LatLng {
lat @0 : Float64 ;
lng @1 : Float64 ;
}
struct Segment {
from @0 : LatLng ;
to @1 : LatLng ;
updateTime @2 : Int32 ;
distance @3 : Int32 ;
crossTime @4 : Int32 ;
exitNo @5 : Int32 ;
instruction @6 : Instruction ;
parts @7 : List ( LatLng ) ;
enum Instruction {
turnLeft @0 ;
turnRight @1 ;
keepLeft @2 ;
keepRight @3 ;
straight @4 ;
roundaboutExitNumber @5 ;
roundaboutExit @6 ;
roundaboutTurnLeft @7 ;
unkn8 @8 ;
roundaboutStraight @9 ;
unkn10 @10 ;
roundaboutTurnRight @11 ;
unkn12 @12 ;
roundaboutUturn @13 ;
unkn14 @14 ;
arrive @15 ;
exitLeft @16 ;
exitRight @17 ;
unkn18 @18 ;
uturn @19 ;
# ...
}
}
}
struct NavStatus {
isNavigating @0 : Bool ;
currentAddress @1 : Address ;
struct Address {
title @0 : Text ;
lat @1 : Float64 ;
lng @2 : Float64 ;
house @3 : Text ;
address @4 : Text ;
street @5 : Text ;
city @6 : Text ;
state @7 : Text ;
country @8 : Text ;
}
}
struct CellInfo {
timestamp @0 : UInt64 ;
repr @1 : Text ; # android toString() for now
}
struct WifiScan {
bssid @0 : Text ;
ssid @1 : Text ;
capabilities @2 : Text ;
frequency @3 : Int32 ;
level @4 : Int32 ;
timestamp @5 : Int64 ;
centerFreq0 @6 : Int32 ;
centerFreq1 @7 : Int32 ;
channelWidth @8 : ChannelWidth ;
operatorFriendlyName @9 : Text ;
venueName @10 : Text ;
is80211mcResponder @11 : Bool ;
passpoint @12 : Bool ;
distanceCm @13 : Int32 ;
distanceSdCm @14 : Int32 ;
enum ChannelWidth {
w20Mhz @0 ;
w40Mhz @1 ;
w80Mhz @2 ;
w160Mhz @3 ;
w80Plus80Mhz @4 ;
}
}
struct AndroidGnss {
union {
measurements @0 : Measurements ;
navigationMessage @1 : NavigationMessage ;
}
struct Measurements {
clock @0 : Clock ;
measurements @1 : List ( Measurement ) ;
struct Clock {
timeNanos @0 : Int64 ;
hardwareClockDiscontinuityCount @1 : Int32 ;
hasTimeUncertaintyNanos @2 : Bool ;
timeUncertaintyNanos @3 : Float64 ;
hasLeapSecond @4 : Bool ;
leapSecond @5 : Int32 ;
hasFullBiasNanos @6 : Bool ;
fullBiasNanos @7 : Int64 ;
hasBiasNanos @8 : Bool ;
biasNanos @9 : Float64 ;
hasBiasUncertaintyNanos @10 : Bool ;
biasUncertaintyNanos @11 : Float64 ;
hasDriftNanosPerSecond @12 : Bool ;
driftNanosPerSecond @13 : Float64 ;
hasDriftUncertaintyNanosPerSecond @14 : Bool ;
driftUncertaintyNanosPerSecond @15 : Float64 ;
}
struct Measurement {
svId @0 : Int32 ;
constellation @1 : Constellation ;
timeOffsetNanos @2 : Float64 ;
state @3 : Int32 ;
receivedSvTimeNanos @4 : Int64 ;
receivedSvTimeUncertaintyNanos @5 : Int64 ;
cn0DbHz @6 : Float64 ;
pseudorangeRateMetersPerSecond @7 : Float64 ;
pseudorangeRateUncertaintyMetersPerSecond @8 : Float64 ;
accumulatedDeltaRangeState @9 : Int32 ;
accumulatedDeltaRangeMeters @10 : Float64 ;
accumulatedDeltaRangeUncertaintyMeters @11 : Float64 ;
hasCarrierFrequencyHz @12 : Bool ;
carrierFrequencyHz @13 : Float32 ;
hasCarrierCycles @14 : Bool ;
carrierCycles @15 : Int64 ;
hasCarrierPhase @16 : Bool ;
carrierPhase @17 : Float64 ;
hasCarrierPhaseUncertainty @18 : Bool ;
carrierPhaseUncertainty @19 : Float64 ;
hasSnrInDb @20 : Bool ;
snrInDb @21 : Float64 ;
multipathIndicator @22 : MultipathIndicator ;
enum Constellation {
unknown @0 ;
gps @1 ;
sbas @2 ;
glonass @3 ;
qzss @4 ;
beidou @5 ;
galileo @6 ;
}
enum State {
unknown @0 ;
codeLock @1 ;
bitSync @2 ;
subframeSync @3 ;
towDecoded @4 ;
msecAmbiguous @5 ;
symbolSync @6 ;
gloStringSync @7 ;
gloTodDecoded @8 ;
bdsD2BitSync @9 ;
bdsD2SubframeSync @10 ;
galE1bcCodeLock @11 ;
galE1c2ndCodeLock @12 ;
galE1bPageSync @13 ;
sbasSync @14 ;
}
enum MultipathIndicator {
unknown @0 ;
detected @1 ;
notDetected @2 ;
}
}
}
struct NavigationMessage {
type @0 : Int32 ;
svId @1 : Int32 ;
messageId @2 : Int32 ;
submessageId @3 : Int32 ;
data @4 : Data ;
status @5 : Status ;
enum Status {
unknown @0 ;
parityPassed @1 ;
parityRebuilt @2 ;
}
}
}
struct QcomGnss {
logTs @0 : UInt64 ;
union {
measurementReport @1 : MeasurementReport ;
clockReport @2 : ClockReport ;
drMeasurementReport @3 : DrMeasurementReport ;
drSvPoly @4 : DrSvPolyReport ;
rawLog @5 : Data ;
}
enum MeasurementSource @0xd71a12b6faada7ee {
gps @0 ;
glonass @1 ;
beidou @2 ;
}
enum SVObservationState @0xe81e829a0d6c83e9 {
idle @0 ;
search @1 ;
searchVerify @2 ;
bitEdge @3 ;
trackVerify @4 ;
track @5 ;
restart @6 ;
dpo @7 ;
glo10msBe @8 ;
glo10msAt @9 ;
}
struct MeasurementStatus @0xe501010e1bcae83b {
subMillisecondIsValid @0 : Bool ;
subBitTimeIsKnown @1 : Bool ;
satelliteTimeIsKnown @2 : Bool ;
bitEdgeConfirmedFromSignal @3 : Bool ;
measuredVelocity @4 : Bool ;
fineOrCoarseVelocity @5 : Bool ;
lockPointValid @6 : Bool ;
lockPointPositive @7 : Bool ;
lastUpdateFromDifference @8 : Bool ;
lastUpdateFromVelocityDifference @9 : Bool ;
strongIndicationOfCrossCorelation @10 : Bool ;
tentativeMeasurement @11 : Bool ;
measurementNotUsable @12 : Bool ;
sirCheckIsNeeded @13 : Bool ;
probationMode @14 : Bool ;
glonassMeanderBitEdgeValid @15 : Bool ;
glonassTimeMarkValid @16 : Bool ;
gpsRoundRobinRxDiversity @17 : Bool ;
gpsRxDiversity @18 : Bool ;
gpsLowBandwidthRxDiversityCombined @19 : Bool ;
gpsHighBandwidthNu4 @20 : Bool ;
gpsHighBandwidthNu8 @21 : Bool ;
gpsHighBandwidthUniform @22 : Bool ;
multipathIndicator @23 : Bool ;
imdJammingIndicator @24 : Bool ;
lteB13TxJammingIndicator @25 : Bool ;
freshMeasurementIndicator @26 : Bool ;
multipathEstimateIsValid @27 : Bool ;
directionIsValid @28 : Bool ;
}
struct MeasurementReport {
source @0 : MeasurementSource ;
fCount @1 : UInt32 ;
gpsWeek @2 : UInt16 ;
glonassCycleNumber @3 : UInt8 ;
glonassNumberOfDays @4 : UInt16 ;
milliseconds @5 : UInt32 ;
timeBias @6 : Float32 ;
clockTimeUncertainty @7 : Float32 ;
clockFrequencyBias @8 : Float32 ;
clockFrequencyUncertainty @9 : Float32 ;
sv @10 : List ( SV ) ;
struct SV {
svId @0 : UInt8 ;
observationState @2 : SVObservationState ;
observations @3 : UInt8 ;
goodObservations @4 : UInt8 ;
gpsParityErrorCount @5 : UInt16 ;
glonassFrequencyIndex @1 : Int8 ;
glonassHemmingErrorCount @6 : UInt8 ;
filterStages @7 : UInt8 ;
carrierNoise @8 : UInt16 ;
latency @9 : Int16 ;
predetectInterval @10 : UInt8 ;
postdetections @11 : UInt16 ;
unfilteredMeasurementIntegral @12 : UInt32 ;
unfilteredMeasurementFraction @13 : Float32 ;
unfilteredTimeUncertainty @14 : Float32 ;
unfilteredSpeed @15 : Float32 ;
unfilteredSpeedUncertainty @16 : Float32 ;
measurementStatus @17 : MeasurementStatus ;
multipathEstimate @18 : UInt32 ;
azimuth @19 : Float32 ;
elevation @20 : Float32 ;
carrierPhaseCyclesIntegral @21 : Int32 ;
carrierPhaseCyclesFraction @22 : UInt16 ;
fineSpeed @23 : Float32 ;
fineSpeedUncertainty @24 : Float32 ;
cycleSlipCount @25 : UInt8 ;
}
}
struct ClockReport {
hasFCount @0 : Bool ;
fCount @1 : UInt32 ;
hasGpsWeek @2 : Bool ;
gpsWeek @3 : UInt16 ;
hasGpsMilliseconds @4 : Bool ;
gpsMilliseconds @5 : UInt32 ;
gpsTimeBias @6 : Float32 ;
gpsClockTimeUncertainty @7 : Float32 ;
gpsClockSource @8 : UInt8 ;
hasGlonassYear @9 : Bool ;
glonassYear @10 : UInt8 ;
hasGlonassDay @11 : Bool ;
glonassDay @12 : UInt16 ;
hasGlonassMilliseconds @13 : Bool ;
glonassMilliseconds @14 : UInt32 ;
glonassTimeBias @15 : Float32 ;
glonassClockTimeUncertainty @16 : Float32 ;
glonassClockSource @17 : UInt8 ;
bdsWeek @18 : UInt16 ;
bdsMilliseconds @19 : UInt32 ;
bdsTimeBias @20 : Float32 ;
bdsClockTimeUncertainty @21 : Float32 ;
bdsClockSource @22 : UInt8 ;
galWeek @23 : UInt16 ;
galMilliseconds @24 : UInt32 ;
galTimeBias @25 : Float32 ;
galClockTimeUncertainty @26 : Float32 ;
galClockSource @27 : UInt8 ;
clockFrequencyBias @28 : Float32 ;
clockFrequencyUncertainty @29 : Float32 ;
frequencySource @30 : UInt8 ;
gpsLeapSeconds @31 : UInt8 ;
gpsLeapSecondsUncertainty @32 : UInt8 ;
gpsLeapSecondsSource @33 : UInt8 ;
gpsToGlonassTimeBiasMilliseconds @34 : Float32 ;
gpsToGlonassTimeBiasMillisecondsUncertainty @35 : Float32 ;
gpsToBdsTimeBiasMilliseconds @36 : Float32 ;
gpsToBdsTimeBiasMillisecondsUncertainty @37 : Float32 ;
bdsToGloTimeBiasMilliseconds @38 : Float32 ;
bdsToGloTimeBiasMillisecondsUncertainty @39 : Float32 ;
gpsToGalTimeBiasMilliseconds @40 : Float32 ;
gpsToGalTimeBiasMillisecondsUncertainty @41 : Float32 ;
galToGloTimeBiasMilliseconds @42 : Float32 ;
galToGloTimeBiasMillisecondsUncertainty @43 : Float32 ;
galToBdsTimeBiasMilliseconds @44 : Float32 ;
galToBdsTimeBiasMillisecondsUncertainty @45 : Float32 ;
hasRtcTime @46 : Bool ;
systemRtcTime @47 : UInt32 ;
fCountOffset @48 : UInt32 ;
lpmRtcCount @49 : UInt32 ;
clockResets @50 : UInt32 ;
}
struct DrMeasurementReport {
reason @0 : UInt8 ;
seqNum @1 : UInt8 ;
seqMax @2 : UInt8 ;
rfLoss @3 : UInt16 ;
systemRtcValid @4 : Bool ;
fCount @5 : UInt32 ;
clockResets @6 : UInt32 ;
systemRtcTime @7 : UInt64 ;
gpsLeapSeconds @8 : UInt8 ;
gpsLeapSecondsUncertainty @9 : UInt8 ;
gpsToGlonassTimeBiasMilliseconds @10 : Float32 ;
gpsToGlonassTimeBiasMillisecondsUncertainty @11 : Float32 ;
gpsWeek @12 : UInt16 ;
gpsMilliseconds @13 : UInt32 ;
gpsTimeBiasMs @14 : UInt32 ;
gpsClockTimeUncertaintyMs @15 : UInt32 ;
gpsClockSource @16 : UInt8 ;
glonassClockSource @17 : UInt8 ;
glonassYear @18 : UInt8 ;
glonassDay @19 : UInt16 ;
glonassMilliseconds @20 : UInt32 ;
glonassTimeBias @21 : Float32 ;
glonassClockTimeUncertainty @22 : Float32 ;
clockFrequencyBias @23 : Float32 ;
clockFrequencyUncertainty @24 : Float32 ;
frequencySource @25 : UInt8 ;
source @26 : MeasurementSource ;
sv @27 : List ( SV ) ;
struct SV {
svId @0 : UInt8 ;
glonassFrequencyIndex @1 : Int8 ;
observationState @2 : SVObservationState ;
observations @3 : UInt8 ;
goodObservations @4 : UInt8 ;
filterStages @5 : UInt8 ;
predetectInterval @6 : UInt8 ;
cycleSlipCount @7 : UInt8 ;
postdetections @8 : UInt16 ;
measurementStatus @9 : MeasurementStatus ;
carrierNoise @10 : UInt16 ;
rfLoss @11 : UInt16 ;
latency @12 : Int16 ;
filteredMeasurementFraction @13 : Float32 ;
filteredMeasurementIntegral @14 : UInt32 ;
filteredTimeUncertainty @15 : Float32 ;
filteredSpeed @16 : Float32 ;
filteredSpeedUncertainty @17 : Float32 ;
unfilteredMeasurementFraction @18 : Float32 ;
unfilteredMeasurementIntegral @19 : UInt32 ;
unfilteredTimeUncertainty @20 : Float32 ;
unfilteredSpeed @21 : Float32 ;
unfilteredSpeedUncertainty @22 : Float32 ;
multipathEstimate @23 : UInt32 ;
azimuth @24 : Float32 ;
elevation @25 : Float32 ;
dopplerAcceleration @26 : Float32 ;
fineSpeed @27 : Float32 ;
fineSpeedUncertainty @28 : Float32 ;
carrierPhase @29 : Float64 ;
fCount @30 : UInt32 ;
parityErrorCount @31 : UInt16 ;
goodParity @32 : Bool ;
}
}
struct DrSvPolyReport {
svId @0 : UInt16 ;
frequencyIndex @1 : Int8 ;
hasPosition @2 : Bool ;
hasIono @3 : Bool ;
hasTropo @4 : Bool ;
hasElevation @5 : Bool ;
polyFromXtra @6 : Bool ;
hasSbasIono @7 : Bool ;
iode @8 : UInt16 ;
t0 @9 : Float64 ;
xyz0 @10 : List ( Float64 ) ;
xyzN @11 : List ( Float64 ) ;
other @12 : List ( Float32 ) ;
positionUncertainty @13 : Float32 ;
ionoDelay @14 : Float32 ;
ionoDot @15 : Float32 ;
sbasIonoDelay @16 : Float32 ;
sbasIonoDot @17 : Float32 ;
tropoDelay @18 : Float32 ;
elevation @19 : Float32 ;
elevationDot @20 : Float32 ;
elevationUncertainty @21 : Float32 ;
velocityCoeff @22 : List ( Float64 ) ;
}
}
struct LidarPts {
r @0 : List ( UInt16 ) ; # uint16 m*500.0
theta @1 : List ( UInt16 ) ; # uint16 deg*100.0
reflect @2 : List ( UInt8 ) ; # uint8 0-255
# For storing out of file.
idx @3 : UInt64 ;
# For storing in file
pkt @4 : Data ;
}
struct ProcLog {
cpuTimes @0 : List ( CPUTimes ) ;
mem @1 : Mem ;
procs @2 : List ( Process ) ;
struct Process {
pid @0 : Int32 ;
name @1 : Text ;
state @2 : UInt8 ;
ppid @3 : Int32 ;
cpuUser @4 : Float32 ;
cpuSystem @5 : Float32 ;
cpuChildrenUser @6 : Float32 ;
cpuChildrenSystem @7 : Float32 ;
priority @8 : Int64 ;
nice @9 : Int32 ;
numThreads @10 : Int32 ;
startTime @11 : Float64 ;
memVms @12 : UInt64 ;
memRss @13 : UInt64 ;
processor @14 : Int32 ;
cmdline @15 : List ( Text ) ;
exe @16 : Text ;
}
struct CPUTimes {
cpuNum @0 : Int64 ;
user @1 : Float32 ;
nice @2 : Float32 ;
system @3 : Float32 ;
idle @4 : Float32 ;
iowait @5 : Float32 ;
irq @6 : Float32 ;
softirq @7 : Float32 ;
}
struct Mem {
total @0 : UInt64 ;
free @1 : UInt64 ;
available @2 : UInt64 ;
buffers @3 : UInt64 ;
cached @4 : UInt64 ;
active @5 : UInt64 ;
inactive @6 : UInt64 ;
shared @7 : UInt64 ;
}
}
struct UbloxGnss {
union {
measurementReport @0 : MeasurementReport ;
ephemeris @1 : Ephemeris ;
ionoData @2 : IonoData ;
}
struct MeasurementReport {
#received time of week in gps time in seconds and gps week
rcvTow @0 : Float64 ;
gpsWeek @1 : UInt16 ;
# leap seconds in seconds
leapSeconds @2 : UInt16 ;
# receiver status
receiverStatus @3 : ReceiverStatus ;
# num of measurements to follow
numMeas @4 : UInt8 ;
measurements @5 : List ( Measurement ) ;
struct ReceiverStatus {
# leap seconds have been determined
leapSecValid @0 : Bool ;
# Clock reset applied
clkReset @1 : Bool ;
}
struct Measurement {
svId @0 : UInt8 ;
trackingStatus @1 : TrackingStatus ;
# pseudorange in meters
pseudorange @2 : Float64 ;
# carrier phase measurement in cycles
carrierCycles @3 : Float64 ;
# doppler measurement in Hz
doppler @4 : Float32 ;
# GNSS id, 0 is gps
gnssId @5 : UInt8 ;
glonassFrequencyIndex @6 : UInt8 ;
# carrier phase locktime counter in ms
locktime @7 : UInt16 ;
# Carrier-to-noise density ratio (signal strength) in dBHz
cno @8 : UInt8 ;
# pseudorange standard deviation in meters
pseudorangeStdev @9 : Float32 ;
# carrier phase standard deviation in cycles
carrierPhaseStdev @10 : Float32 ;
# doppler standard deviation in Hz
dopplerStdev @11 : Float32 ;
sigId @12 : UInt8 ;
struct TrackingStatus {
# pseudorange valid
pseudorangeValid @0 : Bool ;
# carrier phase valid
carrierPhaseValid @1 : Bool ;
# half cycle valid
halfCycleValid @2 : Bool ;
# half sycle subtracted from phase
halfCycleSubtracted @3 : Bool ;
}
}
}
struct Ephemeris {
# This is according to the rinex (2?) format
svId @0 : UInt16 ;
year @1 : UInt16 ;
month @2 : UInt16 ;
day @3 : UInt16 ;
hour @4 : UInt16 ;
minute @5 : UInt16 ;
second @6 : Float32 ;
af0 @7 : Float64 ;
af1 @8 : Float64 ;
af2 @9 : Float64 ;
iode @10 : Float64 ;
crs @11 : Float64 ;
deltaN @12 : Float64 ;
m0 @13 : Float64 ;
cuc @14 : Float64 ;
ecc @15 : Float64 ;
cus @16 : Float64 ;
a @17 : Float64 ; # note that this is not the root!!
toe @18 : Float64 ;
cic @19 : Float64 ;
omega0 @20 : Float64 ;
cis @21 : Float64 ;
i0 @22 : Float64 ;
crc @23 : Float64 ;
omega @24 : Float64 ;
omegaDot @25 : Float64 ;
iDot @26 : Float64 ;
codesL2 @27 : Float64 ;
gpsWeek @28 : Float64 ;
l2 @29 : Float64 ;
svAcc @30 : Float64 ;
svHealth @31 : Float64 ;
tgd @32 : Float64 ;
iodc @33 : Float64 ;
transmissionTime @34 : Float64 ;
fitInterval @35 : Float64 ;
toc @36 : Float64 ;
ionoCoeffsValid @37 : Bool ;
ionoAlpha @38 : List ( Float64 ) ;
ionoBeta @39 : List ( Float64 ) ;
}
struct IonoData {
svHealth @0 : UInt32 ;
tow @1 : Float64 ;
gpsWeek @2 : Float64 ;
ionoAlpha @3 : List ( Float64 ) ;
ionoBeta @4 : List ( Float64 ) ;
healthValid @5 : Bool ;
ionoCoeffsValid @6 : Bool ;
}
}
struct Clocks {
bootTimeNanos @0 : UInt64 ;
monotonicNanos @1 : UInt64 ;
monotonicRawNanos @2 : UInt64 ;
wallTimeNanos @3 : UInt64 ;
modemUptimeMillis @4 : UInt64 ;
}
struct LiveMpcData {
x @0 : List ( Float32 ) ;
y @1 : List ( Float32 ) ;
psi @2 : List ( Float32 ) ;
delta @3 : List ( Float32 ) ;
qpIterations @4 : UInt32 ;
calculationTime @5 : UInt64 ;
cost @6 : Float64 ;
}
struct LiveLongitudinalMpcData {
xEgo @0 : List ( Float32 ) ;
vEgo @1 : List ( Float32 ) ;
aEgo @2 : List ( Float32 ) ;
xLead @3 : List ( Float32 ) ;
vLead @4 : List ( Float32 ) ;
aLead @5 : List ( Float32 ) ;
aLeadTau @6 : Float32 ; # lead accel time constant
qpIterations @7 : UInt32 ;
mpcId @8 : UInt32 ;
calculationTime @9 : UInt64 ;
cost @10 : Float64 ;
}
struct ECEFPointDEPRECATED @0xe10e21168db0c7f7 {
x @0 : Float32 ;
y @1 : Float32 ;
z @2 : Float32 ;
}
struct ECEFPoint @0xc25bbbd524983447 {
x @0 : Float64 ;
y @1 : Float64 ;
z @2 : Float64 ;
}
struct GPSPlannerPoints {
curPosDEPRECATED @0 : ECEFPointDEPRECATED ;
pointsDEPRECATED @1 : List ( ECEFPointDEPRECATED ) ;
curPos @6 : ECEFPoint ;
points @7 : List ( ECEFPoint ) ;
valid @2 : Bool ;
trackName @3 : Text ;
speedLimit @4 : Float32 ;
accelTarget @5 : Float32 ;
}
struct GPSPlannerPlan {
valid @0 : Bool ;
poly @1 : List ( Float32 ) ;
trackName @2 : Text ;
speed @3 : Float32 ;
acceleration @4 : Float32 ;
pointsDEPRECATED @5 : List ( ECEFPointDEPRECATED ) ;
points @6 : List ( ECEFPoint ) ;
xLookahead @7 : Float32 ;
}
struct TrafficEvent @0xacfa74a094e62626 {
type @0 : Type ;
distance @1 : Float32 ;
action @2 : Action ;
resuming @3 : Bool ;
enum Type {
stopSign @0 ;
lightRed @1 ;
lightYellow @2 ;
lightGreen @3 ;
stopLight @4 ;
}
enum Action {
none @0 ;
yield @1 ;
stop @2 ;
resumeReady @3 ;
}
}
struct OrbslamCorrection {
correctionMonoTime @0 : UInt64 ;
prePositionECEF @1 : List ( Float64 ) ;
postPositionECEF @2 : List ( Float64 ) ;
prePoseQuatECEF @3 : List ( Float32 ) ;
postPoseQuatECEF @4 : List ( Float32 ) ;
numInliers @5 : UInt32 ;
}
struct OrbObservation {
observationMonoTime @0 : UInt64 ;
normalizedCoordinates @1 : List ( Float32 ) ;
locationECEF @2 : List ( Float64 ) ;
matchDistance @3 : UInt32 ;
}
struct UiNavigationEvent {
type @0 : Type ;
status @1 : Status ;
distanceTo @2 : Float32 ;
endRoadPointDEPRECATED @3 : ECEFPointDEPRECATED ;
endRoadPoint @4 : ECEFPoint ;
enum Type {
none @0 ;
laneChangeLeft @1 ;
laneChangeRight @2 ;
mergeLeft @3 ;
mergeRight @4 ;
turnLeft @5 ;
turnRight @6 ;
}
enum Status {
none @0 ;
passive @1 ;
approaching @2 ;
active @3 ;
}
}
struct UiLayoutState {
activeApp @0 : App ;
sidebarCollapsed @1 : Bool ;
mapEnabled @2 : Bool ;
enum App {
home @0 ;
music @1 ;
nav @2 ;
}
}
struct Joystick {
# convenient for debug and live tuning
axes @0 : List ( Float32 ) ;
buttons @1 : List ( Bool ) ;
}
struct OrbOdometry {
# timing first
startMonoTime @0 : UInt64 ;
endMonoTime @1 : UInt64 ;
# fundamental matrix and error
f @2 : List ( Float64 ) ;
err @3 : Float64 ;
# number of inlier points
inliers @4 : Int32 ;
# for debug only
# indexed by endMonoTime features
# value is startMonoTime feature match
# -1 if no match
matches @5 : List ( Int16 ) ;
}
struct OrbFeatures {
timestampEof @0 : UInt64 ;
# transposed arrays of normalized image coordinates
# len(xs) == len(ys) == len(descriptors) * 32
xs @1 : List ( Float32 ) ;
ys @2 : List ( Float32 ) ;
descriptors @3 : Data ;
octaves @4 : List ( Int8 ) ;
# match index to last OrbFeatures
# -1 if no match
timestampLastEof @5 : UInt64 ;
matches @6 : List ( Int16 ) ;
}
struct OrbFeaturesSummary {
timestampEof @0 : UInt64 ;
timestampLastEof @1 : UInt64 ;
featureCount @2 : UInt16 ;
matchCount @3 : UInt16 ;
computeNs @4 : UInt64 ;
}
struct OrbKeyFrame {
# this is a globally unique id for the KeyFrame
id @0 : UInt64 ;
# this is the location of the KeyFrame
pos @1 : ECEFPoint ;
# these are the features in the world
# len(dpos) == len(descriptors) * 32
dpos @2 : List ( ECEFPoint ) ;
descriptors @3 : Data ;
}
struct DriverMonitoring {
frameId @0 : UInt32 ;
descriptor @1 : List ( Float32 ) ;
std @2 : Float32 ;
}
struct Boot {
wallTimeNanos @0 : UInt64 ;
lastKmsg @1 : Data ;
lastPmsg @2 : Data ;
}
struct LiveParametersData {
valid @0 : Bool ;
gyroBias @1 : Float32 ;
angleOffset @2 : Float32 ;
}
struct LiveMapData {
speedLimitValid @0 : Bool ;
speedLimit @1 : Float32 ;
speedAdvisoryValid @12 : Bool ;
speedAdvisory @13 : Float32 ;
speedLimitAheadValid @14 : Bool ;
speedLimitAhead @15 : Float32 ;
speedLimitAheadDistance @16 : Float32 ;
curvatureValid @2 : Bool ;
curvature @3 : Float32 ;
wayId @4 : UInt64 ;
roadX @5 : List ( Float32 ) ;
roadY @6 : List ( Float32 ) ;
lastGps @7 : GpsLocationData ;
roadCurvatureX @8 : List ( Float32 ) ;
roadCurvature @9 : List ( Float32 ) ;
distToTurn @10 : Float32 ;
mapValid @11 : Bool ;
}
struct CameraOdometry {
trans @0 : List ( Float32 ) ; # m/s in device frame
rot @1 : List ( Float32 ) ; # rad/s in device frame
transStd @2 : List ( Float32 ) ; # std m/s in device frame
rotStd @3 : List ( Float32 ) ; # std rad/s in device frame
}
struct KalmanOdometry {
trans @0 : List ( Float32 ) ; # m/s in device frame
rot @1 : List ( Float32 ) ; # rad/s in device frame
transStd @2 : List ( Float32 ) ; # std m/s in device frame
rotStd @3 : List ( Float32 ) ; # std rad/s in device frame
}
struct Event {
# in nanoseconds?
logMonoTime @0 : UInt64 ;
union {
initData @1 : InitData ;
frame @2 : FrameData ;
gpsNMEA @3 : GPSNMEAData ;
sensorEventDEPRECATED @4 : SensorEventData ;
can @5 : List ( CanData ) ;
thermal @6 : ThermalData ;
live100 @7 : Live100Data ;
liveEventDEPRECATED @8 : List ( LiveEventData ) ;
model @9 : ModelData ;
features @10 : CalibrationFeatures ;
sensorEvents @11 : List ( SensorEventData ) ;
health @12 : HealthData ;
live20 @13 : Live20Data ;
liveUIDEPRECATED @14 : LiveUI ;
encodeIdx @15 : EncodeIndex ;
liveTracks @16 : List ( LiveTracks ) ;
sendcan @17 : List ( CanData ) ;
logMessage @18 : Text ;
liveCalibration @19 : LiveCalibrationData ;
androidLogEntry @20 : AndroidLogEntry ;
gpsLocation @21 : GpsLocationData ;
carState @22 : Car.CarState ;
carControl @23 : Car.CarControl ;
plan @24 : Plan ;
liveLocation @25 : LiveLocationData ;
ethernetData @26 : List ( EthernetPacket ) ;
navUpdate @27 : NavUpdate ;
cellInfo @28 : List ( CellInfo ) ;
wifiScan @29 : List ( WifiScan ) ;
androidGnss @30 : AndroidGnss ;
qcomGnss @31 : QcomGnss ;
lidarPts @32 : LidarPts ;
procLog @33 : ProcLog ;
ubloxGnss @34 : UbloxGnss ;
clocks @35 : Clocks ;
liveMpc @36 : LiveMpcData ;
liveLongitudinalMpc @37 : LiveLongitudinalMpcData ;
navStatus @38 : NavStatus ;
ubloxRaw @39 : Data ;
gpsPlannerPoints @40 : GPSPlannerPoints ;
gpsPlannerPlan @41 : GPSPlannerPlan ;
applanixRaw @42 : Data ;
trafficEvents @43 : List ( TrafficEvent ) ;
liveLocationTiming @44 : LiveLocationData ;
orbslamCorrectionDEPRECATED @45 : OrbslamCorrection ;
liveLocationCorrected @46 : LiveLocationData ;
orbObservation @47 : List ( OrbObservation ) ;
gpsLocationExternal @48 : GpsLocationData ;
location @49 : LiveLocationData ;
uiNavigationEvent @50 : UiNavigationEvent ;
liveLocationKalman @51 : LiveLocationData ;
testJoystick @52 : Joystick ;
orbOdometry @53 : OrbOdometry ;
orbFeatures @54 : OrbFeatures ;
applanixLocation @55 : LiveLocationData ;
orbKeyFrame @56 : OrbKeyFrame ;
uiLayoutState @57 : UiLayoutState ;
orbFeaturesSummary @58 : OrbFeaturesSummary ;
driverMonitoring @59 : DriverMonitoring ;
boot @60 : Boot ;
liveParameters @61 : LiveParametersData ;
liveMapData @62 : LiveMapData ;
cameraOdometry @63 : CameraOdometry ;
pathPlan @64 : PathPlan ;
kalmanOdometry @65 : KalmanOdometry ;
}
}