Add swerve control loops
Add the control loops for swerve in frc971/control_loops/swerve
Sets the current for each swerve module to 0
Does not use status and position flatbuffers
Change-Id: Id706459fabc1326ee1b78d1f35b90cf8cd3f7df9
Signed-off-by: Yash Maheshwari <yashmahe2018@gmail.com>
diff --git a/frc971/control_loops/swerve/BUILD b/frc971/control_loops/swerve/BUILD
index 3bd3453..ccba681 100644
--- a/frc971/control_loops/swerve/BUILD
+++ b/frc971/control_loops/swerve/BUILD
@@ -1,3 +1,4 @@
+load("//aos:config.bzl", "aos_config")
load("//aos/flatbuffers:generate.bzl", "static_flatbuffer")
package(default_visibility = ["//visibility:public"])
@@ -16,21 +17,18 @@
static_flatbuffer(
name = "swerve_drivetrain_output_fbs",
srcs = ["swerve_drivetrain_output.fbs"],
- visibility = ["//visibility:public"],
deps = ["//frc971/control_loops:can_talonfx_fbs"],
)
static_flatbuffer(
name = "swerve_drivetrain_can_position_fbs",
srcs = ["swerve_drivetrain_can_position.fbs"],
- visibility = ["//visibility:public"],
deps = ["//frc971/control_loops:can_talonfx_fbs"],
)
static_flatbuffer(
name = "swerve_drivetrain_position_fbs",
srcs = ["swerve_drivetrain_position.fbs"],
- visibility = ["//visibility:public"],
deps = ["//frc971/control_loops:control_loops_fbs"],
)
@@ -47,3 +45,54 @@
"@pip//sympy",
],
)
+
+cc_library(
+ name = "swerve_control_loops",
+ srcs = ["swerve_control_loops.cc"],
+ hdrs = ["swerve_control_loops.h"],
+ target_compatible_with = ["@platforms//os:linux"],
+ deps = [
+ ":swerve_drivetrain_can_position_fbs",
+ ":swerve_drivetrain_goal_fbs",
+ ":swerve_drivetrain_output_fbs",
+ ":swerve_drivetrain_position_fbs",
+ ":swerve_drivetrain_status_fbs",
+ "//frc971/control_loops:control_loop",
+ ],
+)
+
+cc_test(
+ name = "swerve_control_test",
+ srcs = ["swerve_control_test.cc"],
+ data = [
+ ":aos_config",
+ ],
+ target_compatible_with = ["@platforms//os:linux"],
+ deps = [
+ ":swerve_control_loops",
+ ":swerve_drivetrain_can_position_fbs",
+ ":swerve_drivetrain_goal_fbs",
+ ":swerve_drivetrain_output_fbs",
+ ":swerve_drivetrain_position_fbs",
+ ":swerve_drivetrain_status_fbs",
+ "//aos/events:shm_event_loop",
+ "//aos/testing:googletest",
+ "//frc971/control_loops:control_loop_test",
+ "//frc971/control_loops:state_feedback_loop",
+ "//frc971/control_loops:team_number_test_environment",
+ ],
+)
+
+aos_config(
+ name = "aos_config",
+ src = "swerve.json",
+ flatbuffers = [
+ ":swerve_drivetrain_goal_fbs",
+ ":swerve_drivetrain_output_fbs",
+ ":swerve_drivetrain_position_fbs",
+ ":swerve_drivetrain_can_position_fbs",
+ ":swerve_drivetrain_status_fbs",
+ ],
+ target_compatible_with = ["@platforms//os:linux"],
+ deps = ["//frc971/input:aos_config"],
+)