blob: 3bd4db7bf11dbdc0a04d61b350474e0c5e6cfcfb [file] [log] [blame]
Henry Speiser354d2782022-07-22 13:56:48 -07001load("//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",
Henry Speiser354d2782022-07-22 13:56:48 -07009 "kalman_drivetrain_motor_plant.h",
10 "kalman_drivetrain_motor_plant.cc",
James Kuszmauleeb98e92024-01-14 22:15:32 -080011 "kalman_drivetrain_motor_plant.json",
Henry Speiser354d2782022-07-22 13:56:48 -070012 ],
13 cmd = "$(location //y2022_bot3/control_loops/python:drivetrain) $(OUTS)",
14 target_compatible_with = ["@platforms//os:linux"],
15 tools = [
16 "//y2022_bot3/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",
Henry Speiser354d2782022-07-22 13:56:48 -070026 "polydrivetrain_cim_plant.h",
27 "polydrivetrain_cim_plant.cc",
James Kuszmauleeb98e92024-01-14 22:15:32 -080028 "polydrivetrain_cim_plant.json",
Henry Speiser354d2782022-07-22 13:56:48 -070029 "hybrid_velocity_drivetrain.h",
30 "hybrid_velocity_drivetrain.cc",
James Kuszmauleeb98e92024-01-14 22:15:32 -080031 "hybrid_velocity_drivetrain.json",
Henry Speiser354d2782022-07-22 13:56:48 -070032 ],
33 cmd = "$(location //y2022_bot3/control_loops/python:polydrivetrain) $(OUTS)",
34 target_compatible_with = ["@platforms//os:linux"],
35 tools = [
36 "//y2022_bot3/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 ],
92)
93
94aos_config(
95 name = "simulation_config",
96 src = "drivetrain_simulation_config.json",
97 target_compatible_with = ["@platforms//os:linux"],
98 visibility = ["//visibility:public"],
99 deps = [
100 "//frc971/control_loops/drivetrain:simulation_channels",
101 "//y2022_bot3:aos_config",
102 ],
103)
104
105cc_binary(
106 name = "trajectory_generator",
107 srcs = [
108 "trajectory_generator_main.cc",
109 ],
110 target_compatible_with = ["@platforms//os:linux"],
111 visibility = ["//visibility:public"],
112 deps = [
113 ":drivetrain_base",
114 "//aos:init",
115 "//aos/events:shm_event_loop",
116 "//frc971/control_loops/drivetrain:trajectory_generator",
117 ],
118)