blob: 664f9a1642f85c30be44c382f6da28f8be61574f [file] [log] [blame]
Maxwell Hendersonc3d063a2023-12-26 17:37:22 -08001load("//aos:config.bzl", "aos_config")
2
3genrule(
4 name = "genrule_drivetrain",
5 outs = [
6 "drivetrain_dog_motor_plant.h",
7 "drivetrain_dog_motor_plant.cc",
8 "kalman_drivetrain_motor_plant.h",
9 "kalman_drivetrain_motor_plant.cc",
10 ],
11 cmd = "$(location //y2024_defense/control_loops/python:drivetrain) $(OUTS)",
12 target_compatible_with = ["@platforms//os:linux"],
13 tools = [
14 "//y2024_defense/control_loops/python:drivetrain",
15 ],
16)
17
18genrule(
19 name = "genrule_polydrivetrain",
20 outs = [
21 "polydrivetrain_dog_motor_plant.h",
22 "polydrivetrain_dog_motor_plant.cc",
23 "polydrivetrain_cim_plant.h",
24 "polydrivetrain_cim_plant.cc",
25 "hybrid_velocity_drivetrain.h",
26 "hybrid_velocity_drivetrain.cc",
27 ],
28 cmd = "$(location //y2024_defense/control_loops/python:polydrivetrain) $(OUTS)",
29 target_compatible_with = ["@platforms//os:linux"],
30 tools = [
31 "//y2024_defense/control_loops/python:polydrivetrain",
32 ],
33)
34
35cc_library(
36 name = "polydrivetrain_plants",
37 srcs = [
38 "drivetrain_dog_motor_plant.cc",
39 "hybrid_velocity_drivetrain.cc",
40 "kalman_drivetrain_motor_plant.cc",
41 "polydrivetrain_dog_motor_plant.cc",
42 ],
43 hdrs = [
44 "drivetrain_dog_motor_plant.h",
45 "hybrid_velocity_drivetrain.h",
46 "kalman_drivetrain_motor_plant.h",
47 "polydrivetrain_dog_motor_plant.h",
48 ],
49 target_compatible_with = ["@platforms//os:linux"],
50 visibility = ["//visibility:public"],
51 deps = [
52 "//frc971/control_loops:hybrid_state_feedback_loop",
53 "//frc971/control_loops:state_feedback_loop",
54 ],
55)
56
57cc_library(
58 name = "drivetrain_base",
59 srcs = [
60 "drivetrain_base.cc",
61 ],
62 hdrs = [
63 "drivetrain_base.h",
64 ],
65 target_compatible_with = ["@platforms//os:linux"],
66 visibility = ["//visibility:public"],
67 deps = [
68 ":polydrivetrain_plants",
69 "//frc971:shifter_hall_effect",
70 "//frc971/control_loops/drivetrain:drivetrain_config",
71 ],
72)
73
74cc_binary(
75 name = "drivetrain",
76 srcs = [
77 "drivetrain_main.cc",
78 ],
79 target_compatible_with = ["@platforms//os:linux"],
80 visibility = ["//visibility:public"],
81 deps = [
82 ":drivetrain_base",
83 "//aos:init",
84 "//aos/events:shm_event_loop",
85 "//frc971/control_loops/drivetrain:drivetrain_lib",
86 "//frc971/control_loops/drivetrain/localization:puppet_localizer",
87 ],
88)
89
90aos_config(
91 name = "simulation_config",
92 src = "drivetrain_simulation_config.json",
93 target_compatible_with = ["@platforms//os:linux"],
94 visibility = ["//visibility:public"],
95 deps = [
96 "//frc971/control_loops/drivetrain:simulation_channels",
97 "//y2024_defense:aos_config",
98 ],
99)