Class DashboardReceiver
java.lang.Object
frc.spectrumLib.telemetry.DashboardReceiver
- All Implemented Interfaces:
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): everylogDashkey 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
ncycles. 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.
-
Field Summary
Fields inherited from interface LogDataReceiver
timestampKey -
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
DashboardReceiver
- Parameters:
inner- the NetworkTables publishereveryN- hand on one merged table per this many cycles
-
-
Method Details
-
start
public void start()- Specified by:
startin interfaceLogDataReceiver
-
end
public void end()- Specified by:
endin interfaceLogDataReceiver
-
putTable
- Specified by:
putTablein interfaceLogDataReceiver- Throws:
InterruptedException
-