blob: 0879de7d4ace1defd93039326ae0c5f31491fec4 [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",
10 "//y2022/localizer:imu_main",
11 "//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",
19 "@ctre_phoenix_api_cpp_athena//:shared_libraries",
20 "@ctre_phoenix_cci_athena//:shared_libraries",
Austin Schuh9f164e92022-12-29 16:15:28 -080021 ],
22 dirs = [
Maxwell Hendersonad312342023-01-10 12:07:47 -080023 "//y2023/www:www_files",
Austin Schuh9f164e92022-12-29 16:15:28 -080024 ],
25 start_binaries = [
Austin Schuh9f164e92022-12-29 16:15:28 -080026 "//aos/network:message_bridge_client",
27 "//aos/network:message_bridge_server",
28 "//aos/network:web_proxy_main",
Austin Schuh3e1d3b62023-01-08 13:52:31 -080029 "//aos/starter:irq_affinity",
Austin Schuh9f164e92022-12-29 16:15:28 -080030 "//y2023/vision:camera_reader",
Maxwell Hendersonad312342023-01-10 12:07:47 -080031 "//aos/events/logging:logger_main",
32 ":joystick_reader",
Maxwell Hendersonad312342023-01-10 12:07:47 -080033 "//y2023/autonomous:binaries",
34 "//y2023/control_loops/drivetrain:drivetrain",
35 "//y2023/control_loops/drivetrain:trajectory_generator",
36 "//y2023/control_loops/superstructure:superstructure",
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",
51 ],
52 target_compatible_with = ["@platforms//os:linux"],
53 visibility = ["//visibility:public"],
54 deps = [
55 ":config_imu",
56 ":config_logger",
57 ":config_pi1",
58 ":config_pi2",
59 ":config_pi3",
60 ":config_pi4",
61 ":config_roborio",
62 ],
63)
64
65[
66 aos_config(
67 name = "config_" + pi,
68 src = "y2023_" + pi + ".json",
69 flatbuffers = [
70 "//aos/network:message_bridge_client_fbs",
71 "//aos/network:message_bridge_server_fbs",
72 "//aos/network:timestamp_fbs",
73 "//aos/network:remote_message_fbs",
Maxwell Hendersonad312342023-01-10 12:07:47 -080074 "//y2022/localizer:localizer_output_fbs",
milind-u2f101fc2023-01-21 12:28:49 -080075 "//frc971/vision:calibration_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -080076 "//frc971/vision:vision_fbs",
77 ],
78 target_compatible_with = ["@platforms//os:linux"],
79 visibility = ["//visibility:public"],
80 deps = [
81 "//aos/events:aos_config",
82 "//frc971/control_loops/drivetrain:aos_config",
83 "//frc971/input:aos_config",
84 ],
85 )
86 for pi in [
87 "pi1",
88 "pi2",
89 "pi3",
90 "pi4",
91 ]
92]
93
94aos_config(
95 name = "config_imu",
96 src = "y2023_imu.json",
97 flatbuffers = [
98 "//aos/network:message_bridge_client_fbs",
99 "//aos/network:message_bridge_server_fbs",
100 "//aos/network:timestamp_fbs",
101 "//aos/network:remote_message_fbs",
Maxwell Hendersonad312342023-01-10 12:07:47 -0800102 "//y2022/localizer:localizer_status_fbs",
103 "//y2022/localizer:localizer_output_fbs",
104 "//y2022/localizer:localizer_visualization_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800105 ],
106 target_compatible_with = ["@platforms//os:linux"],
107 visibility = ["//visibility:public"],
108 deps = [
109 "//aos/events:aos_config",
110 "//frc971/control_loops/drivetrain:aos_config",
111 ],
112)
113
114aos_config(
115 name = "config_logger",
116 src = "y2023_logger.json",
117 flatbuffers = [
118 "//aos/network:message_bridge_client_fbs",
119 "//aos/network:message_bridge_server_fbs",
120 "//aos/network:timestamp_fbs",
121 "//aos/network:remote_message_fbs",
milind-u2f101fc2023-01-21 12:28:49 -0800122 "//frc971/vision:calibration_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800123 "//frc971/vision:vision_fbs",
124 ],
125 target_compatible_with = ["@platforms//os:linux"],
126 visibility = ["//visibility:public"],
127 deps = [
128 "//aos/events:aos_config",
129 "//frc971/control_loops/drivetrain:aos_config",
130 "//frc971/input:aos_config",
131 ],
132)
133
134aos_config(
135 name = "config_roborio",
136 src = "y2023_roborio.json",
137 flatbuffers = [
138 "//aos/network:remote_message_fbs",
139 "//aos/network:message_bridge_client_fbs",
140 "//aos/network:message_bridge_server_fbs",
141 "//aos/network:timestamp_fbs",
142 "//y2019/control_loops/drivetrain:target_selector_fbs",
Maxwell Hendersonad312342023-01-10 12:07:47 -0800143 "//y2023/control_loops/superstructure:superstructure_goal_fbs",
144 "//y2023/control_loops/superstructure:superstructure_output_fbs",
145 "//y2023/control_loops/superstructure:superstructure_position_fbs",
146 "//y2023/control_loops/superstructure:superstructure_status_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800147 ],
148 target_compatible_with = ["@platforms//os:linux"],
149 deps = [
150 "//aos/events:aos_config",
151 "//frc971/autonomous:aos_config",
152 "//frc971/control_loops/drivetrain:aos_config",
153 "//frc971/input:aos_config",
154 "//frc971/wpilib:aos_config",
155 ],
156)
157
158[
159 jinja2_template(
160 name = "y2023_pi" + str(num) + ".json",
161 src = "y2023_pi_template.json",
162 parameters = {"NUM": str(num)},
163 target_compatible_with = ["@platforms//os:linux"],
164 )
165 for num in range(1, 6)
166]
Maxwell Hendersonad312342023-01-10 12:07:47 -0800167
168cc_library(
169 name = "constants",
170 srcs = [
171 "constants.cc",
172 ],
173 hdrs = [
174 "constants.h",
175 ],
176 visibility = ["//visibility:public"],
177 deps = [
178 "//aos/mutex",
179 "//aos/network:team_number",
180 "//frc971:constants",
181 "//frc971/control_loops:pose",
182 "//frc971/control_loops:static_zeroing_single_dof_profiled_subsystem",
183 "//frc971/shooter_interpolation:interpolation",
184 "//y2023/control_loops/drivetrain:polydrivetrain_plants",
185 "@com_github_google_glog//:glog",
186 "@com_google_absl//absl/base",
187 ],
188)
189
190cc_binary(
191 name = "wpilib_interface",
192 srcs = [
193 "wpilib_interface.cc",
194 ],
195 target_compatible_with = ["//tools/platforms/hardware:roborio"],
196 deps = [
197 ":constants",
198 "//aos:init",
199 "//aos:math",
200 "//aos/events:shm_event_loop",
201 "//aos/logging",
202 "//aos/stl_mutex",
203 "//aos/time",
204 "//aos/util:log_interval",
205 "//aos/util:phased_loop",
206 "//aos/util:wrapping_counter",
207 "//frc971/autonomous:auto_mode_fbs",
208 "//frc971/control_loops:control_loop",
209 "//frc971/control_loops:control_loops_fbs",
210 "//frc971/control_loops/drivetrain:drivetrain_position_fbs",
211 "//frc971/input:robot_state_fbs",
212 "//frc971/queues:gyro_fbs",
213 "//frc971/wpilib:ADIS16448",
214 "//frc971/wpilib:buffered_pcm",
215 "//frc971/wpilib:drivetrain_writer",
216 "//frc971/wpilib:encoder_and_potentiometer",
217 "//frc971/wpilib:interrupt_edge_counting",
218 "//frc971/wpilib:joystick_sender",
219 "//frc971/wpilib:logging_fbs",
220 "//frc971/wpilib:loop_output_handler",
221 "//frc971/wpilib:pdp_fetcher",
222 "//frc971/wpilib:sensor_reader",
223 "//frc971/wpilib:wpilib_interface",
224 "//frc971/wpilib:wpilib_robot_base",
225 "//third_party:phoenix",
226 "//third_party:wpilib",
227 "//y2023/control_loops/superstructure:superstructure_output_fbs",
228 "//y2023/control_loops/superstructure:superstructure_position_fbs",
229 ],
230)
231
232cc_binary(
233 name = "joystick_reader",
234 srcs = [
235 ":joystick_reader.cc",
236 ],
237 deps = [
238 ":constants",
239 "//aos:init",
240 "//aos/actions:action_lib",
241 "//aos/logging",
242 "//frc971/autonomous:auto_fbs",
243 "//frc971/autonomous:base_autonomous_actor",
244 "//frc971/control_loops:profiled_subsystem_fbs",
245 "//frc971/input:action_joystick_input",
246 "//frc971/input:drivetrain_input",
247 "//frc971/input:joystick_input",
248 "//y2023/control_loops/drivetrain:drivetrain_base",
249 "//y2023/control_loops/superstructure:superstructure_goal_fbs",
250 "//y2023/control_loops/superstructure:superstructure_status_fbs",
251 ],
252)
253
254py_library(
255 name = "python_init",
256 srcs = ["__init__.py"],
257 target_compatible_with = ["@platforms//os:linux"],
258 visibility = ["//visibility:public"],
259)
260
261sh_binary(
262 name = "log_web_proxy",
263 srcs = ["log_web_proxy.sh"],
264 data = [
265 ":aos_config",
266 "//aos/network:log_web_proxy_main",
267 "//y2023/www:field_main_bundle.min.js",
268 "//y2023/www:files",
269 ],
270 target_compatible_with = ["@platforms//os:linux"],
271)