# 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: # frame syncing packet frame: [8002, true] # accel, gyro, and compass sensorEvents: [8003, true] # GPS data, also global timestamp gpsNMEA: [8004, true] # CPU+MEM+GPU+BAT temps thermal: [8005, true] # List(CanData), list of can messages can: [8006, true] live100: [8007, true] # random events we want to log #liveEvent: [8008, true] model: [8009, true] features: [8010, true] health: [8011, true] live20: [8012, true] #liveUI: [8014, true] encodeIdx: [8015, true] liveTracks: [8016, true] sendcan: [8017, true] logMessage: [8018, true] liveCalibration: [8019, true] androidLog: [8020, true] carState: [8021, true] # 8022 is reserved for sshd carControl: [8023, true] plan: [8024, true] liveLocation: [8025, true] gpsLocation: [8026, true] ethernetData: [8027, true] navUpdate: [8028, true] qcomGnss: [8029, true] lidarPts: [8030, true] procLog: [8031, true] # manager -- base process to manage starting and stopping of all others # subscribes: health # publishes: thermal # **** processes that communicate with the outside world **** # boardd -- communicates with the car # subscribes: sendcan # publishes: can, health # sensord -- publishes the IMU and GPS # publishes: sensorEvents, gpsNMEA # visiond -- talks to the cameras, runs the model, saves the videos # subscribes: liveCalibration, sensorEvents, live100 # publishes: frame, encodeIdx, model, liveCalibration # **** stateful data transformers **** # plannerd -- decides where to drive the car # subscribes: carState, model, live20 # publishes: plan # controlsd -- actually drives the car # subscribes: can, thermal, plan # publishes: carState, carControl, sendcan, live100 # radard -- processes the radar data # blocks: CarParams # subscribes: can, live100, model # publishes: live20, liveTracks # **** LOGGING SERVICE **** # loggerd # subscribes: EVERYTHING # **** NON VITAL SERVICES **** # ui # subscribes: live100, live20, liveCalibration, model, (raw frames) # uploader # communicates through file system with loggerd # 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