YAMS
Yet Another Mechanism System
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | List of all members
yams::mechanisms::swerve::utility::SwerveInputStreamTelemetry< NumModules > Class Template Reference

#include <SwerveInputStreamTelemetry.hpp>

Public Types

using TelemetryVerbosity = SwerveDriveConfig::TelemetryVerbosity
 

Public Member Functions

 SwerveInputStreamTelemetry (SwerveInputStream< NumModules > &stream, std::string_view name, TelemetryVerbosity verbosity)
 
 SwerveInputStreamTelemetry (const SwerveInputStreamTelemetry &)=delete
 
SwerveInputStreamTelemetry & operator= (const SwerveInputStreamTelemetry &)=delete
 
 ~SwerveInputStreamTelemetry ()
 
void UpdateTelemetry ()
 
void ApplyTuningValues ()
 
std::optional< std::reference_wrapper< wpi::cmd::Command > > GetLiveTuningCommand ()
 

Detailed Description

template<size_t NumModules = 4>
class yams::mechanisms::swerve::utility::SwerveInputStreamTelemetry< NumModules >

Telemetry and live tuning for a SwerveInputStream, created by SwerveInputStream::WithTelemetry(name, verbosity) and published every time the stream is read.

While live tuning, values stay in sync both ways: a dashboard edit is applied to the stream, and a change made in code, e.g. a binding that changes the translation scale, is published to the dashboard. Invalid dashboard values are replaced with the stream's current value.

The stream owns its telemetry and creates it when first read, so the telemetry never outlives the stream or follows it to a new address.

Member Typedef Documentation

◆ TelemetryVerbosity

Constructor & Destructor Documentation

◆ SwerveInputStreamTelemetry() [1/2]

template<size_t NumModules = 4>
yams::mechanisms::swerve::utility::SwerveInputStreamTelemetry< NumModules >::SwerveInputStreamTelemetry ( SwerveInputStream< NumModules > &  stream,
std::string_view  name,
TelemetryVerbosity  verbosity 
)
inline

Publish telemetry for a SwerveInputStream. Use SwerveInputStream::WithTelemetry rather than creating this directly.

Parameters
streamThe SwerveInputStream to monitor and tune. Must outlive this object.
nameName of the stream in NetworkTables (e.g., "drive").
verbosityTelemetryVerbosity to publish at.

◆ SwerveInputStreamTelemetry() [2/2]

template<size_t NumModules = 4>
yams::mechanisms::swerve::utility::SwerveInputStreamTelemetry< NumModules >::SwerveInputStreamTelemetry ( const SwerveInputStreamTelemetry< NumModules > &  )
delete

◆ ~SwerveInputStreamTelemetry()

Stop publishing, canceling and removing the "Live Tuning" command.

Member Function Documentation

◆ ApplyTuningValues()

template<size_t NumModules = 4>
void yams::mechanisms::swerve::utility::SwerveInputStreamTelemetry< NumModules >::ApplyTuningValues ( )
inline

Apply values edited on the dashboard to the stream, and publish changes made to the stream in code. The "Live Tuning" command calls this every loop. Does nothing below HIGH.

◆ GetLiveTuningCommand()

template<size_t NumModules = 4>
std::optional< std::reference_wrapper< wpi::cmd::Command > > yams::mechanisms::swerve::utility::SwerveInputStreamTelemetry< NumModules >::GetLiveTuningCommand ( )
inline

The "Live Tuning" command published to the dashboard, which applies dashboard edits while it runs.

Returns
The command at HIGH, otherwise empty.

◆ operator=()

◆ UpdateTelemetry()

template<size_t NumModules = 4>
void yams::mechanisms::swerve::utility::SwerveInputStreamTelemetry< NumModules >::UpdateTelemetry ( )
inline

Publish the stream's current mode and, at MEDIUM and above, its configuration. Called by SwerveInputStream::Get().


The documentation for this class was generated from the following files: