mirror of
https://github.com/dragonpilot/dragonpilot.git
synced 2026-02-18 14:03:52 +08:00
Merge cereal subtree
This commit is contained in:
@@ -35,8 +35,7 @@ while 1:
|
||||
|
||||
# in publisher
|
||||
pm = messaging.PubMaster(['sensorEvents'])
|
||||
dat = messaging.new_message()
|
||||
dat.init('sensorEvents', 1)
|
||||
dat = messaging.new_message('sensorEvents', size=1)
|
||||
dat.sensorEvents[0] = {"gyro": {"v": [0.1, -0.1, 0.1]}}
|
||||
pm.send('sensorEvents', dat)
|
||||
```
|
||||
|
||||
@@ -127,6 +127,7 @@ struct CarState {
|
||||
steeringRateLimited @29 :Bool; # if the torque is limited by the rate limiter
|
||||
stockAeb @30 :Bool;
|
||||
stockFcw @31 :Bool;
|
||||
espDisabled @32 :Bool;
|
||||
|
||||
# cruise state
|
||||
cruiseState @10 :CruiseState;
|
||||
@@ -150,6 +151,10 @@ struct CarState {
|
||||
|
||||
# which packets this state came from
|
||||
canMonoTimes @12: List(UInt64);
|
||||
|
||||
# blindspot sensors
|
||||
leftBlindspot @33 :Bool; # Is there something blocking the left lane change
|
||||
rightBlindspot @34 :Bool; # Is there something blocking the right lane change
|
||||
|
||||
struct WheelSpeeds {
|
||||
# optional wheel speeds
|
||||
@@ -441,6 +446,7 @@ struct CarParams {
|
||||
noOutput @19; # like silent but without silent CAN TXs
|
||||
hondaBoschHarness @20;
|
||||
volkswagenPq @21;
|
||||
subaruLegacy @22; # pre-Global platform
|
||||
}
|
||||
|
||||
enum SteerControlType {
|
||||
@@ -468,10 +474,21 @@ struct CarParams {
|
||||
fwdCamera @3;
|
||||
engine @4;
|
||||
unknown @5;
|
||||
transmission @8; # Transmission Control Module
|
||||
srs @9; # airbag
|
||||
gateway @10; # can gateway
|
||||
hud @11; # heads up display
|
||||
combinationMeter @12; # instrument cluster
|
||||
|
||||
# Toyota only
|
||||
dsu @6;
|
||||
apgs @7;
|
||||
|
||||
# Honda only
|
||||
vsa @13; # Vehicle Stability Assist
|
||||
programmedFuelInjection @14;
|
||||
electricBrakeBooster @15;
|
||||
shiftByWire @16;
|
||||
}
|
||||
|
||||
enum FingerprintSource {
|
||||
|
||||
@@ -127,6 +127,8 @@ struct FrameData {
|
||||
lensTruePos @14 :Float32;
|
||||
image @6 :Data;
|
||||
gainFrac @15 :Float32;
|
||||
focusVal @16 :List(Int16);
|
||||
focusConf @17 :List(UInt8);
|
||||
|
||||
frameType @7 :FrameType;
|
||||
timestampSof @8 :UInt64;
|
||||
@@ -281,6 +283,7 @@ struct ThermalData {
|
||||
usbOnline @12 :Bool;
|
||||
networkType @22 :NetworkType;
|
||||
offroadPowerUsage @23 :UInt32; # Power usage since going offroad in uWh
|
||||
networkStrength @24 :NetworkStrength;
|
||||
|
||||
fanSpeed @10 :UInt16;
|
||||
started @11 :Bool;
|
||||
@@ -308,6 +311,14 @@ struct ThermalData {
|
||||
cell4G @4;
|
||||
cell5G @5;
|
||||
}
|
||||
|
||||
enum NetworkStrength {
|
||||
unknown @0;
|
||||
poor @1;
|
||||
moderate @2;
|
||||
good @3;
|
||||
great @4;
|
||||
}
|
||||
}
|
||||
|
||||
struct HealthData {
|
||||
@@ -626,9 +637,11 @@ struct ModelData {
|
||||
brakeDisengageProb @2 :Float32;
|
||||
gasDisengageProb @3 :Float32;
|
||||
steerOverrideProb @4 :Float32;
|
||||
desireState @5 :List(Float32);
|
||||
}
|
||||
|
||||
struct LongitudinalData {
|
||||
distances @2 :List(Float32);
|
||||
speeds @0 :List(Float32);
|
||||
accelerations @1 :List(Float32);
|
||||
}
|
||||
@@ -790,6 +803,52 @@ struct PathPlan {
|
||||
}
|
||||
}
|
||||
|
||||
struct LiveLocationKalman {
|
||||
|
||||
# More info on reference frames:
|
||||
# https://github.com/commaai/openpilot/tree/master/common/transformations
|
||||
|
||||
positionECEF @0 : Measurement;
|
||||
positionGeodetic @1 : Measurement;
|
||||
velocityECEF @2 : Measurement;
|
||||
velocityNED @3 : Measurement;
|
||||
velocityDevice @4 : Measurement;
|
||||
accelerationDevice @5: Measurement;
|
||||
|
||||
|
||||
# These angles are all eulers and roll, pitch, yaw
|
||||
# orientationECEF transforms to rot matrix: ecef_from_device
|
||||
orientationECEF @6 : Measurement;
|
||||
orientationNED @7 : Measurement;
|
||||
angularVelocityDevice @8 : Measurement;
|
||||
|
||||
# orientationNEDCalibrated transforms to rot matrix: NED_from_calibrated
|
||||
orientationNEDCalibrated @9 : Measurement;
|
||||
|
||||
# Calibrated frame is simply device frame
|
||||
# aligned with the vehicle
|
||||
velocityCalibrated @10 : Measurement;
|
||||
accelerationCalibrated @11 : Measurement;
|
||||
angularVelocityCalibrated @12 : Measurement;
|
||||
|
||||
gpsWeek @13 :Int32;
|
||||
gpsTimeOfWeek @14 :Float64;
|
||||
status @15 :Status;
|
||||
unixTimestampMillis @16 :Int64;
|
||||
|
||||
enum Status {
|
||||
uninitialized @0;
|
||||
uncalibrated @1;
|
||||
valid @2;
|
||||
}
|
||||
|
||||
struct Measurement {
|
||||
value @0 : List(Float64);
|
||||
std @1 : List(Float64);
|
||||
valid @2 : Bool;
|
||||
}
|
||||
}
|
||||
|
||||
struct LiveLocationData {
|
||||
status @0 :UInt8;
|
||||
|
||||
@@ -1877,6 +1936,16 @@ struct KalmanOdometry {
|
||||
rotStd @3 :List(Float32); # std rad/s in device frame
|
||||
}
|
||||
|
||||
struct Sentinel {
|
||||
enum SentinelType {
|
||||
endOfSegment @0;
|
||||
endOfRoute @1;
|
||||
startOfSegment @2;
|
||||
startOfRoute @3;
|
||||
}
|
||||
type @0 :SentinelType;
|
||||
}
|
||||
|
||||
struct Event {
|
||||
# in nanoseconds?
|
||||
logMonoTime @0 :UInt64;
|
||||
@@ -1933,7 +2002,7 @@ struct Event {
|
||||
gpsLocationExternal @48 :GpsLocationData;
|
||||
location @49 :LiveLocationData;
|
||||
uiNavigationEvent @50 :UiNavigationEvent;
|
||||
liveLocationKalman @51 :LiveLocationData;
|
||||
liveLocationKalmanDEPRECATED @51 :LiveLocationData;
|
||||
testJoystick @52 :Joystick;
|
||||
orbOdometry @53 :OrbOdometry;
|
||||
orbFeatures @54 :OrbFeatures;
|
||||
@@ -1953,5 +2022,7 @@ struct Event {
|
||||
carParams @69: Car.CarParams;
|
||||
frontFrame @70: FrameData;
|
||||
dMonitoringState @71: DMonitoringState;
|
||||
liveLocationKalman @72 :LiveLocationKalman;
|
||||
sentinel @73 :Sentinel;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,10 +19,15 @@ except ImportError:
|
||||
|
||||
context = Context()
|
||||
|
||||
def new_message():
|
||||
def new_message(service=None, size=None):
|
||||
dat = log.Event.new_message()
|
||||
dat.logMonoTime = int(sec_since_boot() * 1e9)
|
||||
dat.valid = True
|
||||
if service is not None:
|
||||
if size is None:
|
||||
dat.init(service)
|
||||
else:
|
||||
dat.init(service, size)
|
||||
return dat
|
||||
|
||||
def pub_sock(endpoint):
|
||||
@@ -148,12 +153,11 @@ class SubMaster():
|
||||
self.sock[s] = sub_sock(s, poller=self.poller, addr=addr, conflate=True)
|
||||
self.freq[s] = service_list[s].frequency
|
||||
|
||||
data = new_message()
|
||||
try:
|
||||
data.init(s)
|
||||
data = new_message(s)
|
||||
except capnp.lib.capnp.KjException:
|
||||
# lists
|
||||
data.init(s, 0)
|
||||
data = new_message(s, 0)
|
||||
|
||||
self.data[s] = getattr(data, s)
|
||||
self.logMonoTime[s] = 0
|
||||
|
||||
@@ -19,7 +19,7 @@ controlsState: [8007, true, 100., 100]
|
||||
model: [8009, true, 20., 5]
|
||||
features: [8010, true, 0.]
|
||||
health: [8011, true, 2., 1]
|
||||
radarState: [8012, true, 20.]
|
||||
radarState: [8012, true, 20., 5]
|
||||
#liveUI: [8014, true, 0.]
|
||||
encodeIdx: [8015, true, 20.]
|
||||
liveTracks: [8016, true, 20.]
|
||||
@@ -57,7 +57,7 @@ orbslamCorrection: [8050, true, 0.]
|
||||
liveLocationCorrected: [8051, true, 0.]
|
||||
orbObservation: [8052, true, 0.]
|
||||
applanixLocation: [8053, true, 0.]
|
||||
liveLocationKalman: [8054, true, 0.]
|
||||
liveLocationKalman: [8054, true, 0., 1]
|
||||
uiNavigationEvent: [8055, true, 0.]
|
||||
orbOdometry: [8057, true, 0.]
|
||||
orbFeatures: [8058, false, 0.]
|
||||
|
||||
Reference in New Issue
Block a user