Class DashboardReceiver

java.lang.Object
frc.spectrumLib.telemetry.DashboardReceiver
All Implemented Interfaces:
LogDataReceiver

public class DashboardReceiver extends Object implements LogDataReceiver
Feeds AdvantageKit's NetworkTables publisher only what a dashboard needs, at a dashboard's rate.

The 2026 offseason code stopped mirroring the whole log to NetworkTables because on the roboRIO that took one of the two cores full time. On SystemCore the publisher runs on AdvantageKit's receiver thread, not the robot loop. The controller still shares its CPU with the Limelight vision servers, so the same rule applies:

  • Only dashboard keys (Telemetry.isDashboardKey(String): every logDash key and every key the Elastic layout reads), plus metadata. Inputs never go.
  • Everything, while the "/SmartDashboard/Telemetry/MirrorLogsToNT" switch is on. This is for a live AdvantageScope session on the bench, and the switch is ignored with the FMS attached.
  • One table every n cycles. Skipped cycles are merged, not dropped: an output is only in the table of the cycle that recorded it, so a value logged once a second would otherwise never reach the dashboard whenever its cycle was a skipped one.

The WPILOG file gets every key, every cycle, regardless.