blob: 7e3620affca91edcacaa6e101b12ee88bcbd400c [file] [log] [blame]
package y2017.control_loops.serializer;
import "aos/common/controls/control_loops.q";
import "frc971/control_loops/control_loops.q";
queue_group SerializerQueue {
implements aos.control_loops.ControlLoop;
// All angles are in radians, and angular velocities are in radians/second.
// For all angular velocities, positive is moving balls up towards the
// shooter.
message Goal {
// Angular velocity goals in radians/second.
double angular_velocity;
};
message Position {
// Serializer angle in radians.
double theta;
};
message Status {
// The current average velocity in radians/second.
double avg_angular_velocity;
// The current instantaneous filtered velocity in radians/second.
double angular_velocity;
// True if the shooter is ready. It is better to compare the velocities
// directly so there isn't confusion on if the goal is up to date.
bool ready;
};
message Output {
// Voltage in volts of the shooter motor.
double voltage;
};
queue Goal goal;
queue Position position;
queue Output output;
queue Status status;
};
queue_group SerializerQueue shooter_queue;