|
WPILibC++
2020.3.2
|
Public Types | |
| enum | WaitResult { kTimeout = 0x0, kRisingEdge = 0x1, kFallingEdge = 0x100, kBoth = 0x101 } |
| using | InterruptEventHandler = std::function< void(WaitResult)> |
| Handler for interrupts. More... | |
Public Member Functions | |
| virtual | ~InterruptableSensorBase () |
| Free the resources for an interrupt event. | |
| InterruptableSensorBase (InterruptableSensorBase &&)=default | |
| InterruptableSensorBase & | operator= (InterruptableSensorBase &&)=default |
| virtual HAL_Handle | GetPortHandleForRouting () const =0 |
| virtual AnalogTriggerType | GetAnalogTriggerTypeForRouting () const =0 |
| virtual void | RequestInterrupts (HAL_InterruptHandlerFunction handler, void *param) |
| Request one of the 8 interrupts asynchronously on this digital input. More... | |
| virtual void | RequestInterrupts (InterruptEventHandler handler) |
| Request one of the 8 interrupts asynchronously on this digital input. More... | |
| virtual void | RequestInterrupts () |
| Request one of the 8 interrupts synchronously on this digital input. More... | |
| virtual void | CancelInterrupts () |
| Cancel interrupts on this device. More... | |
| virtual WaitResult | WaitForInterrupt (double timeout, bool ignorePrevious=true) |
| In synchronous mode, wait for the defined interrupt to occur. More... | |
| virtual void | EnableInterrupts () |
| Enable interrupts to occur on this input. More... | |
| virtual void | DisableInterrupts () |
| Disable Interrupts without without deallocating structures. | |
| virtual double | ReadRisingTimestamp () |
| Return the timestamp for the rising interrupt that occurred most recently. More... | |
| virtual double | ReadFallingTimestamp () |
| Return the timestamp for the falling interrupt that occurred most recently. More... | |
| virtual void | SetUpSourceEdge (bool risingEdge, bool fallingEdge) |
| Set which edge to trigger interrupts on. More... | |
Public Member Functions inherited from frc::ErrorBase | |
| ErrorBase (const ErrorBase &)=default | |
| ErrorBase & | operator= (const ErrorBase &)=default |
| ErrorBase (ErrorBase &&)=default | |
| ErrorBase & | operator= (ErrorBase &&)=default |
| virtual Error & | GetError () |
| Retrieve the current error. More... | |
| virtual const Error & | GetError () const |
| Retrieve the current error. More... | |
| virtual void | ClearError () const |
| Clear the current error information associated with this sensor. | |
| virtual void | SetErrnoError (const wpi::Twine &contextMessage, wpi::StringRef filename, wpi::StringRef function, int lineNumber) const |
| Set error information associated with a C library call that set an error to the "errno" global variable. More... | |
| virtual void | SetImaqError (int success, const wpi::Twine &contextMessage, wpi::StringRef filename, wpi::StringRef function, int lineNumber) const |
| Set the current error information associated from the nivision Imaq API. More... | |
| virtual void | SetError (Error::Code code, const wpi::Twine &contextMessage, wpi::StringRef filename, wpi::StringRef function, int lineNumber) const |
| Set the current error information associated with this sensor. More... | |
| virtual void | SetErrorRange (Error::Code code, int32_t minRange, int32_t maxRange, int32_t requestedValue, const wpi::Twine &contextMessage, wpi::StringRef filename, wpi::StringRef function, int lineNumber) const |
| Set the current error information associated with this sensor. More... | |
| virtual void | SetWPIError (const wpi::Twine &errorMessage, Error::Code code, const wpi::Twine &contextMessage, wpi::StringRef filename, wpi::StringRef function, int lineNumber) const |
| Set the current error information associated with this sensor. More... | |
| virtual void | CloneError (const ErrorBase &rhs) const |
| virtual bool | StatusIsFatal () const |
| Check if the current error code represents a fatal error. More... | |
| void | ClearGlobalErrors () |
| Clear global errors. | |
Protected Member Functions | |
| void | AllocateInterrupts (bool watcher) |
Protected Attributes | |
| hal::Handle< HAL_InterruptHandle > | m_interrupt |
| std::unique_ptr< InterruptEventHandler > | m_interruptHandler {nullptr} |
Protected Attributes inherited from frc::ErrorBase | |
| Error | m_error |
Additional Inherited Members | |
Static Public Member Functions inherited from frc::ErrorBase | |
| static void | SetGlobalError (Error::Code code, const wpi::Twine &contextMessage, wpi::StringRef filename, wpi::StringRef function, int lineNumber) |
| static void | SetGlobalWPIError (const wpi::Twine &errorMessage, const wpi::Twine &contextMessage, wpi::StringRef filename, wpi::StringRef function, int lineNumber) |
| static Error | GetGlobalError () |
| Retrieve the last global error. | |
| static std::vector< Error > | GetGlobalErrors () |
| Retrieve all global errors. | |
| using frc::InterruptableSensorBase::InterruptEventHandler = std::function<void(WaitResult)> |
Handler for interrupts.
First parameter is if rising, 2nd is if falling.
|
virtual |
Cancel interrupts on this device.
This deallocates all the chipobject structures and disables any interrupts.
|
virtual |
Enable interrupts to occur on this input.
Interrupts are disabled when the RequestInterrupt call is made. This gives time to do the setup of the other options before starting to field interrupts.
|
virtual |
Return the timestamp for the falling interrupt that occurred most recently.
This is in the same time domain as GetClock(). The falling-edge interrupt should be enabled with DigitalInput.SetUpSourceEdge
|
virtual |
Return the timestamp for the rising interrupt that occurred most recently.
This is in the same time domain as GetClock(). The rising-edge interrupt should be enabled with DigitalInput.SetUpSourceEdge
|
virtual |
Request one of the 8 interrupts synchronously on this digital input.
Request interrupts in synchronous mode where the user program will have to explicitly wait for the interrupt to occur using WaitForInterrupt. The default is interrupt on rising edges only.
|
virtual |
Request one of the 8 interrupts asynchronously on this digital input.
Request interrupts in asynchronous mode where the user's interrupt handler will be called when the interrupt fires. Users that want control over the thread priority should use the synchronous method with their own spawned thread. The default is interrupt on rising edges only.
|
virtual |
Request one of the 8 interrupts asynchronously on this digital input.
Request interrupts in asynchronous mode where the user's interrupt handler will be called when the interrupt fires. Users that want control over the thread priority should use the synchronous method with their own spawned thread. The default is interrupt on rising edges only.
|
virtual |
Set which edge to trigger interrupts on.
| risingEdge | true to interrupt on rising edge |
| fallingEdge | true to interrupt on falling edge |
|
virtual |
In synchronous mode, wait for the defined interrupt to occur.
You should NOT attempt to read the sensor from another thread while waiting for an interrupt. This is not threadsafe, and can cause memory corruption
| timeout | Timeout in seconds |
| ignorePrevious | If true, ignore interrupts that happened before WaitForInterrupt was called. |