blob: cd001a1f8b79ce22b00e077bbef3de88ef46addf [file] [log] [blame]
Stephan Massaltd021f972020-01-05 20:41:23 -08001load("//frc971:downloader.bzl", "robot_downloader")
2load("//aos:config.bzl", "aos_config")
3load("@com_google_protobuf//:protobuf.bzl", "cc_proto_library")
4load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
Austin Schuh3a2f4a42020-09-16 14:10:39 -07005load("//tools/build_rules:template.bzl", "jinja2_template")
Stephan Massaltd021f972020-01-05 20:41:23 -08006
7robot_downloader(
Austin Schuhd58b2902020-03-01 19:28:04 -08008 binaries = [
9 ":setpoint_setter",
10 ],
Stephan Massaltd021f972020-01-05 20:41:23 -080011 data = [
Austin Schuh14d7d3d2020-09-10 18:14:36 -070012 ":config",
Stephan Massaltd021f972020-01-05 20:41:23 -080013 ],
Ravago Jonesc2a08022021-02-06 17:40:54 -080014 dirs = [
15 "//y2020/actors:splines"
16 ],
Stephan Massaltd021f972020-01-05 20:41:23 -080017 start_binaries = [
James Kuszmaul2d8fa2a2020-03-01 13:51:50 -080018 "//aos/events/logging:logger_main",
Stephan Massaltd021f972020-01-05 20:41:23 -080019 ":joystick_reader",
20 ":wpilib_interface",
Austin Schuh6aa77be2020-02-22 21:06:40 -080021 "//aos/network:message_bridge_client",
22 "//aos/network:message_bridge_server",
23 "//y2020/actors:binaries",
Stephan Massaltd021f972020-01-05 20:41:23 -080024 "//y2020/control_loops/drivetrain:drivetrain",
25 "//y2020/control_loops/superstructure:superstructure",
Stephan Massaltd021f972020-01-05 20:41:23 -080026 ],
Philipp Schraderdada1072020-11-24 11:34:46 -080027 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -080028)
29
James Kuszmaul2d8fa2a2020-03-01 13:51:50 -080030robot_downloader(
31 name = "pi_download",
Jim Ostrowskibaa43692020-03-08 16:25:10 -070032 binaries = [
33 "//y2020/vision:viewer",
34 ],
James Kuszmaul2d8fa2a2020-03-01 13:51:50 -080035 data = [
Austin Schuh14d7d3d2020-09-10 18:14:36 -070036 ":config",
James Kuszmaul2d8fa2a2020-03-01 13:51:50 -080037 ],
38 dirs = [
39 "//y2020/www:www_files",
40 ],
James Kuszmaul2d8fa2a2020-03-01 13:51:50 -080041 start_binaries = [
42 "//aos/network:message_bridge_client",
43 "//aos/network:message_bridge_server",
James Kuszmaul2d8fa2a2020-03-01 13:51:50 -080044 "//aos/network:web_proxy_main",
Austin Schuh393015b2020-04-20 17:24:39 -070045 "//y2020/vision:camera_reader",
James Kuszmaul2d8fa2a2020-03-01 13:51:50 -080046 ],
Philipp Schraderdada1072020-11-24 11:34:46 -080047 target_compatible_with = ["//tools/platforms/hardware:raspberry_pi"],
James Kuszmaul2d8fa2a2020-03-01 13:51:50 -080048 target_type = "pi",
49)
50
Stephan Massaltd021f972020-01-05 20:41:23 -080051cc_library(
52 name = "constants",
53 srcs = [
54 "constants.cc",
55 ],
56 hdrs = [
57 "constants.h",
58 ],
Philipp Schraderdada1072020-11-24 11:34:46 -080059 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -080060 visibility = ["//visibility:public"],
61 deps = [
62 "//aos/logging",
Stephan Massaltd021f972020-01-05 20:41:23 -080063 "//aos/network:team_number",
Brian Silverman1463c092020-10-30 17:28:24 -070064 "//aos/stl_mutex",
Stephan Massaltd021f972020-01-05 20:41:23 -080065 "//frc971:constants",
Stephan Massaltd021f972020-01-05 20:41:23 -080066 "//frc971/control_loops:static_zeroing_single_dof_profiled_subsystem",
67 "//y2020/control_loops/drivetrain:polydrivetrain_plants",
Austin Schuh9dcd5202020-02-20 20:06:04 -080068 "//y2020/control_loops/superstructure/accelerator:accelerator_plants",
69 "//y2020/control_loops/superstructure/control_panel:control_panel_plants",
70 "//y2020/control_loops/superstructure/finisher:finisher_plants",
Sabina Davisa587fbd2020-01-31 22:11:15 -080071 "//y2020/control_loops/superstructure/hood:hood_plants",
Sabina Davise8d38992020-02-02 15:00:31 -080072 "//y2020/control_loops/superstructure/intake:intake_plants",
Kai Tinkess10943cf2020-02-01 15:49:57 -080073 "//y2020/control_loops/superstructure/turret:turret_plants",
Stephan Massaltd021f972020-01-05 20:41:23 -080074 "@com_google_absl//absl/base",
75 ],
76)
77
78cc_binary(
79 name = "wpilib_interface",
80 srcs = [
81 "wpilib_interface.cc",
82 ],
Philipp Schraderdada1072020-11-24 11:34:46 -080083 target_compatible_with = ["//tools/platforms/hardware:roborio"],
Stephan Massaltd021f972020-01-05 20:41:23 -080084 deps = [
85 ":constants",
86 "//aos:init",
87 "//aos:make_unique",
88 "//aos:math",
89 "//aos/controls:control_loop",
90 "//aos/events:shm_event_loop",
91 "//aos/logging",
92 "//aos/robot_state:robot_state_fbs",
93 "//aos/stl_mutex",
94 "//aos/time",
95 "//aos/util:log_interval",
96 "//aos/util:phased_loop",
97 "//aos/util:wrapping_counter",
98 "//frc971/autonomous:auto_mode_fbs",
99 "//frc971/control_loops:control_loops_fbs",
100 "//frc971/control_loops/drivetrain:drivetrain_position_fbs",
James Kuszmaula244a912020-01-18 13:50:50 -0800101 "//frc971/wpilib:ADIS16470",
Stephan Massaltd021f972020-01-05 20:41:23 -0800102 "//frc971/wpilib:buffered_pcm",
103 "//frc971/wpilib:drivetrain_writer",
104 "//frc971/wpilib:encoder_and_potentiometer",
105 "//frc971/wpilib:interrupt_edge_counting",
106 "//frc971/wpilib:joystick_sender",
107 "//frc971/wpilib:logging_fbs",
108 "//frc971/wpilib:loop_output_handler",
109 "//frc971/wpilib:pdp_fetcher",
110 "//frc971/wpilib:sensor_reader",
111 "//frc971/wpilib:wpilib_interface",
112 "//frc971/wpilib:wpilib_robot_base",
Alex Perryc4691f52020-02-17 19:20:01 -0800113 "//third_party:phoenix",
Stephan Massaltd021f972020-01-05 20:41:23 -0800114 "//third_party:wpilib",
115 "//y2020/control_loops/superstructure:superstructure_output_fbs",
116 "//y2020/control_loops/superstructure:superstructure_position_fbs",
117 ],
118)
119
120cc_binary(
121 name = "joystick_reader",
122 srcs = [
123 ":joystick_reader.cc",
124 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800125 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -0800126 deps = [
Austin Schuhd58b2902020-03-01 19:28:04 -0800127 ":setpoint_fbs",
Stephan Massaltd021f972020-01-05 20:41:23 -0800128 "//aos:init",
129 "//aos/actions:action_lib",
130 "//aos/input:action_joystick_input",
131 "//aos/input:drivetrain_input",
132 "//aos/input:joystick_input",
133 "//aos/logging",
134 "//frc971/autonomous:auto_fbs",
135 "//frc971/autonomous:base_autonomous_actor",
136 "//frc971/control_loops:profiled_subsystem_fbs",
Sabina Davisa8fed3d2020-02-22 21:44:57 -0800137 "//y2020:constants",
Stephan Massaltd021f972020-01-05 20:41:23 -0800138 "//y2020/control_loops/drivetrain:drivetrain_base",
139 "//y2020/control_loops/superstructure:superstructure_goal_fbs",
140 "//y2020/control_loops/superstructure:superstructure_status_fbs",
141 ],
142)
143
144aos_config(
145 name = "config",
146 src = "y2020.json",
Philipp Schraderdada1072020-11-24 11:34:46 -0800147 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -0800148 visibility = ["//visibility:public"],
149 deps = [
Austin Schuh196a4452020-03-15 23:12:03 -0700150 ":config_laptop",
Austin Schuhce3a1912020-03-15 15:14:19 -0700151 ":config_pi1",
152 ":config_pi2",
153 ":config_pi3",
Austin Schuh196a4452020-03-15 23:12:03 -0700154 ":config_pi4",
Austin Schuhce3a1912020-03-15 15:14:19 -0700155 ":config_roborio",
156 ],
milind upadhyay96016ca2021-02-20 15:28:50 -0800157 flatbuffers = [
158 "//aos/network:message_bridge_client_fbs",
159 "//aos/network:message_bridge_server_fbs",
160 "//aos/network:timestamp_fbs",
161 "//y2020/vision/sift:sift_fbs",
162 "//y2020/vision/sift:sift_training_fbs",
163 "//y2020/vision:vision_fbs",
164 ]
Austin Schuhce3a1912020-03-15 15:14:19 -0700165)
166
167[
168 aos_config(
169 name = "config_" + pi,
170 src = "y2020_" + pi + ".json",
171 flatbuffers = [
172 "//aos/network:message_bridge_client_fbs",
173 "//aos/network:message_bridge_server_fbs",
174 "//aos/network:timestamp_fbs",
175 "//y2020/vision/sift:sift_fbs",
176 "//y2020/vision/sift:sift_training_fbs",
177 "//y2020/vision:vision_fbs",
Austin Schuh0de30f32020-12-06 12:44:28 -0800178 "//aos/network:remote_message_fbs",
milind upadhyay96016ca2021-02-20 15:28:50 -0800179 "//y2020/vision:galactic_search_path_fbs"
Austin Schuhce3a1912020-03-15 15:14:19 -0700180 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800181 target_compatible_with = ["@platforms//os:linux"],
Austin Schuhce3a1912020-03-15 15:14:19 -0700182 visibility = ["//visibility:public"],
183 deps = [
184 "//aos/events:config",
Austin Schuh196a4452020-03-15 23:12:03 -0700185 "//aos/robot_state:config",
Austin Schuhac17fba2020-03-28 15:55:33 -0700186 "//frc971/control_loops/drivetrain:config",
Austin Schuhce3a1912020-03-15 15:14:19 -0700187 ],
188 )
189 for pi in [
190 "pi1",
191 "pi2",
192 "pi3",
Austin Schuh196a4452020-03-15 23:12:03 -0700193 "pi4",
Austin Schuhce3a1912020-03-15 15:14:19 -0700194 ]
195]
196
197aos_config(
Austin Schuh3a2f4a42020-09-16 14:10:39 -0700198 name = "config_laptop",
199 src = "y2020_laptop.json",
200 flatbuffers = [
201 "//aos/network:message_bridge_client_fbs",
202 "//aos/network:message_bridge_server_fbs",
203 "//aos/network:timestamp_fbs",
204 "//y2020/vision/sift:sift_fbs",
205 "//y2020/vision/sift:sift_training_fbs",
206 "//y2020/vision:vision_fbs",
Austin Schuh0de30f32020-12-06 12:44:28 -0800207 "//aos/network:remote_message_fbs",
Austin Schuh3a2f4a42020-09-16 14:10:39 -0700208 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800209 target_compatible_with = ["@platforms//os:linux"],
Austin Schuh3a2f4a42020-09-16 14:10:39 -0700210 visibility = ["//visibility:public"],
211 deps = [
212 "//aos/events:config",
213 "//aos/robot_state:config",
214 "//frc971/control_loops/drivetrain:config",
215 ],
216)
217
218aos_config(
Austin Schuhce3a1912020-03-15 15:14:19 -0700219 name = "config_roborio",
220 src = "y2020_roborio.json",
221 flatbuffers = [
222 ":setpoint_fbs",
Austin Schuh0de30f32020-12-06 12:44:28 -0800223 "//aos/network:remote_message_fbs",
Austin Schuhce3a1912020-03-15 15:14:19 -0700224 "//aos/network:message_bridge_client_fbs",
225 "//aos/network:message_bridge_server_fbs",
226 "//aos/network:timestamp_fbs",
227 "//y2020/control_loops/superstructure:superstructure_goal_fbs",
228 "//y2019/control_loops/drivetrain:target_selector_fbs",
229 "//y2020/control_loops/superstructure:superstructure_output_fbs",
230 "//y2020/control_loops/superstructure:superstructure_position_fbs",
231 "//y2020/control_loops/superstructure:superstructure_status_fbs",
232 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800233 target_compatible_with = ["@platforms//os:linux"],
Austin Schuhce3a1912020-03-15 15:14:19 -0700234 deps = [
235 "//aos/events:config",
Stephan Massaltd021f972020-01-05 20:41:23 -0800236 "//aos/robot_state:config",
237 "//frc971/autonomous:config",
238 "//frc971/control_loops/drivetrain:config",
239 "//frc971/wpilib:config",
240 ],
241)
242
243py_library(
244 name = "python_init",
245 srcs = ["__init__.py"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800246 target_compatible_with = ["@platforms//os:linux"],
Stephan Massaltd021f972020-01-05 20:41:23 -0800247 visibility = ["//visibility:public"],
248)
Alex Perry5f474f22020-02-01 12:14:24 -0800249
250sh_binary(
251 name = "web_proxy",
252 srcs = ["web_proxy.sh"],
253 data = [
Austin Schuh14d7d3d2020-09-10 18:14:36 -0700254 ":config",
Alex Perry5f474f22020-02-01 12:14:24 -0800255 "//aos/network:web_proxy_main",
Austin Schuhda9d0602019-09-15 17:29:38 -0700256 "//y2020/www:camera_main_bundle.min.js",
257 "//y2020/www:field_main_bundle.min.js",
Alex Perry5f474f22020-02-01 12:14:24 -0800258 "//y2020/www:files",
Alex Perry5f474f22020-02-01 12:14:24 -0800259 ],
Philipp Schraderdada1072020-11-24 11:34:46 -0800260 target_compatible_with = ["@platforms//os:linux"],
Alex Perry5f474f22020-02-01 12:14:24 -0800261)
Austin Schuhd58b2902020-03-01 19:28:04 -0800262
263load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
264
265flatbuffer_cc_library(
266 name = "setpoint_fbs",
267 srcs = [
268 "setpoint.fbs",
269 ],
270 gen_reflections = 1,
Philipp Schraderdada1072020-11-24 11:34:46 -0800271 target_compatible_with = ["@platforms//os:linux"],
Austin Schuhd58b2902020-03-01 19:28:04 -0800272)
273
274cc_binary(
275 name = "setpoint_setter",
276 srcs = ["setpoint_setter.cc"],
Philipp Schraderdada1072020-11-24 11:34:46 -0800277 target_compatible_with = ["@platforms//os:linux"],
Austin Schuhd58b2902020-03-01 19:28:04 -0800278 deps = [
279 ":setpoint_fbs",
280 "//aos:init",
281 "//aos/events:shm_event_loop",
282 ],
283)
James Kuszmaul55d9fc72020-05-10 18:58:08 -0700284
Austin Schuh3a2f4a42020-09-16 14:10:39 -0700285[
286 jinja2_template(
287 name = "y2020_pi" + str(num) + ".json",
288 src = "y2020_pi_template.json",
289 parameters = {"NUM": str(num)},
Philipp Schraderdada1072020-11-24 11:34:46 -0800290 target_compatible_with = ["@platforms//os:linux"],
Austin Schuh3a2f4a42020-09-16 14:10:39 -0700291 )
292 for num in range(1, 5)
293]