forked from commaai/openpilot
-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
01942b8 add TODO b74a456 don't hardcode the lists ed5a4bf add face stds 396a2bb add can error counter to controlsState c6b5c73 Switch default to msgq (#21) a457ffa Fix indentation in readme.md a1fc8c7 explicitly mention Python for syntax colouring (#20) 19e2393 Fix expected for cameraOdometry and liveCalibration e7d2f97 Add radar comm issue error db64cd4 Reserve safety #21 for VAG PQ35/PQ46/NMS (#19) 79d638d separate honda safety models between Bosch Giraffe and Bosch Nidec 2614a65 better name b6b84cd add longitudinal 78f5934 Add canRxErrs to health 6758899 qlog liveCalibration df80b87 add more stuff to fw log in CarParams a87805a fix doxs 4746b20 got doxed 21cf3f5 build on mac 31ac47c Add carUnrecognized event git-subtree-dir: cereal git-subtree-split: 01942b8
- Loading branch information
Vehicle Researcher
committed
Jan 15, 2020
1 parent
e3b2117
commit 9504037
Showing
11 changed files
with
122 additions
and
40 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,5 +10,5 @@ libmessaging.* | |
libmessaging_shared.* | ||
services.h | ||
.sconsign.dblite | ||
libcereal_shared.so | ||
libcereal_shared.* | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
What is cereal? | ||
---- | ||
|
||
cereal is both a messaging spec for robotics systems as well as generic high performance IPC pub sub messaging with a single publisher and multiple subscribers. | ||
|
||
Imagine this use case: | ||
* A sensor process reads gyro measurements directly from an IMU and publishes a sensorEvents packet | ||
* A calibration process subscribes to the sensorEvents packet to use the IMU | ||
* A localization process subscribes to the sensorEvents packet to use the IMU also | ||
|
||
|
||
Messaging Spec | ||
---- | ||
|
||
You'll find the message types in [log.capnp](log.capnp). It uses [Cap'n proto](https://capnproto.org/capnp-tool.html) and defines one struct called Event. | ||
|
||
All Events have a logMonoTime and a valid. Then a big union defines the packet type. | ||
|
||
|
||
Pub Sub Backends | ||
---- | ||
|
||
cereal supports two backends, one based on [zmq](https://zeromq.org/), the other called msgq, a custom pub sub based on shared memory that doesn't require the bytes to pass through the kernel. | ||
|
||
Example | ||
--- | ||
```python | ||
import cereal.messaging as messaging | ||
|
||
# in subscriber | ||
sm = messaging.SubMaster(['sensorEvents']) | ||
while 1: | ||
sm.update() | ||
print(sm['sensorEvents']) | ||
|
||
# in publisher | ||
pm = messaging.PubMaster(['sensorEvents']) | ||
dat = messaging.new_message() | ||
dat.init('sensorEvents', 1) | ||
dat.sensorEvents[0] = {"gyro": {"v": [0.1, -0.1, 0.1]}} | ||
pm.send('sensorEvents', dat) | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.