Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into update_bazel_version
Browse files Browse the repository at this point in the history
  • Loading branch information
pjreiniger committed Jul 25, 2023
2 parents 0eb733c + 1938251 commit 2be9490
Show file tree
Hide file tree
Showing 249 changed files with 8,355 additions and 927 deletions.
3 changes: 1 addition & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -167,8 +167,7 @@ endif()

if (USE_SYSTEM_LIBUV)
set (LIBUV_SYSTEM_REPLACE "
find_package(PkgConfig REQUIRED)
pkg_check_modules(libuv REQUIRED IMPORTED_TARGET libuv)
find_dependency(libuv CONFIG)
")
endif()

Expand Down
1 change: 0 additions & 1 deletion apriltag/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ apply from: "${rootDir}/shared/opencv.gradle"

dependencies {
implementation project(':wpimath')
devImplementation project(':wpimath')
}

sourceSets {
Expand Down
4 changes: 0 additions & 4 deletions cameraserver/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,6 @@ dependencies {
implementation project(':wpinet')
implementation project(':ntcore')
implementation project(':cscore')
devImplementation project(':wpiutil')
devImplementation project(':wpinet')
devImplementation project(':ntcore')
devImplementation project(':cscore')
}

ext {
Expand Down
2 changes: 2 additions & 0 deletions cameraserver/src/main/native/include/vision/VisionRunner.inc
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

#pragma once

#include <functional>

#include "vision/VisionRunner.h"

namespace frc {
Expand Down
2 changes: 2 additions & 0 deletions cscore/src/main/native/include/cscore_cv.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
#ifndef CSCORE_CSCORE_CV_H_
#define CSCORE_CSCORE_CV_H_

#include <functional>

#include "cscore_c.h"

#ifdef CSCORE_CSCORE_RAW_CV_H_
Expand Down
1 change: 1 addition & 0 deletions cscore/src/main/native/include/cscore_oo.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#ifndef CSCORE_CSCORE_OO_H_
#define CSCORE_CSCORE_OO_H_

#include <functional>
#include <initializer_list>
#include <span>
#include <string>
Expand Down
1 change: 1 addition & 0 deletions cscore/src/main/native/include/cscore_oo.inc
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#ifndef CSCORE_CSCORE_OO_INC_
#define CSCORE_CSCORE_OO_INC_

#include <functional>
#include <string>
#include <string_view>
#include <utility>
Expand Down
2 changes: 2 additions & 0 deletions cscore/src/main/native/include/cscore_raw.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
#ifndef CSCORE_CSCORE_RAW_H_
#define CSCORE_CSCORE_RAW_H_

#include <functional>

#include "cscore_c.h"

#ifdef __cplusplus
Expand Down
2 changes: 2 additions & 0 deletions cscore/src/main/native/include/cscore_raw_cv.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
#error "Cannot include both cscore_cv.h and cscore_raw_cv.h in the same file"
#endif

#include <functional>

#include <opencv2/core/mat.hpp>

#include "cscore_raw.h"
Expand Down
1 change: 1 addition & 0 deletions docs/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ evaluationDependsOn(':wpilibc')
evaluationDependsOn(':wpilibj')
evaluationDependsOn(':wpimath')
evaluationDependsOn(':wpinet')
evaluationDependsOn(':wpiunits')
evaluationDependsOn(':wpiutil')

def baseArtifactIdCpp = 'documentation'
Expand Down
1 change: 1 addition & 0 deletions hal/src/main/java/edu/wpi/first/hal/AllianceStationID.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
package edu.wpi.first.hal;

public enum AllianceStationID {
Unknown,
Red1,
Red2,
Red3,
Expand Down
15 changes: 9 additions & 6 deletions hal/src/main/java/edu/wpi/first/hal/DriverStationJNI.java
Original file line number Diff line number Diff line change
Expand Up @@ -147,12 +147,13 @@ public static void getControlWord(ControlWord controlWord) {
*/
private static native int nativeGetAllianceStation();

public static final int kRed1AllianceStation = 0;
public static final int kRed2AllianceStation = 1;
public static final int kRed3AllianceStation = 2;
public static final int kBlue1AllianceStation = 3;
public static final int kBlue2AllianceStation = 4;
public static final int kBlue3AllianceStation = 5;
public static final int kUnknownAllianceStation = 0;
public static final int kRed1AllianceStation = 1;
public static final int kRed2AllianceStation = 2;
public static final int kRed3AllianceStation = 3;
public static final int kBlue1AllianceStation = 4;
public static final int kBlue2AllianceStation = 5;
public static final int kBlue3AllianceStation = 6;

/**
* Gets the current alliance station ID.
Expand All @@ -162,6 +163,8 @@ public static void getControlWord(ControlWord controlWord) {
*/
public static AllianceStationID getAllianceStation() {
switch (nativeGetAllianceStation()) {
case kUnknownAllianceStation:
return AllianceStationID.Unknown;
case kRed1AllianceStation:
return AllianceStationID.Red1;
case kRed2AllianceStation:
Expand Down
44 changes: 22 additions & 22 deletions hal/src/main/java/edu/wpi/first/hal/REVPHFaults.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,27 +56,27 @@ public class REVPHFaults {
* @param faults the fault bitfields
*/
public REVPHFaults(int faults) {
Channel0Fault = (faults & 0x1) != 0;
Channel1Fault = (faults & 0x2) != 0;
Channel2Fault = (faults & 0x4) != 0;
Channel3Fault = (faults & 0x8) != 0;
Channel4Fault = (faults & 0x10) != 0;
Channel5Fault = (faults & 0x20) != 0;
Channel6Fault = (faults & 0x40) != 0;
Channel7Fault = (faults & 0x80) != 0;
Channel8Fault = (faults & 0x100) != 0;
Channel9Fault = (faults & 0x200) != 0;
Channel10Fault = (faults & 0x400) != 0;
Channel11Fault = (faults & 0x800) != 0;
Channel12Fault = (faults & 0x1000) != 0;
Channel13Fault = (faults & 0x2000) != 0;
Channel14Fault = (faults & 0x4000) != 0;
Channel15Fault = (faults & 0x8000) != 0;
CompressorOverCurrent = (faults & 0x8000) != 0;
CompressorOpen = (faults & 0x10000) != 0;
SolenoidOverCurrent = (faults & 0x20000) != 0;
Brownout = (faults & 0x40000) != 0;
CanWarning = (faults & 0x80000) != 0;
HardwareFault = (faults & 0x100000) != 0;
Channel0Fault = (faults & (1 << 0)) != 0;
Channel1Fault = (faults & (1 << 1)) != 0;
Channel2Fault = (faults & (1 << 2)) != 0;
Channel3Fault = (faults & (1 << 3)) != 0;
Channel4Fault = (faults & (1 << 4)) != 0;
Channel5Fault = (faults & (1 << 5)) != 0;
Channel6Fault = (faults & (1 << 6)) != 0;
Channel7Fault = (faults & (1 << 7)) != 0;
Channel8Fault = (faults & (1 << 8)) != 0;
Channel9Fault = (faults & (1 << 9)) != 0;
Channel10Fault = (faults & (1 << 10)) != 0;
Channel11Fault = (faults & (1 << 11)) != 0;
Channel12Fault = (faults & (1 << 12)) != 0;
Channel13Fault = (faults & (1 << 13)) != 0;
Channel14Fault = (faults & (1 << 14)) != 0;
Channel15Fault = (faults & (1 << 15)) != 0;
CompressorOverCurrent = (faults & (1 << 16)) != 0;
CompressorOpen = (faults & (1 << 17)) != 0;
SolenoidOverCurrent = (faults & (1 << 18)) != 0;
Brownout = (faults & (1 << 19)) != 0;
CanWarning = (faults & (1 << 20)) != 0;
HardwareFault = (faults & (1 << 21)) != 0;
}
}
22 changes: 21 additions & 1 deletion hal/src/main/native/cpp/jni/DriverStationJNI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,27 @@
#include "hal/FRCUsageReporting.h"
#include "hal/HALBase.h"

// TODO Static asserts
static_assert(edu_wpi_first_hal_DriverStationJNI_kUnknownAllianceStation ==
HAL_AllianceStationID_kUnknown);
static_assert(edu_wpi_first_hal_DriverStationJNI_kRed1AllianceStation ==
HAL_AllianceStationID_kRed1);
static_assert(edu_wpi_first_hal_DriverStationJNI_kRed2AllianceStation ==
HAL_AllianceStationID_kRed2);
static_assert(edu_wpi_first_hal_DriverStationJNI_kRed3AllianceStation ==
HAL_AllianceStationID_kRed3);
static_assert(edu_wpi_first_hal_DriverStationJNI_kBlue1AllianceStation ==
HAL_AllianceStationID_kBlue1);
static_assert(edu_wpi_first_hal_DriverStationJNI_kBlue2AllianceStation ==
HAL_AllianceStationID_kBlue2);
static_assert(edu_wpi_first_hal_DriverStationJNI_kBlue3AllianceStation ==
HAL_AllianceStationID_kBlue3);

static_assert(edu_wpi_first_hal_DriverStationJNI_kMaxJoystickAxes ==
HAL_kMaxJoystickAxes);
static_assert(edu_wpi_first_hal_DriverStationJNI_kMaxJoystickPOVs ==
HAL_kMaxJoystickPOVs);
static_assert(edu_wpi_first_hal_DriverStationJNI_kMaxJoysticks ==
HAL_kMaxJoysticks);

using namespace hal;
using namespace wpi::java;
Expand Down
3 changes: 2 additions & 1 deletion hal/src/main/native/include/hal/DriverStationTypes.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ typedef struct HAL_ControlWord HAL_ControlWord;

// clang-format off
HAL_ENUM(HAL_AllianceStationID) {
HAL_AllianceStationID_kUnknown = 0,
HAL_AllianceStationID_kRed1,
HAL_AllianceStationID_kRed2,
HAL_AllianceStationID_kRed3,
Expand All @@ -51,7 +52,7 @@ HAL_ENUM(HAL_AllianceStationID) {
};

HAL_ENUM(HAL_MatchType) {
HAL_kMatchType_none,
HAL_kMatchType_none = 0,
HAL_kMatchType_practice,
HAL_kMatchType_qualification,
HAL_kMatchType_elimination,
Expand Down
126 changes: 125 additions & 1 deletion ntcore/src/generate/cpp/jni/types_jni.cpp.jinja
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ static JClass timestamped{{ t.TypeName }}Cls;
static JClass {{ t.jni.jtype }}Cls;
{%- endif %}
{%- endfor %}
static JException illegalArgEx;
static JException indexOobEx;
static JException nullPointerEx;

static const JClassInit classes[] = {
Expand All @@ -36,6 +38,8 @@ static const JClassInit classes[] = {
};

static const JExceptionInit exceptions[] = {
{"java/lang/IllegalArgumentException", &illegalArgEx},
{"java/lang/IndexOutOfBoundsException", &indexOobEx},
{"java/lang/NullPointerException", &nullPointerEx},
};

Expand Down Expand Up @@ -65,6 +69,9 @@ void JNI_UnloadTypes(JNIEnv* env) {
for (auto& c : classes) {
c.cls->free(env);
}
for (auto& c : exceptions) {
c.cls->free(env);
}
}

} // namespace nt
Expand Down Expand Up @@ -185,7 +192,65 @@ Java_edu_wpi_first_networktables_NetworkTablesJNI_readQueueValues{{ t.TypeName }
{
return {{ t.jni.ToJavaArray }}(env, nt::ReadQueueValues{{ t.TypeName }}(subentry));
}
{% if t.TypeName == "Raw" %}
/*
* Class: edu_wpi_first_networktables_NetworkTablesJNI
* Method: setRaw
* Signature: (IJ[BII)Z
*/
JNIEXPORT jboolean JNICALL
Java_edu_wpi_first_networktables_NetworkTablesJNI_setRaw
(JNIEnv* env, jclass, jint entry, jlong time, jbyteArray value, jint start, jint len)
{
if (!value) {
nullPointerEx.Throw(env, "value is null");
return false;
}
if (start < 0) {
indexOobEx.Throw(env, "start must be >= 0");
return false;
}
if (len < 0) {
indexOobEx.Throw(env, "len must be >= 0");
return false;
}
CriticalJByteArrayRef cvalue{env, value};
if (static_cast<unsigned int>(start + len) > cvalue.size()) {
indexOobEx.Throw(env, "start + len must be smaller than array length");
return false;
}
return nt::SetRaw(entry, cvalue.uarray().subspan(start, len), time);
}

/*
* Class: edu_wpi_first_networktables_NetworkTablesJNI
* Method: setRawBuffer
* Signature: (IJLjava/nio/ByteBuffer;II)Z
*/
JNIEXPORT jboolean JNICALL
Java_edu_wpi_first_networktables_NetworkTablesJNI_setRawBuffer
(JNIEnv* env, jclass, jint entry, jlong time, jobject value, jint start, jint len)
{
if (!value) {
nullPointerEx.Throw(env, "value is null");
return false;
}
if (start < 0) {
indexOobEx.Throw(env, "start must be >= 0");
return false;
}
if (len < 0) {
indexOobEx.Throw(env, "len must be >= 0");
return false;
}
JByteArrayRef cvalue{env, value, start + len};
if (!cvalue) {
illegalArgEx.Throw(env, "value must be a native ByteBuffer");
return false;
}
return nt::SetRaw(entry, cvalue.uarray().subspan(start, len), time);
}
{% else %}
/*
* Class: edu_wpi_first_networktables_NetworkTablesJNI
* Method: set{{ t.TypeName }}
Expand All @@ -203,7 +268,7 @@ Java_edu_wpi_first_networktables_NetworkTablesJNI_set{{ t.TypeName }}
{%- endif %}
return nt::Set{{ t.TypeName }}(entry, {{ t.jni.FromJavaBegin }}value{{ t.jni.FromJavaEnd }}, time);
}

{% endif %}
/*
* Class: edu_wpi_first_networktables_NetworkTablesJNI
* Method: get{{ t.TypeName }}
Expand All @@ -223,7 +288,65 @@ Java_edu_wpi_first_networktables_NetworkTablesJNI_get{{ t.TypeName }}
return nt::Get{{ t.TypeName }}(entry, defaultValue);
{%- endif %}
}
{% if t.TypeName == "Raw" %}
/*
* Class: edu_wpi_first_networktables_NetworkTablesJNI
* Method: setDefaultRaw
* Signature: (IJ[BII)Z
*/
JNIEXPORT jboolean JNICALL
Java_edu_wpi_first_networktables_NetworkTablesJNI_setDefaultRaw
(JNIEnv* env, jclass, jint entry, jlong, jbyteArray defaultValue, jint start, jint len)
{
if (!defaultValue) {
nullPointerEx.Throw(env, "value is null");
return false;
}
if (start < 0) {
indexOobEx.Throw(env, "start must be >= 0");
return false;
}
if (len < 0) {
indexOobEx.Throw(env, "len must be >= 0");
return false;
}
CriticalJByteArrayRef cvalue{env, defaultValue};
if (static_cast<unsigned int>(start + len) > cvalue.size()) {
indexOobEx.Throw(env, "start + len must be smaller than array length");
return false;
}
return nt::SetDefaultRaw(entry, cvalue.uarray().subspan(start, len));
}

/*
* Class: edu_wpi_first_networktables_NetworkTablesJNI
* Method: setDefaultRawBuffer
* Signature: (IJLjava/nio/ByteBuffer;II)Z
*/
JNIEXPORT jboolean JNICALL
Java_edu_wpi_first_networktables_NetworkTablesJNI_setDefaultRawBuffer
(JNIEnv* env, jclass, jint entry, jlong, jobject defaultValue, jint start, jint len)
{
if (!defaultValue) {
nullPointerEx.Throw(env, "value is null");
return false;
}
if (start < 0) {
indexOobEx.Throw(env, "start must be >= 0");
return false;
}
if (len < 0) {
indexOobEx.Throw(env, "len must be >= 0");
return false;
}
JByteArrayRef cvalue{env, defaultValue, start + len};
if (!cvalue) {
illegalArgEx.Throw(env, "value must be a native ByteBuffer");
return false;
}
return nt::SetDefaultRaw(entry, cvalue.uarray().subspan(start, len));
}
{% else %}
/*
* Class: edu_wpi_first_networktables_NetworkTablesJNI
* Method: setDefault{{ t.TypeName }}
Expand All @@ -241,5 +364,6 @@ Java_edu_wpi_first_networktables_NetworkTablesJNI_setDefault{{ t.TypeName }}
{%- endif %}
return nt::SetDefault{{ t.TypeName }}(entry, {{ t.jni.FromJavaBegin }}defaultValue{{ t.jni.FromJavaEnd }});
}
{% endif %}
{% endfor %}
} // extern "C"
Loading

0 comments on commit 2be9490

Please sign in to comment.