YAMS
Yet Another Mechanism System
Loading...
Searching...
No Matches
SmartMotorControllerTelemetryConfig.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
13
14namespace yams::telemetry {
15
64 public:
66
68
75 SmartMotorControllerTelemetryConfig& WithDataLogName(const std::string& dataLogName);
76
84
87
99
100 // ---- Individual field enable methods ------------------------------------
101
128
137
146
154 SmartMotorControllerTelemetryConfig& WithCustom(const std::vector<DoubleTelemetryField>& fields,
155 bool enabled);
156
164 SmartMotorControllerTelemetryConfig& WithCustom(const std::vector<BooleanTelemetryField>& fields,
165 bool enabled);
166
189
190 // ---- Accessors ----------------------------------------------------------
191
193 std::optional<std::string> GetDataLogName() const;
195 bool GetNT4Enabled() const;
196
203 std::unordered_map<DoubleTelemetryField, DoubleTelemetry<DoubleTelemetryField>>& GetDoubleFields(
205 std::unordered_map<BooleanTelemetryField, BooleanTelemetry<BooleanTelemetryField>>& GetBoolFields(
207
208 private:
209 std::optional<std::string> m_dataLogName;
210 bool m_nt4Telemetry{true};
211
212 std::unordered_map<DoubleTelemetryField, DoubleTelemetry<DoubleTelemetryField>> m_doubleFields;
213 std::unordered_map<BooleanTelemetryField, BooleanTelemetry<BooleanTelemetryField>> m_boolFields;
214};
215
216} // namespace yams::telemetry
TelemetryVerbosity
Definition SmartMotorControllerConfig.hpp:72
Definition SmartMotorController.hpp:48
Definition SmartMotorControllerTelemetryConfig.hpp:63
SmartMotorControllerTelemetryConfig & WithTemperatureLimit()
SmartMotorControllerTelemetryConfig & WithNetworkTables(bool enabled)
SmartMotorControllerTelemetryConfig & WithMeasurementPosition()
SmartMotorControllerTelemetryConfig & WithRotorPosition()
SmartMotorControllerTelemetryConfig & WithCustom(const std::vector< BooleanTelemetryField > &fields, bool enabled)
SmartMotorControllerTelemetryConfig & WithSetpointForce()
SmartMotorControllerTelemetryConfig & WithStatorCurrent()
SmartMotorControllerTelemetryConfig & WithSetpointPosition()
SmartMotorControllerTelemetryConfig & WithCustom(BooleanTelemetryField field, bool enabled)
SmartMotorControllerTelemetryConfig & WithMechanismUpperLimit()
SmartMotorControllerTelemetryConfig & WithMechanismVelocity()
SmartMotorControllerTelemetryConfig & WithVelocityControl()
SmartMotorControllerTelemetryConfig & WithVelocityMeasurementDelay()
SmartMotorControllerTelemetryConfig & WithSimpleFeedforward()
SmartMotorControllerTelemetryConfig & WithMotionProfile()
std::unordered_map< DoubleTelemetryField, DoubleTelemetry< DoubleTelemetryField > > & GetDoubleFields(motorcontrollers::SmartMotorController &smc)
SmartMotorControllerTelemetryConfig & WithOutputVoltage()
SmartMotorControllerTelemetryConfig & WithRotorVelocity()
SmartMotorControllerTelemetryConfig & WithArmFeedforward()
SmartMotorControllerTelemetryConfig & WithClosedLoopPeriod()
SmartMotorControllerTelemetryConfig & WithMechanismPosition()
std::unordered_map< BooleanTelemetryField, BooleanTelemetry< BooleanTelemetryField > > & GetBoolFields(motorcontrollers::SmartMotorController &smc)
SmartMotorControllerTelemetryConfig & WithMeasurementVelocity()
SmartMotorControllerTelemetryConfig & WithTelemetryVerbosity(TelemetryVerbosity verbosity)
SmartMotorControllerTelemetryConfig & WithSetpointVelocity()
SmartMotorControllerTelemetryConfig & WithCustom(const std::vector< DoubleTelemetryField > &fields, bool enabled)
SmartMotorControllerTelemetryConfig & WithCustom(DoubleTelemetryField field, bool enabled)
SmartMotorControllerTelemetryConfig & WithoutNetworkTables()
std::optional< std::string > GetDataLogName() const
SmartMotorControllerTelemetryConfig & WithMechanismLowerLimit()
SmartMotorControllerTelemetryConfig & WithTemperature()
SmartMotorControllerTelemetryConfig & WithDataLogName(const std::string &dataLogName)
SmartMotorControllerTelemetryConfig & WithElevatorFeedforward()
Definition SwerveDrive.hpp:864
DoubleTelemetryField
Definition SmartMotorControllerTelemetry.hpp:33
BooleanTelemetryField
Definition SmartMotorControllerTelemetry.hpp:84