VEX V5 C++ API
Classes | Public Member Functions | Friends | List of all members
vex::motor_group Class Reference

Public Member Functions

 ~motor_group ()
 
template<typename... Args>
 motor_group (vex::motor &m1, Args &... m2)
 
template<typename... Args>
void operator() (vex::motor &m1, Args &... m2)
 
int32_t count (void)
 return the number of motors in the motor group More...
 
void setVelocity (double velocity, velocityUnits units)
 Sets the velocity of the motor group based on the parameters set in the command. This command will not run the motor. Any subsequent call that does not contain a specified motor velocity will use this value. More...
 
void setVelocity (double velocity, percentUnits units)
 
void setStopping (brakeType mode)
 Sets the stopping mode of the motor group by passing a brake mode as a parameter. More...
 
void resetRotation (void)
 Resets all motor encoders to the value of zero. More...
 
void resetPosition (void)
 Resets the motor's encoder to the value of zero. More...
 
void setRotation (double value, rotationUnits units)
 Sets the value of all motor encoders to the value specified in the parameter. More...
 
void setPosition (double value, rotationUnits units)
 Sets the value of all motor encoders to the value specified in the parameter. More...
 
void setTimeout (double time, timeUnits units)
 Sets the timeout for the motor group. If the motor group does not reach its' commanded position prior to the completion of the timeout, the motors will stop. More...
 
double timeout (timeUnits units)
 
void spin (directionType dir)
 Turns the motors on, and spins them in the specified direction. More...
 
void spin (directionType dir, double velocity, velocityUnits units)
 Turn on the motors and spins them in the specified direction and a specified velocity. More...
 
void spin (directionType dir, double velocity, percentUnits units)
 
void spin (directionType dir, double voltage, voltageUnits units)
 Turn on the motors and spins them in the specified direction and a specified voltage. More...
 
bool spinTo (double rotation, rotationUnits units, double velocity, velocityUnits units_v, bool waitForCompletion=true)
 Turns on the motors and spin them to an absolute target rotation value at a specified velocity. More...
 
bool spinTo (double rotation, rotationUnits units, bool waitForCompletion=true)
 Turn on the motors and spin them to an absolute target rotation value. More...
 
bool spinToPosition (double rotation, rotationUnits units, double velocity, velocityUnits units_v, bool waitForCompletion=true)
 Turns on the motors and spin them to an absolute target rotation value at a specified velocity. More...
 
bool spinToPosition (double rotation, rotationUnits units, bool waitForCompletion=true)
 Turn on the motors and spin them to an absolute target rotation value. More...
 
bool spinFor (double rotation, rotationUnits units, double velocity, velocityUnits units_v, bool waitForCompletion=true)
 Turn on the motors and spin them to a relative target rotation value at a specified velocity. More...
 
bool spinFor (directionType dir, double rotation, rotationUnits units, double velocity, velocityUnits units_v, bool waitForCompletion=true)
 Turn on the motors and spin them to a relative target rotation value at a specified velocity. More...
 
bool spinFor (double rotation, rotationUnits units, bool waitForCompletion=true)
 Turn on the motors and spin them to a relative target rotation value. More...
 
bool spinFor (directionType dir, double rotation, rotationUnits units, bool waitForCompletion=true)
 Turn on the motors and spin them to a relative target rotation value. More...
 
void spinFor (double time, timeUnits units, double velocity, velocityUnits units_v)
 Turn on the motors and spin them to a relative target time value at a specified velocity. More...
 
void spinFor (directionType dir, double time, timeUnits units, double velocity, velocityUnits units_v)
 Turn on the motors and spin them to a relative target time value at a specified velocity. More...
 
void spinFor (double time, timeUnits units)
 Turn on the motors and spin them to a relative target time value. More...
 
void spinFor (directionType dir, double time, timeUnits units)
 Turn on the motors and spin them to a relative target time value. More...
 
void startSpinTo (double rotation, rotationUnits units, double velocity, velocityUnits units_v)
 Starts spinning the motors to an absolute target rotation but does not wait for the motors to reach that target. More...
 
