12 #include <hal/Types.h>
14 #include "frc/AnalogTrigger.h"
15 #include "frc/CounterBase.h"
16 #include "frc/ErrorBase.h"
17 #include "frc/smartdashboard/SendableBase.h"
21 class DigitalGlitchFilter;
39 kExternalDirection = 3
55 explicit Counter(Mode mode = kTwoPulse);
96 explicit Counter(std::shared_ptr<DigitalSource> source);
137 Counter(EncodingType encodingType, std::shared_ptr<DigitalSource> upSource,
138 std::shared_ptr<DigitalSource> downSource,
bool inverted);
171 void SetUpSource(std::shared_ptr<AnalogTrigger> analogTrigger,
172 AnalogTriggerType triggerType);
183 void SetUpSource(std::shared_ptr<DigitalSource> source);
226 AnalogTriggerType triggerType);
236 void SetDownSource(std::shared_ptr<AnalogTrigger> analogTrigger,
237 AnalogTriggerType triggerType);
339 int GetFPGAIndex()
const;
348 int Get()
const override;
356 void Reset()
override;
422 std::shared_ptr<DigitalSource> m_upSource;
425 std::shared_ptr<DigitalSource> m_downSource;
428 HAL_CounterHandle m_counter = HAL_kInvalidHandle;
void SetUpDownCounterMode()
Set standard up / down counting mode on this counter.
void SetSemiPeriodMode(bool highSemiPeriod)
Set Semi-period mode on this counter.
void Reset() override
Reset the Counter to zero.
void ClearDownSource()
Disable the down counting source to the counter.
void SetUpdateWhenEmpty(bool enabled)
Select whether you want to continue updating the event timer output when there are no samples capture...
WPILib FRC namespace.
Definition: SPIAccelerometerSim.h:18
Counter(Mode mode=kTwoPulse)
Create an instance of a counter where no sources are selected.
void SetDownSource(int channel)
Set the down counting source to be a digital input channel.
void ClearUpSource()
Disable the up counting source to the counter.
int GetSamplesToAverage() const
Get the Samples to Average which specifies the number of samples of the timer to average when calcula...
Class to enable glitch filtering on a set of digital inputs.
Definition: DigitalGlitchFilter.h:32
Interface for counting the number of ticks on a digital input channel.
Definition: CounterBase.h:21
Class for counting the number of ticks on a digital input channel.
Definition: Counter.h:33
void SetSamplesToAverage(int samplesToAverage)
Set the Samples to Average which specifies the number of samples of the timer to average when calcula...
void SetPulseLengthMode(double threshold)
Configure the counter to count in up or down based on the length of the input pulse.
DigitalSource Interface.
Definition: DigitalSource.h:25
void SetUpSourceEdge(bool risingEdge, bool fallingEdge)
Set the edge sensitivity on an up counting source.
bool GetStopped() const override
Determine if the clock is stopped.
void SetDownSourceEdge(bool risingEdge, bool fallingEdge)
Set the edge sensitivity on a down counting source.
Base class for most objects.
Definition: ErrorBase.h:74
Definition: SendableBase.h:19
Definition: AnalogTrigger.h:22
int Get() const override
Read the current counter value.
Definition: SendableBuilder.h:23
void SetReverseDirection(bool reverseDirection)
Set the Counter to return reversed sensing on the direction.
void SetUpSource(int channel)
Set the upsource for the counter as a digital input channel.
double GetPeriod() const override
Get the Period of the most recent count.
void SetMaxPeriod(double maxPeriod) override
Set the maximum period where the device is still considered "moving".
void InitSendable(SendableBuilder &builder) override
Initializes this Sendable object.
bool GetDirection() const override
The last direction the counter value changed.
void SetExternalDirectionMode()
Set external direction mode on this counter.