Valkyrie 2026
Loading...
Searching...
No Matches
DebounceSensor.h
1#pragma once
2
3#include <functional>
4#include <string>
5
6#include <frc/TimedRobot.h>
7#include <valkyrie/sensors/BaseSensor.h>
8
9namespace valor {
10namespace sensors {
11
21class DebounceSensor : public BaseSensor<bool> {
22 public:
29
35 inline void SetEdgeCallback(std::function<void()> lambda) { edge = lambda; }
36
42 inline void SetRisingEdgeCallback(std::function<void()> lambda) { risingEdge = lambda; }
43
49 inline void SetFallingEdgeCallback(std::function<void()> lambda) { fallingEdge = lambda; }
50
51 void LoggablePeriodic() override;
52
53 protected:
59 void Calculate() override;
60
61 private:
62 std::function<void()> edge;
63 std::function<void()> fallingEdge;
64 std::function<void()> risingEdge;
65};
66
67} // namespace sensors
68} // namespace valor
Abstract class that all Valor sensors should implement.
Definition BaseSensor.h:50
DebounceSensor()
Construct a new DebounceSensor object.
void LoggablePeriodic() override
Periodic callback for logging updates.
void SetEdgeCallback(std::function< void()> lambda)
Set a callback function for detecting any edge (rising or falling).
Definition DebounceSensor.h:35
void SetRisingEdgeCallback(std::function< void()> lambda)
Set a callback function for detecting a rising edge.
Definition DebounceSensor.h:42
void Calculate() override
Perform debounce-specific calculations.
void SetFallingEdgeCallback(std::function< void()> lambda)
Set a callback function for detecting a falling edge.
Definition DebounceSensor.h:49