[wpilib] Add usage reporting for loggers (#7450)

This commit is contained in:
sciencewhiz
2024-11-29 22:13:31 -08:00
committed by GitHub
parent 7d178615fa
commit 0941251375
7 changed files with 55 additions and 0 deletions

View File

@@ -68,3 +68,10 @@ kDashboard_LabVIEW = 6
kDashboard_AdvantageScope = 7
kDashboard_QFRCDashboard = 8
kDashboard_FRCWebComponents = 9
kDataLogLocation_Onboard = 1
kDataLogLocation_USB = 2
kLoggingFramework_Other = 1
kLoggingFramework_Epilogue = 2
kLoggingFramework_Monologue = 3
kLoggingFramework_AdvantageKit = 4
kLoggingFramework_DogLog = 5

View File

@@ -115,3 +115,5 @@ kResourceType_Redux_future5 = 113
kResourceType_RevSparkFlexCAN = 114
kResourceType_RevSparkFlexPWM = 115
kResourceType_BangBangController = 116
kResourceType_DataLogManager = 117
kResourceType_LoggingFramework = 118

View File

@@ -253,6 +253,10 @@ public final class FRCNetComm {
public static final int kResourceType_RevSparkFlexPWM = 115;
/** kResourceType_BangBangController = 116. */
public static final int kResourceType_BangBangController = 116;
/** kResourceType_DataLogManager = 117. */
public static final int kResourceType_DataLogManager = 117;
/** kResourceType_LoggingFramework = 118. */
public static final int kResourceType_LoggingFramework = 118;
}
/**
@@ -403,6 +407,20 @@ public final class FRCNetComm {
public static final int kDashboard_QFRCDashboard = 8;
/** kDashboard_FRCWebComponents = 9. */
public static final int kDashboard_FRCWebComponents = 9;
/** kDataLogLocation_Onboard = 1. */
public static final int kDataLogLocation_Onboard = 1;
/** kDataLogLocation_USB = 2. */
public static final int kDataLogLocation_USB = 2;
/** kLoggingFramework_Other = 1. */
public static final int kLoggingFramework_Other = 1;
/** kLoggingFramework_Epilogue = 2. */
public static final int kLoggingFramework_Epilogue = 2;
/** kLoggingFramework_Monologue = 3. */
public static final int kLoggingFramework_Monologue = 3;
/** kLoggingFramework_AdvantageKit = 4. */
public static final int kLoggingFramework_AdvantageKit = 4;
/** kLoggingFramework_DogLog = 5. */
public static final int kLoggingFramework_DogLog = 5;
}
/** Utility class. */

View File

@@ -168,6 +168,8 @@ namespace HALUsageReporting {
kResourceType_RevSparkFlexCAN = 114,
kResourceType_RevSparkFlexPWM = 115,
kResourceType_BangBangController = 116,
kResourceType_DataLogManager = 117,
kResourceType_LoggingFramework = 118,
};
enum tInstances : int32_t {
kLanguage_LabVIEW = 1,
@@ -240,6 +242,13 @@ namespace HALUsageReporting {
kDashboard_AdvantageScope = 7,
kDashboard_QFRCDashboard = 8,
kDashboard_FRCWebComponents = 9,
kDataLogLocation_Onboard = 1,
kDataLogLocation_USB = 2,
kLoggingFramework_Other = 1,
kLoggingFramework_Epilogue = 2,
kLoggingFramework_Monologue = 3,
kLoggingFramework_AdvantageKit = 4,
kLoggingFramework_DogLog = 5,
};
}
#endif

View File

@@ -137,6 +137,8 @@ typedef enum
kResourceType_RevSparkFlexCAN = 114,
kResourceType_RevSparkFlexPWM = 115,
kResourceType_BangBangController = 116,
kResourceType_DataLogManager = 117,
kResourceType_LoggingFramework = 118,
// kResourceType_MaximumID = 255,
} tResourceType;
@@ -213,6 +215,13 @@ typedef enum
kDashboard_AdvantageScope = 7,
kDashboard_QFRCDashboard = 8,
kDashboard_FRCWebComponents = 9,
kDataLogLocation_Onboard = 1,
kDataLogLocation_USB = 2,
kLoggingFramework_Other = 1,
kLoggingFramework_Epilogue = 2,
kLoggingFramework_Monologue = 3,
kLoggingFramework_AdvantageKit = 4,
kLoggingFramework_DogLog = 5,
} tInstances;
/**

View File

@@ -13,6 +13,7 @@
#include <vector>
#include <fmt/chrono.h>
#include <hal/FRCUsageReporting.h>
#include <networktables/NetworkTableInstance.h>
#include <wpi/DataLog.h>
#include <wpi/DataLogBackgroundWriter.h>
@@ -78,6 +79,8 @@ static std::string MakeLogDir(std::string_view dir) {
(s.permissions() & fs::perms::others_write) != fs::perms::none) {
fs::create_directory("/u/logs", ec);
return "/u/logs";
HAL_Report(HALUsageReporting::kResourceType_DataLogManager,
HALUsageReporting::kDataLogLocation_USB);
}
if (RobotBase::GetRuntimeType() == kRoboRIO) {
FRC_ReportWarning(
@@ -85,6 +88,8 @@ static std::string MakeLogDir(std::string_view dir) {
"not recommended! Plug in a FAT32 formatted flash drive!");
}
fs::create_directory("/home/lvuser/logs", ec);
HAL_Report(HALUsageReporting::kResourceType_DataLogManager,
HALUsageReporting::kDataLogLocation_Onboard);
return "/home/lvuser/logs";
#else
std::string logDir = filesystem::GetOperatingDirectory() + "/logs";

View File

@@ -4,6 +4,9 @@
package edu.wpi.first.wpilibj;
import edu.wpi.first.hal.FRCNetComm.tInstances;
import edu.wpi.first.hal.FRCNetComm.tResourceType;
import edu.wpi.first.hal.HAL;
import edu.wpi.first.networktables.NetworkTableInstance;
import edu.wpi.first.util.FileLogger;
import edu.wpi.first.util.WPIUtilJNI;
@@ -244,6 +247,7 @@ public final class DataLogManager {
if (!new File("/u/logs").mkdir()) {
// ignored
}
HAL.report(tResourceType.kResourceType_DataLogManager, tInstances.kDataLogLocation_USB);
return "/u/logs";
}
} catch (IOException ex) {
@@ -258,6 +262,7 @@ public final class DataLogManager {
if (!new File("/home/lvuser/logs").mkdir()) {
// ignored
}
HAL.report(tResourceType.kResourceType_DataLogManager, tInstances.kDataLogLocation_Onboard);
return "/home/lvuser/logs";
}
String logDir = Filesystem.getOperatingDirectory().getAbsolutePath() + "/logs";