void startSpinTo (double rotation, rotationUnits units)
 Starts spinning the motors to an absolute target rotation but does not wait for the motors to reach that target.. More...
 
void startSpinToPosition (double rotation, rotationUnits units, double velocity, velocityUnits units_v)
 Starts spinning the motors to an absolute target rotation but does not wait for the motors to reach that target. Same as startSpinTo. More...
 
void startSpinToPosition (double rotation, rotationUnits units)
 Starts spinning the motors to an absolute target rotation but does not wait for the motors to reach that target. Same as startSpinTo. More...
 
void startSpinFor (double rotation, rotationUnits units, double velocity, velocityUnits units_v)
 Starts spinning the motors to a relative target rotation but does not wait for the motors to reach that target. More...
 
void startSpinFor (directionType dir, double rotation, rotationUnits units, double velocity, velocityUnits units_v)
 Starts spinning the motors to a relative target rotation but does not wait for the motors to reach that target. More...
 
void startSpinFor (double rotation, rotationUnits units)
 Starts spinning the motors to a relative target but does not wait for the motors to reach that target. More...
 
void startSpinFor (directionType dir, double rotation, rotationUnits units)
 Starts spinning the motors to a relative target but does not wait for the motors to reach that target. More...
 
bool isSpinning (void)
 Checks to see if any of the motors are rotating to a specific target. More...
 
bool isDone (void)
 Checks to see if all the motor are done rotating to a specific target. More...
 
void stop (void)
 Stops all motors using the default brake mode. More...
 
void stop (brakeType mode)
 Stops all motors using a specified brake mode. More...
 
void setMaxTorque (double value, percentUnits units)
 Sets the max torque of the motors. More...
 
void setMaxTorque (double value, torqueUnits units)
 Sets the max torque of the motors. More...
 
void setMaxTorque (double value, currentUnits units)
 Sets the max torque of the motors. More...
 
directionType direction (void)
 Gets which direction the first motor in the group is spinning. More...
 
double rotation (rotationUnits units)
 Gets the current rotation of the first motor in the group's encoder. More...
 
double position (rotationUnits units)
 Gets the current position of the first motor in the group's encoder. More...
 
double velocity (velocityUnits units)
 Gets the current velocity of the first motor in the group. More...
 
double velocity (percentUnits units)
 
double current (currentUnits units=currentUnits::amp)
 Gets the sum electrical current for all motors in the group. More...
 
double power (powerUnits units=powerUnits::watt)
 Gets the power of the first motor in the group. More...
 
double torque (torqueUnits units=torqueUnits::Nm)
 Gets the torque of the first motor in the group. More...
 
double efficiency (percentUnits units=percentUnits::pct)
 Gets the efficiency of the first motor in the group. More...
 
double temperature (percentUnits units=percentUnits::pct)
 Gets the temperature of the first motor in the group. More...
 
double temperature (temperatureUnits units)
 Gets the temperature of the motor. More...
 

Friends

class drivetrain
 

Constructor & Destructor Documentation

◆ ~motor_group()

vex::motor_group::~motor_group ( )

◆ motor_group()

template<typename... Args>
vex::motor_group::motor_group ( vex::motor m1,
Args &...  m2 
)
inline

Member Function Documentation

◆ operator()()

template<typename... Args>
void vex::motor_group::operator() ( vex::motor m1,
Args &...  m2 
)
inline

◆ count()

int32_t vex::motor_group::count ( void  )

return the number of motors in the motor group

Returns
number of motors

◆ setVelocity() [1/2]

void vex::motor_group::setVelocity ( double  velocity,
velocityUnits  units 
)

Sets the velocity of the motor group based on the parameters set in the command. This command will not run the motor. Any subsequent call that does not contain a specified motor velocity will use this value.

Parameters
velocitySets the amount of velocity.
unitsThe measurement unit for the velocity value.

◆ setVelocity() [2/2]

void vex::motor_group::setVelocity ( double  velocity,
percentUnits  units 
)
inline

◆ setStopping()

