Class MoveIntegralCommand

Nested Relationships

Nested Types

Inheritance Relationships

Base Type

Class Documentation

class MoveIntegralCommand : public tap::control::Command

A command that aims to keep the an IntegrableSetpointSubsystem’s setpoint at some target value until the integral of the setpoint over time equals a specified value.

Ends if the subsystem is offline or jammed.

Public Functions

MoveIntegralCommand(IntegrableSetpointSubsystem &integrableSetpointSubsystem, const Config &config)

See also

Config.

Parameters:
  • integrableSetpointSubsystem[in] The subsystem associated with the move integral command.

  • config[in] The move integral command’s config struct,

inline virtual const char *getName() const override
inline virtual bool isReady() override
virtual void initialize() override
inline virtual void execute() override
virtual void end(bool interrupted) override
virtual bool isFinished() const override

Protected Functions

inline bool targetIntegralReached() const
Returns:

True if the intgral setpoint has reached the target integral

Protected Attributes

Config config
IntegrableSetpointSubsystem &integrableSetpointSubsystem
float finalTargetIntegralSetpoint = 0
struct Config

Config struct that the user passes into the MoveIntegralCommand’s constructor.

Attention

targetIntegralChange and desiredSetpoint must have the same sign.

Public Members

float targetIntegralChange

The desired change with units units * seconds (units of setpoint integrated with respect to time).

float desiredSetpoint

The desired setpoint in units.

float integralSetpointTolerance

The difference between the current and desired integral when the command will be considered to be complete, in the integral of units.

Attention

This value must be >= 0