blob: 21738771e2a1a52924bffb1b140c6f94c1eefc8b [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",
54 ],
55 target_compatible_with = ["@platforms//os:linux"],
56 visibility = ["//visibility:public"],
57 deps = [
58 ":config_logger",
59 ":config_pi1",
60 ":config_pi2",
61 ":config_pi3",
62 ":config_pi4",
63 ":config_pi5",
64 ":config_roborio",
65 ],
66)
67
68[
69 aos_config(
70 name = "config_" + pi,
71 src = "y2022_" + pi + ".json",
72 flatbuffers = [
73 "//aos/network:message_bridge_client_fbs",
74 "//aos/network:message_bridge_server_fbs",
75 "//aos/network:timestamp_fbs",
76 "//aos/network:remote_message_fbs",
77 "//frc971/vision:vision_fbs",
78 "//y2022/vision:target_estimate_fbs",
79 ],
80 target_compatible_with = ["@platforms//os:linux"],
81 visibility = ["//visibility:public"],
82 deps = [
83 "//aos/events:config",
84 "//frc971/control_loops/drivetrain:config",
85 "//frc971/input:config",
86 ],
87 )
88 for pi in [
89 "pi1",
90 "pi2",
91 "pi3",
92 "pi4",
93 "pi5",
94 ]
95]
96
97aos_config(
98 name = "config_logger",
99 src = "y2022_logger.json",
100 flatbuffers = [
101 "//aos/network:message_bridge_client_fbs",
102 "//aos/network:message_bridge_server_fbs",
103 "//aos/network:timestamp_fbs",
104 "//aos/network:remote_message_fbs",
105 "//frc971/vision:vision_fbs",
106 ],
107 target_compatible_with = ["@platforms//os:linux"],
108 visibility = ["//visibility:public"],
109 deps = [
110 "//aos/events:config",
111 "//frc971/control_loops/drivetrain:config",
112 "//frc971/input:config",
113 ],
114)
115
116aos_config(
117 name = "config_roborio",
118 src = "y2022_roborio.json",
119 flatbuffers = [
120 "//aos/network:remote_message_fbs",
121 "//aos/network:message_bridge_client_fbs",
122 "//aos/network:message_bridge_server_fbs",
123 "//aos/network:timestamp_fbs",
124 "//y2019/control_loops/drivetrain:target_selector_fbs",
125 "//y2022/control_loops/superstructure:superstructure_goal_fbs",
126 "//y2022/control_loops/superstructure:superstructure_output_fbs",
127 "//y2022/control_loops/superstructure:superstructure_position_fbs",
128 "//y2022/control_loops/superstructure:superstructure_status_fbs",
129 ],
130 target_compatible_with = ["@platforms//os:linux"],
131 deps = [
132 "//aos/events:config",
133 "//frc971/autonomous:config",
134 "//frc971/control_loops/drivetrain:config",
135 "//frc971/input:config",
136 "//frc971/wpilib:config",
137 ],
138)
139
140[
141 jinja2_template(
142 name = "y2022_pi" + str(num) + ".json",
143 src = "y2022_pi_template.json",
144 parameters = {"NUM": str(num)},
145 target_compatible_with = ["@platforms//os:linux"],
146 )
147 for num in range(1, 6)
148]
149
milind-u086d7262022-01-19 20:44:18 -0800150cc_library(
151 name = "constants",
152 srcs = [
153 "constants.cc",
154 ],
155 hdrs = [
156 "constants.h",
157 ],
158 visibility = ["//visibility:public"],
159 deps = [
160 "//aos/mutex",
161 "//aos/network:team_number",
162 "//frc971:constants",
163 "//frc971/control_loops:pose",
164 "//frc971/control_loops:static_zeroing_single_dof_profiled_subsystem",
165 "//y2022/control_loops/drivetrain:polydrivetrain_plants",
166 "@com_github_google_glog//:glog",
167 "@com_google_absl//absl/base",
168 ],
169)
170
171cc_binary(
172 name = "wpilib_interface",
173 srcs = [
174 "wpilib_interface.cc",
175 ],
176 target_compatible_with = ["//tools/platforms/hardware:roborio"],
177 deps = [
178 ":constants",
179 "//aos:init",
180 "//aos:math",
181 "//aos/events:shm_event_loop",
182 "//aos/logging",
183 "//aos/stl_mutex",
184 "//aos/time",
185 "//aos/util:log_interval",
186 "//aos/util:phased_loop",
187 "//aos/util:wrapping_counter",
188 "//frc971/autonomous:auto_mode_fbs",
189 "//frc971/control_loops:control_loop",
190 "//frc971/control_loops:control_loops_fbs",
191 "//frc971/control_loops/drivetrain:drivetrain_position_fbs",
192 "//frc971/input:robot_state_fbs",
193 "//frc971/wpilib:ADIS16448",
194 "//frc971/wpilib:buffered_pcm",
195 "//frc971/wpilib:drivetrain_writer",
196 "//frc971/wpilib:encoder_and_potentiometer",
197 "//frc971/wpilib:interrupt_edge_counting",
198 "//frc971/wpilib:joystick_sender",
199 "//frc971/wpilib:logging_fbs",
200 "//frc971/wpilib:loop_output_handler",
201 "//frc971/wpilib:pdp_fetcher",
202 "//frc971/wpilib:sensor_reader",
203 "//frc971/wpilib:wpilib_interface",
204 "//frc971/wpilib:wpilib_robot_base",
205 "//third_party:phoenix",
206 "//third_party:wpilib",
207 "//y2022/control_loops/superstructure:superstructure_output_fbs",
208 "//y2022/control_loops/superstructure:superstructure_position_fbs",
209 ],
210)
211
212cc_binary(
213 name = "joystick_reader",
214 srcs = [
215 ":joystick_reader.cc",
216 ],
217 deps = [
218 "//aos:init",
219 "//aos/actions:action_lib",
220 "//aos/logging",
221 "//frc971/autonomous:auto_fbs",
222 "//frc971/autonomous:base_autonomous_actor",
223 "//frc971/control_loops:profiled_subsystem_fbs",
224 "//frc971/input:action_joystick_input",
225 "//frc971/input:drivetrain_input",
226 "//frc971/input:joystick_input",
227 "//y2022/control_loops/drivetrain:drivetrain_base",
228 "//y2022/control_loops/superstructure:superstructure_goal_fbs",
229 "//y2022/control_loops/superstructure:superstructure_status_fbs",
230 ],
231)