void vex::motor_group::setStopping ( brakeType  mode)

Sets the stopping mode of the motor group by passing a brake mode as a parameter.

Parameters
modeThe stopping mode can be set to coast, brake, or hold.

◆ resetRotation()

void vex::motor_group::resetRotation ( void  )

Resets all motor encoders to the value of zero.

◆ resetPosition()

void vex::motor_group::resetPosition ( void  )

Resets the motor's encoder to the value of zero.

◆ setRotation()

void vex::motor_group::setRotation ( double  value,
rotationUnits  units 
)

Sets the value of all motor encoders to the value specified in the parameter.

Parameters
valueSets the amount of rotation.
unitsThe measurement unit for the rotation value.

◆ setPosition()

void vex::motor_group::setPosition ( double  value,
rotationUnits  units 
)

Sets the value of all motor encoders to the value specified in the parameter.

Parameters
valueSets the current position of the motor.
unitsThe measurement unit for the position value.

◆ setTimeout()

void vex::motor_group::setTimeout ( double  time,
timeUnits  units 
)

Sets the timeout for the motor group. If the motor group does not reach its' commanded position prior to the completion of the timeout, the motors will stop.

Parameters
timeSets the amount of time.
unitsThe measurement unit for the time value.

◆ timeout()

double vex::motor_group::timeout ( timeUnits  units)

◆ spin() [1/4]

void vex::motor_group::spin ( directionType  dir)

Turns the motors on, and spins them in the specified direction.

Parameters
dirThe direction to spin the motors.

◆ spin() [2/4]

void vex::motor_group::spin ( directionType  dir,
double  velocity,
velocityUnits  units 
)

Turn on the motors and spins them in the specified direction and a specified velocity.

Parameters
dirThe direction to spin the motors.
velocitySets the amount of velocity.
unitsThe measurement unit for the velocity value.

◆ spin() [3/4]

void vex::motor_group::spin ( directionType  dir,
double  velocity,
percentUnits  units 
)
inline

◆ spin() [4/4]

void vex::motor_group::spin ( directionType  dir,
double  voltage,
voltageUnits  units 
)

Turn on the motors and spins them in the specified direction and a specified voltage.

Parameters
dirThe direction to spin the motors.
voltageSets the amount of volts.
unitsThe measurement unit for the voltage value.

◆ spinTo() [1/2]

bool vex::motor_group::spinTo ( double  rotation,
rotationUnits  units,
double  velocity,
velocityUnits  units_v,
bool  waitForCompletion = true 
)

Turns on the motors and spin them to an absolute target rotation value at a specified velocity.

Returns
Returns a Boolean that signifies when the motors have reached the target rotation value.
Parameters
rotationSets the amount of rotation.
unitsThe measurement unit for the rotation value.
velocitySets the amount of velocity.
units_vThe measurement unit for the velocity value.
waitForCompletion(Optional) If true, your program will wait until the motor reaches the target rotational value. If false, the program will continue after calling this function. By default, this parameter is true.

◆ spinTo() [2/2]

bool vex::motor_group::spinTo ( double  rotation,
rotationUnits  units,
bool  waitForCompletion = true 
)

Turn on the motors and spin them to an absolute target rotation value.

Returns
Returns a Boolean that signifies when the motor has reached the target rotation value.
Parameters
rotationSets the amount of rotation.
unitsThe measurement unit for the rotation value.
waitForCompletion(Optional) If true, your program will wait until the motor reaches the target rotational value. If false, the program will continue after calling this function. By default, this parameter is true.

◆ spinToPosition() [1/2]

bool vex::motor_group::spinToPosition ( double  rotation,
rotationUnits  units,
double  velocity,
velocityUnits  units_v,
bool  waitForCompletion = true 
)

Turns on the motors and spin them to an absolute target rotation value at a specified velocity.

Returns
Returns a Boolean that signifies when the motors have reached the target rotation value.
Parameters
rotationSets the amount of rotation.
unitsThe measurement unit for the rotation value.
velocitySets the amount of velocity.
units_vThe measurement unit for the velocity value.
waitForCompletion(Optional) If true, your program will wait until the motor reaches the target rotational value. If false, the program will continue after calling this function. By default, this parameter is true.

