blob: f175d191af409a1c0320b80437efd50a5fc813c3 [file] [log] [blame]
Niko Sohmers3860f8a2024-01-12 21:05:19 -08001load("@com_github_google_flatbuffers//:typescript.bzl", "flatbuffer_ts_library")
Austin Schuh8f99c822024-05-05 22:43:40 -07002load("//aos/flatbuffers:generate.bzl", "static_flatbuffer")
3load("//tools/build_rules:js.bzl", "ts_project")
Niko Sohmers3860f8a2024-01-12 21:05:19 -08004
5package(default_visibility = ["//visibility:public"])
6
7static_flatbuffer(
8 name = "superstructure_goal_fbs",
9 srcs = [
10 "superstructure_goal.fbs",
11 ],
12 deps = [
13 "//frc971/control_loops:control_loops_fbs",
14 "//frc971/control_loops:profiled_subsystem_fbs",
Nathan Leongdd728002024-02-03 15:26:53 -080015 "//frc971/control_loops/catapult:catapult_goal_fbs",
Niko Sohmers3860f8a2024-01-12 21:05:19 -080016 ],
17)
18
19static_flatbuffer(
20 name = "superstructure_output_fbs",
21 srcs = [
22 "superstructure_output.fbs",
23 ],
24)
25
26static_flatbuffer(
27 name = "superstructure_status_fbs",
28 srcs = [
29 "superstructure_status.fbs",
30 ],
31 deps = [
32 "//frc971/control_loops:control_loops_fbs",
33 "//frc971/control_loops:profiled_subsystem_fbs",
34 ],
35)
36
37flatbuffer_ts_library(
38 name = "superstructure_status_ts_fbs",
39 srcs = [
40 "superstructure_status.fbs",
41 ],
42 deps = [
43 "//frc971/control_loops:control_loops_ts_fbs",
44 "//frc971/control_loops:profiled_subsystem_ts_fbs",
45 ],
46)
47
48static_flatbuffer(
49 name = "superstructure_position_fbs",
50 srcs = [
51 "superstructure_position.fbs",
52 ],
53 deps = [
54 "//frc971/control_loops:control_loops_fbs",
55 "//frc971/control_loops:profiled_subsystem_fbs",
56 "//frc971/control_loops/drivetrain:drivetrain_can_position_fbs",
57 ],
58)
59
Niko Sohmers7e217982024-03-24 15:38:26 -070060flatbuffer_ts_library(
61 name = "superstructure_position_ts_fbs",
62 srcs = [
63 "superstructure_position.fbs",
64 ],
65 deps = [
66 "//frc971/control_loops:control_loops_ts_fbs",
67 "//frc971/control_loops:profiled_subsystem_ts_fbs",
68 "//frc971/control_loops/drivetrain:drivetrain_can_position_ts_fbs",
69 ],
70)
71
Niko Sohmers58e64c82024-01-14 12:49:54 -080072static_flatbuffer(
73 name = "superstructure_can_position_fbs",
74 srcs = ["superstructure_can_position.fbs"],
75 deps = ["//frc971/control_loops:can_talonfx_fbs"],
76)
77
78flatbuffer_ts_library(
79 name = "superstructure_can_position_ts_fbs",
80 srcs = ["superstructure_can_position.fbs"],
81 target_compatible_with = ["@platforms//os:linux"],
82 deps = ["//frc971/control_loops:can_talonfx_ts_fbs"],
83)
84
Niko Sohmers3860f8a2024-01-12 21:05:19 -080085cc_library(
86 name = "superstructure_lib",
87 srcs = [
88 "superstructure.cc",
89 ],
90 hdrs = [
91 "superstructure.h",
92 ],
Filip Kujawa9cf6c0f2024-03-02 15:05:59 -080093 data = [],
Niko Sohmers3860f8a2024-01-12 21:05:19 -080094 deps = [
Niko Sohmersac4d8872024-02-23 13:55:47 -080095 ":collision_avoidance_lib",
Niko Sohmersc4d2c502024-02-19 19:35:35 -080096 ":shooter",
Niko Sohmers3860f8a2024-01-12 21:05:19 -080097 ":superstructure_goal_fbs",
98 ":superstructure_output_fbs",
99 ":superstructure_position_fbs",
100 ":superstructure_status_fbs",
101 "//aos:flatbuffer_merge",
102 "//aos/events:event_loop",
103 "//frc971/constants:constants_sender_lib",
104 "//frc971/control_loops:control_loop",
105 "//frc971/control_loops/drivetrain:drivetrain_can_position_fbs",
106 "//frc971/control_loops/drivetrain:drivetrain_status_fbs",
107 "//frc971/shooter_interpolation:interpolation",
108 "//frc971/zeroing:absolute_encoder",
109 "//frc971/zeroing:pot_and_absolute_encoder",
110 "//y2024:constants",
111 "//y2024/constants:constants_fbs",
112 "//y2024/constants:simulated_constants_sender",
113 ],
114)
115
116cc_binary(
117 name = "superstructure",
118 srcs = [
119 "superstructure_main.cc",
120 ],
121 deps = [
122 ":superstructure_lib",
123 "//aos:init",
124 "//aos/events:shm_event_loop",
125 ],
126)
127
Niko Sohmersac4d8872024-02-23 13:55:47 -0800128cc_library(
129 name = "collision_avoidance_lib",
130 srcs = ["collision_avoidance.cc"],
131 hdrs = ["collision_avoidance.h"],
132 target_compatible_with = ["@platforms//os:linux"],
133 deps = [
134 ":superstructure_goal_fbs",
135 ":superstructure_status_fbs",
136 "//frc971/control_loops:control_loops_fbs",
137 "//frc971/control_loops:profiled_subsystem_fbs",
138 "//frc971/control_loops:static_zeroing_single_dof_profiled_subsystem",
Niko Sohmersac4d8872024-02-23 13:55:47 -0800139 "@com_google_absl//absl/functional:bind_front",
Austin Schuh99f7c6a2024-06-25 22:07:44 -0700140 "@com_google_absl//absl/log",
141 "@com_google_absl//absl/log:check",
Niko Sohmersac4d8872024-02-23 13:55:47 -0800142 ],
143)
144
145cc_test(
146 name = "collision_avoidance_test",
147 srcs = ["collision_avoidance_test.cc"],
148 target_compatible_with = ["@platforms//os:linux"],
149 deps = [
150 ":collision_avoidance_lib",
151 ":superstructure_goal_fbs",
152 ":superstructure_status_fbs",
153 "//aos:flatbuffers",
154 "//aos:math",
155 "//aos/testing:googletest",
156 ],
157)
158
Niko Sohmers3860f8a2024-01-12 21:05:19 -0800159cc_test(
160 name = "superstructure_lib_test",
161 srcs = [
162 "superstructure_lib_test.cc",
163 ],
164 data = [
165 "//y2024:aos_config",
166 ],
167 deps = [
168 ":superstructure_goal_fbs",
169 ":superstructure_lib",
170 ":superstructure_output_fbs",
171 ":superstructure_position_fbs",
172 ":superstructure_status_fbs",
173 "//aos:json_to_flatbuffer",
174 "//aos:math",
175 "//aos/events/logging:log_writer",
176 "//aos/testing:googletest",
177 "//aos/time",
178 "//frc971/control_loops:capped_test_plant",
179 "//frc971/control_loops:control_loop_test",
180 "//frc971/control_loops:position_sensor_sim",
181 "//frc971/control_loops:subsystem_simulator",
182 "//frc971/control_loops:team_number_test_environment",
183 "//frc971/control_loops/drivetrain:drivetrain_status_fbs",
184 ],
185)
186
Niko Sohmersc4d2c502024-02-19 19:35:35 -0800187cc_library(
188 name = "shooter",
189 srcs = [
190 "shooter.cc",
191 ],
192 hdrs = [
193 "shooter.h",
194 ],
195 deps = [
196 ":aiming",
Niko Sohmersac4d8872024-02-23 13:55:47 -0800197 ":collision_avoidance_lib",
Niko Sohmersc4d2c502024-02-19 19:35:35 -0800198 ":superstructure_can_position_fbs",
199 ":superstructure_goal_fbs",
200 ":superstructure_position_fbs",
201 ":superstructure_status_fbs",
202 "//frc971/control_loops:static_zeroing_single_dof_profiled_subsystem",
203 "//frc971/control_loops/catapult",
204 "//frc971/control_loops/catapult:catapult_goal_fbs",
205 "//frc971/shooter_interpolation:interpolation",
206 "//frc971/zeroing:pot_and_absolute_encoder",
207 "//y2024:constants",
208 "//y2024/constants:constants_fbs",
209 "//y2024/control_loops/superstructure/altitude:altitude_plants",
210 "//y2024/control_loops/superstructure/catapult:catapult_plants",
211 "//y2024/control_loops/superstructure/turret:turret_plants",
212 ],
213)
214
215cc_library(
216 name = "aiming",
217 srcs = [
218 "aiming.cc",
219 ],
220 hdrs = [
221 "aiming.h",
222 ],
223 deps = [
James Kuszmaul73d68882024-04-07 21:26:17 -0700224 ":superstructure_can_position_fbs",
Filip Kujawa1286c012024-03-31 22:53:27 -0700225 ":superstructure_goal_fbs",
Niko Sohmersc4d2c502024-02-19 19:35:35 -0800226 ":superstructure_status_fbs",
227 "//frc971/control_loops:static_zeroing_single_dof_profiled_subsystem",
228 "//frc971/control_loops/aiming",
229 "//frc971/control_loops/drivetrain:drivetrain_status_fbs",
James Kuszmaul73d68882024-04-07 21:26:17 -0700230 "//frc971/zeroing:averager",
Niko Sohmersc4d2c502024-02-19 19:35:35 -0800231 "//y2024:constants",
232 "//y2024/constants:constants_fbs",
233 "//y2024/control_loops/drivetrain:drivetrain_base",
234 ],
235)
236
Niko Sohmers3860f8a2024-01-12 21:05:19 -0800237cc_binary(
238 name = "superstructure_replay",
239 srcs = ["superstructure_replay.cc"],
240 deps = [
241 ":superstructure_lib",
242 "//aos:configuration",
243 "//aos:init",
244 "//aos/events:simulated_event_loop",
245 "//aos/events/logging:log_reader",
246 "//aos/network:team_number",
247 ],
248)
249
250ts_project(
251 name = "superstructure_plotter",
252 srcs = ["superstructure_plotter.ts"],
253 target_compatible_with = ["@platforms//os:linux"],
254 deps = [
255 "//aos/network/www:aos_plotter",
256 "//aos/network/www:colors",
257 "//aos/network/www:proxy",
258 ],
259)
Filip Kujawa9cf6c0f2024-03-02 15:05:59 -0800260
261cc_library(
262 name = "led_indicator_lib",
263 srcs = ["led_indicator.cc"],
264 hdrs = ["led_indicator.h"],
265 data = [
266 "@ctre_phoenix_api_cpp_athena//:shared_libraries",
267 "@ctre_phoenix_cci_athena//:shared_libraries",
268 ],
269 target_compatible_with = ["//tools/platforms/hardware:roborio"],
270 deps = [
271 ":superstructure_output_fbs",
272 ":superstructure_position_fbs",
273 ":superstructure_status_fbs",
274 "//aos/events:event_loop",
275 "//aos/network:message_bridge_client_fbs",
276 "//aos/network:message_bridge_server_fbs",
277 "//frc971/control_loops:control_loop",
278 "//frc971/control_loops:control_loops_fbs",
279 "//frc971/control_loops:profiled_subsystem_fbs",
280 "//frc971/control_loops/drivetrain:drivetrain_output_fbs",
281 "//frc971/control_loops/drivetrain:drivetrain_status_fbs",
282 "//frc971/control_loops/drivetrain/localization:localizer_output_fbs",
283 "//frc971/queues:gyro_fbs",
284 "//third_party:phoenix",
285 "//third_party:wpilib",
286 ],
287)