blob: 76b390361f4fca5f0a600116bb0a33de80b63167 [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 = [
10 ":config",
11 ],
12 start_binaries = [
milind-uf2f59aa2022-01-23 21:06:12 -080013 "//aos/events/logging:logger_main",
14 "//aos/network:web_proxy_main",
milind-u086d7262022-01-19 20:44:18 -080015 ":joystick_reader",
16 ":wpilib_interface",
milind-uf2f59aa2022-01-23 21:06:12 -080017 "//aos/network:message_bridge_client",
18 "//aos/network:message_bridge_server",
19 "//y2022/actors:binaries",
milind-u086d7262022-01-19 20:44:18 -080020 "//y2022/control_loops/drivetrain:drivetrain",
21 "//y2022/control_loops/superstructure:superstructure",
milind-u086d7262022-01-19 20:44:18 -080022 ],
milind-uf2f59aa2022-01-23 21:06:12 -080023 target_compatible_with = ["@platforms//os:linux"],
milind-u086d7262022-01-19 20:44:18 -080024)
25
milind-u6b6e1002022-01-22 13:26:42 -080026robot_downloader(
27 name = "pi_download",
28 binaries = [
Jim Ostrowskib9135a92022-02-06 22:49:11 -080029 "//y2020/vision:calibration",
milind-u6b6e1002022-01-22 13:26:42 -080030 "//y2022/vision:viewer",
31 ],
32 data = [
33 ":config",
34 ],
milind-u6b6e1002022-01-22 13:26:42 -080035 start_binaries = [
36 "//aos/events/logging:logger_main",
37 "//aos/network:message_bridge_client",
38 "//aos/network:message_bridge_server",
39 "//aos/network:web_proxy_main",
40 "//y2022/vision:camera_reader",
41 ],
42 target_compatible_with = ["//tools/platforms/hardware:raspberry_pi"],
43 target_type = "pi",
44)
45
milind-uf2f59aa2022-01-23 21:06:12 -080046aos_config(
47 name = "config",
48 src = "y2022.json",
49 flatbuffers = [
50 "//aos/network:message_bridge_client_fbs",
51 "//aos/network:message_bridge_server_fbs",
52 "//aos/network:timestamp_fbs",
53 "//frc971/input:robot_state_fbs",
54 "//frc971/vision:vision_fbs",
Jim Ostrowski007e2ea2022-01-30 13:13:26 -080055 "//y2022/vision:calibration_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -080056 ],
57 target_compatible_with = ["@platforms//os:linux"],
58 visibility = ["//visibility:public"],
59 deps = [
60 ":config_logger",
61 ":config_pi1",
62 ":config_pi2",
63 ":config_pi3",
64 ":config_pi4",
65 ":config_pi5",
66 ":config_roborio",
67 ],
68)
69
70[
71 aos_config(
72 name = "config_" + pi,
73 src = "y2022_" + pi + ".json",
74 flatbuffers = [
75 "//aos/network:message_bridge_client_fbs",
76 "//aos/network:message_bridge_server_fbs",
77 "//aos/network:timestamp_fbs",
78 "//aos/network:remote_message_fbs",
79 "//frc971/vision:vision_fbs",
Jim Ostrowski007e2ea2022-01-30 13:13:26 -080080 "//y2022/vision:calibration_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -080081 "//y2022/vision:target_estimate_fbs",
82 ],
83 target_compatible_with = ["@platforms//os:linux"],
84 visibility = ["//visibility:public"],
85 deps = [
86 "//aos/events:config",
87 "//frc971/control_loops/drivetrain:config",
88 "//frc971/input:config",
89 ],
90 )
91 for pi in [
92 "pi1",
93 "pi2",
94 "pi3",
95 "pi4",
96 "pi5",
97 ]
98]
99
100aos_config(
101 name = "config_logger",
102 src = "y2022_logger.json",
103 flatbuffers = [
104 "//aos/network:message_bridge_client_fbs",
105 "//aos/network:message_bridge_server_fbs",
106 "//aos/network:timestamp_fbs",
107 "//aos/network:remote_message_fbs",
108 "//frc971/vision:vision_fbs",
Jim Ostrowski007e2ea2022-01-30 13:13:26 -0800109 "//y2022/vision:calibration_fbs",
milind-uf2f59aa2022-01-23 21:06:12 -0800110 ],
111 target_compatible_with = ["@platforms//os:linux"],
112 visibility = ["//visibility:public"],
113 deps = [
114 "//aos/events:config",
115 "//frc971/control_loops/drivetrain:config",
116 "//frc971/input:config",
117 ],
118)
119
120aos_config(
121 name = "config_roborio",
122 src = "y2022_roborio.json",
123 flatbuffers = [
124 "//aos/network:remote_message_fbs",
125 "//aos/network:message_bridge_client_fbs",
126 "//aos/network:message_bridge_server_fbs",
127 "//aos/network:timestamp_fbs",
128 "//y2019/control_loops/drivetrain:target_selector_fbs",
129 "//y2022/control_loops/superstructure:superstructure_goal_fbs",
130 "//y2022/control_loops/superstructure:superstructure_output_fbs",
131 "//y2022/control_loops/superstructure:superstructure_position_fbs",
132 "//y2022/control_loops/superstructure:superstructure_status_fbs",
133 ],
134 target_compatible_with = ["@platforms//os:linux"],
135 deps = [
136 "//aos/events:config",
137 "//frc971/autonomous:config",
138 "//frc971/control_loops/drivetrain:config",
139 "//frc971/input:config",
140 "//frc971/wpilib:config",
141 ],
142)
143
144[
145 jinja2_template(
146 name = "y2022_pi" + str(num) + ".json",
147 src = "y2022_pi_template.json",
148 parameters = {"NUM": str(num)},
149 target_compatible_with = ["@platforms//os:linux"],
150 )
151 for num in range(1, 6)
152]
153
milind-u086d7262022-01-19 20:44:18 -0800154cc_library(
155 name = "constants",
156 srcs = [
157 "constants.cc",
158 ],
159 hdrs = [
160 "constants.h",
161 ],
162 visibility = ["//visibility:public"],
163 deps = [
164 "//aos/mutex",
165 "//aos/network:team_number",
166 "//frc971:constants",
167 "//frc971/control_loops:pose",
168 "//frc971/control_loops:static_zeroing_single_dof_profiled_subsystem",
169 "//y2022/control_loops/drivetrain:polydrivetrain_plants",
Yash Chainani997a7492022-01-29 15:48:56 -0800170 "//y2022/control_loops/superstructure/intake:intake_plants",
milind-u086d7262022-01-19 20:44:18 -0800171 "@com_github_google_glog//:glog",
172 "@com_google_absl//absl/base",
173 ],
174)
175
176cc_binary(
177 name = "wpilib_interface",
178 srcs = [
179 "wpilib_interface.cc",
180 ],
181 target_compatible_with = ["//tools/platforms/hardware:roborio"],
182 deps = [
183 ":constants",
184 "//aos:init",
185 "//aos:math",
186 "//aos/events:shm_event_loop",
187 "//aos/logging",
188 "//aos/stl_mutex",
189 "//aos/time",
190 "//aos/util:log_interval",
191 "//aos/util:phased_loop",
192 "//aos/util:wrapping_counter",
193 "//frc971/autonomous:auto_mode_fbs",
194 "//frc971/control_loops:control_loop",
195 "//frc971/control_loops:control_loops_fbs",
196 "//frc971/control_loops/drivetrain:drivetrain_position_fbs",
197 "//frc971/input:robot_state_fbs",
198 "//frc971/wpilib:ADIS16448",
199 "//frc971/wpilib:buffered_pcm",
200 "//frc971/wpilib:drivetrain_writer",
201 "//frc971/wpilib:encoder_and_potentiometer",
202 "//frc971/wpilib:interrupt_edge_counting",
203 "//frc971/wpilib:joystick_sender",
204 "//frc971/wpilib:logging_fbs",
205 "//frc971/wpilib:loop_output_handler",
206 "//frc971/wpilib:pdp_fetcher",
207 "//frc971/wpilib:sensor_reader",
208 "//frc971/wpilib:wpilib_interface",
209 "//frc971/wpilib:wpilib_robot_base",
210 "//third_party:phoenix",
211 "//third_party:wpilib",
212 "//y2022/control_loops/superstructure:superstructure_output_fbs",
213 "//y2022/control_loops/superstructure:superstructure_position_fbs",
214 ],
215)
216
217cc_binary(
218 name = "joystick_reader",
219 srcs = [
220 ":joystick_reader.cc",
221 ],
222 deps = [
223 "//aos:init",
224 "//aos/actions:action_lib",
225 "//aos/logging",
226 "//frc971/autonomous:auto_fbs",
227 "//frc971/autonomous:base_autonomous_actor",
228 "//frc971/control_loops:profiled_subsystem_fbs",
229 "//frc971/input:action_joystick_input",
230 "//frc971/input:drivetrain_input",
231 "//frc971/input:joystick_input",
232 "//y2022/control_loops/drivetrain:drivetrain_base",
233 "//y2022/control_loops/superstructure:superstructure_goal_fbs",
234 "//y2022/control_loops/superstructure:superstructure_status_fbs",
235 ],
236)
Milo Lin5d49af02022-02-05 12:50:32 -0800237
238py_library(
239 name = "python_init",
240 srcs = ["__init__.py"],
241 target_compatible_with = ["@platforms//os:linux"],
242 visibility = ["//visibility:public"],
243)