◆ spinToPosition() [2/2]

bool vex::motor_group::spinToPosition ( double  rotation,
rotationUnits  units,
bool  waitForCompletion = true 
)

Turn on the motors and spin them to an absolute target rotation value.

Returns
Returns a Boolean that signifies when the motor has reached the target rotation value.
Parameters
rotationSets the amount of rotation.
unitsThe measurement unit for the rotation value.
waitForCompletion(Optional) If true, your program will wait until the motor reaches the target rotational value. If false, the program will continue after calling this function. By default, this parameter is true.

◆ spinFor() [1/8]

bool vex::motor_group::spinFor ( double  rotation,
rotationUnits  units,
double  velocity,
velocityUnits  units_v,
bool  waitForCompletion = true 
)

Turn on the motors and spin them to a relative target rotation value at a specified velocity.

Returns
Returns a Boolean that signifies when the motor has reached the target rotation value.
Parameters
rotationSets the amount of rotation.
unitsThe measurement unit for the rotation value.
velocitySets the amount of velocity.
units_vThe measurement unit for the velocity value.
waitForCompletion(Optional) If true, your program will wait until the motor reaches the target rotational value. If false, the program will continue after calling this function. By default, this parameter is true.

◆ spinFor() [2/8]

bool vex::motor_group::spinFor ( directionType  dir,
double  rotation,
rotationUnits  units,
double  velocity,
velocityUnits  units_v,
bool  waitForCompletion = true 
)

Turn on the motors and spin them to a relative target rotation value at a specified velocity.

Returns
Returns a Boolean that signifies when the motor has reached the target rotation value.
Parameters
dirThe direction to spin the motors.
rotationSets the amount of rotation.
unitsThe measurement unit for the rotation value.
velocitySets the amount of velocity.
units_vThe measurement unit for the velocity value.
waitForCompletion(Optional) If true, your program will wait until the motor reaches the target rotational value. If false, the program will continue after calling this function. By default, this parameter is true.

◆ spinFor() [3/8]

bool vex::motor_group::spinFor ( double  rotation,
rotationUnits  units,
bool  waitForCompletion = true 
)

Turn on the motors and spin them to a relative target rotation value.

Returns
Returns a Boolean that signifies when the motor has reached the target rotation value.
Parameters
rotationSets the amount of rotation.
unitsThe measurement unit for the rotation value.
waitForCompletion(Optional) If true, your program will wait until the motor reaches the target rotational value. If false, the program will continue after calling this function. By default, this parameter is true.

◆ spinFor() [4/8]

bool vex::motor_group::spinFor ( directionType  dir,
double  rotation,
rotationUnits  units,
bool  waitForCompletion = true 
)

Turn on the motors and spin them to a relative target rotation value.

Returns
Returns a Boolean that signifies when the motor has reached the target rotation value.
Parameters
dirThe direction to spin the motors.
rotationSets the amount of rotation.
unitsThe measurement unit for the rotation value.
waitForCompletion(Optional) If true, your program will wait until the motor reaches the target rotational value. If false, the program will continue after calling this function. By default, this parameter is true.

◆ spinFor() [5/8]

void vex::motor_group::spinFor ( double  time,
timeUnits  units,
double  velocity,
velocityUnits  units_v 
)

Turn on the motors and spin them to a relative target time value at a specified velocity.

Parameters
timeSets the amount of time.
unitsThe measurement unit for the time value.
velocitySets the amount of velocity.
units_vThe measurement unit for the velocity value.

◆ spinFor() [6/8]

void vex::motor_group::spinFor ( directionType  dir,
double  time,
timeUnits  units,
double  velocity,
velocityUnits  units_v 
)

Turn on the motors and spin them to a relative target time value at a specified velocity.

Parameters
dirThe direction to spin the motors.
timeSets the amount of time.
unitsThe measurement unit for the time value.
velocitySets the amount of velocity.
units_vThe measurement unit for the velocity value.

