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