You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							574 lines
						
					
					
						
							12 KiB
						
					
					
				
			
		
		
	
	
							574 lines
						
					
					
						
							12 KiB
						
					
					
				| using Cxx = import "./include/c++.capnp";
 | |
| $Cxx.namespace("cereal");
 | |
| 
 | |
| @0x80ef1ec4889c2a63;
 | |
| 
 | |
| # legacy.capnp: a home for deprecated structs
 | |
| 
 | |
| struct LogRotate @0x9811e1f38f62f2d1 {
 | |
|   segmentNum @0 :Int32;
 | |
|   path @1 :Text;
 | |
| }
 | |
| 
 | |
| struct LiveUI @0xc08240f996aefced {
 | |
|   rearViewCam @0 :Bool;
 | |
|   alertText1 @1 :Text;
 | |
|   alertText2 @2 :Text;
 | |
|   awarenessStatus @3 :Float32;
 | |
| }
 | |
| 
 | |
| struct UiLayoutState @0x88dcce08ad29dda0 {
 | |
|   activeApp @0 :App;
 | |
|   sidebarCollapsed @1 :Bool;
 | |
|   mapEnabled @2 :Bool;
 | |
|   mockEngaged @3 :Bool;
 | |
| 
 | |
|   enum App @0x9917470acf94d285 {
 | |
|     home @0;
 | |
|     music @1;
 | |
|     nav @2;
 | |
|     settings @3;
 | |
|     none @4;
 | |
|   }
 | |
| }
 | |
| 
 | |
| struct OrbslamCorrection @0x8afd33dc9b35e1aa {
 | |
|   correctionMonoTime @0 :UInt64;
 | |
|   prePositionECEF @1 :List(Float64);
 | |
|   postPositionECEF @2 :List(Float64);
 | |
|   prePoseQuatECEF @3 :List(Float32);
 | |
|   postPoseQuatECEF @4 :List(Float32);
 | |
|   numInliers @5 :UInt32;
 | |
| }
 | |
| 
 | |
| struct EthernetPacket @0xa99a9d5b33cf5859 {
 | |
|   pkt @0 :Data;
 | |
|   ts @1 :Float32;
 | |
| }
 | |
| 
 | |
| struct CellInfo @0xcff7566681c277ce {
 | |
|   timestamp @0 :UInt64;
 | |
|   repr @1 :Text; # android toString() for now
 | |
| }
 | |
| 
 | |
| struct WifiScan @0xd4df5a192382ba0b {
 | |
|   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 @0xcb6a279f015f6b51 {
 | |
|     w20Mhz @0;
 | |
|     w40Mhz @1;
 | |
|     w80Mhz @2;
 | |
|     w160Mhz @3;
 | |
|     w80Plus80Mhz @4;
 | |
|   }
 | |
| }
 | |
| 
 | |
| struct LiveEventData @0x94b7baa90c5c321e {
 | |
|   name @0 :Text;
 | |
|   value @1 :Int32;
 | |
| }
 | |
| 
 | |
