blob: c060688ba59ed2b8d122d0269ab81b035da658b6 [file] [log] [blame]
Austin Schuh9f164e92022-12-29 16:15:28 -08001load("//frc971:downloader.bzl", "robot_downloader")
2load("//aos:config.bzl", "aos_config")
3load("//tools/build_rules:template.bzl", "jinja2_template")
4
5robot_downloader(
6 name = "pi_download",
7 binaries = [
James Kuszmaul7e958812023-02-11 15:34:31 -08008 "//frc971/vision:intrinsics_calibration",
James Kuszmaul77d536c2023-02-11 17:30:59 -08009 "//aos/util:foxglove_websocket",
Austin Schuh9f164e92022-12-29 16:15:28 -080010 "//y2023/vision:viewer",
Maxwell Hendersonfebee252023-01-28 16:53:52 -080011 "//y2023/vision:aprilrobotics",
Austin Schuh9f164e92022-12-29 16:15:28 -080012 "//y2022/localizer:localizer_main",
James Kuszmauld67f6d22023-02-05 17:37:25 -080013 "//y2023/constants:constants_sender",
James Kuszmaul77d536c2023-02-11 17:30:59 -080014 "//y2023/vision:foxglove_image_converter",
Maxwell Hendersonad312342023-01-10 12:07:47 -080015 "//aos/network:web_proxy_main",
Austin Schuh9f164e92022-12-29 16:15:28 -080016 "//aos/events/logging:log_cat",
Austin Schuhb07dd5b2023-02-05 22:29:11 -080017 "//y2023/rockpi:imu_main",
Austin Schuh9f164e92022-12-29 16:15:28 -080018 ],
19 data = [
20 ":aos_config",
James Kuszmauld67f6d22023-02-05 17:37:25 -080021 "//y2023/constants:constants.json",
22 "//y2023/www:www_files",
Austin Schuh9f164e92022-12-29 16:15:28 -080023 ],
24 dirs = [
Maxwell Hendersonad312342023-01-10 12:07:47 -080025 "//y2023/www:www_files",
Austin Schuh9f164e92022-12-29 16:15:28 -080026 ],
27 start_binaries = [
Austin Schuh9f164e92022-12-29 16:15:28 -080028 "//aos/network:message_bridge_client",
29 "//aos/network:message_bridge_server",
30 "//aos/network:web_proxy_main",
Austin Schuh3e1d3b62023-01-08 13:52:31 -080031 "//aos/starter:irq_affinity",
Austin Schuh9f164e92022-12-29 16:15:28 -080032 "//y2023/vision:camera_reader",
Maxwell Hendersonad312342023-01-10 12:07:47 -080033 "//aos/events/logging:logger_main",
Austin Schuh9f164e92022-12-29 16:15:28 -080034 ],
35 target_compatible_with = ["//tools/platforms/hardware:raspberry_pi"],
36 target_type = "pi",
37)
38
39aos_config(
40 name = "aos_config",
41 src = "y2023.json",
42 flatbuffers = [
43 "//aos/network:message_bridge_client_fbs",
44 "//aos/network:message_bridge_server_fbs",
45 "//aos/network:timestamp_fbs",
46 "//frc971/input:robot_state_fbs",
47 "//frc971/vision:vision_fbs",
Maxwell Hendersonfebee252023-01-28 16:53:52 -080048 "//frc971/vision:target_map_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -080049 ],
50 target_compatible_with = ["@platforms//os:linux"],
51 visibility = ["//visibility:public"],
52 deps = [
53 ":config_imu",
54 ":config_logger",
55 ":config_pi1",
56 ":config_pi2",
57 ":config_pi3",
58 ":config_pi4",
59 ":config_roborio",
60 ],
61)
62
63[
64 aos_config(
65 name = "config_" + pi,
66 src = "y2023_" + pi + ".json",
67 flatbuffers = [
68 "//aos/network:message_bridge_client_fbs",
69 "//aos/network:message_bridge_server_fbs",
70 "//aos/network:timestamp_fbs",
71 "//aos/network:remote_message_fbs",
James Kuszmauld67f6d22023-02-05 17:37:25 -080072 "//y2023/constants:constants_fbs",
Maxwell Hendersonad312342023-01-10 12:07:47 -080073 "//y2022/localizer:localizer_output_fbs",
milind-u2f101fc2023-01-21 12:28:49 -080074 "//frc971/vision:calibration_fbs",
Maxwell Hendersonfebee252023-01-28 16:53:52 -080075 "//frc971/vision:target_map_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -080076 "//frc971/vision:vision_fbs",
Yash Chainani728ae222023-02-04 19:48:12 -080077 "//y2023/vision:april_debug_fbs",
James Kuszmaulf3ec4db2023-02-12 14:18:41 -080078 "@com_github_foxglove_schemas//:schemas",
Austin Schuh9f164e92022-12-29 16:15:28 -080079 ],
80 target_compatible_with = ["@platforms//os:linux"],
81 visibility = ["//visibility:public"],
82 deps = [
83 "//aos/events:aos_config",
84 "//frc971/control_loops/drivetrain:aos_config",
85 "//frc971/input:aos_config",
86 ],
87 )
88 for pi in [
89 "pi1",
90 "pi2",
91 "pi3",
92 "pi4",
93 ]
94]
95
96aos_config(
97 name = "config_imu",
98 src = "y2023_imu.json",
99 flatbuffers = [
100 "//aos/network:message_bridge_client_fbs",
101 "//aos/network:message_bridge_server_fbs",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800102 "//y2023/constants:constants_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800103 "//aos/network:timestamp_fbs",
104 "//aos/network:remote_message_fbs",
Maxwell Hendersonad312342023-01-10 12:07:47 -0800105 "//y2022/localizer:localizer_status_fbs",
106 "//y2022/localizer:localizer_output_fbs",
107 "//y2022/localizer:localizer_visualization_fbs",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800108 "//frc971/vision:target_map_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800109 ],
110 target_compatible_with = ["@platforms//os:linux"],
111 visibility = ["//visibility:public"],
112 deps = [
113 "//aos/events:aos_config",
114 "//frc971/control_loops/drivetrain:aos_config",
115 ],
116)
117
118aos_config(
119 name = "config_logger",
120 src = "y2023_logger.json",
121 flatbuffers = [
122 "//aos/network:message_bridge_client_fbs",
123 "//aos/network:message_bridge_server_fbs",
124 "//aos/network:timestamp_fbs",
125 "//aos/network:remote_message_fbs",
milind-u2f101fc2023-01-21 12:28:49 -0800126 "//frc971/vision:calibration_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800127 "//frc971/vision:vision_fbs",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800128 "//frc971/vision:target_map_fbs",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800129 "//y2023/constants:constants_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800130 ],
131 target_compatible_with = ["@platforms//os:linux"],
132 visibility = ["//visibility:public"],
133 deps = [
134 "//aos/events:aos_config",
135 "//frc971/control_loops/drivetrain:aos_config",
136 "//frc971/input:aos_config",
137 ],
138)
139
140aos_config(
141 name = "config_roborio",
142 src = "y2023_roborio.json",
143 flatbuffers = [
144 "//aos/network:remote_message_fbs",
145 "//aos/network:message_bridge_client_fbs",
146 "//aos/network:message_bridge_server_fbs",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800147 "//y2023/constants:constants_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800148 "//aos/network:timestamp_fbs",
149 "//y2019/control_loops/drivetrain:target_selector_fbs",
Maxwell Hendersonad312342023-01-10 12:07:47 -0800150 "//y2023/control_loops/superstructure:superstructure_goal_fbs",
151 "//y2023/control_loops/superstructure:superstructure_output_fbs",
152 "//y2023/control_loops/superstructure:superstructure_position_fbs",
153 "//y2023/control_loops/superstructure:superstructure_status_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800154 ],
155 target_compatible_with = ["@platforms//os:linux"],
156 deps = [
157 "//aos/events:aos_config",
158 "//frc971/autonomous:aos_config",
159 "//frc971/control_loops/drivetrain:aos_config",
160 "//frc971/input:aos_config",
161 "//frc971/wpilib:aos_config",
162 ],
163)
164
165[
166 jinja2_template(
167 name = "y2023_pi" + str(num) + ".json",
168 src = "y2023_pi_template.json",
169 parameters = {"NUM": str(num)},
170 target_compatible_with = ["@platforms//os:linux"],
171 )
172 for num in range(1, 6)
173]
Maxwell Hendersonad312342023-01-10 12:07:47 -0800174
175cc_library(
176 name = "constants",
177 srcs = [
178 "constants.cc",
179 ],
180 hdrs = [
181 "constants.h",
182 ],
183 visibility = ["//visibility:public"],
184 deps = [
185 "//aos/mutex",
186 "//aos/network:team_number",
187 "//frc971:constants",
188 "//frc971/control_loops:pose",
189 "//frc971/control_loops:static_zeroing_single_dof_profiled_subsystem",
190 "//frc971/shooter_interpolation:interpolation",
191 "//y2023/control_loops/drivetrain:polydrivetrain_plants",
192 "@com_github_google_glog//:glog",
193 "@com_google_absl//absl/base",
194 ],
195)
196
197cc_binary(
198 name = "wpilib_interface",
199 srcs = [
200 "wpilib_interface.cc",
201 ],
202 target_compatible_with = ["//tools/platforms/hardware:roborio"],
203 deps = [
204 ":constants",
205 "//aos:init",
206 "//aos:math",
207 "//aos/events:shm_event_loop",
208 "//aos/logging",
209 "//aos/stl_mutex",
210 "//aos/time",
211 "//aos/util:log_interval",
212 "//aos/util:phased_loop",
213 "//aos/util:wrapping_counter",
214 "//frc971/autonomous:auto_mode_fbs",
215 "//frc971/control_loops:control_loop",
216 "//frc971/control_loops:control_loops_fbs",
217 "//frc971/control_loops/drivetrain:drivetrain_position_fbs",
218 "//frc971/input:robot_state_fbs",
219 "//frc971/queues:gyro_fbs",
220 "//frc971/wpilib:ADIS16448",
221 "//frc971/wpilib:buffered_pcm",
222 "//frc971/wpilib:drivetrain_writer",
223 "//frc971/wpilib:encoder_and_potentiometer",
224 "//frc971/wpilib:interrupt_edge_counting",
225 "//frc971/wpilib:joystick_sender",
226 "//frc971/wpilib:logging_fbs",
227 "//frc971/wpilib:loop_output_handler",
228 "//frc971/wpilib:pdp_fetcher",
229 "//frc971/wpilib:sensor_reader",
230 "//frc971/wpilib:wpilib_interface",
231 "//frc971/wpilib:wpilib_robot_base",
232 "//third_party:phoenix",
233 "//third_party:wpilib",
234 "//y2023/control_loops/superstructure:superstructure_output_fbs",
235 "//y2023/control_loops/superstructure:superstructure_position_fbs",
236 ],
237)
238
239cc_binary(
240 name = "joystick_reader",
241 srcs = [
242 ":joystick_reader.cc",
243 ],
244 deps = [
245 ":constants",
246 "//aos:init",
247 "//aos/actions:action_lib",
248 "//aos/logging",
249 "//frc971/autonomous:auto_fbs",
250 "//frc971/autonomous:base_autonomous_actor",
251 "//frc971/control_loops:profiled_subsystem_fbs",
252 "//frc971/input:action_joystick_input",
253 "//frc971/input:drivetrain_input",
254 "//frc971/input:joystick_input",
255 "//y2023/control_loops/drivetrain:drivetrain_base",
256 "//y2023/control_loops/superstructure:superstructure_goal_fbs",
257 "//y2023/control_loops/superstructure:superstructure_status_fbs",
258 ],
259)
260
261py_library(
262 name = "python_init",
263 srcs = ["__init__.py"],
264 target_compatible_with = ["@platforms//os:linux"],
265 visibility = ["//visibility:public"],
266)
267
268sh_binary(
269 name = "log_web_proxy",
270 srcs = ["log_web_proxy.sh"],
271 data = [
272 ":aos_config",
273 "//aos/network:log_web_proxy_main",
274 "//y2023/www:field_main_bundle.min.js",
275 "//y2023/www:files",
276 ],
277 target_compatible_with = ["@platforms//os:linux"],
278)
Austin Schuhe6b2b882023-02-04 11:42:40 -0800279
280cc_binary(
281 name = "ssd_profiler",
282 srcs = [
283 "ssd_profiler.cc",
284 ],
285 deps = [
286 "//aos:init",
287 "//aos/time",
288 "@com_github_google_glog//:glog",
289 ],
290)