blob: 90edc564ef8b4511b084455d4d9e8bfd1ee0b528 [file] [log] [blame]
James Kuszmaul62c3bd82024-01-17 20:03:05 -08001load("//frc971/control_loops/drivetrain:drivetrain_config.bzl", "drivetrain_config")
2
Comran Morshed9a9948c2016-01-16 15:58:04 +00003genrule(
Brian Silverman7a7c24d2018-09-01 17:49:09 -07004 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",
Brian Silverman7a7c24d2018-09-01 17:49:09 -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",
Brian Silverman7a7c24d2018-09-01 17:49:09 -070012 ],
13 cmd = "$(location //y2016/control_loops/python:drivetrain) $(OUTS)",
Philipp Schraderdada1072020-11-24 11:34:46 -080014 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman7a7c24d2018-09-01 17:49:09 -070015 tools = [
16 "//y2016/control_loops/python:drivetrain",
17 ],
Comran Morshed9a9948c2016-01-16 15:58:04 +000018)
19
20genrule(
Brian Silverman7a7c24d2018-09-01 17:49:09 -070021 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",
Brian Silverman7a7c24d2018-09-01 17:49:09 -070026 "polydrivetrain_cim_plant.h",
27 "polydrivetrain_cim_plant.cc",
James Kuszmauleeb98e92024-01-14 22:15:32 -080028 "polydrivetrain_cim_plant.json",
Austin Schuh74425152018-12-21 11:37:14 +110029 "hybrid_velocity_drivetrain.h",
30 "hybrid_velocity_drivetrain.cc",
James Kuszmauleeb98e92024-01-14 22:15:32 -080031 "hybrid_velocity_drivetrain.json",
Brian Silverman7a7c24d2018-09-01 17:49:09 -070032 ],
33 cmd = "$(location //y2016/control_loops/python:polydrivetrain) $(OUTS)",
Philipp Schraderdada1072020-11-24 11:34:46 -080034 target_compatible_with = ["@platforms//os:linux"],
Brian Silverman7a7c24d2018-09-01 17:49:09 -070035 tools = [
36 "//y2016/control_loops/python:polydrivetrain",
37 ],
Comran Morshed9a9948c2016-01-16 15:58:04 +000038)
39
40cc_library(
Brian Silverman7a7c24d2018-09-01 17:49:09 -070041 name = "polydrivetrain_plants",
42 srcs = [
43 "drivetrain_dog_motor_plant.cc",
Austin Schuh74425152018-12-21 11:37:14 +110044 "hybrid_velocity_drivetrain.cc",
Brian Silverman7a7c24d2018-09-01 17:49:09 -070045 "kalman_drivetrain_motor_plant.cc",
46 "polydrivetrain_dog_motor_plant.cc",
47 ],
48 hdrs = [
49 "drivetrain_dog_motor_plant.h",
Austin Schuh74425152018-12-21 11:37:14 +110050 "hybrid_velocity_drivetrain.h",
Brian Silverman7a7c24d2018-09-01 17:49:09 -070051 "kalman_drivetrain_motor_plant.h",
52 "polydrivetrain_dog_motor_plant.h",
53 ],
Philipp Schraderdada1072020-11-24 11:34:46 -080054 target_compatible_with = ["@platforms//os:linux"],
Austin Schuh74425152018-12-21 11:37:14 +110055 visibility = ["//visibility:public"],
Brian Silverman7a7c24d2018-09-01 17:49:09 -070056 deps = [
Austin Schuh74425152018-12-21 11:37:14 +110057 "//frc971/control_loops:hybrid_state_feedback_loop",
Brian Silverman7a7c24d2018-09-01 17:49:09 -070058 "//frc971/control_loops:state_feedback_loop",
59 ],
Comran Morshed9a9948c2016-01-16 15:58:04 +000060)
61
62cc_library(
Brian Silverman7a7c24d2018-09-01 17:49:09 -070063 name = "drivetrain_base",
64 srcs = [
65 "drivetrain_base.cc",
66 ],
67 hdrs = [
68 "drivetrain_base.h",
69 ],
Philipp Schraderdada1072020-11-24 11:34:46 -080070 target_compatible_with = ["@platforms//os:linux"],
Austin Schuh74425152018-12-21 11:37:14 +110071 visibility = ["//visibility:public"],
Brian Silverman7a7c24d2018-09-01 17:49:09 -070072 deps = [
73 ":polydrivetrain_plants",
74 "//frc971:shifter_hall_effect",
75 "//frc971/control_loops/drivetrain:drivetrain_config",
76 "//y2016:constants",
77 ],
Comran Morshed9a9948c2016-01-16 15:58:04 +000078)
79
80cc_binary(
Brian Silverman7a7c24d2018-09-01 17:49:09 -070081 name = "drivetrain",
82 srcs = [
83 "drivetrain_main.cc",
84 ],
Philipp Schraderdada1072020-11-24 11:34:46 -080085 target_compatible_with = ["@platforms//os:linux"],
Austin Schuh74425152018-12-21 11:37:14 +110086 visibility = ["//visibility:public"],
Brian Silverman7a7c24d2018-09-01 17:49:09 -070087 deps = [
88 ":drivetrain_base",
John Park398c74a2018-10-20 21:17:39 -070089 "//aos:init",
Brian Silverman7a7c24d2018-09-01 17:49:09 -070090 "//frc971/control_loops/drivetrain:drivetrain_lib",
91 ],
Comran Morshed9a9948c2016-01-16 15:58:04 +000092)
James Kuszmaul62c3bd82024-01-17 20:03:05 -080093
94drivetrain_config(
95 name = "drivetrain_config",
96 out = "drivetrain_config.json",
97)