# TODO: these port numbers are hardcoded in c, fix this
# LogRotate: 8001 is a PUSH PULL socket between loggerd and visiond
# all ZMQ pub sub: port, should_log, frequency, (qlog_decimation)
# frame syncing packet
frame : [ 8002 , true , 20 ., 1]
# accel, gyro, and compass
sensorEvents : [ 8003 , true , 100 ., 100]
# GPS data, also global timestamp
gpsNMEA : [ 8004 , true , 9 .] # 9 msgs each sec
# CPU+MEM+GPU+BAT temps
thermal : [ 8005 , true , 2 ., 1]
# List(CanData), list of can messages
can : [ 8006 , true , 100 .]
controlsState : [ 8007 , true , 100 ., 100]
#liveEvent: [8008, true, 0.]
model : [ 8009 , true , 20 ., 5]
features : [ 8010 , true , 0 .]
health : [ 8011 , true , 2 ., 1]
radarState : [ 8012 , true , 20 .]
#liveUI: [8014, true, 0.]
encodeIdx : [ 8015 , true , 20 .]
liveTracks : [ 8016 , true , 20 .]
sendcan : [ 8017 , true , 100 .]
logMessage : [ 8018 , true , 0 .]
liveCalibration : [ 8019 , true , 5 .]
androidLog : [ 8020 , true , 0 .]
carState : [ 8021 , true , 100 ., 10]
# 8022 is reserved for sshd
carControl : [ 8023 , true , 100 ., 10]
plan : [ 8024 , true , 20 .]
liveLocation : [ 8025 , true , 0 .]
gpsLocation : [ 8026 , true , 1 ., 1]
ethernetData : [ 8027 , true , 0 .]
navUpdate : [ 8028 , true , 0 .]
qcomGnss : [ 8029 , true , 0 .]
lidarPts : [ 8030 , true , 0 .]
procLog : [ 8031 , true , 0.5 ]
gpsLocationExternal : [ 8032 , true , 10 ., 1]
ubloxGnss : [ 8033 , true , 10 .]
clocks : [ 8034 , true , 1 .]
liveMpc : [ 8035 , false , 20 .]
liveLongitudinalMpc : [ 8036 , false , 20 .]
plusFrame : [ 8037 , false , 0 .]
navStatus : [ 8038 , true , 0 .]
gpsLocationTrimble : [ 8039 , true , 0 .]
trimbleGnss : [ 8041 , true , 0 .]
ubloxRaw : [ 8042 , true , 20 .]
gpsPlannerPoints : [ 8043 , true , 0 .]
gpsPlannerPlan : [ 8044 , true , 0 .]
applanixRaw : [ 8046 , true , 0 .]
orbLocation : [ 8047 , true , 0 .]
trafficEvents : [ 8048 , true , 0 .]
liveLocationTiming : [ 8049 , true , 0 .]
orbslamCorrection : [ 8050 , true , 0 .]
liveLocationCorrected : [ 8051 , true , 0 .]
orbObservation : [ 8052 , true , 0 .]
applanixLocation : [ 8053 , true , 0 .]
liveLocationKalman : [ 8054 , true , 0 .]
uiNavigationEvent : [ 8055 , true , 0 .]
orbOdometry : [ 8057 , true , 0 .]
orbFeatures : [ 8058 , false , 0 .]
orbKeyFrame : [ 8059 , true , 0 .]
uiLayoutState : [ 8060 , true , 0 .]
frontEncodeIdx : [ 8061 , true , 5 .]
orbFeaturesSummary : [ 8062 , true , 0 .]
driverMonitoring : [ 8063 , true , 5 ., 1]
liveParameters : [ 8064 , true , 10 .]
liveMapData : [ 8065 , true , 0 .]
cameraOdometry : [ 8066 , true , 5 .]
pathPlan : [ 8067 , true , 20 .]
kalmanOdometry : [ 8068 , true , 0 .]
thumbnail : [ 8069 , true , 0.2 , 1 ]
carEvents : [ 8070 , true , 1 ., 1]
carParams : [ 8071 , true , 0.02 , 1 ]
testModel : [ 8040 , false , 0 .]
testLiveLocation : [ 8045 , false , 0 .]
testJoystick : [ 8056 , false , 0 .]
# 8080 is reserved for slave testing daemon
# 8762 is reserved for logserver
# manager -- base process to manage starting and stopping of all others
# subscribes: thermal
# **** processes that communicate with the outside world ****
# thermald -- decides when to start and stop onroad
# subscribes: health, location
# publishes: thermal
# boardd -- communicates with the car
# subscribes: sendcan
# publishes: can, health, ubloxRaw
# sensord -- publishes IMU and Magnetometer
# publishes: sensorEvents
# gpsd -- publishes EON's gps
# publishes: gpsNMEA
# visiond -- talks to the cameras, runs the model, saves the videos
# publishes: frame, model, driverMonitoring, cameraOdometry, thumbnail
# **** stateful data transformers ****
# plannerd -- decides where to drive the car
# subscribes: carState, model, radarState, controlsState, liveParameters
# publishes: plan, pathPlan, liveMpc, liveLongitudinalMpc
# controlsd -- drives the car by sending CAN messages to panda
# subscribes: can, thermal, health, plan, pathPlan, driverMonitoring, liveCalibration
# publishes: carState, carControl, sendcan, controlsState, carEvents, carParams
# radard -- processes the radar and vision data
# subscribes: can, controlsState, model, liveParameters
# publishes: radarState, liveTracks
# params_learner -- learns vehicle params by observing the vehicle dynamics
# subscribes: controlsState, sensorEvents, cameraOdometry
# publishes: liveParameters
# calibrationd -- reads posenet and applies a temporal filter on the frame region to look at
# subscribes: cameraOdometry
# publishes: liveCalibration
# ubloxd -- read raw ublox data and converts them in readable format
# subscribes: ubloxRaw
# publishes: ubloxGnss
# **** LOGGING SERVICE ****
# loggerd
# subscribes: EVERYTHING
# **** NON VITAL SERVICES ****
# ui
# subscribes: thermal, model, controlsState, uiLayout, liveCalibration, radarState, liveMpc, plusFrame, liveMapData
# uploader
# communicates through file system with loggerd
# deleter
# communicates through file system with loggerd and uploader
# logmessaged -- central logging service, can log to cloud
# publishes: logMessage
# logcatd -- fetches logcat info from android
# publishes: androidLog
# proclogd -- fetches process information
# publishes: procLog
# tombstoned -- reports native crashes
# athenad -- on request, open a sub socket and return the value
# updated -- waits for network access and tries to update every hour