Add a drivetrain can position flatbuffer to frc971
Signed-off-by: Maxwell Henderson <maxwell.henderson@mailbox.org>
Change-Id: I73ab47b47327af0bf189554b030d5e5626f3df13
diff --git a/frc971/control_loops/drivetrain/BUILD b/frc971/control_loops/drivetrain/BUILD
index 86c1ec0..93b4a11 100644
--- a/frc971/control_loops/drivetrain/BUILD
+++ b/frc971/control_loops/drivetrain/BUILD
@@ -8,6 +8,12 @@
package(default_visibility = ["//visibility:public"])
flatbuffer_cc_library(
+ name = "drivetrain_can_position_fbs",
+ srcs = ["drivetrain_can_position.fbs"],
+ gen_reflections = 1,
+)
+
+flatbuffer_cc_library(
name = "spline_goal_fbs",
srcs = ["spline_goal.fbs"],
gen_reflections = 1,
@@ -352,11 +358,11 @@
":drivetrain_config",
":drivetrain_states",
":gear",
+ ":spline_goal_fbs",
"//aos:math",
- "//frc971/control_loops:polytope",
"//frc971/control_loops:coerce_goal",
"//frc971/control_loops:control_loops_fbs",
- ":spline_goal_fbs",
+ "//frc971/control_loops:polytope",
"//frc971/control_loops:state_feedback_loop",
] + select({
"@platforms//os:linux": [
@@ -364,8 +370,8 @@
":drivetrain_output_fbs",
":drivetrain_position_fbs",
":drivetrain_status_fbs",
- "//frc971/input:robot_state_fbs",
"//aos/util:log_interval",
+ "//frc971/input:robot_state_fbs",
],
"@platforms//os:none": [
":drivetrain_goal_float_fbs",
@@ -469,8 +475,8 @@
"//frc971/control_loops:control_loops_fbs",
"//frc971/control_loops:state_feedback_loop",
"//frc971/queues:gyro_fbs",
- "//frc971/wpilib:imu_fbs",
"//frc971/wpilib:imu_batch_fbs",
+ "//frc971/wpilib:imu_fbs",
"//y2016:constants",
"//y2016/control_loops/drivetrain:polydrivetrain_plants",
] + cpu_select({
@@ -498,17 +504,17 @@
target_compatible_with = ["@platforms//os:linux"],
deps = [
":drivetrain_config",
- ":trajectory_generator",
- ":drivetrain_lib",
- ":localizer_fbs",
":drivetrain_goal_fbs",
- ":drivetrain_status_fbs",
- ":drivetrain_position_fbs",
+ ":drivetrain_lib",
":drivetrain_output_fbs",
+ ":drivetrain_position_fbs",
+ ":drivetrain_status_fbs",
":drivetrain_test_lib",
- "//frc971/control_loops:control_loop_test",
+ ":localizer_fbs",
+ ":trajectory_generator",
"//aos/events/logging:log_writer",
"//aos/testing:googletest",
+ "//frc971/control_loops:control_loop_test",
"//frc971/queues:gyro_fbs",
"//frc971/wpilib:imu_fbs",
] + cpu_select({
@@ -633,8 +639,8 @@
target_compatible_with = ["@platforms//os:linux"],
deps = [
":distance_spline",
- "//aos/testing:googletest",
"//aos:flatbuffers",
+ "//aos/testing:googletest",
"//aos/testing:test_shm",
"@com_github_gflags_gflags//:gflags",
] + cpu_select({
@@ -712,8 +718,8 @@
linkstatic = True,
target_compatible_with = ["@platforms//os:linux"],
deps = [
- ":trajectory",
":drivetrain_test_lib",
+ ":trajectory",
"//aos/testing:googletest",
"//aos/testing:test_shm",
"//y2016:constants",
diff --git a/y2023/control_loops/drivetrain/drivetrain_can_position.fbs b/frc971/control_loops/drivetrain/drivetrain_can_position.fbs
similarity index 95%
rename from y2023/control_loops/drivetrain/drivetrain_can_position.fbs
rename to frc971/control_loops/drivetrain/drivetrain_can_position.fbs
index 34fbf12..a44ef50 100644
--- a/y2023/control_loops/drivetrain/drivetrain_can_position.fbs
+++ b/frc971/control_loops/drivetrain/drivetrain_can_position.fbs
@@ -1,4 +1,4 @@
-namespace y2023.control_loops.drivetrain;
+namespace frc971.control_loops.drivetrain;
table CANFalcon {
// The CAN id of the falcon
diff --git a/y2023/BUILD b/y2023/BUILD
index fa39d3c..ed8f347 100644
--- a/y2023/BUILD
+++ b/y2023/BUILD
@@ -213,7 +213,7 @@
"//y2023/control_loops/superstructure:superstructure_goal_fbs",
"//y2023/control_loops/drivetrain:target_selector_hint_fbs",
"//y2023/control_loops/drivetrain:target_selector_status_fbs",
- "//y2023/control_loops/drivetrain:drivetrain_can_position_fbs",
+ "//frc971/control_loops/drivetrain:drivetrain_can_position_fbs",
"//y2023/control_loops/superstructure:superstructure_output_fbs",
"//y2023/control_loops/superstructure:superstructure_position_fbs",
"//y2023/control_loops/superstructure:superstructure_status_fbs",
@@ -286,6 +286,7 @@
"//frc971/autonomous:auto_mode_fbs",
"//frc971/control_loops:control_loop",
"//frc971/control_loops:control_loops_fbs",
+ "//frc971/control_loops/drivetrain:drivetrain_can_position_fbs",
"//frc971/control_loops/drivetrain:drivetrain_position_fbs",
"//frc971/input:robot_state_fbs",
"//frc971/queues:gyro_fbs",
@@ -304,7 +305,6 @@
"//third_party:phoenix",
"//third_party:phoenixpro",
"//third_party:wpilib",
- "//y2023/control_loops/drivetrain:drivetrain_can_position_fbs",
"//y2023/control_loops/superstructure:led_indicator_lib",
"//y2023/control_loops/superstructure:superstructure_output_fbs",
"//y2023/control_loops/superstructure:superstructure_position_fbs",
diff --git a/y2023/control_loops/drivetrain/BUILD b/y2023/control_loops/drivetrain/BUILD
index 063e972..f6b5655 100644
--- a/y2023/control_loops/drivetrain/BUILD
+++ b/y2023/control_loops/drivetrain/BUILD
@@ -116,15 +116,6 @@
)
flatbuffer_cc_library(
- name = "drivetrain_can_position_fbs",
- srcs = [
- "drivetrain_can_position.fbs",
- ],
- gen_reflections = 1,
- visibility = ["//visibility:public"],
-)
-
-flatbuffer_cc_library(
name = "target_selector_status_fbs",
srcs = [
":target_selector_status.fbs",
diff --git a/y2023/control_loops/superstructure/BUILD b/y2023/control_loops/superstructure/BUILD
index afca18b..861bbf8 100644
--- a/y2023/control_loops/superstructure/BUILD
+++ b/y2023/control_loops/superstructure/BUILD
@@ -58,8 +58,8 @@
deps = [
"//frc971/control_loops:control_loops_fbs",
"//frc971/control_loops:profiled_subsystem_fbs",
+ "//frc971/control_loops/drivetrain:drivetrain_can_position_fbs",
"//frc971/vision:calibration_fbs",
- "//y2023/control_loops/drivetrain:drivetrain_can_position_fbs",
],
)
@@ -103,12 +103,12 @@
"//aos/events:event_loop",
"//frc971/constants:constants_sender_lib",
"//frc971/control_loops:control_loop",
+ "//frc971/control_loops/drivetrain:drivetrain_can_position_fbs",
"//frc971/control_loops/drivetrain:drivetrain_status_fbs",
"//frc971/shooter_interpolation:interpolation",
"//y2023:constants",
"//y2023/constants:constants_fbs",
"//y2023/constants:simulated_constants_sender",
- "//y2023/control_loops/drivetrain:drivetrain_can_position_fbs",
"//y2023/control_loops/superstructure/arm",
"//y2023/control_loops/superstructure/arm:arm_trajectories_fbs",
],
diff --git a/y2023/control_loops/superstructure/arm/BUILD b/y2023/control_loops/superstructure/arm/BUILD
index 39e549b..a742c50 100644
--- a/y2023/control_loops/superstructure/arm/BUILD
+++ b/y2023/control_loops/superstructure/arm/BUILD
@@ -14,9 +14,9 @@
":generated_graph",
"//frc971/control_loops/double_jointed_arm:ekf",
"//frc971/control_loops/double_jointed_arm:graph",
+ "//frc971/control_loops/drivetrain:drivetrain_can_position_fbs",
"//frc971/zeroing",
"//y2023:constants",
- "//y2023/control_loops/drivetrain:drivetrain_can_position_fbs",
"//y2023/control_loops/superstructure:superstructure_position_fbs",
"//y2023/control_loops/superstructure:superstructure_status_fbs",
"//y2023/control_loops/superstructure/arm:arm_constants",
diff --git a/y2023/control_loops/superstructure/superstructure.h b/y2023/control_loops/superstructure/superstructure.h
index 1100b86..fdfef4e 100644
--- a/y2023/control_loops/superstructure/superstructure.h
+++ b/y2023/control_loops/superstructure/superstructure.h
@@ -5,10 +5,10 @@
#include "aos/json_to_flatbuffer.h"
#include "frc971/constants/constants_sender_lib.h"
#include "frc971/control_loops/control_loop.h"
+#include "frc971/control_loops/drivetrain/drivetrain_can_position_generated.h"
#include "frc971/control_loops/drivetrain/drivetrain_status_generated.h"
#include "y2023/constants.h"
#include "y2023/constants/constants_generated.h"
-#include "y2023/control_loops/drivetrain/drivetrain_can_position_generated.h"
#include "y2023/control_loops/superstructure/arm/arm.h"
#include "y2023/control_loops/superstructure/arm/arm_trajectories_generated.h"
#include "y2023/control_loops/superstructure/end_effector.h"
diff --git a/y2023/wpilib_interface.cc b/y2023/wpilib_interface.cc
index 978d6e5..fc6a4ae 100644
--- a/y2023/wpilib_interface.cc
+++ b/y2023/wpilib_interface.cc
@@ -40,6 +40,7 @@
#include "aos/util/phased_loop.h"
#include "aos/util/wrapping_counter.h"
#include "frc971/autonomous/auto_mode_generated.h"
+#include "frc971/control_loops/drivetrain/drivetrain_can_position_generated.h"
#include "frc971/control_loops/drivetrain/drivetrain_position_generated.h"
#include "frc971/input/robot_state_generated.h"
#include "frc971/queues/gyro_generated.h"
@@ -57,7 +58,6 @@
#include "frc971/wpilib/wpilib_robot_base.h"
#include "y2023/can_configuration_generated.h"
#include "y2023/constants.h"
-#include "y2023/control_loops/drivetrain/drivetrain_can_position_generated.h"
#include "y2023/control_loops/superstructure/led_indicator.h"
#include "y2023/control_loops/superstructure/superstructure_output_generated.h"
#include "y2023/control_loops/superstructure/superstructure_position_generated.h"
@@ -224,9 +224,9 @@
ctre::phoenixpro::hardware::TalonFX *talon() { return &talon_; }
- flatbuffers::Offset<drivetrain::CANFalcon> WritePosition(
- flatbuffers::FlatBufferBuilder *fbb) {
- drivetrain::CANFalcon::Builder builder(*fbb);
+ flatbuffers::Offset<frc971::control_loops::drivetrain::CANFalcon>
+ WritePosition(flatbuffers::FlatBufferBuilder *fbb) {
+ frc971::control_loops::drivetrain::CANFalcon::Builder builder(*fbb);
builder.add_id(device_id_);
builder.add_device_temp(device_temp());
builder.add_supply_voltage(supply_voltage());
@@ -289,7 +289,9 @@
: event_loop_(event_loop),
signals_(signals_registry.begin(), signals_registry.end()),
can_position_sender_(
- event_loop->MakeSender<drivetrain::CANPosition>("/drivetrain")),
+ event_loop
+ ->MakeSender<frc971::control_loops::drivetrain::CANPosition>(
+ "/drivetrain")),
roller_falcon_data_(std::nullopt) {
event_loop->SetRuntimeRealtimePriority(40);
event_loop->SetRuntimeAffinity(aos::MakeCpusetFromCpus({1}));
@@ -340,7 +342,9 @@
falcon->RefreshNontimesyncedSignals();
}
- aos::SizedArray<flatbuffers::Offset<drivetrain::CANFalcon>, kCANFalconCount>
+ aos::SizedArray<
+ flatbuffers::Offset<frc971::control_loops::drivetrain::CANFalcon>,
+ kCANFalconCount>
falcons;
for (auto falcon : {right_front_, right_back_, right_under_, left_front_,
@@ -349,11 +353,14 @@
}
auto falcons_list =
- builder.fbb()->CreateVector<flatbuffers::Offset<drivetrain::CANFalcon>>(
- falcons);
+ builder.fbb()
+ ->CreateVector<flatbuffers::Offset<
+ frc971::control_loops::drivetrain::CANFalcon>>(falcons);
- drivetrain::CANPosition::Builder can_position_builder =
- builder.MakeBuilder<drivetrain::CANPosition>();
+ frc971::control_loops::drivetrain::CANPosition::Builder
+ can_position_builder =
+ builder
+ .MakeBuilder<frc971::control_loops::drivetrain::CANPosition>();
can_position_builder.add_falcons(falcons_list);
can_position_builder.add_timestamp(right_front_->GetTimestamp());
@@ -379,7 +386,8 @@
aos::EventLoop *event_loop_;
const std::vector<ctre::phoenixpro::BaseStatusSignalValue *> signals_;
- aos::Sender<drivetrain::CANPosition> can_position_sender_;
+ aos::Sender<frc971::control_loops::drivetrain::CANPosition>
+ can_position_sender_;
std::shared_ptr<Falcon> right_front_, right_back_, right_under_, left_front_,
left_back_, left_under_, roller_falcon_;
diff --git a/y2023/y2023_roborio.json b/y2023/y2023_roborio.json
index 4af3d34..33d9904 100644
--- a/y2023/y2023_roborio.json
+++ b/y2023/y2023_roborio.json
@@ -154,7 +154,7 @@
},
{
"name": "/drivetrain",
- "type": "y2023.control_loops.drivetrain.CANPosition",
+ "type": "frc971.control_loops.drivetrain.CANPosition",
"source_node": "roborio",
"frequency": 220,
"num_senders": 2,