コード例 #1
0
/**
 * Creates an instance of the sensor base and gets an FPGA handle
 */
SensorBase::SensorBase() {
  if (!portsInitialized) {
    for (uint32_t i = 0; i < kDigitalChannels; i++) {
      void* port = getPort(i);
      int32_t status = 0;
      m_digital_ports[i] = initializeDigitalPort(port, &status);
      wpi_setErrorWithContext(status, getHALErrorMessage(status));
      freePort(port);
    }

    for (uint32_t i = 0; i < kRelayChannels; i++) {
      void* port = getPort(i);
      int32_t status = 0;
      m_relay_ports[i] = initializeDigitalPort(port, &status);
      wpi_setErrorWithContext(status, getHALErrorMessage(status));
      freePort(port);
    }

    for (uint32_t i = 0; i < kPwmChannels; i++) {
      void* port = getPort(i);
      int32_t status = 0;
      m_pwm_ports[i] = initializeDigitalPort(port, &status);
      wpi_setErrorWithContext(status, getHALErrorMessage(status));
      freePort(port);
    }
  }
}
コード例 #2
0
ファイル: DIOJNI.cpp プロジェクト: FRC3238/allwpilib
/*
 * Class:     edu_wpi_first_wpilibj_hal_DIOJNI
 * Method:    initializeDigitalPort
 * Signature: (J)J;
 */
JNIEXPORT jlong JNICALL Java_edu_wpi_first_wpilibj_hal_DIOJNI_initializeDigitalPort
  (JNIEnv * env, jclass, jlong id)
{
	DIOJNI_LOG(logDEBUG) << "Calling DIOJNI initializeDigitalPort";
	DIOJNI_LOG(logDEBUG) << "Port Ptr = " << (void*)id;
	int32_t status = 0;
	void* dio = initializeDigitalPort((void*)id, &status);
	DIOJNI_LOG(logDEBUG) << "Status = " << status;
	DIOJNI_LOG(logDEBUG) << "DIO Ptr = " << dio;
	CheckStatus(env, status);
	return (jlong)dio;
}
コード例 #3
0
ファイル: DIOJNI.cpp プロジェクト: Talos4757/allwpilib
/*
 * Class:     edu_wpi_first_wpilibj_hal_DIOJNI
 * Method:    initializeDigitalPort
 * Signature: (Ljava/nio/ByteBuffer;Ljava/nio/IntBuffer;)Ljava/nio/ByteBuffer;
 */
JNIEXPORT jobject JNICALL Java_edu_wpi_first_wpilibj_hal_DIOJNI_initializeDigitalPort
(JNIEnv * env, jclass, jobject id, jobject status)
{
    DIOJNI_LOG(logDEBUG) << "Calling DIOJNI initializeDigitalPort";
    void ** javaId = (void**)env->GetDirectBufferAddress(id);
    DIOJNI_LOG(logDEBUG) << "Port Ptr = " << *javaId;
    jint * statusPtr = (jint*)env->GetDirectBufferAddress(status);
    DIOJNI_LOG(logDEBUG) << "Status Ptr = " << statusPtr;
    void** dioPtr = (void**)new unsigned char[4];
    *dioPtr = initializeDigitalPort(*javaId, statusPtr);
    DIOJNI_LOG(logDEBUG) << "Status = " << *statusPtr;
    DIOJNI_LOG(logDEBUG) << "DIO Ptr = " << *dioPtr;
    return env->NewDirectByteBuffer( dioPtr, 4);
}