blob: f5a3d5797a2a33c798d04fd1c82a1172ba166957 [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",
milind-u8e98cb92023-02-05 16:07:10 -080018 "//frc971/image_streamer:image_streamer",
Austin Schuh9f164e92022-12-29 16:15:28 -080019 ],
20 data = [
21 ":aos_config",
James Kuszmauld67f6d22023-02-05 17:37:25 -080022 "//y2023/constants:constants.json",
milind-u8e98cb92023-02-05 16:07:10 -080023 "//y2023/vision:image_streamer_start",
James Kuszmauld67f6d22023-02-05 17:37:25 -080024 "//y2023/www:www_files",
Austin Schuh9f164e92022-12-29 16:15:28 -080025 ],
26 dirs = [
Maxwell Hendersonad312342023-01-10 12:07:47 -080027 "//y2023/www:www_files",
milind-u8e98cb92023-02-05 16:07:10 -080028 "//frc971/image_streamer/www:www_files",
Austin Schuh9f164e92022-12-29 16:15:28 -080029 ],
30 start_binaries = [
Austin Schuh9f164e92022-12-29 16:15:28 -080031 "//aos/network:message_bridge_client",
32 "//aos/network:message_bridge_server",
33 "//aos/network:web_proxy_main",
Austin Schuh3e1d3b62023-01-08 13:52:31 -080034 "//aos/starter:irq_affinity",
Austin Schuh9f164e92022-12-29 16:15:28 -080035 "//y2023/vision:camera_reader",
Maxwell Hendersonad312342023-01-10 12:07:47 -080036 "//aos/events/logging:logger_main",
Austin Schuh9f164e92022-12-29 16:15:28 -080037 ],
38 target_compatible_with = ["//tools/platforms/hardware:raspberry_pi"],
39 target_type = "pi",
40)
41
42aos_config(
43 name = "aos_config",
44 src = "y2023.json",
45 flatbuffers = [
46 "//aos/network:message_bridge_client_fbs",
47 "//aos/network:message_bridge_server_fbs",
48 "//aos/network:timestamp_fbs",
49 "//frc971/input:robot_state_fbs",
50 "//frc971/vision:vision_fbs",
Maxwell Hendersonfebee252023-01-28 16:53:52 -080051 "//frc971/vision:target_map_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -080052 ],
53 target_compatible_with = ["@platforms//os:linux"],
54 visibility = ["//visibility:public"],
55 deps = [
56 ":config_imu",
57 ":config_logger",
58 ":config_pi1",
59 ":config_pi2",
60 ":config_pi3",
61 ":config_pi4",
62 ":config_roborio",
63 ],
64)
65
66[
67 aos_config(
68 name = "config_" + pi,
69 src = "y2023_" + pi + ".json",
70 flatbuffers = [
71 "//aos/network:message_bridge_client_fbs",
72 "//aos/network:message_bridge_server_fbs",
73 "//aos/network:timestamp_fbs",
74 "//aos/network:remote_message_fbs",
James Kuszmauld67f6d22023-02-05 17:37:25 -080075 "//y2023/constants:constants_fbs",
Maxwell Hendersonad312342023-01-10 12:07:47 -080076 "//y2022/localizer:localizer_output_fbs",
milind-u2f101fc2023-01-21 12:28:49 -080077 "//frc971/vision:calibration_fbs",
Maxwell Hendersonfebee252023-01-28 16:53:52 -080078 "//frc971/vision:target_map_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -080079 "//frc971/vision:vision_fbs",
Yash Chainani728ae222023-02-04 19:48:12 -080080 "//y2023/vision:april_debug_fbs",
James Kuszmaulf3ec4db2023-02-12 14:18:41 -080081 "@com_github_foxglove_schemas//:schemas",
Austin Schuh9f164e92022-12-29 16:15:28 -080082 ],
83 target_compatible_with = ["@platforms//os:linux"],
84 visibility = ["//visibility:public"],
85 deps = [
86 "//aos/events:aos_config",
87 "//frc971/control_loops/drivetrain:aos_config",
88 "//frc971/input:aos_config",
89 ],
90 )
91 for pi in [
92 "pi1",
93 "pi2",
94 "pi3",
95 "pi4",
96 ]
97]
98
99aos_config(
100 name = "config_imu",
101 src = "y2023_imu.json",
102 flatbuffers = [
103 "//aos/network:message_bridge_client_fbs",
104 "//aos/network:message_bridge_server_fbs",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800105 "//y2023/constants:constants_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800106 "//aos/network:timestamp_fbs",
107 "//aos/network:remote_message_fbs",
Maxwell Hendersonad312342023-01-10 12:07:47 -0800108 "//y2022/localizer:localizer_status_fbs",
109 "//y2022/localizer:localizer_output_fbs",
110 "//y2022/localizer:localizer_visualization_fbs",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800111 "//frc971/vision:target_map_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800112 ],
113 target_compatible_with = ["@platforms//os:linux"],
114 visibility = ["//visibility:public"],
115 deps = [
116 "//aos/events:aos_config",
117 "//frc971/control_loops/drivetrain:aos_config",
118 ],
119)
120
121aos_config(
122 name = "config_logger",
123 src = "y2023_logger.json",
124 flatbuffers = [
125 "//aos/network:message_bridge_client_fbs",
126 "//aos/network:message_bridge_server_fbs",
127 "//aos/network:timestamp_fbs",
128 "//aos/network:remote_message_fbs",
milind-u2f101fc2023-01-21 12:28:49 -0800129 "//frc971/vision:calibration_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800130 "//frc971/vision:vision_fbs",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800131 "//frc971/vision:target_map_fbs",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800132 "//y2023/constants:constants_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800133 ],
134 target_compatible_with = ["@platforms//os:linux"],
135 visibility = ["//visibility:public"],
136 deps = [
137 "//aos/events:aos_config",
138 "//frc971/control_loops/drivetrain:aos_config",
139 "//frc971/input:aos_config",
140 ],
141)
142
143aos_config(
144 name = "config_roborio",
145 src = "y2023_roborio.json",
146 flatbuffers = [
147 "//aos/network:remote_message_fbs",
148 "//aos/network:message_bridge_client_fbs",
149 "//aos/network:message_bridge_server_fbs",
James Kuszmauld67f6d22023-02-05 17:37:25 -0800150 "//y2023/constants:constants_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800151 "//aos/network:timestamp_fbs",
152 "//y2019/control_loops/drivetrain:target_selector_fbs",
Maxwell Hendersonad312342023-01-10 12:07:47 -0800153 "//y2023/control_loops/superstructure:superstructure_goal_fbs",
154 "//y2023/control_loops/superstructure:superstructure_output_fbs",
155 "//y2023/control_loops/superstructure:superstructure_position_fbs",
156 "//y2023/control_loops/superstructure:superstructure_status_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800157 ],
158 target_compatible_with = ["@platforms//os:linux"],
159 deps = [
160 "//aos/events:aos_config",
161 "//frc971/autonomous:aos_config",
162 "//frc971/control_loops/drivetrain:aos_config",
163 "//frc971/input:aos_config",
164 "//frc971/wpilib:aos_config",
165 ],
166)
167
168[
169 jinja2_template(
170 name = "y2023_pi" + str(num) + ".json",
171 src = "y2023_pi_template.json",
172 parameters = {"NUM": str(num)},
173 target_compatible_with = ["@platforms//os:linux"],
174 )
175 for num in range(1, 6)
176]
Maxwell Hendersonad312342023-01-10 12:07:47 -0800177
178cc_library(
179 name = "constants",
180 srcs = [
181 "constants.cc",
182 ],
183 hdrs = [
184 "constants.h",
185 ],
186 visibility = ["//visibility:public"],
187 deps = [
188 "//aos/mutex",
189 "//aos/network:team_number",
190 "//frc971:constants",
191 "//frc971/control_loops:pose",
192 "//frc971/control_loops:static_zeroing_single_dof_profiled_subsystem",
193 "//frc971/shooter_interpolation:interpolation",
194 "//y2023/control_loops/drivetrain:polydrivetrain_plants",
195 "@com_github_google_glog//:glog",
196 "@com_google_absl//absl/base",
197 ],
198)
199
200cc_binary(
201 name = "wpilib_interface",
202 srcs = [
203 "wpilib_interface.cc",
204 ],
205 target_compatible_with = ["//tools/platforms/hardware:roborio"],
206 deps = [
207 ":constants",
208 "//aos:init",
209 "//aos:math",
210 "//aos/events:shm_event_loop",
211 "//aos/logging",
212 "//aos/stl_mutex",
213 "//aos/time",
214 "//aos/util:log_interval",
215 "//aos/util:phased_loop",
216 "//aos/util:wrapping_counter",
217 "//frc971/autonomous:auto_mode_fbs",
218 "//frc971/control_loops:control_loop",
219 "//frc971/control_loops:control_loops_fbs",
220 "//frc971/control_loops/drivetrain:drivetrain_position_fbs",
221 "//frc971/input:robot_state_fbs",
222 "//frc971/queues:gyro_fbs",
223 "//frc971/wpilib:ADIS16448",
224 "//frc971/wpilib:buffered_pcm",
225 "//frc971/wpilib:drivetrain_writer",
226 "//frc971/wpilib:encoder_and_potentiometer",
227 "//frc971/wpilib:interrupt_edge_counting",
228 "//frc971/wpilib:joystick_sender",
229 "//frc971/wpilib:logging_fbs",
230 "//frc971/wpilib:loop_output_handler",
231 "//frc971/wpilib:pdp_fetcher",
232 "//frc971/wpilib:sensor_reader",
233 "//frc971/wpilib:wpilib_interface",
234 "//frc971/wpilib:wpilib_robot_base",
235 "//third_party:phoenix",
236 "//third_party:wpilib",
237 "//y2023/control_loops/superstructure:superstructure_output_fbs",
238 "//y2023/control_loops/superstructure:superstructure_position_fbs",
239 ],
240)
241
242cc_binary(
243 name = "joystick_reader",
244 srcs = [
245 ":joystick_reader.cc",
246 ],
247 deps = [
248 ":constants",
249 "//aos:init",
250 "//aos/actions:action_lib",
251 "//aos/logging",
252 "//frc971/autonomous:auto_fbs",
253 "//frc971/autonomous:base_autonomous_actor",
254 "//frc971/control_loops:profiled_subsystem_fbs",
255 "//frc971/input:action_joystick_input",
256 "//frc971/input:drivetrain_input",
257 "//frc971/input:joystick_input",
258 "//y2023/control_loops/drivetrain:drivetrain_base",
259 "//y2023/control_loops/superstructure:superstructure_goal_fbs",
260 "//y2023/control_loops/superstructure:superstructure_status_fbs",
261 ],
262)
263
264py_library(
265 name = "python_init",
266 srcs = ["__init__.py"],
267 target_compatible_with = ["@platforms//os:linux"],
268 visibility = ["//visibility:public"],
269)
270
271sh_binary(
272 name = "log_web_proxy",
273 srcs = ["log_web_proxy.sh"],
274 data = [
275 ":aos_config",
276 "//aos/network:log_web_proxy_main",
277 "//y2023/www:field_main_bundle.min.js",
278 "//y2023/www:files",
279 ],
280 target_compatible_with = ["@platforms//os:linux"],
281)
Austin Schuhe6b2b882023-02-04 11:42:40 -0800282
283cc_binary(
284 name = "ssd_profiler",
285 srcs = [
286 "ssd_profiler.cc",
287 ],
288 deps = [
289 "//aos:init",
290 "//aos/time",
291 "@com_github_google_glog//:glog",
292 ],
293)