24#ifndef TAPROOT_UNJAM_INTEGRAL_COMMAND_HPP_
25#define TAPROOT_UNJAM_INTEGRAL_COMMAND_HPP_
32#include "../interfaces/integrable_setpoint_subsystem.hpp"
106 void end(
bool interrupted)
override;
110 const char*
getName()
const override {
return "unjam move integral"; }
120 IntegrableSetpointSubsystem& integrableSetpointSubsystem;
132 uint16_t backwardsCount;
134 UnjamState currUnjamState;
136 float positionBeforeUnjam;
138 bool backwardsCleared;
140 bool forwardsCleared;
142 void beginUnjamForwards();
144 void beginUnjamBackwards();
Definition timeout.hpp:44
Definition integrable_setpoint_subsystem.hpp:43
Definition unjam_command_interface.hpp:40
Definition unjam_integral_command.hpp:54
bool isReady() override
Definition unjam_integral_command.cpp:55
void initialize() override
Definition unjam_integral_command.cpp:57
bool isFinished() const override
Definition unjam_integral_command.cpp:118
const char * getName() const override
Definition unjam_integral_command.hpp:110
void execute() override
Definition unjam_integral_command.cpp:70
void end(bool interrupted) override
Definition unjam_integral_command.cpp:109
Config(double p, double i, double d, double maxIntegralAccumulation, double maxOutput, double errorDerivativeFloor, double errorDeadzone=0.0, double tQDerivativeKalman=1.0, double tRDerivativeKalman=0.0, tRProportionalKalman=1.0)
Definition dimensional_smooth_pid.hpp:16
Definition pwm_info.hpp:4
Definition setpoint_continuous_jam_checker.hpp:36
Config struct that the user passes into the UnjamIntegralCommand's constructor.
Definition unjam_integral_command.hpp:58
float targetUnjamIntegralChange
Definition unjam_integral_command.hpp:66
float unjamSetpoint
Definition unjam_integral_command.hpp:73
uint32_t maxWaitTime
Definition unjam_integral_command.hpp:83
uint16_t targetCycleCount
Definition unjam_integral_command.hpp:90