| struct ModelData @0xb8aad62cffef28a9 {
 | |
|   frameId @0 :UInt32;
 | |
|   frameAge @12 :UInt32;
 | |
|   frameDropPerc @13 :Float32;
 | |
|   timestampEof @9 :UInt64;
 | |
|   modelExecutionTime @14 :Float32;
 | |
|   gpuExecutionTime @16 :Float32;
 | |
|   rawPred @15 :Data;
 | |
| 
 | |
|   path @1 :PathData;
 | |
|   leftLane @2 :PathData;
 | |
|   rightLane @3 :PathData;
 | |
|   lead @4 :LeadData;
 | |
|   freePath @6 :List(Float32);
 | |
| 
 | |
|   settings @5 :ModelSettings;
 | |
|   leadFuture @7 :LeadData;
 | |
|   speed @8 :List(Float32);
 | |
|   meta @10 :MetaData;
 | |
|   longitudinal @11 :LongitudinalData;
 | |
| 
 | |
|   struct PathData @0x8817eeea389e9f08 {
 | |
|     points @0 :List(Float32);
 | |
|     prob @1 :Float32;
 | |
|     std @2 :Float32;
 | |
|     stds @3 :List(Float32);
 | |
|     poly @4 :List(Float32);
 | |
|     validLen @5 :Float32;
 | |
|   }
 | |
| 
 | |
|   struct LeadData @0xd1c9bef96d26fa91 {
 | |
|     dist @0 :Float32;
 | |
|     prob @1 :Float32;
 | |
|     std @2 :Float32;
 | |
|     relVel @3 :Float32;
 | |
|     relVelStd @4 :Float32;
 | |
|     relY @5 :Float32;
 | |
|     relYStd @6 :Float32;
 | |
|     relA @7 :Float32;
 | |
|     relAStd @8 :Float32;
 | |
|   }
 | |
| 
 | |
|   struct ModelSettings @0xa26e3710efd3e914 {
 | |
|     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 MetaData @0x9744f25fb60f2bf8 {
 | |
|     engagedProb @0 :Float32;
 | |
|     desirePrediction @1 :List(Float32);
 | |
|     brakeDisengageProb @2 :Float32;
 | |
|     gasDisengageProb @3 :Float32;
 | |
|     steerOverrideProb @4 :Float32;
 | |
|     desireState @5 :List(Float32);
 | |
|   }
 | |
| 
 | |
|   struct LongitudinalData @0xf98f999c6a071122 {
 | |
|     distances @2 :List(Float32);
 | |
|     speeds @0 :List(Float32);
 | |
|     accelerations @1 :List(Float32);
 | |
|   }
 | |
| }
 | |
| 
 | |
| struct ECEFPoint @0xc25bbbd524983447 {
 | |
|   x @0 :Float64;
 | |
|   y @1 :Float64;
 | |
|   z @2 :Float64;
 | |
| }
 | |
| 
 | |
| struct ECEFPointDEPRECATED @0xe10e21168db0c7f7 {
 | |
|   x @0 :Float32;
 | |
|   y @1 :Float32;
 | |
|   z @2 :Float32;
 | |
| }
 | |
| 
 | |
| struct GPSPlannerPoints @0xab54c59699f8f9f3 {
 | |
|   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 @0xf5ad1d90cdc1dd6b {
 | |
|   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 UiNavigationEvent @0x90c8426c3eaddd3b {
 | |
|   type @0: Type;
 | |
|   status @1: Status;
 | |
|   distanceTo @2: Float32;
 | |
|   endRoadPointDEPRECATED @3: ECEFPointDEPRECATED;
 | |
|   endRoadPoint @4: ECEFPoint;
 | |
| 
 | |
|   enum Type @0xe8db07dcf8fcea05 {
 | |
|     none @0;
 | |
|     laneChangeLeft @1;
 | |
|     laneChangeRight @2;
 | |
|     mergeLeft @3;
 | |
|     mergeRight @4;
 | |
|     turnLeft @5;
 | |
|     turnRight @6;
 | |
|   }
 | |
| 
 | |
|   enum Status @0xb9aa88c75ef99a1f {
 | |
|     none @0;
 | |
|     passive @1;
 | |
|     approaching @2;
 | |
|     active @3;
 | |
|   }
 | |
| }
 | |
| 
 | |
| struct LiveLocationData @0xb99b2bc7a57e8128 {
 | |
|   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 @0x943dc4625473b03f {
 | |
|     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 @0xc871d3cc252af657 {
 | |
|     applanix @0;
 | |
|     kalman @1;
 | |
|     orbslam @2;
 | |
|     timing @3;
 | |
|     dummy @4;
 | |
|   }
 | |
| }
 | |
| 
 | |
| struct OrbOdometry @0xd7700859ed1f5b76 {
 | |
|   # 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 @0xcd60164a8a0159ef {
 | |
|   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 @0xd500d30c5803fa4f {
 | |
|   timestampEof @0 :UInt64;
 | |
|   timestampLastEof @1 :UInt64;
 | |
| 
 | |
|   featureCount @2 :UInt16;
 | |
|   matchCount @3 :UInt16;
 | |
|   computeNs @4 :UInt64;
 | |
| }
 | |
| 
 | |
| struct OrbKeyFrame @0xc8233c0345e27e24 {
 | |
|   # 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 KalmanOdometry @0x92e21bb7ea38793a {
 | |
|   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 OrbObservation @0x9b326d4e436afec7 {
 | |
|   observationMonoTime @0 :UInt64;
 | |
|   normalizedCoordinates @1 :List(Float32);
 | |
|   locationECEF @2 :List(Float64);
 | |
|   matchDistance @3: UInt32;
 | |
| }
 | |
| 
 | |
| struct CalibrationFeatures @0x8fdfadb254ea867a {
 | |
|   frameId @0 :UInt32;
 | |
| 
 | |
|   p0 @1 :List(Float32);
 | |
|   p1 @2 :List(Float32);
 | |
|   status @3 :List(Int8);
 | |
| }
 | |
| 
 | |
| struct NavStatus @0xbd8822120928120c {
 | |
|   isNavigating @0 :Bool;
 | |
|   currentAddress @1 :Address;
 | |
| 
 | |
|   struct Address @0xce7cd672cacc7814 {
 | |
|     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 NavUpdate @0xdb98be6565516acb {
 | |
|   isNavigating @0 :Bool;
 | |
|   curSegment @1 :Int32;
 | |
|   segments @2 :List(Segment);
 | |
| 
 | |
|   struct LatLng @0x9eaef9187cadbb9b {
 | |
|     lat @0 :Float64;
 | |
|     lng @1 :Float64;
 | |
|   }
 | |
| 
 | |
|   struct Segment @0xa5b39b4fc4d7da3f {
 | |
|     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 @0xc5417a637451246f {
 | |
|       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 TrafficEvent @0xacfa74a094e62626 {
 | |
|   type @0 :Type;
 | |
|   distance @1 :Float32;
 | |
|   action @2 :Action;
 | |
|   resuming @3 :Bool;
 | |
| 
 | |
|   enum Type @0xd85d75253435bf4b {
 | |
|     stopSign @0;
 | |
|     lightRed @1;
 | |
|     lightYellow @2;
 | |
|     lightGreen @3;
 | |
|     stopLight @4;
 | |
|   }
 | |
| 
 | |
|   enum Action @0xa6f6ce72165ccb49 {
 | |
|     none @0;
 | |
|     yield @1;
 | |
|     stop @2;
 | |
|     resumeReady @3;
 | |
|   }
 | |
| 
 | |
| }
 | |
| 
 | |
| 
 | |
| struct AndroidGnss @0xdfdf30d03fc485bd {
 | |
|   union {
 | |
|     measurements @0 :Measurements;
 | |
|     navigationMessage @1 :NavigationMessage;
 | |
|   }
 | |
| 
 | |
|   struct Measurements @0xa20710d4f428d6cd {
 | |
|     clock @0 :Clock;
 | |
|     measurements @1 :List(Measurement);
 | |
| 
 | |
|     struct Clock @0xa0e27b453a38f450 {
 | |
|       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 @0xd949bf717d77614d {
 | |
|       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 @0x9ef1f3ff0deb5ffb {
 | |
|         unknown @0;
 | |
|         gps @1;
 | |
|         sbas @2;
 | |
|         glonass @3;
 | |
|         qzss @4;
 | |
|         beidou @5;
 | |
|         galileo @6;
 | |
|       }
 | |
| 
 | |
|       enum State @0xcbb9490adce12d72 {
 | |
|         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 @0xc04e7b6231d4caa8 {
 | |
|         unknown @0;
 | |
|         detected @1;
 | |
|         notDetected @2;
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   struct NavigationMessage @0xe2517b083095fd4e {
 | |
|     type @0 :Int32;
 | |
|     svId @1 :Int32;
 | |
|     messageId @2 :Int32;
 | |
|     submessageId @3 :Int32;
 | |
|     data @4 :Data;
 | |
|     status @5 :Status;
 | |
| 
 | |
|     enum Status @0xec1ff7996b35366f {
 | |
|       unknown @0;
 | |
|       parityPassed @1;
 | |
|       parityRebuilt @2;
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| struct LidarPts @0xe3d6685d4e9d8f7a {
 | |
|   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;
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 |