YAMS
Yet Another Mechanism System
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
yams::telemetry::SwerveModuleTelemetryConfig Class Reference

#include <SwerveModuleTelemetryConfig.hpp>

Public Types

enum class  DoubleTelemetryField { AbsoluteEncoder }
 
enum class  StructTelemetryField { State }
 
using TelemetryVerbosity = motorcontrollers::SmartMotorControllerConfig::TelemetryVerbosity
 

Public Member Functions

 SwerveModuleTelemetryConfig ()
 
 SwerveModuleTelemetryConfig (TelemetryVerbosity verbosity)
 
SwerveModuleTelemetryConfig & WithDataLogName (const std::string &dataLogName)
 
SwerveModuleTelemetryConfig & WithNetworkTables (bool enabled)
 
SwerveModuleTelemetryConfig & WithoutNetworkTables ()
 
SwerveModuleTelemetryConfig & WithTelemetryVerbosity (TelemetryVerbosity verbosity)
 
SwerveModuleTelemetryConfig & WithAbsoluteEncoder ()
 
SwerveModuleTelemetryConfig & WithState ()
 
std::optional< std::string > GetDataLogName () const
 
bool GetNT4Enabled () const
 
std::unordered_map< DoubleTelemetryField, DoubleTelemetry< DoubleTelemetryField > > & GetDoubleFields ()
 
std::unordered_map< StructTelemetryField, StructTelemetry< wpi::math::SwerveModuleVelocity, StructTelemetryField > > & GetStructFields ()
 
SwerveModuleTelemetryConfig & WithCustom (DoubleTelemetryField field, bool value)
 
SwerveModuleTelemetryConfig & WithCustom (StructTelemetryField field, bool value)
 
SwerveModuleTelemetryConfig & WithCustom (const std::vector< DoubleTelemetryField > &fields, bool value)
 
SwerveModuleTelemetryConfig & WithCustom (const std::vector< StructTelemetryField > &fields, bool value)
 

Detailed Description

Swerve module telemetry configuration.

Use this builder to select exactly which fields are published to NetworkTables and/or DataLog. Every field is disabled by default; call the individual With*() methods to opt in, or use WithTelemetryVerbosity() to enable a predefined set.

Example

.WithTelemetryVerbosity(TelemetryVerbosity::HIGH)
.WithDataLogName("swerve/modules/frontleft");
Definition SwerveModuleTelemetryConfig.hpp:37
SwerveModuleTelemetryConfig & WithState()
SwerveModuleTelemetryConfig & WithTelemetryVerbosity(TelemetryVerbosity verbosity)
SwerveModuleTelemetryConfig & WithAbsoluteEncoder()
SwerveModuleTelemetryConfig & WithoutNetworkTables()
SwerveModuleTelemetryConfig & WithDataLogName(const std::string &dataLogName)

Member Typedef Documentation

◆ TelemetryVerbosity

Member Enumeration Documentation

◆ DoubleTelemetryField

Double telemetry field for a SwerveModule.

Enumerator
AbsoluteEncoder 

Absolute encoder angle, without offsets applied, in degrees.

◆ StructTelemetryField

Struct telemetry field for a SwerveModule, backed by wpi::math::SwerveModuleVelocity.

Enumerator
State 

Measured SwerveModuleState of the module.

Constructor & Destructor Documentation

◆ SwerveModuleTelemetryConfig() [1/2]

yams::telemetry::SwerveModuleTelemetryConfig::SwerveModuleTelemetryConfig ( )

◆ SwerveModuleTelemetryConfig() [2/2]

yams::telemetry::SwerveModuleTelemetryConfig::SwerveModuleTelemetryConfig ( TelemetryVerbosity  verbosity)
explicit

Construct with a verbosity preset.

Parameters
verbosityTelemetryVerbosity to use by default.

Member Function Documentation

◆ GetDataLogName()

std::optional< std::string > yams::telemetry::SwerveModuleTelemetryConfig::GetDataLogName ( ) const
Returns
Optional DataLog entry name.

◆ GetDoubleFields()

std::unordered_map< DoubleTelemetryField, DoubleTelemetry< DoubleTelemetryField > > & yams::telemetry::SwerveModuleTelemetryConfig::GetDoubleFields ( )
Returns
Configured DoubleTelemetry for each DoubleTelemetryField.

◆ GetNT4Enabled()

bool yams::telemetry::SwerveModuleTelemetryConfig::GetNT4Enabled ( ) const
Returns
true if NT4 output is enabled.

◆ GetStructFields()

std::unordered_map< StructTelemetryField, StructTelemetry< wpi::math::SwerveModuleVelocity, StructTelemetryField > > & yams::telemetry::SwerveModuleTelemetryConfig::GetStructFields ( )
Returns
Configured StructTelemetry<SwerveModuleState> for each StructTelemetryField.

◆ WithAbsoluteEncoder()

SwerveModuleTelemetryConfig & yams::telemetry::SwerveModuleTelemetryConfig::WithAbsoluteEncoder ( )

Enables the absolute encoder angle logging.

Returns
*this for chaining.

◆ WithCustom() [1/4]

SwerveModuleTelemetryConfig & yams::telemetry::SwerveModuleTelemetryConfig::WithCustom ( const std::vector< DoubleTelemetryField > &  fields,
bool  value 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ WithCustom() [2/4]

SwerveModuleTelemetryConfig & yams::telemetry::SwerveModuleTelemetryConfig::WithCustom ( const std::vector< StructTelemetryField > &  fields,
bool  value 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ WithCustom() [3/4]

SwerveModuleTelemetryConfig & yams::telemetry::SwerveModuleTelemetryConfig::WithCustom ( DoubleTelemetryField  field,
bool  value 
)

Escape hatch for unimplemented fields which should be enabled or disabled.

Parameters
fieldField to configure.
valueEnable on true, disable on false.
Returns
*this for chaining.

◆ WithCustom() [4/4]

SwerveModuleTelemetryConfig & yams::telemetry::SwerveModuleTelemetryConfig::WithCustom ( StructTelemetryField  field,
bool  value 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

◆ WithDataLogName()

SwerveModuleTelemetryConfig & yams::telemetry::SwerveModuleTelemetryConfig::WithDataLogName ( const std::string &  dataLogName)

Set up a DataLog entry for this module.

Parameters
dataLogNameDataLog entry name.
Returns
*this for chaining.

◆ WithNetworkTables()

SwerveModuleTelemetryConfig & yams::telemetry::SwerveModuleTelemetryConfig::WithNetworkTables ( bool  enabled)

Enable or disable NT4 telemetry. This will not create NT4 entries and is generally only advisable during competition matches.

Parameters
enabledtrue to enable NT4 output.
Returns
*this for chaining.

◆ WithoutNetworkTables()

SwerveModuleTelemetryConfig & yams::telemetry::SwerveModuleTelemetryConfig::WithoutNetworkTables ( )

Disable NetworkTable output.

Returns
*this for chaining.

◆ WithState()

SwerveModuleTelemetryConfig & yams::telemetry::SwerveModuleTelemetryConfig::WithState ( )

Enables the SwerveModuleState logging.

Returns
*this for chaining.

◆ WithTelemetryVerbosity()

SwerveModuleTelemetryConfig & yams::telemetry::SwerveModuleTelemetryConfig::WithTelemetryVerbosity ( TelemetryVerbosity  verbosity)

Enable a preset bundle of fields based on verbosity level.

Parameters
verbosityVerbosity level to apply.
Returns
*this for chaining.

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