12 #include <HAL/Encoder.h> 15 #include "CounterBase.h" 16 #include "ErrorBase.h" 17 #include "PIDSource.h" 18 #include "SmartDashboard/SendableBase.h" 23 class DigitalGlitchFilter;
75 Encoder(
int aChannel,
int bChannel,
bool reverseDirection =
false,
76 EncodingType encodingType = k4X);
102 bool reverseDirection =
false, EncodingType encodingType = k4X);
128 bool reverseDirection =
false, EncodingType encodingType = k4X);
130 Encoder(std::shared_ptr<DigitalSource> aSource,
131 std::shared_ptr<DigitalSource> bSource,
bool reverseDirection =
false,
132 EncodingType encodingType = k4X);
146 int Get()
const override;
153 void Reset()
override;
306 double PIDGet()
override;
316 void SetIndexSource(
int channel, IndexingType type = kResetOnRisingEdge);
327 IndexingType type = kResetOnRisingEdge);
329 int GetFPGAIndex()
const;
351 void InitEncoder(
bool reverseDirection, EncodingType encodingType);
357 double DecodingScaleFactor()
const;
359 std::shared_ptr<DigitalSource> m_aSource;
360 std::shared_ptr<DigitalSource> m_bSource;
361 std::shared_ptr<DigitalSource> m_indexSource =
nullptr;
362 HAL_EncoderHandle m_encoder = HAL_kInvalidHandle;
double GetDistance() const
Get the distance the robot has driven since the last reset.
Definition: Encoder.cpp:121
int GetSamplesToAverage() const
Get the Samples to Average which specifies the number of samples of the timer to average when calcula...
Definition: Encoder.cpp:178
void SetReverseDirection(bool reverseDirection)
Set the direction sensing for this encoder.
Definition: Encoder.cpp:159
void SetMinRate(double minRate)
Set the minimum rate of the device before the hardware reports it stopped.
Definition: Encoder.cpp:137
Definition: Utility.cpp:119
void SetIndexSource(int channel, IndexingType type=kResetOnRisingEdge)
Set the index source for the encoder.
Definition: Encoder.cpp:197
int Get() const override
Gets the current count.
Definition: Encoder.cpp:60
bool GetStopped() const override
Determine if the encoder is stopped.
Definition: Encoder.cpp:90
Class to read quad encoders.
Definition: Encoder.h:40
PIDSource interface is a generic sensor source for the PID class.
Definition: PIDSource.h:20
Class to enable glitch filtering on a set of digital inputs.
Definition: DigitalGlitchFilter.h:32
bool GetDirection() const override
The last direction the encoder value changed.
Definition: Encoder.cpp:98
Interface for counting the number of ticks on a digital input channel.
Definition: CounterBase.h:21
double GetPeriod() const override
Returns the period of the most recent pulse.
Definition: Encoder.cpp:75
void SetSamplesToAverage(int samplesToAverage)
Set the Samples to Average which specifies the number of samples of the timer to average when calcula...
Definition: Encoder.cpp:166
double GetDistancePerPulse() const
Get the distance per pulse for this encoder.
Definition: Encoder.cpp:151
void SetDistancePerPulse(double distancePerPulse)
Set the distance per pulse for this encoder.
Definition: Encoder.cpp:144
DigitalSource Interface.
Definition: DigitalSource.h:25
void SetMaxPeriod(double maxPeriod) override
Sets the maximum period for stopped detection.
Definition: Encoder.cpp:83
int GetEncodingScale() const
The encoding scale factor 1x, 2x, or 4x, per the requested encodingType.
Definition: Encoder.cpp:114
double GetRate() const
Get the current rate of the encoder.
Definition: Encoder.cpp:129
void Reset() override
Reset the Encoder distance to zero.
Definition: Encoder.cpp:68
Base class for most objects.
Definition: ErrorBase.h:74
int GetRaw() const
Gets the raw value from the encoder.
Definition: Encoder.cpp:106
Definition: SendableBase.h:19
Encoder(int aChannel, int bChannel, bool reverseDirection=false, EncodingType encodingType=k4X)
Encoder constructor.
Definition: Encoder.cpp:18
Definition: SendableBuilder.h:23
void InitSendable(SendableBuilder &builder) override
Initializes this Sendable object.
Definition: Encoder.cpp:221