Files
allwpilib/hal/src/main/native/cpp/jni/AnalogJNI.cpp

492 lines
12 KiB
C++
Raw Normal View History

// Copyright (c) FIRST and other WPILib contributors.
// Open Source Software; you can modify and/or share it under the terms of
// the WPILib BSD license file in the root directory of this project.
#include <jni.h>
2014-01-06 09:27:51 -05:00
2018-05-13 17:09:56 -07:00
#include <cassert>
2014-01-06 09:27:51 -05:00
#include <wpi/jni_util.h>
2018-05-13 17:09:56 -07:00
#include "HALUtil.h"
#include "edu_wpi_first_hal_AnalogJNI.h"
#include "hal/AnalogInput.h"
#include "hal/AnalogTrigger.h"
#include "hal/Ports.h"
#include "hal/handles/HandlesInternal.h"
2014-01-06 09:27:51 -05:00
using namespace hal;
extern "C" {
2014-01-06 09:27:51 -05:00
/*
* Class: edu_wpi_first_hal_AnalogJNI
* Method: initializeAnalogInputPort
* Signature: (I)I
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT jint JNICALL
Java_edu_wpi_first_hal_AnalogJNI_initializeAnalogInputPort
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass, jint id)
{
int32_t status = 0;
auto stack = wpi::java::GetJavaStackTrace(env, "edu.wpi.first");
auto analog =
HAL_InitializeAnalogInputPort((HAL_PortHandle)id, stack.c_str(), &status);
CheckStatusForceThrow(env, status);
return (jint)analog;
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
* Method: freeAnalogInputPort
* Signature: (I)V
*/
JNIEXPORT void JNICALL
Java_edu_wpi_first_hal_AnalogJNI_freeAnalogInputPort
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass, jint id)
{
if (id != HAL_kInvalidHandle) {
HAL_FreeAnalogInputPort((HAL_AnalogInputHandle)id);
}
}
2014-01-06 09:27:51 -05:00
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: checkAnalogModule
* Signature: (B)Z
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT jboolean JNICALL
Java_edu_wpi_first_hal_AnalogJNI_checkAnalogModule
2018-05-13 17:09:56 -07:00
(JNIEnv*, jclass, jbyte value)
{
jboolean returnValue = HAL_CheckAnalogModule(value);
return returnValue;
2014-01-06 09:27:51 -05:00
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
* Method: checkAnalogInputChannel
* Signature: (I)Z
*/
JNIEXPORT jboolean JNICALL
Java_edu_wpi_first_hal_AnalogJNI_checkAnalogInputChannel
2018-05-13 17:09:56 -07:00
(JNIEnv*, jclass, jint value)
{
jboolean returnValue = HAL_CheckAnalogInputChannel(value);
return returnValue;
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
* Method: setAnalogInputSimDevice
* Signature: (II)V
*/
JNIEXPORT void JNICALL
Java_edu_wpi_first_hal_AnalogJNI_setAnalogInputSimDevice
(JNIEnv* env, jclass, jint handle, jint device)
{
HAL_SetAnalogInputSimDevice((HAL_AnalogInputHandle)handle,
(HAL_SimDeviceHandle)device);
}
2014-01-06 09:27:51 -05:00
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: setAnalogSampleRate
* Signature: (D)V
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT void JNICALL
Java_edu_wpi_first_hal_AnalogJNI_setAnalogSampleRate
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass, jdouble value)
{
int32_t status = 0;
HAL_SetAnalogSampleRate(value, &status);
CheckStatus(env, status);
2014-01-06 09:27:51 -05:00
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: getAnalogSampleRate
* Signature: ()D
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT jdouble JNICALL
Java_edu_wpi_first_hal_AnalogJNI_getAnalogSampleRate
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass)
{
int32_t status = 0;
double returnValue = HAL_GetAnalogSampleRate(&status);
CheckStatus(env, status);
return returnValue;
2014-01-06 09:27:51 -05:00
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: setAnalogAverageBits
* Signature: (II)V
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT void JNICALL
Java_edu_wpi_first_hal_AnalogJNI_setAnalogAverageBits
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass, jint id, jint value)
{
int32_t status = 0;
HAL_SetAnalogAverageBits((HAL_AnalogInputHandle)id, value, &status);
CheckStatus(env, status);
2014-01-06 09:27:51 -05:00
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: getAnalogAverageBits
* Signature: (I)I
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT jint JNICALL
Java_edu_wpi_first_hal_AnalogJNI_getAnalogAverageBits
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass, jint id)
{
int32_t status = 0;
2018-05-13 17:09:56 -07:00
jint returnValue =
HAL_GetAnalogAverageBits((HAL_AnalogInputHandle)id, &status);
CheckStatus(env, status);
return returnValue;
2014-01-06 09:27:51 -05:00
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: setAnalogOversampleBits
* Signature: (II)V
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT void JNICALL
Java_edu_wpi_first_hal_AnalogJNI_setAnalogOversampleBits
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass, jint id, jint value)
{
int32_t status = 0;
HAL_SetAnalogOversampleBits((HAL_AnalogInputHandle)id, value, &status);
CheckStatus(env, status);
2014-01-06 09:27:51 -05:00
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: getAnalogOversampleBits
* Signature: (I)I
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT jint JNICALL
Java_edu_wpi_first_hal_AnalogJNI_getAnalogOversampleBits
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass, jint id)
{
int32_t status = 0;
2018-05-13 17:09:56 -07:00
jint returnValue =
HAL_GetAnalogOversampleBits((HAL_AnalogInputHandle)id, &status);
CheckStatus(env, status);
return returnValue;
2014-01-06 09:27:51 -05:00
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: getAnalogValue
* Signature: (I)S
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT jshort JNICALL
Java_edu_wpi_first_hal_AnalogJNI_getAnalogValue
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass, jint id)
{
int32_t status = 0;
jshort returnValue = HAL_GetAnalogValue((HAL_AnalogInputHandle)id, &status);
CheckStatus(env, status);
return returnValue;
2014-01-06 09:27:51 -05:00
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: getAnalogAverageValue
* Signature: (I)I
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT jint JNICALL
Java_edu_wpi_first_hal_AnalogJNI_getAnalogAverageValue
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass, jint id)
{
int32_t status = 0;
2018-05-13 17:09:56 -07:00
jint returnValue =
HAL_GetAnalogAverageValue((HAL_AnalogInputHandle)id, &status);
CheckStatus(env, status);
return returnValue;
2014-01-06 09:27:51 -05:00
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: getAnalogVoltsToValue
* Signature: (ID)I
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT jint JNICALL
Java_edu_wpi_first_hal_AnalogJNI_getAnalogVoltsToValue
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass, jint id, jdouble voltageValue)
{
int32_t status = 0;
2018-05-13 17:09:56 -07:00
jint returnValue = HAL_GetAnalogVoltsToValue((HAL_AnalogInputHandle)id,
voltageValue, &status);
CheckStatus(env, status);
return returnValue;
2014-01-06 09:27:51 -05:00
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
* Method: getAnalogValueToVolts
* Signature: (II)D
*/
JNIEXPORT jdouble JNICALL
Java_edu_wpi_first_hal_AnalogJNI_getAnalogValueToVolts
(JNIEnv* env, jclass, jint id, jint rawValue)
{
int32_t status = 0;
jdouble returnValue =
HAL_GetAnalogValueToVolts((HAL_AnalogInputHandle)id, rawValue, &status);
CheckStatus(env, status);
return returnValue;
}
2014-01-06 09:27:51 -05:00
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: getAnalogVoltage
* Signature: (I)D
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT jdouble JNICALL
Java_edu_wpi_first_hal_AnalogJNI_getAnalogVoltage
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass, jint id)
{
int32_t status = 0;
2018-05-13 17:09:56 -07:00
jdouble returnValue =
HAL_GetAnalogVoltage((HAL_AnalogInputHandle)id, &status);
CheckStatus(env, status);
return returnValue;
2014-01-06 09:27:51 -05:00
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: getAnalogAverageVoltage
* Signature: (I)D
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT jdouble JNICALL
Java_edu_wpi_first_hal_AnalogJNI_getAnalogAverageVoltage
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass, jint id)
{
int32_t status = 0;
2018-05-13 17:09:56 -07:00
jdouble returnValue =
HAL_GetAnalogAverageVoltage((HAL_AnalogInputHandle)id, &status);
CheckStatus(env, status);
return returnValue;
2014-01-06 09:27:51 -05:00
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: getAnalogLSBWeight
* Signature: (I)I
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT jint JNICALL
Java_edu_wpi_first_hal_AnalogJNI_getAnalogLSBWeight
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass, jint id)
{
int32_t status = 0;
jint returnValue = HAL_GetAnalogLSBWeight((HAL_AnalogInputHandle)id, &status);
CheckStatus(env, status);
return returnValue;
2014-01-06 09:27:51 -05:00
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: getAnalogOffset
* Signature: (I)I
2014-01-06 09:27:51 -05:00
*/
2018-05-13 17:09:56 -07:00
JNIEXPORT jint JNICALL
Java_edu_wpi_first_hal_AnalogJNI_getAnalogOffset
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass, jint id)
{
int32_t status = 0;
jint returnValue = HAL_GetAnalogOffset((HAL_AnalogInputHandle)id, &status);
CheckStatus(env, status);
return returnValue;
2014-01-06 09:27:51 -05:00
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: initializeAnalogTrigger
2019-11-01 23:41:30 -07:00
* Signature: (I)I
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT jint JNICALL
Java_edu_wpi_first_hal_AnalogJNI_initializeAnalogTrigger
2019-11-01 23:41:30 -07:00
(JNIEnv* env, jclass, jint id)
2018-05-13 17:09:56 -07:00
{
int32_t status = 0;
2019-11-01 23:41:30 -07:00
HAL_AnalogTriggerHandle analogTrigger =
HAL_InitializeAnalogTrigger((HAL_AnalogInputHandle)id, &status);
CheckStatus(env, status);
return (jint)analogTrigger;
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
* Method: initializeAnalogTriggerDutyCycle
* Signature: (I)I
*/
JNIEXPORT jint JNICALL
Java_edu_wpi_first_hal_AnalogJNI_initializeAnalogTriggerDutyCycle
(JNIEnv* env, jclass, jint id)
{
int32_t status = 0;
HAL_AnalogTriggerHandle analogTrigger =
HAL_InitializeAnalogTriggerDutyCycle((HAL_DutyCycleHandle)id, &status);
CheckStatus(env, status);
return (jint)analogTrigger;
2014-01-06 09:27:51 -05:00
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: cleanAnalogTrigger
* Signature: (I)V
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT void JNICALL
Java_edu_wpi_first_hal_AnalogJNI_cleanAnalogTrigger
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass, jint id)
{
if (id != HAL_kInvalidHandle) {
HAL_CleanAnalogTrigger((HAL_AnalogTriggerHandle)id);
}
2014-01-06 09:27:51 -05:00
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: setAnalogTriggerLimitsRaw
* Signature: (III)V
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT void JNICALL
Java_edu_wpi_first_hal_AnalogJNI_setAnalogTriggerLimitsRaw
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass, jint id, jint lower, jint upper)
{
int32_t status = 0;
2018-05-13 17:09:56 -07:00
HAL_SetAnalogTriggerLimitsRaw((HAL_AnalogTriggerHandle)id, lower, upper,
&status);
CheckStatus(env, status);
2014-01-06 09:27:51 -05:00
}
2019-11-01 23:41:30 -07:00
/*
* Class: edu_wpi_first_hal_AnalogJNI
* Method: setAnalogTriggerLimitsDutyCycle
* Signature: (IDD)V
*/
JNIEXPORT void JNICALL
Java_edu_wpi_first_hal_AnalogJNI_setAnalogTriggerLimitsDutyCycle
(JNIEnv* env, jclass, jint id, jdouble lower, jdouble upper)
{
int32_t status = 0;
HAL_SetAnalogTriggerLimitsDutyCycle((HAL_AnalogTriggerHandle)id, lower, upper,
&status);
CheckStatus(env, status);
}
2014-01-06 09:27:51 -05:00
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: setAnalogTriggerLimitsVoltage
* Signature: (IDD)V
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT void JNICALL
Java_edu_wpi_first_hal_AnalogJNI_setAnalogTriggerLimitsVoltage
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass, jint id, jdouble lower, jdouble upper)
{
int32_t status = 0;
2018-05-13 17:09:56 -07:00
HAL_SetAnalogTriggerLimitsVoltage((HAL_AnalogTriggerHandle)id, lower, upper,
&status);
CheckStatus(env, status);
2014-01-06 09:27:51 -05:00
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: setAnalogTriggerAveraged
* Signature: (IZ)V
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT void JNICALL
Java_edu_wpi_first_hal_AnalogJNI_setAnalogTriggerAveraged
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass, jint id, jboolean averaged)
{
int32_t status = 0;
HAL_SetAnalogTriggerAveraged((HAL_AnalogTriggerHandle)id, averaged, &status);
CheckStatus(env, status);
2014-01-06 09:27:51 -05:00
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: setAnalogTriggerFiltered
* Signature: (IZ)V
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT void JNICALL
Java_edu_wpi_first_hal_AnalogJNI_setAnalogTriggerFiltered
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass, jint id, jboolean filtered)
{
int32_t status = 0;
HAL_SetAnalogTriggerFiltered((HAL_AnalogTriggerHandle)id, filtered, &status);
CheckStatus(env, status);
2014-01-06 09:27:51 -05:00
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: getAnalogTriggerInWindow
* Signature: (I)Z
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT jboolean JNICALL
Java_edu_wpi_first_hal_AnalogJNI_getAnalogTriggerInWindow
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass, jint id)
{
int32_t status = 0;
2018-05-13 17:09:56 -07:00
jboolean val =
HAL_GetAnalogTriggerInWindow((HAL_AnalogTriggerHandle)id, &status);
CheckStatus(env, status);
return val;
2014-01-06 09:27:51 -05:00
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: getAnalogTriggerTriggerState
* Signature: (I)Z
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT jboolean JNICALL
Java_edu_wpi_first_hal_AnalogJNI_getAnalogTriggerTriggerState
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass, jint id)
{
int32_t status = 0;
2018-05-13 17:09:56 -07:00
jboolean val =
HAL_GetAnalogTriggerTriggerState((HAL_AnalogTriggerHandle)id, &status);
CheckStatus(env, status);
return val;
2014-01-06 09:27:51 -05:00
}
/*
* Class: edu_wpi_first_hal_AnalogJNI
2014-01-06 09:27:51 -05:00
* Method: getAnalogTriggerOutput
* Signature: (II)Z
2014-01-06 09:27:51 -05:00
*/
JNIEXPORT jboolean JNICALL
Java_edu_wpi_first_hal_AnalogJNI_getAnalogTriggerOutput
2018-05-13 17:09:56 -07:00
(JNIEnv* env, jclass, jint id, jint type)
{
int32_t status = 0;
jboolean val = HAL_GetAnalogTriggerOutput(
(HAL_AnalogTriggerHandle)id, (HAL_AnalogTriggerType)type, &status);
CheckStatus(env, status);
return val;
2014-01-06 09:27:51 -05:00
}
2019-11-01 23:41:30 -07:00
/*
* Class: edu_wpi_first_hal_AnalogJNI
* Method: getAnalogTriggerFPGAIndex
* Signature: (I)I
*/
JNIEXPORT jint JNICALL
Java_edu_wpi_first_hal_AnalogJNI_getAnalogTriggerFPGAIndex
(JNIEnv* env, jclass, jint id)
{
int32_t status = 0;
auto val =
HAL_GetAnalogTriggerFPGAIndex((HAL_AnalogTriggerHandle)id, &status);
CheckStatus(env, status);
return val;
}
} // extern "C"