blob: 9f2349e064a554c0a058da5fcdcee201985c33c4 [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",
James Kuszmauleeb98e92024-01-14 22:15:32 -08008 "drivetrain_dog_motor_plant.json",
Maxwell Hendersonc3d063a2023-12-26 17:37:22 -08009 "kalman_drivetrain_motor_plant.h",
10 "kalman_drivetrain_motor_plant.cc",
James Kuszmauleeb98e92024-01-14 22:15:32 -080011 "kalman_drivetrain_motor_plant.json",
Maxwell Hendersonc3d063a2023-12-26 17:37:22 -080012 ],
13 cmd = "$(location //y2024_defense/control_loops/python:drivetrain) $(OUTS)",
14 target_compatible_with = ["@platforms//os:linux"],
15 tools = [
16 "//y2024_defense/control_loops/python:drivetrain",
17 ],
18)
19
20genrule(
21 name = "genrule_polydrivetrain",
22 outs = [
23 "polydrivetrain_dog_motor_plant.h",
24 "polydrivetrain_dog_motor_plant.cc",
James Kuszmauleeb98e92024-01-14 22:15:32 -080025 "polydrivetrain_dog_motor_plant.json",
Maxwell Hendersonc3d063a2023-12-26 17:37:22 -080026 "polydrivetrain_cim_plant.h",
27 "polydrivetrain_cim_plant.cc",
James Kuszmauleeb98e92024-01-14 22:15:32 -080028 "polydrivetrain_cim_plant.json",
Maxwell Hendersonc3d063a2023-12-26 17:37:22 -080029 "hybrid_velocity_drivetrain.h",
30 "hybrid_velocity_drivetrain.cc",
James Kuszmauleeb98e92024-01-14 22:15:32 -080031 "hybrid_velocity_drivetrain.json",
Maxwell Hendersonc3d063a2023-12-26 17:37:22 -080032 ],
33 cmd = "$(location //y2024_defense/control_loops/python:polydrivetrain) $(OUTS)",
34 target_compatible_with = ["@platforms//os:linux"],
35 tools = [
36 "//y2024_defense/control_loops/python:polydrivetrain",
37 ],
38)
39
40cc_library(
41 name = "polydrivetrain_plants",
42 srcs = [
43 "drivetrain_dog_motor_plant.cc",
44 "hybrid_velocity_drivetrain.cc",
45 "kalman_drivetrain_motor_plant.cc",
46 "polydrivetrain_dog_motor_plant.cc",
47 ],
48 hdrs = [
49 "drivetrain_dog_motor_plant.h",
50 "hybrid_velocity_drivetrain.h",
51 "kalman_drivetrain_motor_plant.h",
52 "polydrivetrain_dog_motor_plant.h",
53 ],
54 target_compatible_with = ["@platforms//os:linux"],
55 visibility = ["//visibility:public"],
56 deps = [
57 "//frc971/control_loops:hybrid_state_feedback_loop",
58 "//frc971/control_loops:state_feedback_loop",
59 ],
60)
61
62cc_library(
63 name = "drivetrain_base",
64 srcs = [
65 "drivetrain_base.cc",
66 ],
67 hdrs = [
68 "drivetrain_base.h",
69 ],
70 target_compatible_with = ["@platforms//os:linux"],
71 visibility = ["//visibility:public"],
72 deps = [
73 ":polydrivetrain_plants",
74 "//frc971:shifter_hall_effect",
75 "//frc971/control_loops/drivetrain:drivetrain_config",
76 ],
77)
78
79cc_binary(
80 name = "drivetrain",
81 srcs = [
82 "drivetrain_main.cc",
83 ],
84 target_compatible_with = ["@platforms//os:linux"],
85 visibility = ["//visibility:public"],
86 deps = [
87 ":drivetrain_base",
88 "//aos:init",
89 "//aos/events:shm_event_loop",
90 "//frc971/control_loops/drivetrain:drivetrain_lib",
91 "//frc971/control_loops/drivetrain/localization:puppet_localizer",
92 ],
93)
94
95aos_config(
96 name = "simulation_config",
97 src = "drivetrain_simulation_config.json",
98 target_compatible_with = ["@platforms//os:linux"],
99 visibility = ["//visibility:public"],
100 deps = [
101 "//frc971/control_loops/drivetrain:simulation_channels",
102 "//y2024_defense:aos_config",
103 ],
104)