10 #include "HAL/HAL.hpp"
11 #include "SensorBase.h"
27 virtual uint32_t GetChannelForRouting()
const = 0;
28 virtual uint32_t GetModuleForRouting()
const = 0;
29 virtual bool GetAnalogTriggerForRouting()
const = 0;
31 InterruptHandlerFunction handler,
37 float timeout,
bool ignorePrevious =
true);
48 void *m_interrupt =
nullptr;
49 uint32_t m_interruptIndex = std::numeric_limits<uint32_t>::max();
50 void AllocateInterrupts(
bool watcher);
52 static std::unique_ptr<Resource> m_interrupts;
virtual void CancelInterrupts()
Free up the underlying chipobject functions.
Definition: InterruptableSensorBase.cpp:85
virtual double ReadRisingTimestamp()
Return the timestamp for the rising interrupt that occurred.
Definition: InterruptableSensorBase.cpp:151
virtual WaitResult WaitForInterrupt(float timeout, bool ignorePrevious=true)
Synchronus version.
Definition: InterruptableSensorBase.cpp:106
virtual void DisableInterrupts()
Disable, but don't deallocate.
Definition: InterruptableSensorBase.cpp:136
Base class for all sensors.
Definition: SensorBase.h:20
virtual double ReadFallingTimestamp()
Return the timestamp for the falling interrupt that occurred.
Definition: InterruptableSensorBase.cpp:167
virtual void SetUpSourceEdge(bool risingEdge, bool fallingEdge)
Set which edge to trigger interrupts on.
Definition: InterruptableSensorBase.cpp:184
Definition: InterruptableSensorBase.h:16
virtual void EnableInterrupts()
Enable interrupts - after finishing setup.
Definition: InterruptableSensorBase.cpp:125
virtual void RequestInterrupts()
Synchronus Wait version.
Definition: InterruptableSensorBase.cpp:55