Use explicit flatbuffer IDs in y2017 and newer.
Non-explicit ids are risky. We've seen backwards incompatible
changes...
Change-Id: Id6ceebe031ac80430191f367635d0e951c3d2cbc
diff --git a/y2020/control_loops/superstructure/superstructure_goal.fbs b/y2020/control_loops/superstructure/superstructure_goal.fbs
index 9200082..792b6b4 100644
--- a/y2020/control_loops/superstructure/superstructure_goal.fbs
+++ b/y2020/control_loops/superstructure/superstructure_goal.fbs
@@ -5,10 +5,10 @@
table ShooterGoal {
// Angular velocity in rad/s of the slowest (lowest) wheel in the kicker.
// Positive is shooting the ball.
- velocity_accelerator:double;
+ velocity_accelerator:double (id: 0);
// Angular velocity in rad/s of the flywheel. Positive is shooting.
- velocity_finisher:double;
+ velocity_finisher:double (id: 1);
}
table Goal {
diff --git a/y2020/control_loops/superstructure/superstructure_output.fbs b/y2020/control_loops/superstructure/superstructure_output.fbs
index fd57825..005d930 100644
--- a/y2020/control_loops/superstructure/superstructure_output.fbs
+++ b/y2020/control_loops/superstructure/superstructure_output.fbs
@@ -2,35 +2,35 @@
table Output {
// Votage sent to the hood. Positive moves up.
- hood_voltage:double;
+ hood_voltage:double (id: 0);
// Voltage sent to motors on intake joint. Positive extends rollers.
- intake_joint_voltage:double;
+ intake_joint_voltage:double (id: 1);
// Voltage sent to rollers on intake. Positive rolls inward.
- intake_roller_voltage:double;
+ intake_roller_voltage:double (id: 2);
- //Voltage sent to the motors.
- //Positive rotates counterclockwise from a birds eye view.
- turret_voltage:double;
+ // Voltage sent to the motors.
+ // Positive rotates counterclockwise from a birds eye view.
+ turret_voltage:double (id: 3);
// Voltage sent to the feeder belt. Positive is feeding.
- feeder_voltage:double;
+ feeder_voltage:double (id: 4);
// Voltage sent to the washing_machine and control panel spinner.
// Positive runs the washing machine CCW facing the front of the robot, and
// the spinner runs CCW from a top down view.
- washing_machine_spinner_voltage:double;
+ washing_machine_spinner_voltage:double (id: 5);
// Voltage sent to the kicker. Positive is shooting.
- accelerator_left_voltage:double;
- accelerator_right_voltage:double;
+ accelerator_left_voltage:double (id: 6);
+ accelerator_right_voltage:double (id: 7);
// Voltage sent to the flywheel. Positive is shooting.
- finisher_voltage:double;
+ finisher_voltage:double (id: 8);
// Positive is deploying climber and to climb; cannot run in reverse
- climber_voltage:double;
+ climber_voltage:double (id: 9);
}
root_type Output;
diff --git a/y2020/control_loops/superstructure/superstructure_position.fbs b/y2020/control_loops/superstructure/superstructure_position.fbs
index ed4ba18..f139381 100644
--- a/y2020/control_loops/superstructure/superstructure_position.fbs
+++ b/y2020/control_loops/superstructure/superstructure_position.fbs
@@ -4,29 +4,29 @@
table ShooterPosition {
// Flywheel angle in radians, positive is shooting.
- theta_finisher:double;
+ theta_finisher:double (id: 0);
// Kicker angle in radians of the slowest (lowest) wheel, positive is
// accelerating the ball toward the shooter.
- theta_accelerator_left:double;
- theta_accelerator_right:double;
+ theta_accelerator_left:double (id: 1);
+ theta_accelerator_right:double (id: 2);
}
table Position {
// Zero is at the horizontal, positive towards the front (radians).
- hood:frc971.AbsolutePosition;
+ hood:frc971.AbsolutePosition (id: 0);
// Position of the intake. 0 when four-bar is vertical, positive extended.
- intake_joint:frc971.AbsolutePosition;
+ intake_joint:frc971.AbsolutePosition (id: 1);
// See goal for definition of 0
- turret:frc971.PotAndAbsolutePosition;
+ turret:frc971.PotAndAbsolutePosition (id: 2);
// Position of the kicker and flywheel
- shooter:ShooterPosition;
+ shooter:ShooterPosition (id: 3);
// Position of the control panel, relative to start, positive counterclockwise from above.
- control_panel:frc971.RelativePosition;
+ control_panel:frc971.RelativePosition (id: 4);
}
root_type Position;
diff --git a/y2020/control_loops/superstructure/superstructure_status.fbs b/y2020/control_loops/superstructure/superstructure_status.fbs
index dc6116c..fb94d32 100644
--- a/y2020/control_loops/superstructure/superstructure_status.fbs
+++ b/y2020/control_loops/superstructure/superstructure_status.fbs
@@ -6,63 +6,63 @@
table FlywheelControllerStatus {
// The current average velocity in radians/second over the last kHistoryLength
// in shooter.h
- avg_angular_velocity:double;
+ avg_angular_velocity:double (id: 0);
// The current instantaneous filtered velocity in radians/second.
- angular_velocity:double;
+ angular_velocity:double (id: 1);
// The target speed selected by the lookup table or from manual override
// Can be compared to velocity to determine if ready.
- angular_velocity_goal:double;
+ angular_velocity_goal:double (id: 2);
// Voltage error.
- voltage_error:double;
+ voltage_error:double (id: 3);
}
table ShooterStatus {
// The final wheel shooting the ball
- finisher:FlywheelControllerStatus;
+ finisher:FlywheelControllerStatus (id: 0);
// The subsystem to accelerate the ball before the finisher
// Velocity is the fastest (top) wheel
- accelerator_left:FlywheelControllerStatus;
- accelerator_right:FlywheelControllerStatus;
+ accelerator_left:FlywheelControllerStatus (id: 1);
+ accelerator_right:FlywheelControllerStatus (id: 2);
}
table AimerStatus {
// The current goal angle for the turret auto-tracking, in radians.
- turret_position:double;
+ turret_position:double (id: 0);
// The current goal velocity for the turret, in radians / sec.
- turret_velocity:double;
+ turret_velocity:double (id: 1);
// Whether we are currently aiming for the inner port.
- aiming_for_inner_port:bool;
+ aiming_for_inner_port:bool (id: 2);
// The current distance to the target, in meters.
- target_distance:double;
+ target_distance:double (id: 3);
// The current "shot distance." When shooting on the fly, this may be
// different from the static distance to the target.
- shot_distance:double;
+ shot_distance:double (id: 4);
}
table Status {
// All subsystems know their location.
- zeroed:bool;
+ zeroed:bool (id: 0);
// If true, we have aborted. This is if one or all subsystem estops.
- estopped:bool;
+ estopped:bool (id: 1);
// Subsystem status.
- hood:frc971.control_loops.AbsoluteEncoderProfiledJointStatus;
- intake:frc971.control_loops.AbsoluteEncoderProfiledJointStatus;
- turret:frc971.control_loops.PotAndAbsoluteEncoderProfiledJointStatus;
+ hood:frc971.control_loops.AbsoluteEncoderProfiledJointStatus (id: 2);
+ intake:frc971.control_loops.AbsoluteEncoderProfiledJointStatus (id: 3);
+ turret:frc971.control_loops.PotAndAbsoluteEncoderProfiledJointStatus (id: 4);
// Shooter subsystem status.
- shooter:ShooterStatus;
+ shooter:ShooterStatus (id: 5);
// Status of the control_panel
- control_panel:frc971.control_loops.RelativeEncoderProfiledJointStatus;
+ control_panel:frc971.control_loops.RelativeEncoderProfiledJointStatus (id: 6);
// Status of the vision auto-tracking.
- aimer:AimerStatus;
+ aimer:AimerStatus (id: 7);
}
root_type Status;