YAMS
Yet Another Mechanism System
Loading...
Searching...
No Matches
SwerveDriveTelemetry.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 <cstddef>
7#include <memory>
8#include <optional>
9#include <set>
10#include <wpi/nt/NetworkTable.hpp>
11
13
15template <std::size_t NumModules>
16class SwerveDrive;
17}
18
19namespace yams::telemetry {
20
38 public:
43
50
56 template <std::size_t NumModules>
58
64 template <std::size_t NumModules>
66
72 template <std::size_t NumModules>
74
81 template <std::size_t NumModules>
83
85 void Close();
86
87 private:
89 enum class TuningMode {
91 AutoAlign,
93 Drive,
95 DriveInPlace,
97 DriveVoltage,
99 Azimuth,
101 AzimuthVoltage,
102 };
103
107 std::optional<std::set<TuningMode>> m_lastModes;
108
109 std::shared_ptr<wpi::nt::NetworkTable> m_dataTable;
110 std::shared_ptr<wpi::nt::NetworkTable> m_tuningTable;
111};
112
113} // namespace yams::telemetry
Definition SwerveDrive.hpp:136
Definition SwerveDriveTelemetryConfig.hpp:51
DoubleTelemetryField
Definition SwerveDriveTelemetryConfig.hpp:76
BooleanTelemetryField
Definition SwerveDriveTelemetryConfig.hpp:134
StructTelemetryField
Definition SwerveDriveTelemetryConfig.hpp:56
StructArrayTelemetryField
Definition SwerveDriveTelemetryConfig.hpp:68
Definition SwerveDriveTelemetry.hpp:37
void Publish(mechanisms::swerve::SwerveDrive< NumModules > *drive)
Definition SwerveDrive.hpp:996
SwerveDriveTelemetry(SwerveDriveTelemetryConfig config)
void SetupTelemetry(mechanisms::swerve::SwerveDrive< NumModules > *drive)
Definition SwerveDrive.hpp:873
void StopTuning(mechanisms::swerve::SwerveDrive< NumModules > *drive)
Definition SwerveDrive.hpp:1365
void ApplyTuningValues(mechanisms::swerve::SwerveDrive< NumModules > *drive)
Definition SwerveDrive.hpp:1053
Definition SwerveDrive.hpp:49
Definition SwerveDrive.hpp:864