Skip to content

Commit

Permalink
Squashed 'cereal/' changes from eba4349..128b3f9
Browse files Browse the repository at this point in the history
128b3f9 add networkStrength to thermal (#36)
2e5cbfc Create and init message in one line with `new_message` in messaging  (#35)
4589107 not everyone likes gpstime
17363e9 support for end of log sentinel (#34)
f6e9345 val valid is confusing
bb2cc75 fix duplicate ordinals
0c38fc9 Add blindspot cereal values (#26)
bd9a877 pulse desire and e2e
20c7fd6 Add subaru pre-Global safety mode
522ff85 Merge pull request #31 from commaai/good_location_packet
ab07f22 deprecate
b03c2c5 already exists
166418c improvements
97373f9 or rigor in american
365abba rigour
25eaf9d add espDisabled to carState (#30)
bb13121 add honda ecus (#29)

git-subtree-dir: cereal
git-subtree-split: 128b3f9
  • Loading branch information
Vehicle Researcher committed Mar 7, 2020
1 parent 1d7d11f commit 25fd3b2
Show file tree
Hide file tree
Showing 4 changed files with 96 additions and 7 deletions.
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
```
17 changes: 17 additions & 0 deletions car.capnp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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 {
Expand Down
71 changes: 70 additions & 1 deletion log.capnp
Original file line number Diff line number Diff line change
Expand Up @@ -281,6 +281,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;
Expand Down Expand Up @@ -308,6 +309,14 @@ struct ThermalData {
cell4G @4;
cell5G @5;
}

enum NetworkStrength {
unknown @0;
poor @1;
moderate @2;
good @3;
great @4;
}
}

struct HealthData {
Expand Down Expand Up @@ -626,9 +635,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);
}
Expand Down Expand Up @@ -790,6 +801,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;

Expand Down Expand Up @@ -1877,6 +1934,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;
Expand Down Expand Up @@ -1933,7 +2000,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;
Expand All @@ -1953,5 +2020,7 @@ struct Event {
carParams @69: Car.CarParams;
frontFrame @70: FrameData;
dMonitoringState @71: DMonitoringState;
liveLocationKalman @72 :LiveLocationKalman;
sentinel @73 :Sentinel;
}
}
12 changes: 8 additions & 4 deletions messaging/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,15 @@

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):
Expand Down Expand Up @@ -148,12 +153,11 @@ def __init__(self, services, ignore_alive=None, addr="127.0.0.1"):
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
Expand Down

0 comments on commit 25fd3b2

Please sign in to comment.