◆ spinFor() [7/8]

void vex::motor_group::spinFor ( double  time,
timeUnits  units 
)

Turn on the motors and spin them to a relative target time value.

Parameters
timeSets the amount of time.
unitsThe measurement unit for the time value.

◆ spinFor() [8/8]

void vex::motor_group::spinFor ( directionType  dir,
double  time,
timeUnits  units 
)

Turn on the motors and spin them to a relative target time value.

Parameters
dirThe direction to spin the motors.
timeSets the amount of time.
unitsThe measurement unit for the time value.

◆ startSpinTo() [1/2]

void vex::motor_group::startSpinTo ( double  rotation,
rotationUnits  units,
double  velocity,
velocityUnits  units_v 
)

Starts spinning the motors to an absolute target rotation but does not wait for the motors to reach that target.

Parameters
rotationSets the amount of rotation.
unitsThe measurement unit for the rotation value.
velocitySets the amount of velocity.
units_vThe measurement unit for the velocity value.

◆ startSpinTo() [2/2]

void vex::motor_group::startSpinTo ( double  rotation,
rotationUnits  units 
)

Starts spinning the motors to an absolute target rotation but does not wait for the motors to reach that target..

Parameters
rotationSets the amount of rotation.
unitsThe measurement unit for the rotation value.

◆ startSpinToPosition() [1/2]

void vex::motor_group::startSpinToPosition ( double  rotation,
rotationUnits  units,
double  velocity,
velocityUnits  units_v 
)

Starts spinning the motors to an absolute target rotation but does not wait for the motors to reach that target. Same as startSpinTo.

Parameters
rotationSets the amount of rotation.
unitsThe measurement unit for the rotation value.
velocitySets the amount of velocity.
units_vThe measurement unit for the velocity value.

◆ startSpinToPosition() [2/2]

void vex::motor_group::startSpinToPosition ( double  rotation,
rotationUnits  units 
)

Starts spinning the motors to an absolute target rotation but does not wait for the motors to reach that target. Same as startSpinTo.

Parameters
rotationSets the amount of rotation.
unitsThe measurement unit for the rotation value.

◆ startSpinFor() [1/4]

void vex::motor_group::startSpinFor ( double  rotation,
rotationUnits  units,
double  velocity,
velocityUnits  units_v 
)

Starts spinning the motors to a relative target rotation but does not wait for the motors to reach that target.

Parameters
rotationSets the amount of rotation.
unitsThe measurement unit for the rotation value.
velocitySets the amount of velocity.
units_vThe measurement unit for the velocity value.

◆ startSpinFor() [2/4]

void vex::motor_group::startSpinFor ( directionType  dir,
double  rotation,
rotationUnits  units,
double  velocity,
velocityUnits  units_v 
)

Starts spinning the motors to a relative target rotation but does not wait for the motors to reach that target.

Parameters
dirThe direction to spin the motor.
rotationSets the amount of rotation.
unitsThe measurement unit for the rotation value.
velocitySets the amount of velocity.
units_vThe measurement unit for the velocity value.

◆ startSpinFor() [3/4]

void vex::motor_group::startSpinFor ( double  rotation,
rotationUnits  units 
)

Starts spinning the motors to a relative target but does not wait for the motors to reach that target.

Parameters
rotationSets the amount of rotation.
unitsThe measurement unit for the rotation value.

◆ startSpinFor() [4/4]

void vex::motor_group::startSpinFor ( directionType  dir,
double  rotation,
rotationUnits  units 
)

Starts spinning the motors to a relative target but does not wait for the motors to reach that target.

Parameters
dirThe direction to spin the motor.
rotationSets the amount of rotation.
unitsThe measurement unit for the rotation value.

◆ isSpinning()

bool vex::motor_group::isSpinning ( void  )

Checks to see if any of the motors are rotating to a specific target.

Returns
Returns a true Boolean if the motor is on and is rotating to a target. Returns a false Boolean if the motor is done rotating to a target.

◆ isDone()

bool vex::motor_group::isDone ( void  )

