4#include "IntakeAntiJam.h"
5#include "pros/rtos.hpp"
8IntakeAntiJam::IntakeAntiJam(pros::Motor& i_motor, pros::Motor& o_motor, pros::Motor& s_motor,
int temp)
15 jam_trigger_loops = 15;
16 reverse_duration_ms = 250;
20 anti_jam_enabled =
true;
23void IntakeAntiJam::enable_anti_jam(
bool enable) {
24 anti_jam_enabled = enable;
26 if (!anti_jam_enabled) {
31void IntakeAntiJam::set_velocities(
float i_vel,
float o_vel,
float s_vel) {
43void IntakeAntiJam::stop() {
44 set_velocities(0, 0, 0);
52void IntakeAntiJam::update() {
53 double max_t = std::max({
intakeMotor.get_temperature(),
56 if (max_t > maxTemp) {
63 if (!anti_jam_enabled ||
matchloader.is_extended()) {
68 bool is_stuck =
false;
70 if (std::abs(cmd_intake) > 0) {
71 std::int32_t intake_eff =
intakeMotor.get_efficiency();
72 if (intake_eff >= 7 && intake_eff <= 20) {
77 if (std::abs(cmd_storage) > 0) {
78 std::int32_t storage_eff =
storageMotor.get_efficiency();
79 if (storage_eff >= 7 && storage_eff <= 20) {
90 if (jam_counter > jam_trigger_loops) {
104 pros::delay(reverse_duration_ms);
111 is_unjamming =
false;
pros::adi::Pneumatics matchloader('C', false)
pros::adi::Pneumatics intake_lift('A', false)
pros::Motor storageMotor(2, pros::v5::MotorGears::blue)
pros::Motor outtakeMotor(3, pros::MotorGears::blue)
pros::Motor intakeMotor(-1, pros::v5::MotorGears::blue)