Fang-Robotics-MCB
Fang Robotics Team Codebase
Loading...
Searching...
No Matches
power_limiter.hpp
Go to the documentation of this file.
1#ifndef FANG_ROBOTICS_MCB_TRAP_CONTROL_CHASSIS_POWER_LIMITER_HPP
2#define FANG_ROBOTICS_MCB_TRAP_CONTROL_CHASSIS_POWER_LIMITER_HPP
6
8{
9 class PowerLimiter : public rail::chassis::IPowerLimiterSystem
10 {
11 public:
28 PowerLimiter(const RefSerial& m_refereeSystem, const Config& config);
29
43 double getPowerLimitRatio() const override;
44
45 //NOTE: Even though these are not used, the slight violation of the interface segregation
46 //principle is justified as many advanced power limiters use I2C and whatnot which might
47 //require manual mangement
48 void initialize() override;
49 void update() override;
50
51 private:
52 Joules getEnergyBuffer() const;
53
54 const RefSerial& m_refereeSystem;
55 const Joules m_startingEnergyBuffer;
56 const Joules m_energyBufferLimitThreshold;
57 const Joules m_energyBufferCritThreshold;
58 };
59}
60
61#endif
Definition ref_serial.hpp:63
Definition power_limiter.hpp:10
void update() override
Definition power_limiter.cpp:60
void initialize() override
Definition power_limiter.cpp:56
double getPowerLimitRatio() const override
Definition power_limiter.cpp:16
Definition pwm_info.hpp:4
Definition power_limiter.cpp:7
Definition power_limiter.hpp:19
Joules energyBufferCritThreshold
Definition power_limiter.hpp:22
Joules energyBufferLimitThreshold
Definition power_limiter.hpp:21
Joules startingEnergyBuffer
Definition power_limiter.hpp:20
units::energy::joule_t Joules
Definition units_alias.hpp:35