blob: 1a57caf8fd60cc8ce64904a32a2afeffc5da72c2 [file] [log] [blame]
James Kuszmaul0dedb5e2022-03-05 16:02:20 -08001load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library", "flatbuffer_ts_library")
James Kuszmaul51fa1ae2022-02-26 00:49:57 -08002load("//aos:flatbuffers.bzl", "cc_static_flatbuffer")
3load("@npm//@bazel/typescript:index.bzl", "ts_library")
4
5ts_library(
6 name = "localizer_plotter",
7 srcs = ["localizer_plotter.ts"],
8 target_compatible_with = ["@platforms//os:linux"],
9 visibility = ["//visibility:public"],
10 deps = [
11 "//aos/network/www:aos_plotter",
12 "//aos/network/www:colors",
13 "//aos/network/www:proxy",
14 "//frc971/wpilib:imu_plot_utils",
15 ],
16)
17
18flatbuffer_cc_library(
19 name = "localizer_output_fbs",
20 srcs = [
21 "localizer_output.fbs",
22 ],
23 gen_reflections = True,
24 target_compatible_with = ["@platforms//os:linux"],
25 visibility = ["//visibility:public"],
26)
27
James Kuszmaulf3ef9e12022-03-05 17:13:00 -080028flatbuffer_ts_library(
29 name = "localizer_output_ts_fbs",
30 srcs = ["localizer_output.fbs"],
31 target_compatible_with = ["@platforms//os:linux"],
32 visibility = ["//visibility:public"],
33)
34
James Kuszmaul51fa1ae2022-02-26 00:49:57 -080035flatbuffer_cc_library(
36 name = "localizer_status_fbs",
37 srcs = [
38 "localizer_status.fbs",
39 ],
40 gen_reflections = True,
41 includes = [
42 "//frc971/control_loops:control_loops_fbs_includes",
43 "//frc971/control_loops/drivetrain:drivetrain_status_fbs_includes",
44 ],
45 target_compatible_with = ["@platforms//os:linux"],
46 visibility = ["//visibility:public"],
47)
48
James Kuszmaul0dedb5e2022-03-05 16:02:20 -080049flatbuffer_cc_library(
50 name = "localizer_visualization_fbs",
51 srcs = ["localizer_visualization.fbs"],
52 gen_reflections = 1,
53 includes = [
54 ":localizer_status_fbs_includes",
55 "//frc971/control_loops:control_loops_fbs_includes",
56 "//frc971/control_loops/drivetrain:drivetrain_status_fbs_includes",
57 ],
58 visibility = ["//visibility:public"],
59)
60
61flatbuffer_ts_library(
62 name = "localizer_visualization_ts_fbs",
63 srcs = ["localizer_visualization.fbs"],
64 includes = [
65 ":localizer_status_fbs_includes",
66 "//frc971/control_loops:control_loops_fbs_includes",
67 "//frc971/control_loops/drivetrain:drivetrain_status_fbs_includes",
68 ],
69 target_compatible_with = ["@platforms//os:linux"],
70 visibility = ["//visibility:public"],
71)
72
James Kuszmaul51fa1ae2022-02-26 00:49:57 -080073cc_static_flatbuffer(
74 name = "localizer_schema",
75 function = "frc971::controls::LocalizerStatusSchema",
76 target = ":localizer_status_fbs_reflection_out",
77 visibility = ["//visibility:public"],
78)
79
80cc_library(
81 name = "localizer",
82 srcs = ["localizer.cc"],
83 hdrs = ["localizer.h"],
84 visibility = ["//visibility:public"],
85 deps = [
86 ":localizer_output_fbs",
87 ":localizer_status_fbs",
James Kuszmaul0dedb5e2022-03-05 16:02:20 -080088 ":localizer_visualization_fbs",
James Kuszmaul51fa1ae2022-02-26 00:49:57 -080089 "//aos/containers:ring_buffer",
James Kuszmaul0dedb5e2022-03-05 16:02:20 -080090 "//aos/containers:sized_array",
James Kuszmaul51fa1ae2022-02-26 00:49:57 -080091 "//aos/events:event_loop",
James Kuszmaul8c4f6592022-02-26 15:49:30 -080092 "//aos/network:message_bridge_server_fbs",
James Kuszmaul51fa1ae2022-02-26 00:49:57 -080093 "//aos/time",
94 "//frc971/control_loops:c2d",
95 "//frc971/control_loops:control_loops_fbs",
96 "//frc971/control_loops/drivetrain:drivetrain_output_fbs",
97 "//frc971/control_loops/drivetrain:drivetrain_status_fbs",
98 "//frc971/control_loops/drivetrain:improved_down_estimator",
99 "//frc971/control_loops/drivetrain:localizer_fbs",
100 "//frc971/wpilib:imu_batch_fbs",
101 "//frc971/wpilib:imu_fbs",
102 "//frc971/zeroing:imu_zeroer",
103 "//frc971/zeroing:wrap",
James Kuszmaul51fa1ae2022-02-26 00:49:57 -0800104 "//y2022:constants",
James Kuszmaul8c4f6592022-02-26 15:49:30 -0800105 "//y2022/control_loops/superstructure:superstructure_status_fbs",
106 "//y2022/vision:calibration_fbs",
107 "//y2022/vision:target_estimate_fbs",
James Kuszmaul51fa1ae2022-02-26 00:49:57 -0800108 "@org_tuxfamily_eigen//:eigen",
109 ],
110)
111
112cc_binary(
113 name = "localizer_main",
114 srcs = ["localizer_main.cc"],
115 visibility = ["//visibility:public"],
116 deps = [
117 ":localizer",
118 "//aos:init",
119 "//aos/events:shm_event_loop",
120 "//y2022/control_loops/drivetrain:drivetrain_base",
121 ],
122)
123
124cc_test(
125 name = "localizer_test",
126 srcs = ["localizer_test.cc"],
127 data = [
128 "//y2022:aos_config",
129 ],
James Kuszmaul8c4f6592022-02-26 15:49:30 -0800130 shard_count = 13,
James Kuszmaul51fa1ae2022-02-26 00:49:57 -0800131 deps = [
132 ":localizer",
133 "//aos/events:simulated_event_loop",
James Kuszmaul8c4f6592022-02-26 15:49:30 -0800134 "//aos/events/logging:log_writer",
James Kuszmaul51fa1ae2022-02-26 00:49:57 -0800135 "//aos/testing:googletest",
136 "//frc971/control_loops/drivetrain:drivetrain_test_lib",
James Kuszmaul8c4f6592022-02-26 15:49:30 -0800137 "//y2022/control_loops/drivetrain:drivetrain_base",
James Kuszmaul51fa1ae2022-02-26 00:49:57 -0800138 ],
139)
140
141cc_binary(
142 name = "localizer_replay",
143 srcs = ["localizer_replay.cc"],
144 data = [
145 "//y2022:aos_config",
146 ],
147 target_compatible_with = ["@platforms//os:linux"],
148 deps = [
149 ":localizer",
150 ":localizer_schema",
151 "//aos:configuration",
152 "//aos:init",
153 "//aos:json_to_flatbuffer",
154 "//aos/events:simulated_event_loop",
155 "//aos/events/logging:log_reader",
156 "//aos/events/logging:log_writer",
157 "//y2022/control_loops/drivetrain:drivetrain_base",
158 ],
159)
160
Ravago Jonese12b7902022-02-04 22:50:44 -0800161cc_library(
162 name = "imu",
163 srcs = [
164 "imu.cc",
165 ],
166 hdrs = [
167 "imu.h",
168 ],
169 target_compatible_with = ["@platforms//os:linux"],
170 deps = [
171 "//aos/events:epoll",
172 "//aos/events:shm_event_loop",
173 "//aos/util:crc32",
174 "//frc971/wpilib:imu_batch_fbs",
175 "//frc971/wpilib:imu_fbs",
176 "//y2022:constants",
177 "@com_github_google_glog//:glog",
178 "@com_google_absl//absl/types:span",
179 ],
180)
181
182cc_binary(
183 name = "imu_main",
184 srcs = ["imu_main.cc"],
185 target_compatible_with = ["@platforms//os:linux"],
186 visibility = ["//visibility:public"],
187 deps = [
188 ":imu",
189 "//aos:init",
190 "//aos/events:shm_event_loop",
191 ],
192)