/* * Class: edu_wpi_first_wpilibj_hal_DIOJNI * Method: freeDIO * Signature: (J)V */ JNIEXPORT void JNICALL Java_edu_wpi_first_wpilibj_hal_DIOJNI_freeDIO (JNIEnv * env, jclass, jlong id) { DIOJNI_LOG(logDEBUG) << "Calling DIOJNI freeDIO"; DIOJNI_LOG(logDEBUG) << "Port Ptr = " << (void*)id; int32_t status = 0; freeDIO((void*)id, &status); DIOJNI_LOG(logDEBUG) << "Status = " << status; CheckStatus(env, status); }
/* * Class: edu_wpi_first_wpilibj_hal_DIOJNI * Method: freeDIO * Signature: (Ljava/nio/ByteBuffer;Ljava/nio/IntBuffer;)V */ JNIEXPORT void JNICALL Java_edu_wpi_first_wpilibj_hal_DIOJNI_freeDIO (JNIEnv * env, jclass, jobject id, jobject status) { DIOJNI_LOG(logDEBUG) << "Calling DIOJNI freeDIO"; void ** javaId = (void**)env->GetDirectBufferAddress(id); DIOJNI_LOG(logDEBUG) << "Port Ptr = " << *javaId; jint * statusPtr = (jint*)env->GetDirectBufferAddress(status); DIOJNI_LOG(logDEBUG) << "Status Ptr = " << statusPtr; freeDIO(*javaId, statusPtr); DIOJNI_LOG(logDEBUG) << "Status = " << *statusPtr; }
/** * Free resources associated with the Digital Input class. */ DigitalInput::~DigitalInput() { if (StatusIsFatal()) return; if (m_interrupt != NULL) { int32_t status = 0; cleanInterrupts(m_interrupt, &status); wpi_setErrorWithContext(status, getHALErrorMessage(status)); m_interrupt = NULL; m_interrupts->Free(m_interruptIndex); } int32_t status = 0; freeDIO(m_digital_ports[m_channel], &status); wpi_setErrorWithContext(status, getHALErrorMessage(status)); }