Add Encoder Fault Detector to frc971 Control Loop
The Encoder Fault Detector will take in a Position and CANPosition message to test whether either encoder or CAN encoders in a subsystem are faulted
Signed-off-by: Niko Sohmers <nikolai@sohmers.com>
Change-Id: I544772a809fbe4dc26dc0e37ef3c4b2ae4def75e
diff --git a/frc971/control_loops/BUILD b/frc971/control_loops/BUILD
index 925dd43..9986fef 100644
--- a/frc971/control_loops/BUILD
+++ b/frc971/control_loops/BUILD
@@ -176,6 +176,30 @@
)
cc_library(
+ name = "encoder_fault_detector",
+ srcs = ["encoder_fault_detector.cc"],
+ hdrs = ["encoder_fault_detector.h"],
+ target_compatible_with = ["@platforms//os:linux"],
+ deps = [
+ ":encoder_fault_status_fbs",
+ "//aos/containers:sized_array",
+ "//aos/time",
+ "//frc971/control_loops:can_talonfx_fbs",
+ ],
+)
+
+cc_test(
+ name = "encoder_fault_detector_test",
+ srcs = ["encoder_fault_detector_test.cc"],
+ target_compatible_with = ["@platforms//os:linux"],
+ deps = [
+ ":encoder_fault_detector",
+ "//aos:json_to_flatbuffer",
+ "//aos/testing:googletest",
+ ],
+)
+
+cc_library(
name = "hall_effect_tracker",
hdrs = [
"hall_effect_tracker.h",
@@ -201,6 +225,20 @@
)
flatbuffer_ts_library(
+ name = "encoder_fault_status_ts_fbs",
+ srcs = [
+ "encoder_fault_status.fbs",
+ ],
+)
+
+static_flatbuffer(
+ name = "encoder_fault_status_fbs",
+ srcs = [
+ "encoder_fault_status.fbs",
+ ],
+)
+
+flatbuffer_ts_library(
name = "can_talonfx_ts_fbs",
srcs = [
"can_talonfx.fbs",