Fang-Robotics-MCB
Fang Robotics Team Codebase
Loading...
Searching...
No Matches
simple_feeder.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "driver/drivers.hpp"
4
9
10namespace fang::turret
11{
16 {
17 public:
32
36 SimpleFeeder(Drivers& drivers, std::unique_ptr<Motor> feedMotor, const Config& config);
37
38 void feedOn() override;
39 void feedOff() override;
40
41 void unjamOn() override;
42 void unjamOff() override;
43
48
49 void initialize() override;
50 void update() override;
51 void refresh() override;
52 private:
53 RPM feedRateToRPM();
54
55 static constexpr RPM kStillSpeed_{0.0};
56
57 std::unique_ptr<Motor> feedMotor_;
58 const int kRoundsPerRevolution_;
59 const Hertz kFeedRate_;
60 const RPM kUnjamSpeed_;
61 HeatLimiter heatLimiter_;
62
63 bool activeStatus_{false};
64
65 };
66}
Definition drivers.hpp:31
Definition heat_limiter.hpp:11
Definition simple_feeder_subsystem.hpp:18
Definition simple_feeder.hpp:16
void feedOff() override
Definition simple_feeder.cpp:27
void feedOn() override
Definition simple_feeder.cpp:22
void initialize() override
Definition simple_feeder.cpp:52
void unjamOff() override
Definition simple_feeder.cpp:37
void refresh() override
Definition simple_feeder.cpp:47
void unjamOn() override
Definition simple_feeder.cpp:32
void update() override
Definition simple_feeder.cpp:42
motor::ISpeedMotor Motor
Definition simple_feeder.hpp:18
Drivers * drivers
Definition subsystem.hpp:138
Definition pwm_info.hpp:4
rail::motor::ISpeedMotor< RPM > ISpeedMotor
Definition ispeed_motor.hpp:9
Definition activate_booster_command.cpp:5
Definition heat_limiter.hpp:17
Definition simple_feeder.hpp:26
Hertz feedRate
Definition simple_feeder.hpp:28
HeatLimiter::Config heatLimiterConfig
Definition simple_feeder.hpp:30
int roundsPerRevolution
Definition simple_feeder.hpp:27
RPM unjamSpeed
Definition simple_feeder.hpp:29
units::angular_velocity::revolutions_per_minute_t RPM
Definition units_alias.hpp:30
units::frequency::hertz_t Hertz
Definition units_alias.hpp:24