blob: dd0fb675c0318f5ced7fc6951cc5b98651139cf7 [file] [log] [blame]
Philipp Schrader3de4dfc2023-02-15 20:18:25 -08001load("//tools/build_rules:js.bzl", "ts_project")
Austin Schuha1d006e2022-09-14 21:50:42 -07002load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
3load("@com_github_google_flatbuffers//:typescript.bzl", "flatbuffer_ts_library")
James Kuszmaul51fa1ae2022-02-26 00:49:57 -08004load("//aos:flatbuffers.bzl", "cc_static_flatbuffer")
James Kuszmaul51fa1ae2022-02-26 00:49:57 -08005
Philipp Schrader3de4dfc2023-02-15 20:18:25 -08006ts_project(
James Kuszmaul51fa1ae2022-02-26 00:49:57 -08007 name = "localizer_plotter",
8 srcs = ["localizer_plotter.ts"],
9 target_compatible_with = ["@platforms//os:linux"],
10 visibility = ["//visibility:public"],
11 deps = [
12 "//aos/network/www:aos_plotter",
13 "//aos/network/www:colors",
14 "//aos/network/www:proxy",
15 "//frc971/wpilib:imu_plot_utils",
16 ],
17)
18
19flatbuffer_cc_library(
James Kuszmaul51fa1ae2022-02-26 00:49:57 -080020 name = "localizer_status_fbs",
21 srcs = [
22 "localizer_status.fbs",
23 ],
24 gen_reflections = True,
James Kuszmaul51fa1ae2022-02-26 00:49:57 -080025 target_compatible_with = ["@platforms//os:linux"],
26 visibility = ["//visibility:public"],
James Kuszmaul9f2f53c2023-02-19 14:08:18 -080027 deps = [
28 "//frc971/control_loops:control_loops_fbs",
29 "//frc971/control_loops/drivetrain:drivetrain_status_fbs",
30 "//frc971/imu_reader:imu_failures_fbs",
31 ],
James Kuszmaul51fa1ae2022-02-26 00:49:57 -080032)
33
James Kuszmauldac091f2022-03-22 09:35:06 -070034flatbuffer_ts_library(
35 name = "localizer_status_ts_fbs",
36 srcs = ["localizer_status.fbs"],
37 visibility = ["//visibility:public"],
38 deps = [
39 "//frc971/control_loops:control_loops_ts_fbs",
40 "//frc971/control_loops/drivetrain:drivetrain_status_ts_fbs",
James Kuszmaul9f2f53c2023-02-19 14:08:18 -080041 "//frc971/imu_reader:imu_failures_ts_fbs",
James Kuszmauldac091f2022-03-22 09:35:06 -070042 ],
43)
44
James Kuszmaul0dedb5e2022-03-05 16:02:20 -080045flatbuffer_cc_library(
46 name = "localizer_visualization_fbs",
47 srcs = ["localizer_visualization.fbs"],
48 gen_reflections = 1,
49 includes = [
50 ":localizer_status_fbs_includes",
51 "//frc971/control_loops:control_loops_fbs_includes",
52 "//frc971/control_loops/drivetrain:drivetrain_status_fbs_includes",
53 ],
54 visibility = ["//visibility:public"],
55)
56
57flatbuffer_ts_library(
58 name = "localizer_visualization_ts_fbs",
59 srcs = ["localizer_visualization.fbs"],
James Kuszmaul0dedb5e2022-03-05 16:02:20 -080060 visibility = ["//visibility:public"],
James Kuszmauldac091f2022-03-22 09:35:06 -070061 deps = [
62 ":localizer_status_ts_fbs",
63 "//frc971/control_loops:control_loops_ts_fbs",
64 "//frc971/control_loops/drivetrain:drivetrain_status_ts_fbs",
65 ],
James Kuszmaul0dedb5e2022-03-05 16:02:20 -080066)
67
James Kuszmaul51fa1ae2022-02-26 00:49:57 -080068cc_static_flatbuffer(
69 name = "localizer_schema",
70 function = "frc971::controls::LocalizerStatusSchema",
71 target = ":localizer_status_fbs_reflection_out",
72 visibility = ["//visibility:public"],
73)
74
75cc_library(
76 name = "localizer",
77 srcs = ["localizer.cc"],
78 hdrs = ["localizer.h"],
79 visibility = ["//visibility:public"],
80 deps = [
James Kuszmaul51fa1ae2022-02-26 00:49:57 -080081 ":localizer_status_fbs",
James Kuszmaul0dedb5e2022-03-05 16:02:20 -080082 ":localizer_visualization_fbs",
James Kuszmaul51fa1ae2022-02-26 00:49:57 -080083 "//aos/containers:ring_buffer",
James Kuszmaul0dedb5e2022-03-05 16:02:20 -080084 "//aos/containers:sized_array",
James Kuszmaul51fa1ae2022-02-26 00:49:57 -080085 "//aos/events:event_loop",
James Kuszmaul8c4f6592022-02-26 15:49:30 -080086 "//aos/network:message_bridge_server_fbs",
James Kuszmaul51fa1ae2022-02-26 00:49:57 -080087 "//aos/time",
88 "//frc971/control_loops:c2d",
89 "//frc971/control_loops:control_loops_fbs",
90 "//frc971/control_loops/drivetrain:drivetrain_output_fbs",
91 "//frc971/control_loops/drivetrain:drivetrain_status_fbs",
92 "//frc971/control_loops/drivetrain:improved_down_estimator",
93 "//frc971/control_loops/drivetrain:localizer_fbs",
James Kuszmaule3df1ed2023-02-20 16:21:17 -080094 "//frc971/control_loops/drivetrain/localization:localizer_output_fbs",
95 "//frc971/control_loops/drivetrain/localization:utils",
James Kuszmaul9f2f53c2023-02-19 14:08:18 -080096 "//frc971/imu_reader:imu_watcher",
James Kuszmaul20014542022-04-06 21:35:44 -070097 "//frc971/input:joystick_state_fbs",
milind-u2f101fc2023-01-21 12:28:49 -080098 "//frc971/vision:calibration_fbs",
James Kuszmaul51fa1ae2022-02-26 00:49:57 -080099 "//frc971/wpilib:imu_batch_fbs",
100 "//frc971/wpilib:imu_fbs",
James Kuszmaul51fa1ae2022-02-26 00:49:57 -0800101 "//y2022:constants",
James Kuszmaul8c4f6592022-02-26 15:49:30 -0800102 "//y2022/control_loops/superstructure:superstructure_status_fbs",
James Kuszmaul8c4f6592022-02-26 15:49:30 -0800103 "//y2022/vision:target_estimate_fbs",
James Kuszmaul51fa1ae2022-02-26 00:49:57 -0800104 "@org_tuxfamily_eigen//:eigen",
105 ],
106)
107
108cc_binary(
109 name = "localizer_main",
110 srcs = ["localizer_main.cc"],
111 visibility = ["//visibility:public"],
112 deps = [
113 ":localizer",
114 "//aos:init",
115 "//aos/events:shm_event_loop",
116 "//y2022/control_loops/drivetrain:drivetrain_base",
117 ],
118)
119
120cc_test(
121 name = "localizer_test",
122 srcs = ["localizer_test.cc"],
123 data = [
124 "//y2022:aos_config",
125 ],
James Kuszmaul8c4f6592022-02-26 15:49:30 -0800126 shard_count = 13,
James Kuszmaul51fa1ae2022-02-26 00:49:57 -0800127 deps = [
128 ":localizer",
129 "//aos/events:simulated_event_loop",
James Kuszmaul8c4f6592022-02-26 15:49:30 -0800130 "//aos/events/logging:log_writer",
James Kuszmaul51fa1ae2022-02-26 00:49:57 -0800131 "//aos/testing:googletest",
132 "//frc971/control_loops/drivetrain:drivetrain_test_lib",
James Kuszmaul8c4f6592022-02-26 15:49:30 -0800133 "//y2022/control_loops/drivetrain:drivetrain_base",
James Kuszmaul51fa1ae2022-02-26 00:49:57 -0800134 ],
135)
136
137cc_binary(
138 name = "localizer_replay",
139 srcs = ["localizer_replay.cc"],
140 data = [
141 "//y2022:aos_config",
142 ],
143 target_compatible_with = ["@platforms//os:linux"],
144 deps = [
145 ":localizer",
146 ":localizer_schema",
147 "//aos:configuration",
148 "//aos:init",
149 "//aos:json_to_flatbuffer",
150 "//aos/events:simulated_event_loop",
151 "//aos/events/logging:log_reader",
152 "//aos/events/logging:log_writer",
153 "//y2022/control_loops/drivetrain:drivetrain_base",
154 ],
155)
156
Ravago Jonese12b7902022-02-04 22:50:44 -0800157cc_binary(
158 name = "imu_main",
159 srcs = ["imu_main.cc"],
160 target_compatible_with = ["@platforms//os:linux"],
161 visibility = ["//visibility:public"],
162 deps = [
Ravago Jonese12b7902022-02-04 22:50:44 -0800163 "//aos:init",
164 "//aos/events:shm_event_loop",
Austin Schuh18cb1df2023-01-28 11:13:35 -0800165 "//frc971/imu_reader:imu",
166 "//y2022:constants",
Ravago Jonese12b7902022-02-04 22:50:44 -0800167 ],
168)