/** * Set which edge to trigger interrupts on * * @param risingEdge * true to interrupt on rising edge * @param fallingEdge * true to interrupt on falling edge */ void InterruptableSensorBase::SetUpSourceEdge(bool risingEdge, bool fallingEdge) { if (StatusIsFatal()) return; if (m_interrupt == NULL) { wpi_setWPIErrorWithContext(NullParameter, "You must call RequestInterrupts before SetUpSourceEdge"); return; } if (m_interrupt != NULL) { int32_t status = 0; setInterruptUpSourceEdge(m_interrupt, risingEdge, fallingEdge, &status); wpi_setErrorWithContext(status, getHALErrorMessage(status)); } }
/* * Class: edu_wpi_first_wpilibj_hal_InterruptJNI * Method: setInterruptUpSourceEdge * Signature: (JZZ)V */ JNIEXPORT void JNICALL Java_edu_wpi_first_wpilibj_hal_InterruptJNI_setInterruptUpSourceEdge (JNIEnv * env, jclass, jlong interrupt_pointer, jboolean risingEdge, jboolean fallingEdge) { INTERRUPTJNI_LOG(logDEBUG) << "Calling INTERRUPTJNI setInterruptUpSourceEdge"; INTERRUPTJNI_LOG(logDEBUG) << "Interrupt Ptr = " << (void*)interrupt_pointer; INTERRUPTJNI_LOG(logDEBUG) << "Rising Edge = " << (bool)risingEdge; INTERRUPTJNI_LOG(logDEBUG) << "Falling Edge = " << (bool)fallingEdge; int32_t status = 0; setInterruptUpSourceEdge((void*)interrupt_pointer, risingEdge, fallingEdge, &status); INTERRUPTJNI_LOG(logDEBUG) << "Status = " << status; CheckStatus(env, status); }