Checks to see if all the motor are done rotating to a specific target.

Returns
Returns a false Boolean if the motor is on and is rotating to a target. Returns a true Boolean if the motor is done rotating to a target.

◆ stop() [1/2]

void vex::motor_group::stop ( void  )

Stops all motors using the default brake mode.

◆ stop() [2/2]

void vex::motor_group::stop ( brakeType  mode)

Stops all motors using a specified brake mode.

Parameters
modeThe brake mode can be set to coast, brake, or hold.

◆ setMaxTorque() [1/3]

void vex::motor_group::setMaxTorque ( double  value,
percentUnits  units 
)

Sets the max torque of the motors.

Parameters
valueSets the amount of torque.
unitsThe measurement unit for the torque value.

◆ setMaxTorque() [2/3]

void vex::motor_group::setMaxTorque ( double  value,
torqueUnits  units 
)

Sets the max torque of the motors.

Parameters
valueSets the amount of torque.
unitsThe measurement unit for the torque value.

◆ setMaxTorque() [3/3]

void vex::motor_group::setMaxTorque ( double  value,
currentUnits  units 
)

Sets the max torque of the motors.

Parameters
valueSets the amount of torque.
unitsThe measurement unit for the torque value.

◆ direction()

directionType vex::motor_group::direction ( void  )

Gets which direction the first motor in the group is spinning.

Returns
Returns the direction that the motor is spinning.

◆ rotation()

double vex::motor_group::rotation ( rotationUnits  units)

Gets the current rotation of the first motor in the group's encoder.

Returns
Returns a double that represents the current rotation of the motor in the units defined in the parameter.
Parameters
unitsThe measurement unit for the rotation.

◆ position()

double vex::motor_group::position ( rotationUnits  units)

Gets the current position of the first motor in the group's encoder.

Returns
Returns a double that represents the current position of the motor in the units defined in the parameter.
Parameters
unitsThe measurement unit for the position.

◆ velocity() [1/2]

double vex::motor_group::velocity ( velocityUnits  units)

Gets the current velocity of the first motor in the group.

Returns
Returns a double that represents the current velocity of the motor in the units defined in the parameter.
Parameters
unitsThe measurement unit for the velocity.

◆ velocity() [2/2]

double vex::motor_group::velocity ( percentUnits  units)
inline

◆ current()

double vex::motor_group::current ( currentUnits  units = currentUnits::amp)

Gets the sum electrical current for all motors in the group.

Returns
Returns a double that represents the electrical current of the motors in the units defined in the parameter.
Parameters
unitsThe measurement unit for the current.

◆ power()

double vex::motor_group::power ( powerUnits  units = powerUnits::watt)

Gets the power of the first motor in the group.

Returns
Returns a double that represents the power of the motor in the units defined in the parameter.
Parameters
unitsThe measurement unit for the power.

◆ torque()

double vex::motor_group::torque ( torqueUnits  units = torqueUnits::Nm)

Gets the torque of the first motor in the group.

Returns
Returns a double that represents the torque of the motor in the units defined in the parameter.
Parameters
unitsThe measurement unit for the torque.

◆ efficiency()

double vex::motor_group::efficiency ( percentUnits  units = percentUnits::pct)

Gets the efficiency of the first motor in the group.

Returns
Returns the efficiency of the motor in the units defined in the parameter.
Parameters
units(Optional) The measurement unit for the efficiency. By default, this parameter is a percentage.

◆ temperature() [1/2]

double vex::motor_group::temperature ( percentUnits  units = percentUnits::pct)

Gets the temperature of the first motor in the group.

Returns
Returns the temperature of the motor in the units defined in the parameter.
Parameters
unitsThe measurement unit for the temperature.

◆ temperature() [2/2]

double vex::motor_group::temperature ( temperatureUnits  units)

Gets the temperature of the motor.

Returns
Returns the temperature of the motor in the units defined in the parameter.
Parameters
unitsThe measurement unit for the temperature.

Friends And Related Function Documentation

◆ drivetrain

friend class drivetrain
friend