Valkyrie 2026
Loading...
Searching...
No Matches
PowerDistribution.h
1#pragma once
2#include <frc/PowerDistribution.h>
3#include <units/current.h>
4#include <units/energy.h>
5#include <units/power.h>
6#include <units/temperature.h>
7#include <units/voltage.h>
8
9namespace valor {
10
19class PowerDistribution : public frc::PowerDistribution {
20 public:
32
40
47 inline PowerDistribution(int module, ModuleType moduleType)
48 : frc::PowerDistribution{module, ConvertModuleType(moduleType)}, type{moduleType} {}
49
55 int GetNumChannels() const;
56
62 units::volt_t GetVoltage() const;
63
73 inline units::celsius_t GetTemperature() const { return units::celsius_t{frc::PowerDistribution::GetTemperature()}; }
74
82 inline units::ampere_t GetCurrent(int channel) const { return units::ampere_t{frc::PowerDistribution::GetCurrent(channel)}; }
83
90 std::vector<units::ampere_t> GetAllCurrents() const;
91
98 inline units::ampere_t GetTotalCurrent() const { return units::ampere_t{frc::PowerDistribution::GetTotalCurrent()}; }
99
108 inline units::watt_t GetTotalPower() const { return units::watt_t{frc::PowerDistribution::GetTotalPower()}; }
109
118 inline units::joule_t GetTotalEnergy() const { return units::joule_t{frc::PowerDistribution::GetTotalEnergy()}; }
119
123 constexpr ModuleType GetType() const { return type; }
124
125 void InitSendable(wpi::SendableBuilder& builder) override;
126
127 private:
128 static constexpr frc::PowerDistribution::ModuleType ConvertModuleType(ModuleType type) {
129 if (type == ModuleType::kRev)
130 return frc::PowerDistribution::ModuleType::kRev;
131 return frc::PowerDistribution::ModuleType::kCTRE;
132 }
133
134 ModuleType type;
135};
136
137} // namespace valor
units::volt_t GetVoltage() const
PowerDistribution(int module, ModuleType moduleType)
Definition PowerDistribution.h:47
units::joule_t GetTotalEnergy() const
Definition PowerDistribution.h:118
std::vector< units::ampere_t > GetAllCurrents() const
units::celsius_t GetTemperature() const
Definition PowerDistribution.h:73
units::ampere_t GetTotalCurrent() const
Definition PowerDistribution.h:98
units::ampere_t GetCurrent(int channel) const
Definition PowerDistribution.h:82
units::watt_t GetTotalPower() const
Definition PowerDistribution.h:108
ModuleType
Definition PowerDistribution.h:24
@ kCTRE_PDP
CTRE (Cross The Road Electronics) CTRE Power Distribution Panel (PDP).
Definition PowerDistribution.h:26
@ kCTRE_PDP2_0
CTRE (Cross The Road Electronics) CTRE Power Distribution Panel 2.0 (PDP 2.0).
Definition PowerDistribution.h:28
@ kRev
REV Power Distribution Hub (PDH).
Definition PowerDistribution.h:30
constexpr ModuleType GetType() const
Definition PowerDistribution.h:123