12 #include <hal/Counter.h>
13 #include <hal/Types.h>
15 #include "frc/AnalogTrigger.h"
16 #include "frc/CounterBase.h"
17 #include "frc/ErrorBase.h"
18 #include "frc/smartdashboard/SendableBase.h"
22 class DigitalGlitchFilter;
40 kExternalDirection = 3
56 explicit Counter(Mode mode = kTwoPulse);
97 explicit Counter(std::shared_ptr<DigitalSource> source);
138 Counter(EncodingType encodingType, std::shared_ptr<DigitalSource> upSource,
139 std::shared_ptr<DigitalSource> downSource,
bool inverted);
172 void SetUpSource(std::shared_ptr<AnalogTrigger> analogTrigger,
173 AnalogTriggerType triggerType);
184 void SetUpSource(std::shared_ptr<DigitalSource> source);
227 AnalogTriggerType triggerType);
237 void SetDownSource(std::shared_ptr<AnalogTrigger> analogTrigger,
238 AnalogTriggerType triggerType);
340 int GetFPGAIndex()
const;
349 int Get()
const override;
357 void Reset()
override;
423 std::shared_ptr<DigitalSource> m_upSource;
426 std::shared_ptr<DigitalSource> m_downSource;
429 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:34
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.