2018-05-11 12:38:23 -07:00
|
|
|
/*----------------------------------------------------------------------------*/
|
2020-02-18 20:44:40 -08:00
|
|
|
/* Copyright (c) 2018-2020 FIRST. All Rights Reserved. */
|
2018-05-11 12:38:23 -07:00
|
|
|
/* Open Source Software - may be modified and shared by FRC teams. The code */
|
|
|
|
|
/* must be accompanied by the FIRST BSD license file in the root directory of */
|
|
|
|
|
/* the project. */
|
|
|
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
|
|
|
|
|
|
#include <jni.h>
|
|
|
|
|
|
2018-07-22 22:43:24 -04:00
|
|
|
#include <cstring>
|
|
|
|
|
|
|
|
|
|
#include <wpi/jni_util.h>
|
|
|
|
|
|
2018-05-11 12:38:23 -07:00
|
|
|
#include "CallbackStore.h"
|
2020-06-27 22:11:24 -07:00
|
|
|
#include "edu_wpi_first_hal_simulation_DriverStationDataJNI.h"
|
|
|
|
|
#include "hal/simulation/DriverStationData.h"
|
|
|
|
|
#include "hal/simulation/MockHooks.h"
|
2018-05-11 12:38:23 -07:00
|
|
|
|
2020-06-26 17:12:55 -07:00
|
|
|
using namespace hal;
|
2018-07-22 22:43:24 -04:00
|
|
|
using namespace wpi::java;
|
|
|
|
|
|
2018-05-11 12:38:23 -07:00
|
|
|
extern "C" {
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: registerEnabledCallback
|
|
|
|
|
* Signature: (Ljava/lang/Object;Z)I
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT jint JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_registerEnabledCallback
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv* env, jclass, jobject callback, jboolean initialNotify)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
return sim::AllocateCallbackNoIndex(
|
|
|
|
|
env, callback, initialNotify,
|
|
|
|
|
&HALSIM_RegisterDriverStationEnabledCallback);
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: cancelEnabledCallback
|
|
|
|
|
* Signature: (I)V
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT void JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_cancelEnabledCallback
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv* env, jclass, jint handle)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
return sim::FreeCallbackNoIndex(env, handle,
|
|
|
|
|
&HALSIM_CancelDriverStationEnabledCallback);
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: getEnabled
|
|
|
|
|
* Signature: ()Z
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT jboolean JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_getEnabled
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv*, jclass)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
return HALSIM_GetDriverStationEnabled();
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: setEnabled
|
|
|
|
|
* Signature: (Z)V
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT void JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_setEnabled
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv*, jclass, jboolean value)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
HALSIM_SetDriverStationEnabled(value);
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: registerAutonomousCallback
|
|
|
|
|
* Signature: (Ljava/lang/Object;Z)I
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT jint JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_registerAutonomousCallback
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv* env, jclass, jobject callback, jboolean initialNotify)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
return sim::AllocateCallbackNoIndex(
|
|
|
|
|
env, callback, initialNotify,
|
|
|
|
|
&HALSIM_RegisterDriverStationAutonomousCallback);
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: cancelAutonomousCallback
|
|
|
|
|
* Signature: (I)V
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT void JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_cancelAutonomousCallback
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv* env, jclass, jint handle)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
return sim::FreeCallbackNoIndex(
|
|
|
|
|
env, handle, &HALSIM_CancelDriverStationAutonomousCallback);
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: getAutonomous
|
|
|
|
|
* Signature: ()Z
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT jboolean JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_getAutonomous
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv*, jclass)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
return HALSIM_GetDriverStationAutonomous();
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: setAutonomous
|
|
|
|
|
* Signature: (Z)V
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT void JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_setAutonomous
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv*, jclass, jboolean value)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
HALSIM_SetDriverStationAutonomous(value);
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: registerTestCallback
|
|
|
|
|
* Signature: (Ljava/lang/Object;Z)I
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT jint JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_registerTestCallback
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv* env, jclass, jobject callback, jboolean initialNotify)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
return sim::AllocateCallbackNoIndex(
|
|
|
|
|
env, callback, initialNotify, &HALSIM_RegisterDriverStationTestCallback);
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: cancelTestCallback
|
|
|
|
|
* Signature: (I)V
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT void JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_cancelTestCallback
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv* env, jclass, jint handle)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
return sim::FreeCallbackNoIndex(env, handle,
|
|
|
|
|
&HALSIM_CancelDriverStationTestCallback);
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: getTest
|
|
|
|
|
* Signature: ()Z
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT jboolean JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_getTest
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv*, jclass)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
return HALSIM_GetDriverStationTest();
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: setTest
|
|
|
|
|
* Signature: (Z)V
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT void JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_setTest
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv*, jclass, jboolean value)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
HALSIM_SetDriverStationTest(value);
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: registerEStopCallback
|
|
|
|
|
* Signature: (Ljava/lang/Object;Z)I
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT jint JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_registerEStopCallback
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv* env, jclass, jobject callback, jboolean initialNotify)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
return sim::AllocateCallbackNoIndex(
|
|
|
|
|
env, callback, initialNotify, &HALSIM_RegisterDriverStationEStopCallback);
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: cancelEStopCallback
|
|
|
|
|
* Signature: (I)V
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT void JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_cancelEStopCallback
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv* env, jclass, jint handle)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
return sim::FreeCallbackNoIndex(env, handle,
|
|
|
|
|
&HALSIM_CancelDriverStationEStopCallback);
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: getEStop
|
|
|
|
|
* Signature: ()Z
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT jboolean JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_getEStop
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv*, jclass)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
return HALSIM_GetDriverStationEStop();
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: setEStop
|
|
|
|
|
* Signature: (Z)V
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT void JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_setEStop
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv*, jclass, jboolean value)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
HALSIM_SetDriverStationEStop(value);
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: registerFmsAttachedCallback
|
|
|
|
|
* Signature: (Ljava/lang/Object;Z)I
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT jint JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_registerFmsAttachedCallback
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv* env, jclass, jobject callback, jboolean initialNotify)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
return sim::AllocateCallbackNoIndex(
|
|
|
|
|
env, callback, initialNotify,
|
|
|
|
|
&HALSIM_RegisterDriverStationFmsAttachedCallback);
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: cancelFmsAttachedCallback
|
|
|
|
|
* Signature: (I)V
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT void JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_cancelFmsAttachedCallback
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv* env, jclass, jint handle)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
return sim::FreeCallbackNoIndex(
|
|
|
|
|
env, handle, &HALSIM_CancelDriverStationFmsAttachedCallback);
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: getFmsAttached
|
|
|
|
|
* Signature: ()Z
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT jboolean JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_getFmsAttached
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv*, jclass)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
return HALSIM_GetDriverStationFmsAttached();
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: setFmsAttached
|
|
|
|
|
* Signature: (Z)V
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT void JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_setFmsAttached
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv*, jclass, jboolean value)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
HALSIM_SetDriverStationFmsAttached(value);
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: registerDsAttachedCallback
|
|
|
|
|
* Signature: (Ljava/lang/Object;Z)I
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT jint JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_registerDsAttachedCallback
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv* env, jclass, jobject callback, jboolean initialNotify)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
return sim::AllocateCallbackNoIndex(
|
|
|
|
|
env, callback, initialNotify,
|
|
|
|
|
&HALSIM_RegisterDriverStationDsAttachedCallback);
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: cancelDsAttachedCallback
|
|
|
|
|
* Signature: (I)V
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT void JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_cancelDsAttachedCallback
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv* env, jclass, jint handle)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
return sim::FreeCallbackNoIndex(
|
|
|
|
|
env, handle, &HALSIM_CancelDriverStationDsAttachedCallback);
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: getDsAttached
|
|
|
|
|
* Signature: ()Z
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT jboolean JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_getDsAttached
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv*, jclass)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
return HALSIM_GetDriverStationDsAttached();
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: setDsAttached
|
|
|
|
|
* Signature: (Z)V
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT void JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_setDsAttached
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv*, jclass, jboolean value)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
HALSIM_SetDriverStationDsAttached(value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-11 12:38:23 -07:00
|
|
|
* Method: setJoystickAxes
|
|
|
|
|
* Signature: (B[F)V
|
|
|
|
|
*/
|
|
|
|
|
JNIEXPORT void JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_setJoystickAxes
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv* env, jclass, jbyte joystickNum, jfloatArray axesArray)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
HAL_JoystickAxes axes;
|
|
|
|
|
{
|
|
|
|
|
wpi::java::JFloatArrayRef jArrayRef(env, axesArray);
|
|
|
|
|
auto arrayRef = jArrayRef.array();
|
|
|
|
|
auto arraySize = arrayRef.size();
|
|
|
|
|
int maxCount =
|
|
|
|
|
arraySize < HAL_kMaxJoystickAxes ? arraySize : HAL_kMaxJoystickAxes;
|
|
|
|
|
axes.count = maxCount;
|
|
|
|
|
for (int i = 0; i < maxCount; i++) {
|
|
|
|
|
axes.axes[i] = arrayRef[i];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
HALSIM_SetJoystickAxes(joystickNum, &axes);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-11 12:38:23 -07:00
|
|
|
* Method: setJoystickPOVs
|
|
|
|
|
* Signature: (B[S)V
|
|
|
|
|
*/
|
|
|
|
|
JNIEXPORT void JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_setJoystickPOVs
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv* env, jclass, jbyte joystickNum, jshortArray povsArray)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
HAL_JoystickPOVs povs;
|
|
|
|
|
{
|
|
|
|
|
wpi::java::JShortArrayRef jArrayRef(env, povsArray);
|
|
|
|
|
auto arrayRef = jArrayRef.array();
|
|
|
|
|
auto arraySize = arrayRef.size();
|
|
|
|
|
int maxCount =
|
|
|
|
|
arraySize < HAL_kMaxJoystickPOVs ? arraySize : HAL_kMaxJoystickPOVs;
|
|
|
|
|
povs.count = maxCount;
|
|
|
|
|
for (int i = 0; i < maxCount; i++) {
|
|
|
|
|
povs.povs[i] = arrayRef[i];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
HALSIM_SetJoystickPOVs(joystickNum, &povs);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-11 12:38:23 -07:00
|
|
|
* Method: setJoystickButtons
|
|
|
|
|
* Signature: (BII)V
|
|
|
|
|
*/
|
|
|
|
|
JNIEXPORT void JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_setJoystickButtons
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv* env, jclass, jbyte joystickNum, jint buttons, jint count)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
if (count > 32) {
|
|
|
|
|
count = 32;
|
|
|
|
|
}
|
|
|
|
|
HAL_JoystickButtons joystickButtons;
|
|
|
|
|
joystickButtons.count = count;
|
|
|
|
|
joystickButtons.buttons = buttons;
|
|
|
|
|
HALSIM_SetJoystickButtons(joystickNum, &joystickButtons);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-11 12:38:23 -07:00
|
|
|
* Method: setMatchInfo
|
2018-07-22 22:43:24 -04:00
|
|
|
* Signature: (Ljava/lang/String;Ljava/lang/String;III)V
|
2018-05-11 12:38:23 -07:00
|
|
|
*/
|
|
|
|
|
JNIEXPORT void JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_setMatchInfo
|
2018-07-22 22:43:24 -04:00
|
|
|
(JNIEnv* env, jclass, jstring eventName, jstring gameSpecificMessage,
|
|
|
|
|
jint matchNumber, jint replayNumber, jint matchType)
|
|
|
|
|
{
|
|
|
|
|
JStringRef eventNameRef{env, eventName};
|
|
|
|
|
JStringRef gameSpecificMessageRef{env, gameSpecificMessage};
|
|
|
|
|
|
|
|
|
|
HAL_MatchInfo halMatchInfo;
|
|
|
|
|
std::snprintf(halMatchInfo.eventName, sizeof(halMatchInfo.eventName), "%s",
|
|
|
|
|
eventNameRef.c_str());
|
|
|
|
|
std::snprintf(reinterpret_cast<char*>(halMatchInfo.gameSpecificMessage),
|
|
|
|
|
sizeof(halMatchInfo.gameSpecificMessage), "%s",
|
|
|
|
|
gameSpecificMessageRef.c_str());
|
|
|
|
|
halMatchInfo.gameSpecificMessageSize = gameSpecificMessageRef.size();
|
|
|
|
|
halMatchInfo.matchType = (HAL_MatchType)matchType;
|
|
|
|
|
halMatchInfo.matchNumber = matchNumber;
|
|
|
|
|
halMatchInfo.replayNumber = replayNumber;
|
|
|
|
|
HALSIM_SetMatchInfo(&halMatchInfo);
|
|
|
|
|
}
|
2018-05-11 12:38:23 -07:00
|
|
|
|
|
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-11 12:38:23 -07:00
|
|
|
* Method: registerAllCallbacks
|
2018-05-13 17:09:56 -07:00
|
|
|
* Signature: (Ljava/lang/Object;Z)V
|
2018-05-11 12:38:23 -07:00
|
|
|
*/
|
|
|
|
|
JNIEXPORT void JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_registerAllCallbacks
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv* env, jclass, jobject callback, jboolean initialNotify)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
sim::AllocateCallbackNoIndex(
|
|
|
|
|
env, callback, initialNotify,
|
|
|
|
|
[](HAL_NotifyCallback cb, void* param, HAL_Bool in) {
|
|
|
|
|
HALSIM_RegisterDriverStationAllCallbacks(cb, param, in);
|
|
|
|
|
return 0;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-11 12:38:23 -07:00
|
|
|
* Method: notifyNewData
|
|
|
|
|
* Signature: ()V
|
|
|
|
|
*/
|
|
|
|
|
JNIEXPORT void JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_notifyNewData
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv*, jclass)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
HALSIM_NotifyDriverStationNewData();
|
|
|
|
|
}
|
|
|
|
|
|
2019-12-27 19:11:26 -08:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2019-12-27 19:11:26 -08:00
|
|
|
* Method: setSendError
|
|
|
|
|
* Signature: (Z)V
|
|
|
|
|
*/
|
|
|
|
|
JNIEXPORT void JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_setSendError
|
2019-12-27 19:11:26 -08:00
|
|
|
(JNIEnv*, jclass, jboolean shouldSend)
|
|
|
|
|
{
|
|
|
|
|
if (shouldSend) {
|
|
|
|
|
HALSIM_SetSendError(nullptr);
|
|
|
|
|
} else {
|
|
|
|
|
HALSIM_SetSendError([](HAL_Bool isError, int32_t errorCode,
|
|
|
|
|
HAL_Bool isLVCode, const char* details,
|
|
|
|
|
const char* location, const char* callStack,
|
2020-02-18 20:44:40 -08:00
|
|
|
HAL_Bool printMsg) { return 0; });
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2020-02-18 20:44:40 -08:00
|
|
|
* Method: setSendConsoleLine
|
|
|
|
|
* Signature: (Z)V
|
|
|
|
|
*/
|
|
|
|
|
JNIEXPORT void JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_setSendConsoleLine
|
2020-02-18 20:44:40 -08:00
|
|
|
(JNIEnv*, jclass, jboolean shouldSend)
|
|
|
|
|
{
|
|
|
|
|
if (shouldSend) {
|
|
|
|
|
HALSIM_SetSendConsoleLine(nullptr);
|
|
|
|
|
} else {
|
|
|
|
|
HALSIM_SetSendConsoleLine([](const char* line) { return 0; });
|
2019-12-27 19:11:26 -08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2018-05-13 17:09:56 -07:00
|
|
|
/*
|
2020-06-27 22:11:24 -07:00
|
|
|
* Class: edu_wpi_first_hal_simulation_DriverStationDataJNI
|
2018-05-13 17:09:56 -07:00
|
|
|
* Method: resetData
|
|
|
|
|
* Signature: ()V
|
|
|
|
|
*/
|
2018-05-11 12:38:23 -07:00
|
|
|
JNIEXPORT void JNICALL
|
2020-06-27 22:11:24 -07:00
|
|
|
Java_edu_wpi_first_hal_simulation_DriverStationDataJNI_resetData
|
2018-05-13 17:09:56 -07:00
|
|
|
(JNIEnv*, jclass)
|
|
|
|
|
{
|
2018-05-11 12:38:23 -07:00
|
|
|
HALSIM_ResetDriverStationData();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} // extern "C"
|