YAMS
Yet Another Mechanism System
Loading...
Searching...
No Matches
SwerveModuleTelemetryConfig.hpp
Go to the documentation of this file.
1// Copyright (c) 2026 Yet Another Software Suite
2// SPDX-License-Identifier: LGPL-3.0-or-later
3
4#pragma once
5
6#include <optional>
7#include <string>
8#include <unordered_map>
9#include <vector>
10#include <wpi/math/kinematics/SwerveModuleVelocity.hpp>
11#include <wpi/math/kinematics/struct/SwerveModuleVelocityStruct.hpp>
12
16
17namespace yams::telemetry {
18
38 public:
40
45 };
46
50 State,
51 };
52
54
61
68 SwerveModuleTelemetryConfig& WithDataLogName(const std::string& dataLogName);
69
78
81
89
94
96 std::optional<std::string> GetDataLogName() const;
98 bool GetNT4Enabled() const;
99
101 std::unordered_map<DoubleTelemetryField, DoubleTelemetry<DoubleTelemetryField>>&
103
105 std::unordered_map<StructTelemetryField,
108
120 SwerveModuleTelemetryConfig& WithCustom(const std::vector<DoubleTelemetryField>& fields,
121 bool value);
123 SwerveModuleTelemetryConfig& WithCustom(const std::vector<StructTelemetryField>& fields,
124 bool value);
125
126 private:
127 std::optional<std::string> m_dataLogName;
128 bool m_nt4Telemetry{true};
129
130 std::unordered_map<DoubleTelemetryField, DoubleTelemetry<DoubleTelemetryField>> m_doubleFields;
131 std::unordered_map<StructTelemetryField,
133 m_structFields;
134};
135
136} // namespace yams::telemetry
TelemetryVerbosity
Definition SmartMotorControllerConfig.hpp:72
Definition StructTelemetry.hpp:31
Definition SwerveModuleTelemetryConfig.hpp:37
SwerveModuleTelemetryConfig & WithCustom(const std::vector< DoubleTelemetryField > &fields, bool value)
StructTelemetryField
Definition SwerveModuleTelemetryConfig.hpp:48
SwerveModuleTelemetryConfig & WithState()
SwerveModuleTelemetryConfig & WithCustom(DoubleTelemetryField field, bool value)
std::unordered_map< StructTelemetryField, StructTelemetry< wpi::math::SwerveModuleVelocity, StructTelemetryField > > & GetStructFields()
SwerveModuleTelemetryConfig(TelemetryVerbosity verbosity)
SwerveModuleTelemetryConfig & WithNetworkTables(bool enabled)
std::unordered_map< DoubleTelemetryField, DoubleTelemetry< DoubleTelemetryField > > & GetDoubleFields()
DoubleTelemetryField
Definition SwerveModuleTelemetryConfig.hpp:42
SwerveModuleTelemetryConfig & WithCustom(const std::vector< StructTelemetryField > &fields, bool value)
SwerveModuleTelemetryConfig & WithCustom(StructTelemetryField field, bool value)
SwerveModuleTelemetryConfig & WithTelemetryVerbosity(TelemetryVerbosity verbosity)
SwerveModuleTelemetryConfig & WithAbsoluteEncoder()
SwerveModuleTelemetryConfig & WithoutNetworkTables()
std::optional< std::string > GetDataLogName() const
SwerveModuleTelemetryConfig & WithDataLogName(const std::string &dataLogName)
Definition SwerveDrive.hpp:864