How plotjuggler/plotjuggler-can-dbs works
This repository provides two PlotJuggler CAN plugins: one imports candump logs, and the other streams frames from a live CAN interface. Both select a DBC database and protocol, then decode frames into PlotJuggler series; RAW, NMEA2K, and J1939 are distinct decoding modes. The shared processor also handles decoded signal metadata, while NMEA2K message support includes fast-packet assembly. The stream plugin is optional because it depends on Qt SerialBus. Some implementation excerpts are partial, so uncertain internal wiring is omitted.
Main entry points: CanFrameProcessor.cpp Frame processor · dataload_can.cpp Log loader · datastream_can.cpp Stream plugin · connectdialog.cpp Connection dialog
Components 13
Log Import
- Log loader
DataLoadCAN/dataload_can.cpp
Live Streaming
- Stream plugin
DataStreamCAN/datastream_can.cpp - Connection dialog
DataStreamCAN/connectdialog.cpp
Shared CAN Processing
- Database selector
PluginsCommonCAN/select_can_database.cpp - Frame processor
PluginsCommonCAN/CanFrameProcessor.cpp - Protocol decoding
PluginsCommonCAN/CanFrameProcessor.cpp - N2K messages
PluginsCommonCAN/N2kMsg/N2kMsgBase.h - Fast packets
PluginsCommonCAN/N2kMsg/GenericFastPacket.c
PlotJuggler Integration
- Plot data series
Other components
- candump log
- CAN interface
- DBC parser
3rdparty/dbcppp - PlotJuggler
Connections 15
- candump log → Log loader: loads
- Log loader → Database selector: opens
- Log loader → Frame processor: creates
- Log loader → Frame processor: submits frames
- Connection dialog → Database selector: opens
- Connection dialog → Stream plugin: provides settings
- Stream plugin → CAN interface: connects
- CAN interface → Stream plugin: delivers frames
- Stream plugin → Frame processor: creates and submits
- Frame processor → DBC parser: loads database
- Frame processor → Protocol decoding: dispatches decoding
- Protocol decoding → N2K messages: decodes NMEA2K
- N2K messages → Fast packets: unpacks packets
- Frame processor → Plot data series: writes decoded series
- Plot data series → PlotJuggler: provides plot data