blob: cc3aa931c2e59102d7ba86cc7e851cca09133f54 [file] [log] [blame]
milind-u086d7262022-01-19 20:44:18 -08001load("//frc971:downloader.bzl", "robot_downloader")
2load("//aos:config.bzl", "aos_config")
milind-uf2f59aa2022-01-23 21:06:12 -08003load("//tools/build_rules:template.bzl", "jinja2_template")
milind-u086d7262022-01-19 20:44:18 -08004
5robot_downloader(
milind-uf2f59aa2022-01-23 21:06:12 -08006 binaries = [
7 "//aos/network:web_proxy_main",
8 ],
milind-u086d7262022-01-19 20:44:18 -08009 data = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -080010 ":aos_config",
Austin Schuhde605f12022-02-23 23:08:19 -080011 "@ctre_phoenix_api_cpp_athena//:shared_libraries",
12 "@ctre_phoenix_cci_athena//:shared_libraries",
milind-u086d7262022-01-19 20:44:18 -080013 ],
Austin Schuh76f227c2022-02-23 16:34:08 -080014 dirs = [
15 "//y2022/www:www_files",
16 ],
milind-u086d7262022-01-19 20:44:18 -080017 start_binaries = [
milind-uf2f59aa2022-01-23 21:06:12 -080018 "//aos/events/logging:logger_main",
19 "//aos/network:web_proxy_main",
milind-u086d7262022-01-19 20:44:18 -080020 ":joystick_reader",
21 ":wpilib_interface",
milind-uf2f59aa2022-01-23 21:06:12 -080022 "//aos/network:message_bridge_client",
23 "//aos/network:message_bridge_server",
24 "//y2022/actors:binaries",
milind-u086d7262022-01-19 20:44:18 -080025 "//y2022/control_loops/drivetrain:drivetrain",
Milind Upadhyayb8abf022022-02-22 21:07:44 -080026 "//y2022/control_loops/drivetrain:trajectory_generator",
milind-u086d7262022-01-19 20:44:18 -080027 "//y2022/control_loops/superstructure:superstructure",
milind-u086d7262022-01-19 20:44:18 -080028 ],
milind-uf2f59aa2022-01-23 21:06:12 -080029 target_compatible_with = ["@platforms//os:linux"],
milind-u086d7262022-01-19 20:44:18 -080030)
31
milind-u6b6e1002022-01-22 13:26:42 -080032robot_downloader(
33 name = "pi_download",
34 binaries = [
Jim Ostrowskib9135a92022-02-06 22:49:11 -080035 "//y2020/vision:calibration",
milind-u6b6e1002022-01-22 13:26:42 -080036 "//y2022/vision:viewer",
Ravago Jonese12b7902022-02-04 22:50:44 -080037 "//y2022/localizer:imu_main",
James Kuszmaul51fa1ae2022-02-26 00:49:57 -080038 "//y2022/localizer:localizer_main",
milind-u6b6e1002022-01-22 13:26:42 -080039 ],
40 data = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -080041 ":aos_config",
milind-u6b6e1002022-01-22 13:26:42 -080042 ],
milind-u6b6e1002022-01-22 13:26:42 -080043 start_binaries = [
44 "//aos/events/logging:logger_main",
45 "//aos/network:message_bridge_client",
46 "//aos/network:message_bridge_server",
47 "//aos/network:web_proxy_main",
48 "//y2022/vision:camera_reader",
49 ],
50 target_compatible_with = ["//tools/platforms/hardware:raspberry_pi"],
51 target_type = "pi",
52)
53
milind-uf2f59aa2022-01-23 21:06:12 -080054aos_config(
Austin Schuhc5fa6d92022-02-25 14:36:28 -080055 name = "aos_config",
milind-uf2f59aa2022-01-23 21:06:12 -080056 src = "y2022.json",
57 flatbuffers = [
58 "//aos/network:message_bridge_client_fbs",
59 "//aos/network:message_bridge_server_fbs",
60 "//aos/network:timestamp_fbs",
61 "//frc971/input:robot_state_fbs",
62 "//frc971/vision:vision_fbs",
Jim Ostrowski007e2ea2022-01-30 13:13:26 -080063 "//y2022/vision:calibration_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -080064 ],
65 target_compatible_with = ["@platforms//os:linux"],
66 visibility = ["//visibility:public"],
67 deps = [
James Kuszmaulef35d732022-02-12 16:37:32 -080068 ":config_imu",
milind-uf2f59aa2022-01-23 21:06:12 -080069 ":config_logger",
70 ":config_pi1",
71 ":config_pi2",
72 ":config_pi3",
73 ":config_pi4",
milind-uf2f59aa2022-01-23 21:06:12 -080074 ":config_roborio",
75 ],
76)
77
78[
79 aos_config(
80 name = "config_" + pi,
81 src = "y2022_" + pi + ".json",
82 flatbuffers = [
83 "//aos/network:message_bridge_client_fbs",
84 "//aos/network:message_bridge_server_fbs",
85 "//aos/network:timestamp_fbs",
86 "//aos/network:remote_message_fbs",
87 "//frc971/vision:vision_fbs",
Jim Ostrowski007e2ea2022-01-30 13:13:26 -080088 "//y2022/vision:calibration_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -080089 "//y2022/vision:target_estimate_fbs",
90 ],
91 target_compatible_with = ["@platforms//os:linux"],
92 visibility = ["//visibility:public"],
93 deps = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -080094 "//aos/events:aos_config",
95 "//frc971/control_loops/drivetrain:aos_config",
96 "//frc971/input:aos_config",
milind-uf2f59aa2022-01-23 21:06:12 -080097 ],
98 )
99 for pi in [
100 "pi1",
101 "pi2",
102 "pi3",
103 "pi4",
milind-uf2f59aa2022-01-23 21:06:12 -0800104 ]
105]
106
107aos_config(
James Kuszmaulef35d732022-02-12 16:37:32 -0800108 name = "config_imu",
109 src = "y2022_imu.json",
110 flatbuffers = [
111 "//aos/network:message_bridge_client_fbs",
112 "//aos/network:message_bridge_server_fbs",
113 "//aos/network:timestamp_fbs",
114 "//aos/network:remote_message_fbs",
James Kuszmaul51fa1ae2022-02-26 00:49:57 -0800115 "//y2022/localizer:localizer_status_fbs",
116 "//y2022/localizer:localizer_output_fbs",
James Kuszmaulef35d732022-02-12 16:37:32 -0800117 ],
118 target_compatible_with = ["@platforms//os:linux"],
119 visibility = ["//visibility:public"],
120 deps = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800121 "//aos/events:aos_config",
122 "//frc971/control_loops/drivetrain:aos_config",
James Kuszmaulef35d732022-02-12 16:37:32 -0800123 ],
124)
125
126aos_config(
milind-uf2f59aa2022-01-23 21:06:12 -0800127 name = "config_logger",
128 src = "y2022_logger.json",
129 flatbuffers = [
130 "//aos/network:message_bridge_client_fbs",
131 "//aos/network:message_bridge_server_fbs",
132 "//aos/network:timestamp_fbs",
133 "//aos/network:remote_message_fbs",
134 "//frc971/vision:vision_fbs",
Jim Ostrowski007e2ea2022-01-30 13:13:26 -0800135 "//y2022/vision:calibration_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -0800136 ],
137 target_compatible_with = ["@platforms//os:linux"],
138 visibility = ["//visibility:public"],
139 deps = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800140 "//aos/events:aos_config",
141 "//frc971/control_loops/drivetrain:aos_config",
142 "//frc971/input:aos_config",
milind-uf2f59aa2022-01-23 21:06:12 -0800143 ],
144)
145
146aos_config(
147 name = "config_roborio",
148 src = "y2022_roborio.json",
149 flatbuffers = [
150 "//aos/network:remote_message_fbs",
151 "//aos/network:message_bridge_client_fbs",
152 "//aos/network:message_bridge_server_fbs",
153 "//aos/network:timestamp_fbs",
154 "//y2019/control_loops/drivetrain:target_selector_fbs",
155 "//y2022/control_loops/superstructure:superstructure_goal_fbs",
156 "//y2022/control_loops/superstructure:superstructure_output_fbs",
157 "//y2022/control_loops/superstructure:superstructure_position_fbs",
Milind Upadhyay482b0ba2022-02-26 21:51:59 -0800158 "//y2022/control_loops/superstructure:superstructure_can_position_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -0800159 "//y2022/control_loops/superstructure:superstructure_status_fbs",
160 ],
161 target_compatible_with = ["@platforms//os:linux"],
162 deps = [
Austin Schuhc5fa6d92022-02-25 14:36:28 -0800163 "//aos/events:aos_config",
164 "//frc971/autonomous:aos_config",
165 "//frc971/control_loops/drivetrain:aos_config",
166 "//frc971/input:aos_config",
167 "//frc971/wpilib:aos_config",
milind-uf2f59aa2022-01-23 21:06:12 -0800168 ],
169)
170
171[
172 jinja2_template(
173 name = "y2022_pi" + str(num) + ".json",
174 src = "y2022_pi_template.json",
175 parameters = {"NUM": str(num)},
176 target_compatible_with = ["@platforms//os:linux"],
177 )
178 for num in range(1, 6)
179]
180
milind-u086d7262022-01-19 20:44:18 -0800181cc_library(
182 name = "constants",
183 srcs = [
184 "constants.cc",
185 ],
186 hdrs = [
187 "constants.h",
188 ],
189 visibility = ["//visibility:public"],
190 deps = [
191 "//aos/mutex",
192 "//aos/network:team_number",
193 "//frc971:constants",
194 "//frc971/control_loops:pose",
195 "//frc971/control_loops:static_zeroing_single_dof_profiled_subsystem",
196 "//y2022/control_loops/drivetrain:polydrivetrain_plants",
Austin Schuh39f26f62022-02-24 21:34:46 -0800197 "//y2022/control_loops/superstructure/catapult:catapult_plants",
Siddhant Kanwar0e37f592022-02-21 19:26:50 -0800198 "//y2022/control_loops/superstructure/climber:climber_plants",
Yash Chainani997a7492022-01-29 15:48:56 -0800199 "//y2022/control_loops/superstructure/intake:intake_plants",
Henry Speiser55aa3ba2022-02-21 23:21:12 -0800200 "//y2022/control_loops/superstructure/turret:turret_plants",
milind-u086d7262022-01-19 20:44:18 -0800201 "@com_github_google_glog//:glog",
202 "@com_google_absl//absl/base",
203 ],
204)
205
206cc_binary(
207 name = "wpilib_interface",
208 srcs = [
209 "wpilib_interface.cc",
210 ],
211 target_compatible_with = ["//tools/platforms/hardware:roborio"],
212 deps = [
213 ":constants",
214 "//aos:init",
215 "//aos:math",
216 "//aos/events:shm_event_loop",
217 "//aos/logging",
218 "//aos/stl_mutex",
219 "//aos/time",
220 "//aos/util:log_interval",
221 "//aos/util:phased_loop",
222 "//aos/util:wrapping_counter",
223 "//frc971/autonomous:auto_mode_fbs",
224 "//frc971/control_loops:control_loop",
225 "//frc971/control_loops:control_loops_fbs",
226 "//frc971/control_loops/drivetrain:drivetrain_position_fbs",
227 "//frc971/input:robot_state_fbs",
Ravago Jones0e86e242022-02-12 18:38:14 -0800228 "//frc971/queues:gyro_fbs",
milind-u086d7262022-01-19 20:44:18 -0800229 "//frc971/wpilib:ADIS16448",
230 "//frc971/wpilib:buffered_pcm",
231 "//frc971/wpilib:drivetrain_writer",
232 "//frc971/wpilib:encoder_and_potentiometer",
233 "//frc971/wpilib:interrupt_edge_counting",
234 "//frc971/wpilib:joystick_sender",
235 "//frc971/wpilib:logging_fbs",
236 "//frc971/wpilib:loop_output_handler",
237 "//frc971/wpilib:pdp_fetcher",
238 "//frc971/wpilib:sensor_reader",
239 "//frc971/wpilib:wpilib_interface",
240 "//frc971/wpilib:wpilib_robot_base",
241 "//third_party:phoenix",
242 "//third_party:wpilib",
Milind Upadhyay482b0ba2022-02-26 21:51:59 -0800243 "//y2022/control_loops/superstructure:superstructure_can_position_fbs",
milind-u086d7262022-01-19 20:44:18 -0800244 "//y2022/control_loops/superstructure:superstructure_output_fbs",
245 "//y2022/control_loops/superstructure:superstructure_position_fbs",
246 ],
247)
248
249cc_binary(
250 name = "joystick_reader",
251 srcs = [
252 ":joystick_reader.cc",
253 ],
254 deps = [
255 "//aos:init",
256 "//aos/actions:action_lib",
257 "//aos/logging",
258 "//frc971/autonomous:auto_fbs",
259 "//frc971/autonomous:base_autonomous_actor",
260 "//frc971/control_loops:profiled_subsystem_fbs",
261 "//frc971/input:action_joystick_input",
262 "//frc971/input:drivetrain_input",
263 "//frc971/input:joystick_input",
264 "//y2022/control_loops/drivetrain:drivetrain_base",
265 "//y2022/control_loops/superstructure:superstructure_goal_fbs",
266 "//y2022/control_loops/superstructure:superstructure_status_fbs",
267 ],
268)
Milo Lin5d49af02022-02-05 12:50:32 -0800269
270py_library(
271 name = "python_init",
272 srcs = ["__init__.py"],
273 target_compatible_with = ["@platforms//os:linux"],
274 visibility = ["//visibility:public"],
275)