diff --git a/hal/src/generate/Instances.txt b/hal/src/generate/Instances.txt index 88eb9ecd30..65912c6067 100644 --- a/hal/src/generate/Instances.txt +++ b/hal/src/generate/Instances.txt @@ -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 diff --git a/hal/src/generate/ResourceType.txt b/hal/src/generate/ResourceType.txt index 9b6b8e598b..ee56a749bd 100644 --- a/hal/src/generate/ResourceType.txt +++ b/hal/src/generate/ResourceType.txt @@ -115,3 +115,5 @@ kResourceType_Redux_future5 = 113 kResourceType_RevSparkFlexCAN = 114 kResourceType_RevSparkFlexPWM = 115 kResourceType_BangBangController = 116 +kResourceType_DataLogManager = 117 +kResourceType_LoggingFramework = 118 diff --git a/hal/src/generated/main/java/edu/wpi/first/hal/FRCNetComm.java b/hal/src/generated/main/java/edu/wpi/first/hal/FRCNetComm.java index 293b5dda4f..1cce8dc438 100644 --- a/hal/src/generated/main/java/edu/wpi/first/hal/FRCNetComm.java +++ b/hal/src/generated/main/java/edu/wpi/first/hal/FRCNetComm.java @@ -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. */ diff --git a/hal/src/generated/main/native/include/hal/FRCUsageReporting.h b/hal/src/generated/main/native/include/hal/FRCUsageReporting.h index b3127d5414..ea8d2260ac 100644 --- a/hal/src/generated/main/native/include/hal/FRCUsageReporting.h +++ b/hal/src/generated/main/native/include/hal/FRCUsageReporting.h @@ -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 diff --git a/hal/src/generated/main/native/include/hal/UsageReporting.h b/hal/src/generated/main/native/include/hal/UsageReporting.h index ef870a3fc2..eb3f7eb523 100644 --- a/hal/src/generated/main/native/include/hal/UsageReporting.h +++ b/hal/src/generated/main/native/include/hal/UsageReporting.h @@ -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; /** diff --git a/wpilibc/src/main/native/cpp/DataLogManager.cpp b/wpilibc/src/main/native/cpp/DataLogManager.cpp index 62f5bc55b5..92035eb74b 100644 --- a/wpilibc/src/main/native/cpp/DataLogManager.cpp +++ b/wpilibc/src/main/native/cpp/DataLogManager.cpp @@ -13,6 +13,7 @@ #include #include +#include #include #include #include @@ -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"; diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/DataLogManager.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/DataLogManager.java index b0143e0fc4..53e8b84c2d 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/DataLogManager.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/DataLogManager.java @@ -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";