Skip to content

Commit 9599c1f

Browse files
authored
[hal] Add usage reporting ids from 2024v2 image (#6041)
1 parent f87c64a commit 9599c1f

File tree

6 files changed

+251
-39
lines changed

6 files changed

+251
-39
lines changed

hal/generate_usage_reporting.py

Lines changed: 35 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -3,50 +3,48 @@
33
# Copyright (c) FIRST and other WPILib contributors.
44
# Open Source Software; you can modify and/or share it under the terms of
55
# the WPILib BSD license file in the root directory of this project.
6-
import os
6+
import pathlib
77

88

99
def main():
10+
# Gets the folder this script is in (the hal/ directory)
11+
HAL_ROOT = pathlib.Path(__file__).parent
1012
java_package = "edu/wpi/first/hal"
11-
os.makedirs("hal/src/generated/main/native/include/hal", exist_ok=True)
12-
os.makedirs(f"hal/src/generated/main/java/{java_package}", exist_ok=True)
13-
usage_reporting_types_cpp = ""
14-
usage_reporting_instances_cpp = ""
15-
usage_reporting_types = ""
16-
usage_reporting_instances = ""
17-
with open("hal/src/generate/Instances.txt") as instances:
13+
(HAL_ROOT/"src/generated/main/native/include/hal").mkdir(parents=True, exist_ok=True)
14+
(HAL_ROOT/f"src/generated/main/java/{java_package}").mkdir(parents=True, exist_ok=True)
15+
usage_reporting_types_cpp = []
16+
usage_reporting_instances_cpp = []
17+
usage_reporting_types = []
18+
usage_reporting_instances = []
19+
with open(HAL_ROOT/"src/generate/Instances.txt") as instances:
1820
for instance in instances:
19-
usage_reporting_instances_cpp = f"{usage_reporting_instances_cpp}\n {instance.strip()},"
20-
usage_reporting_instances = f"{usage_reporting_instances}\n public static final int {instance.strip()};"
21+
usage_reporting_instances_cpp.append(f" {instance.strip()},")
22+
usage_reporting_instances.append(
23+
f" /** {instance.strip()}. */\n"
24+
f" public static final int {instance.strip()};")
2125

22-
with open("hal/src/generate/ResourceType.txt") as resource_types:
26+
with open(HAL_ROOT/"src/generate/ResourceType.txt") as resource_types:
2327
for resource_type in resource_types:
24-
usage_reporting_types_cpp = f"{usage_reporting_types_cpp}\n {resource_type.strip()},"
25-
usage_reporting_types = f"{usage_reporting_types}\n public static final int {resource_type.strip()};"
26-
27-
with open("hal/src/generate/FRCNetComm.java.in") as java_usage_reporting:
28-
contents = java_usage_reporting.read()
29-
contents = contents.replace(
30-
r"${usage_reporting_types}", usage_reporting_types)
31-
if os.path.exists(f"hal/src/generated/main/java/{java_package}/FRCNetComm.java"):
32-
with open(f"hal/src/generated/main/java/{java_package}/FRCNetComm.java", "w") as java_out:
33-
java_out.write(contents.replace(
34-
r"${usage_reporting_instances}", usage_reporting_instances))
35-
else:
36-
with open(f"hal/src/generated/main/java/{java_package}/FRCNetComm.java", "x") as java_out:
37-
java_out.write(contents.replace(
38-
r"${usage_reporting_instances}", usage_reporting_instances))
39-
40-
with open("hal/src/generate/FRCUsageReporting.h.in") as cpp_usage_reporting:
41-
contents = cpp_usage_reporting.read()
42-
contents = contents.replace(r"${usage_reporting_types_cpp}", usage_reporting_types_cpp).replace(
43-
r"${usage_reporting_instances_cpp}", usage_reporting_instances_cpp)
44-
if os.path.exists("hal/src/generated/main/native/include/hal/FRCUsageReporting.h"):
45-
with open("hal/src/generated/main/native/include/hal/FRCUsageReporting.h", "w") as cpp_out:
46-
cpp_out.write(contents)
47-
else:
48-
with open("hal/src/generated/main/native/include/hal/FRCUsageReporting.h", "x") as cpp_out:
49-
cpp_out.write(contents)
28+
usage_reporting_types_cpp.append(f" {resource_type.strip()},")
29+
usage_reporting_types.append(
30+
f" /** {resource_type.strip()}. */\n"
31+
f" public static final int {resource_type.strip()};")
32+
33+
with open(HAL_ROOT/"src/generate/FRCNetComm.java.in") as java_usage_reporting:
34+
contents = (java_usage_reporting.read()
35+
.replace(r"${usage_reporting_types}", "\n".join(usage_reporting_types))
36+
.replace(r"${usage_reporting_instances}", "\n".join(usage_reporting_instances)))
37+
38+
with open(HAL_ROOT/f"src/generated/main/java/{java_package}/FRCNetComm.java", "w") as java_out:
39+
java_out.write(contents)
40+
41+
with open(HAL_ROOT/"src/generate/FRCUsageReporting.h.in") as cpp_usage_reporting:
42+
contents = (cpp_usage_reporting.read()
43+
.replace(r"${usage_reporting_types_cpp}", "\n".join(usage_reporting_types_cpp))
44+
.replace(r"${usage_reporting_instances_cpp}", "\n".join(usage_reporting_instances_cpp)))
45+
46+
with open(HAL_ROOT/"src/generated/main/native/include/hal/FRCUsageReporting.h", "w") as cpp_out:
47+
cpp_out.write(contents)
5048

5149

5250
if __name__ == "__main__":

hal/src/generate/FRCNetComm.java.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public class FRCNetComm {
1717
public static final class tResourceType {
1818
private tResourceType() {
1919
}
20+
2021
${usage_reporting_types}
2122
}
2223

@@ -27,6 +28,7 @@ ${usage_reporting_types}
2728
public static final class tInstances {
2829
private tInstances() {
2930
}
31+
3032
${usage_reporting_instances}
3133
}
3234
}

hal/src/generate/Instances.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ kFramework_CommandControl = 3
1212
kFramework_Timed = 4
1313
kFramework_ROS = 5
1414
kFramework_RobotBuilder = 6
15+
kFramework_AdvantageKit = 7
1516
kRobotDrive_ArcadeStandard = 1
1617
kRobotDrive_ArcadeButtonSpin = 2
1718
kRobotDrive_ArcadeRatioCurve = 3

hal/src/generate/ResourceType.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,3 +100,17 @@ kResourceType_CTRE_future11 = 98
100100
kResourceType_CTRE_future12 = 99
101101
kResourceType_CTRE_future13 = 100
102102
kResourceType_CTRE_future14 = 101
103+
kResourceType_ExponentialProfile = 102
104+
kResourceType_PS4Controller = 103
105+
kResourceType_PhotonCamera = 104
106+
kResourceType_PhotonPoseEstimator = 105
107+
kResourceType_PathPlannerPath = 106
108+
kResourceType_PathPlannerAuto = 107
109+
kResourceType_PathFindingCommand = 108
110+
kResourceType_Redux_future1 = 109
111+
kResourceType_Redux_future2 = 110
112+
kResourceType_Redux_future3 = 111
113+
kResourceType_Redux_future4 = 112
114+
kResourceType_Redux_future5 = 113
115+
kResourceType_RevSparkFlexCAN = 114
116+
kResourceType_RevSparkFlexPWM = 115

0 commit comments

Comments
 (0)