[hal] Change usage reporting to string-based (#7763)

This commit is contained in:
Peter Johnson
2025-02-07 12:37:23 -08:00
committed by GitHub
parent bfff891b5c
commit 764ada9b66
188 changed files with 637 additions and 2298 deletions

View File

@@ -0,0 +1,12 @@
// 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 "hal/UsageReporting.h"
#include <fmt/format.h>
int32_t HAL_ReportUsage(std::string_view resource, int instanceNumber,
std::string_view data) {
return HAL_ReportUsage(fmt::format("{}[{}]", resource, instanceNumber), data);
}

View File

@@ -12,7 +12,6 @@
#include "HALUtil.h"
#include "edu_wpi_first_hal_DriverStationJNI.h"
#include "hal/DriverStation.h"
#include "hal/FRCUsageReporting.h"
#include "hal/HALBase.h"
static_assert(edu_wpi_first_hal_DriverStationJNI_kUnknownAllianceStation ==
@@ -102,22 +101,6 @@ Java_edu_wpi_first_hal_DriverStationJNI_observeUserProgramTest
HAL_ObserveUserProgramTest();
}
/*
* Class: edu_wpi_first_hal_DriverStationJNI
* Method: report
* Signature: (IIILjava/lang/String;)I
*/
JNIEXPORT jint JNICALL
Java_edu_wpi_first_hal_DriverStationJNI_report
(JNIEnv* paramEnv, jclass, jint paramResource, jint paramInstanceNumber,
jint paramContext, jstring paramFeature)
{
JStringRef featureStr{paramEnv, paramFeature};
jint returnValue = HAL_Report(paramResource, paramInstanceNumber,
paramContext, featureStr.c_str());
return returnValue;
}
/*
* Class: edu_wpi_first_hal_DriverStationJNI
* Method: nativeGetControlWord

View File

@@ -0,0 +1,35 @@
// 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>
#include <cassert>
#include <wpi/jni_util.h>
#include <wpi/string.h>
#include "edu_wpi_first_hal_UsageReportingJNI.h"
#include "hal/UsageReporting.h"
using namespace wpi::java;
extern "C" {
/*
* Class: edu_wpi_first_hal_UsageReportingJNI
* Method: report
* Signature: (Ljava/lang/String;Ljava/lang/String;)I
*/
JNIEXPORT jint JNICALL
Java_edu_wpi_first_hal_UsageReportingJNI_report
(JNIEnv* env, jclass, jstring resource, jstring data)
{
JStringRef resourceStr{env, resource};
JStringRef dataStr{env, data};
WPI_String resourceWpiStr = wpi::make_string(resourceStr);
WPI_String dataWpiStr = wpi::make_string(dataStr);
return HAL_ReportUsage(&resourceWpiStr, &dataWpiStr);
}
} // extern "C"