public abstract class InterruptableSensorBase extends SensorBase
Modifier and Type | Field and Description |
---|---|
protected static Resource |
interrupts
Resource manager
|
protected ByteBuffer |
m_interrupt
The interrupt resource
|
protected int |
m_interruptIndex
The index of the interrupt
|
protected boolean |
m_isSynchronousInterrupt
Flags if the interrupt being allocated is synchronous
|
kAnalogInputChannels, kAnalogOutputChannels, kDigitalChannels, kPDPChannels, kPwmChannels, kRelayChannels, kSolenoidChannels, kSolenoidModules, kSystemClockTicksPerMicrosecond
Constructor and Description |
---|
InterruptableSensorBase()
Create a new InterrupatableSensorBase
|
Modifier and Type | Method and Description |
---|---|
protected void |
allocateInterrupts(boolean watcher)
Allocate the interrupt
|
void |
cancelInterrupts()
Cancel interrupts on this device.
|
void |
disableInterrupts()
Disable Interrupts without without deallocating structures.
|
void |
enableInterrupts()
Enable interrupts to occur on this input.
|
double |
readFallingTimestamp()
Return the timestamp for the falling interrupt that occurred most
recently.
|
double |
readRisingTimestamp()
Return the timestamp for the rising interrupt that occurred most
recently.
|
void |
requestInterrupts()
Request one of the 8 interrupts synchronously on this digital input.
|
void |
requestInterrupts(InterruptHandlerFunction<?> handler)
Request one of the 8 interrupts asynchronously on this digital input.
|
void |
setUpSourceEdge(boolean risingEdge,
boolean fallingEdge)
Set which edge to trigger interrupts on
|
void |
waitForInterrupt(double timeout)
In synchronous mode, wait for the defined interrupt to occur.
|
void |
waitForInterrupt(double timeout,
boolean ignorePrevious)
In synchronous mode, wait for the defined interrupt to occur.
|
checkAnalogInputChannel, checkAnalogOutputChannel, checkDigitalChannel, checkPDPChannel, checkPWMChannel, checkRelayChannel, checkSolenoidChannel, checkSolenoidModule, free, getDefaultSolenoidModule, setDefaultSolenoidModule
protected ByteBuffer m_interrupt
protected boolean m_isSynchronousInterrupt
protected int m_interruptIndex
protected static Resource interrupts
public InterruptableSensorBase()
public void requestInterrupts(InterruptHandlerFunction<?> handler)
handler
- The InterruptHandlerFunction
that contains the method
InterruptHandlerFunction.interruptFired(int, Object)
that
will be called whenever there is an interrupt on this device.
Request interrupts in synchronous mode where the user program
interrupt handler will be called when an interrupt occurs. The
default is interrupt on rising edges only.public void requestInterrupts()
waitForInterrupt(double, boolean)
.
The default is interrupt on rising edges only.protected void allocateInterrupts(boolean watcher)
watcher
- true if the interrupt should be in synchronous mode where the user
program will have to explicitly wait for the interrupt to occur.public void cancelInterrupts()
public void waitForInterrupt(double timeout, boolean ignorePrevious)
timeout
- Timeout in secondsignorePrevious
- If true, ignore interrupts that happened before
waitForInterrupt was called.public void waitForInterrupt(double timeout)
timeout
- Timeout in secondspublic void enableInterrupts()
public void disableInterrupts()
public double readRisingTimestamp()
setUpSourceEdge(boolean, boolean)
public double readFallingTimestamp()
setUpSourceEdge(boolean, boolean)
public void setUpSourceEdge(boolean risingEdge, boolean fallingEdge)
risingEdge
- true to interrupt on rising edgefallingEdge
- true to interrupt on falling edgeCopyright © 2015. All rights reserved.