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