blob: eb265a475f9286c5584025a44004e095c575fdd2 [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 = [
Maxwell Hendersonad312342023-01-10 12:07:47 -08008 "//y2020/vision:calibration",
Austin Schuh9f164e92022-12-29 16:15:28 -08009 "//y2023/vision:viewer",
Maxwell Hendersonfebee252023-01-28 16:53:52 -080010 "//y2023/vision:aprilrobotics",
Austin Schuh9f164e92022-12-29 16:15:28 -080011 "//y2022/localizer:localizer_main",
Maxwell Hendersonad312342023-01-10 12:07:47 -080012 "//aos/network:web_proxy_main",
Austin Schuh9f164e92022-12-29 16:15:28 -080013 "//aos/events/logging:log_cat",
14 ],
15 data = [
16 ":aos_config",
Maxwell Hendersonad312342023-01-10 12:07:47 -080017 ":message_bridge_client.sh",
18 "//y2022/www:www_files",
Austin Schuh9f164e92022-12-29 16:15:28 -080019 ],
20 dirs = [
Maxwell Hendersonad312342023-01-10 12:07:47 -080021 "//y2023/www:www_files",
Austin Schuh9f164e92022-12-29 16:15:28 -080022 ],
23 start_binaries = [
Austin Schuh9f164e92022-12-29 16:15:28 -080024 "//aos/network:message_bridge_client",
25 "//aos/network:message_bridge_server",
26 "//aos/network:web_proxy_main",
Austin Schuh3e1d3b62023-01-08 13:52:31 -080027 "//aos/starter:irq_affinity",
Austin Schuh9f164e92022-12-29 16:15:28 -080028 "//y2023/vision:camera_reader",
Maxwell Hendersonad312342023-01-10 12:07:47 -080029 "//aos/events/logging:logger_main",
Austin Schuh9f164e92022-12-29 16:15:28 -080030 ],
31 target_compatible_with = ["//tools/platforms/hardware:raspberry_pi"],
32 target_type = "pi",
33)
34
35aos_config(
36 name = "aos_config",
37 src = "y2023.json",
38 flatbuffers = [
39 "//aos/network:message_bridge_client_fbs",
40 "//aos/network:message_bridge_server_fbs",
41 "//aos/network:timestamp_fbs",
42 "//frc971/input:robot_state_fbs",
43 "//frc971/vision:vision_fbs",
Maxwell Hendersonfebee252023-01-28 16:53:52 -080044 "//frc971/vision:target_map_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -080045 ],
46 target_compatible_with = ["@platforms//os:linux"],
47 visibility = ["//visibility:public"],
48 deps = [
49 ":config_imu",
50 ":config_logger",
51 ":config_pi1",
52 ":config_pi2",
53 ":config_pi3",
54 ":config_pi4",
55 ":config_roborio",
56 ],
57)
58
59[
60 aos_config(
61 name = "config_" + pi,
62 src = "y2023_" + pi + ".json",
63 flatbuffers = [
64 "//aos/network:message_bridge_client_fbs",
65 "//aos/network:message_bridge_server_fbs",
66 "//aos/network:timestamp_fbs",
67 "//aos/network:remote_message_fbs",
Maxwell Hendersonad312342023-01-10 12:07:47 -080068 "//y2022/localizer:localizer_output_fbs",
milind-u2f101fc2023-01-21 12:28:49 -080069 "//frc971/vision:calibration_fbs",
Maxwell Hendersonfebee252023-01-28 16:53:52 -080070 "//frc971/vision:target_map_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -080071 "//frc971/vision:vision_fbs",
Yash Chainani728ae222023-02-04 19:48:12 -080072 "//y2023/vision:april_debug_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -080073 ],
74 target_compatible_with = ["@platforms//os:linux"],
75 visibility = ["//visibility:public"],
76 deps = [
77 "//aos/events:aos_config",
78 "//frc971/control_loops/drivetrain:aos_config",
79 "//frc971/input:aos_config",
80 ],
81 )
82 for pi in [
83 "pi1",
84 "pi2",
85 "pi3",
86 "pi4",
87 ]
88]
89
90aos_config(
91 name = "config_imu",
92 src = "y2023_imu.json",
93 flatbuffers = [
94 "//aos/network:message_bridge_client_fbs",
95 "//aos/network:message_bridge_server_fbs",
96 "//aos/network:timestamp_fbs",
97 "//aos/network:remote_message_fbs",
Maxwell Hendersonad312342023-01-10 12:07:47 -080098 "//y2022/localizer:localizer_status_fbs",
99 "//y2022/localizer:localizer_output_fbs",
100 "//y2022/localizer:localizer_visualization_fbs",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800101 "//frc971/vision:target_map_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800102 ],
103 target_compatible_with = ["@platforms//os:linux"],
104 visibility = ["//visibility:public"],
105 deps = [
106 "//aos/events:aos_config",
107 "//frc971/control_loops/drivetrain:aos_config",
108 ],
109)
110
111aos_config(
112 name = "config_logger",
113 src = "y2023_logger.json",
114 flatbuffers = [
115 "//aos/network:message_bridge_client_fbs",
116 "//aos/network:message_bridge_server_fbs",
117 "//aos/network:timestamp_fbs",
118 "//aos/network:remote_message_fbs",
milind-u2f101fc2023-01-21 12:28:49 -0800119 "//frc971/vision:calibration_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800120 "//frc971/vision:vision_fbs",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800121 "//frc971/vision:target_map_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800122 ],
123 target_compatible_with = ["@platforms//os:linux"],
124 visibility = ["//visibility:public"],
125 deps = [
126 "//aos/events:aos_config",
127 "//frc971/control_loops/drivetrain:aos_config",
128 "//frc971/input:aos_config",
129 ],
130)
131
132aos_config(
133 name = "config_roborio",
134 src = "y2023_roborio.json",
135 flatbuffers = [
136 "//aos/network:remote_message_fbs",
137 "//aos/network:message_bridge_client_fbs",
138 "//aos/network:message_bridge_server_fbs",
139 "//aos/network:timestamp_fbs",
140 "//y2019/control_loops/drivetrain:target_selector_fbs",
Maxwell Hendersonad312342023-01-10 12:07:47 -0800141 "//y2023/control_loops/superstructure:superstructure_goal_fbs",
142 "//y2023/control_loops/superstructure:superstructure_output_fbs",
143 "//y2023/control_loops/superstructure:superstructure_position_fbs",
144 "//y2023/control_loops/superstructure:superstructure_status_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800145 ],
146 target_compatible_with = ["@platforms//os:linux"],
147 deps = [
148 "//aos/events:aos_config",
149 "//frc971/autonomous:aos_config",
150 "//frc971/control_loops/drivetrain:aos_config",
151 "//frc971/input:aos_config",
152 "//frc971/wpilib:aos_config",
153 ],
154)
155
156[
157 jinja2_template(
158 name = "y2023_pi" + str(num) + ".json",
159 src = "y2023_pi_template.json",
160 parameters = {"NUM": str(num)},
161 target_compatible_with = ["@platforms//os:linux"],
162 )
163 for num in range(1, 6)
164]
Maxwell Hendersonad312342023-01-10 12:07:47 -0800165
166cc_library(
167 name = "constants",
168 srcs = [
169 "constants.cc",
170 ],
171 hdrs = [
172 "constants.h",
173 ],
174 visibility = ["//visibility:public"],
175 deps = [
176 "//aos/mutex",
177 "//aos/network:team_number",
178 "//frc971:constants",
179 "//frc971/control_loops:pose",
180 "//frc971/control_loops:static_zeroing_single_dof_profiled_subsystem",
181 "//frc971/shooter_interpolation:interpolation",
182 "//y2023/control_loops/drivetrain:polydrivetrain_plants",
183 "@com_github_google_glog//:glog",
184 "@com_google_absl//absl/base",
185 ],
186)
187
188cc_binary(
189 name = "wpilib_interface",
190 srcs = [
191 "wpilib_interface.cc",
192 ],
193 target_compatible_with = ["//tools/platforms/hardware:roborio"],
194 deps = [
195 ":constants",
196 "//aos:init",
197 "//aos:math",
198 "//aos/events:shm_event_loop",
199 "//aos/logging",
200 "//aos/stl_mutex",
201 "//aos/time",
202 "//aos/util:log_interval",
203 "//aos/util:phased_loop",
204 "//aos/util:wrapping_counter",
205 "//frc971/autonomous:auto_mode_fbs",
206 "//frc971/control_loops:control_loop",
207 "//frc971/control_loops:control_loops_fbs",
208 "//frc971/control_loops/drivetrain:drivetrain_position_fbs",
209 "//frc971/input:robot_state_fbs",
210 "//frc971/queues:gyro_fbs",
211 "//frc971/wpilib:ADIS16448",
212 "//frc971/wpilib:buffered_pcm",
213 "//frc971/wpilib:drivetrain_writer",
214 "//frc971/wpilib:encoder_and_potentiometer",
215 "//frc971/wpilib:interrupt_edge_counting",
216 "//frc971/wpilib:joystick_sender",
217 "//frc971/wpilib:logging_fbs",
218 "//frc971/wpilib:loop_output_handler",
219 "//frc971/wpilib:pdp_fetcher",
220 "//frc971/wpilib:sensor_reader",
221 "//frc971/wpilib:wpilib_interface",
222 "//frc971/wpilib:wpilib_robot_base",
223 "//third_party:phoenix",
224 "//third_party:wpilib",
225 "//y2023/control_loops/superstructure:superstructure_output_fbs",
226 "//y2023/control_loops/superstructure:superstructure_position_fbs",
227 ],
228)
229
230cc_binary(
231 name = "joystick_reader",
232 srcs = [
233 ":joystick_reader.cc",
234 ],
235 deps = [
236 ":constants",
237 "//aos:init",
238 "//aos/actions:action_lib",
239 "//aos/logging",
240 "//frc971/autonomous:auto_fbs",
241 "//frc971/autonomous:base_autonomous_actor",
242 "//frc971/control_loops:profiled_subsystem_fbs",
243 "//frc971/input:action_joystick_input",
244 "//frc971/input:drivetrain_input",
245 "//frc971/input:joystick_input",
246 "//y2023/control_loops/drivetrain:drivetrain_base",
247 "//y2023/control_loops/superstructure:superstructure_goal_fbs",
248 "//y2023/control_loops/superstructure:superstructure_status_fbs",
249 ],
250)
251
252py_library(
253 name = "python_init",
254 srcs = ["__init__.py"],
255 target_compatible_with = ["@platforms//os:linux"],
256 visibility = ["//visibility:public"],
257)
258
259sh_binary(
260 name = "log_web_proxy",
261 srcs = ["log_web_proxy.sh"],
262 data = [
263 ":aos_config",
264 "//aos/network:log_web_proxy_main",
265 "//y2023/www:field_main_bundle.min.js",
266 "//y2023/www:files",
267 ],
268 target_compatible_with = ["@platforms//os:linux"],
269)
Austin Schuhe6b2b882023-02-04 11:42:40 -0800270
271cc_binary(
272 name = "ssd_profiler",
273 srcs = [
274 "ssd_profiler.cc",
275 ],
276 deps = [
277 "//aos:init",
278 "//aos/time",
279 "@com_github_google_glog//:glog",
280 ],
281)