blob: 61208da41e1022b9195b38418100e62f5364a5eb [file] [log] [blame]
include "frc971/control_loops/control_loops.fbs";
include "frc971/control_loops/profiled_subsystem.fbs";
namespace y2020.control_loops.superstructure;
table FlywheelControllerStatus {
// The current average velocity in radians/second over the last kHistoryLength
// in shooter.h
avg_angular_velocity:double;
// The current instantaneous filtered velocity in radians/second.
angular_velocity:double;
// 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;
}
table ShooterStatus {
// The final wheel shooting the ball
finisher:FlywheelControllerStatus;
// The subsystem to accelerate the ball before the finisher
// Velocity is the fastest (top) wheel
accelerator_left:FlywheelControllerStatus;
accelerator_right:FlywheelControllerStatus;
}
table AimerStatus {
// The current goal angle for the turret auto-tracking, in radians.
turret_position:double;
// The current goal velocity for the turret, in radians / sec.
turret_velocity:double;
}
table Status {
// All subsystems know their location.
zeroed:bool;
// If true, we have aborted. This is if one or all subsystem estops.
estopped:bool;
// Subsystem status.
hood:frc971.control_loops.AbsoluteEncoderProfiledJointStatus;
intake:frc971.control_loops.AbsoluteEncoderProfiledJointStatus;
turret:frc971.control_loops.PotAndAbsoluteEncoderProfiledJointStatus;
// Shooter subsystem status.
shooter:ShooterStatus;
// Status of the control_panel
control_panel:frc971.control_loops.RelativeEncoderProfiledJointStatus;
// Status of the vision auto-tracking.
aimer:AimerStatus;
}
root_type Status;