blob: 0c34ce8e39f65aaf3fa658f1516d2930262d7c6a [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",
72 ],
73 target_compatible_with = ["@platforms//os:linux"],
74 visibility = ["//visibility:public"],
75 deps = [
76 "//aos/events:aos_config",
77 "//frc971/control_loops/drivetrain:aos_config",
78 "//frc971/input:aos_config",
79 ],
80 )
81 for pi in [
82 "pi1",
83 "pi2",
84 "pi3",
85 "pi4",
86 ]
87]
88
89aos_config(
90 name = "config_imu",
91 src = "y2023_imu.json",
92 flatbuffers = [
93 "//aos/network:message_bridge_client_fbs",
94 "//aos/network:message_bridge_server_fbs",
95 "//aos/network:timestamp_fbs",
96 "//aos/network:remote_message_fbs",
Maxwell Hendersonad312342023-01-10 12:07:47 -080097 "//y2022/localizer:localizer_status_fbs",
98 "//y2022/localizer:localizer_output_fbs",
99 "//y2022/localizer:localizer_visualization_fbs",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800100 "//frc971/vision:target_map_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800101 ],
102 target_compatible_with = ["@platforms//os:linux"],
103 visibility = ["//visibility:public"],
104 deps = [
105 "//aos/events:aos_config",
106 "//frc971/control_loops/drivetrain:aos_config",
107 ],
108)
109
110aos_config(
111 name = "config_logger",
112 src = "y2023_logger.json",
113 flatbuffers = [
114 "//aos/network:message_bridge_client_fbs",
115 "//aos/network:message_bridge_server_fbs",
116 "//aos/network:timestamp_fbs",
117 "//aos/network:remote_message_fbs",
milind-u2f101fc2023-01-21 12:28:49 -0800118 "//frc971/vision:calibration_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800119 "//frc971/vision:vision_fbs",
Maxwell Hendersonfebee252023-01-28 16:53:52 -0800120 "//frc971/vision:target_map_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800121 ],
122 target_compatible_with = ["@platforms//os:linux"],
123 visibility = ["//visibility:public"],
124 deps = [
125 "//aos/events:aos_config",
126 "//frc971/control_loops/drivetrain:aos_config",
127 "//frc971/input:aos_config",
128 ],
129)
130
131aos_config(
132 name = "config_roborio",
133 src = "y2023_roborio.json",
134 flatbuffers = [
135 "//aos/network:remote_message_fbs",
136 "//aos/network:message_bridge_client_fbs",
137 "//aos/network:message_bridge_server_fbs",
138 "//aos/network:timestamp_fbs",
139 "//y2019/control_loops/drivetrain:target_selector_fbs",
Maxwell Hendersonad312342023-01-10 12:07:47 -0800140 "//y2023/control_loops/superstructure:superstructure_goal_fbs",
141 "//y2023/control_loops/superstructure:superstructure_output_fbs",
142 "//y2023/control_loops/superstructure:superstructure_position_fbs",
143 "//y2023/control_loops/superstructure:superstructure_status_fbs",
Austin Schuh9f164e92022-12-29 16:15:28 -0800144 ],
145 target_compatible_with = ["@platforms//os:linux"],
146 deps = [
147 "//aos/events:aos_config",
148 "//frc971/autonomous:aos_config",
149 "//frc971/control_loops/drivetrain:aos_config",
150 "//frc971/input:aos_config",
151 "//frc971/wpilib:aos_config",
152 ],
153)
154
155[
156 jinja2_template(
157 name = "y2023_pi" + str(num) + ".json",
158 src = "y2023_pi_template.json",
159 parameters = {"NUM": str(num)},
160 target_compatible_with = ["@platforms//os:linux"],
161 )
162 for num in range(1, 6)
163]
Maxwell Hendersonad312342023-01-10 12:07:47 -0800164
165cc_library(
166 name = "constants",
167 srcs = [
168 "constants.cc",
169 ],
170 hdrs = [
171 "constants.h",
172 ],
173 visibility = ["//visibility:public"],
174 deps = [
175 "//aos/mutex",
176 "//aos/network:team_number",
177 "//frc971:constants",
178 "//frc971/control_loops:pose",
179 "//frc971/control_loops:static_zeroing_single_dof_profiled_subsystem",
180 "//frc971/shooter_interpolation:interpolation",
181 "//y2023/control_loops/drivetrain:polydrivetrain_plants",
182 "@com_github_google_glog//:glog",
183 "@com_google_absl//absl/base",
184 ],
185)
186
187cc_binary(
188 name = "wpilib_interface",
189 srcs = [
190 "wpilib_interface.cc",
191 ],
192 target_compatible_with = ["//tools/platforms/hardware:roborio"],
193 deps = [
194 ":constants",
195 "//aos:init",
196 "//aos:math",
197 "//aos/events:shm_event_loop",
198 "//aos/logging",
199 "//aos/stl_mutex",
200 "//aos/time",
201 "//aos/util:log_interval",
202 "//aos/util:phased_loop",
203 "//aos/util:wrapping_counter",
204 "//frc971/autonomous:auto_mode_fbs",
205 "//frc971/control_loops:control_loop",
206 "//frc971/control_loops:control_loops_fbs",
207 "//frc971/control_loops/drivetrain:drivetrain_position_fbs",
208 "//frc971/input:robot_state_fbs",
209 "//frc971/queues:gyro_fbs",
210 "//frc971/wpilib:ADIS16448",
211 "//frc971/wpilib:buffered_pcm",
212 "//frc971/wpilib:drivetrain_writer",
213 "//frc971/wpilib:encoder_and_potentiometer",
214 "//frc971/wpilib:interrupt_edge_counting",
215 "//frc971/wpilib:joystick_sender",
216 "//frc971/wpilib:logging_fbs",
217 "//frc971/wpilib:loop_output_handler",
218 "//frc971/wpilib:pdp_fetcher",
219 "//frc971/wpilib:sensor_reader",
220 "//frc971/wpilib:wpilib_interface",
221 "//frc971/wpilib:wpilib_robot_base",
222 "//third_party:phoenix",
223 "//third_party:wpilib",
224 "//y2023/control_loops/superstructure:superstructure_output_fbs",
225 "//y2023/control_loops/superstructure:superstructure_position_fbs",
226 ],
227)
228
229cc_binary(
230 name = "joystick_reader",
231 srcs = [
232 ":joystick_reader.cc",
233 ],
234 deps = [
235 ":constants",
236 "//aos:init",
237 "//aos/actions:action_lib",
238 "//aos/logging",
239 "//frc971/autonomous:auto_fbs",
240 "//frc971/autonomous:base_autonomous_actor",
241 "//frc971/control_loops:profiled_subsystem_fbs",
242 "//frc971/input:action_joystick_input",
243 "//frc971/input:drivetrain_input",
244 "//frc971/input:joystick_input",
245 "//y2023/control_loops/drivetrain:drivetrain_base",
246 "//y2023/control_loops/superstructure:superstructure_goal_fbs",
247 "//y2023/control_loops/superstructure:superstructure_status_fbs",
248 ],
249)
250
251py_library(
252 name = "python_init",
253 srcs = ["__init__.py"],
254 target_compatible_with = ["@platforms//os:linux"],
255 visibility = ["//visibility:public"],
256)
257
258sh_binary(
259 name = "log_web_proxy",
260 srcs = ["log_web_proxy.sh"],
261 data = [
262 ":aos_config",
263 "//aos/network:log_web_proxy_main",
264 "//y2023/www:field_main_bundle.min.js",
265 "//y2023/www:files",
266 ],
267 target_compatible_with = ["@platforms//os:linux"],
268)