blob: 737b9761e7b24cfc8bd17b49a76355e0ac1e1d52 [file] [log] [blame]
Niko Sohmers3860f8a2024-01-12 21:05:19 -08001load("//aos/flatbuffers:generate.bzl", "static_flatbuffer")
2load("//tools/build_rules:template.bzl", "jinja2_template")
3
4cc_library(
5 name = "simulated_constants_sender",
6 srcs = ["simulated_constants_sender.cc"],
7 hdrs = ["simulated_constants_sender.h"],
8 data = [":test_constants.json"],
9 visibility = ["//y2024:__subpackages__"],
10 deps = [
11 ":constants_fbs",
12 ":constants_list_fbs",
13 "//aos/events:simulated_event_loop",
14 "//aos/testing:path",
15 "//frc971/constants:constants_sender_lib",
16 ],
17)
18
19jinja2_template(
20 name = "test_constants.json",
21 src = "test_constants.jinja2.json",
Niko Sohmersb21dbdc2024-01-20 20:06:59 -080022 includes = glob([
23 "test_data/*.json",
24 ]) + [
Niko Sohmersb21dbdc2024-01-20 20:06:59 -080025 "//y2024/control_loops/superstructure/intake_pivot:intake_pivot_json",
Filip Kujawa37aa0bc2024-01-31 20:59:49 -080026 "//y2024/control_loops/superstructure/climber:climber_json",
Niko Sohmers3bfe3d62024-02-18 16:09:49 -080027 "//y2024/control_loops/superstructure/catapult:catapult_json",
28 "//y2024/control_loops/superstructure/altitude:altitude_json",
29 "//y2024/control_loops/superstructure/turret:turret_json",
James Kuszmaul2549e752024-01-20 17:42:51 -080030 "//y2024/control_loops/drivetrain:drivetrain_config.json",
Niko Sohmers3bfe3d62024-02-18 16:09:49 -080031 "//y2024/constants/calib_files",
Niko Sohmersb21dbdc2024-01-20 20:06:59 -080032 "common.json",
Maxwell Hendersonde14bbb2024-01-29 13:59:28 -080033 "common.jinja2",
Niko Sohmersb21dbdc2024-01-20 20:06:59 -080034 "//y2024/vision/maps",
35 ],
Niko Sohmers3860f8a2024-01-12 21:05:19 -080036 parameters = {},
37 visibility = ["//visibility:public"],
38)
39
40jinja2_template(
41 name = "constants.json",
42 src = "constants.jinja2.json",
43 includes = [
44 "7971.json",
45 "971.json",
46 "9971.json",
Maxwell Hendersonde14bbb2024-01-29 13:59:28 -080047 "common.jinja2",
Niko Sohmers3860f8a2024-01-12 21:05:19 -080048 "common.json",
Jim Ostrowskicb8b4082024-01-21 02:23:46 -080049 "//y2024/constants/calib_files",
James Kuszmaul2549e752024-01-20 17:42:51 -080050 "//y2024/control_loops/drivetrain:drivetrain_config.json",
Niko Sohmers3bfe3d62024-02-18 16:09:49 -080051 "//y2024/control_loops/superstructure/altitude:altitude_json",
52 "//y2024/control_loops/superstructure/catapult:catapult_json",
Filip Kujawa37aa0bc2024-01-31 20:59:49 -080053 "//y2024/control_loops/superstructure/climber:climber_json",
Niko Sohmersb21dbdc2024-01-20 20:06:59 -080054 "//y2024/control_loops/superstructure/intake_pivot:intake_pivot_json",
Niko Sohmers3bfe3d62024-02-18 16:09:49 -080055 "//y2024/control_loops/superstructure/turret:turret_json",
Niko Sohmers3860f8a2024-01-12 21:05:19 -080056 "//y2024/vision/maps",
57 ],
58 parameters = {},
59 visibility = ["//visibility:public"],
60)
61
Niko Sohmers3860f8a2024-01-12 21:05:19 -080062static_flatbuffer(
63 name = "constants_fbs",
64 srcs = ["constants.fbs"],
65 visibility = ["//visibility:public"],
66 deps = [
Niko Sohmersb21dbdc2024-01-20 20:06:59 -080067 "//frc971/control_loops:profiled_subsystem_fbs",
James Kuszmaul2549e752024-01-20 17:42:51 -080068 "//frc971/control_loops/drivetrain:drivetrain_config_fbs",
Jim Ostrowskicb8b4082024-01-21 02:23:46 -080069 "//frc971/vision:calibration_fbs",
Niko Sohmers3860f8a2024-01-12 21:05:19 -080070 "//frc971/vision:target_map_fbs",
Niko Sohmersb21dbdc2024-01-20 20:06:59 -080071 "//frc971/zeroing:constants_fbs",
Niko Sohmers3860f8a2024-01-12 21:05:19 -080072 ],
73)
74
75static_flatbuffer(
76 name = "constants_list_fbs",
77 srcs = ["constants_list.fbs"],
78 visibility = ["//visibility:public"],
79 deps = [":constants_fbs"],
80)
81
82cc_binary(
83 name = "constants_sender",
84 srcs = ["constants_sender.cc"],
85 visibility = ["//visibility:public"],
86 deps = [
87 ":constants_fbs",
88 ":constants_list_fbs",
89 "//aos:init",
90 "//aos/events:shm_event_loop",
91 "//aos/testing:path",
92 "//frc971/constants:constants_sender_lib",
93 ],
94)
Maxwell Henderson6a929ff2024-01-14 20:03:59 -080095
96cc_test(
97 name = "constants_validator_test",
98 srcs = ["constants_validator_test.cc"],
99 data = [":constants.json"],
100 visibility = ["//visibility:public"],
101 deps = [
102 ":constants_list_fbs",
103 "//aos:json_to_flatbuffer",
104 "//aos/testing:googletest",
105 "@com_github_google_glog//:glog",
106 ],
107)