At the moment, an overheating or faulting Spark will result in errors being logged and SmartDashboard values being written, but it easy for the error messages to scroll away and there are too many SmartDashboard values to watch. To address this I recommend making lib199Subsystem extend SubsystemBase and adding an initSendable() implementation that adds to the SendableBuilder:
A "Sparks OK" property that is set to false if any Spark overheats, faults, or sticky faults. The user can display this one property on ShuffleBoard and immediately know if a problem was detected.
An "Overheating CAN IDs" property containing the CAN IDs of any overheating Sparks.
A "Faulting CAN IDs" property containing the CAN IDs of Sparks with faults.
A "Sticky Faulting CAN IDs" property containing the CAN IDs of Sparks with sticky faults.
Note: the code should not cause the Sparks to be queried directly. Instead, it should use the latest values read by the registered periodic methods.
At the moment, an overheating or faulting Spark will result in errors being logged and
SmartDashboard
values being written, but it easy for the error messages to scroll away and there are too manySmartDashboard
values to watch. To address this I recommend makinglib199Subsystem
extendSubsystemBase
and adding aninitSendable()
implementation that adds to theSendableBuilder
:Note: the code should not cause the Sparks to be queried directly. Instead, it should use the latest values read by the registered periodic methods.