VEX IQ C++ API
|
Inherited by vex::smartdrive.
Public Member Functions | |
drivetrain (vex::motor_group &leftMotors, vex::motor_group &rightMotors, float wheelTravel=200, float trackWidth=176, float wheelBase=50, distanceUnits unit=distanceUnits::mm, float externalGearRatio=1.0) | |
Creates a new drivetrain object. More... | |
drivetrain (vex::motor &leftMotor, vex::motor &rightMotor, float wheelTravel=200, float trackWidth=176, float wheelBase=50, distanceUnits unit=distanceUnits::mm, float externalGearRatio=1.0) | |
~drivetrain () | |
void | setGearRatio (float ratio) |
Sets the external gear ratio of the drivetrain. More... | |
void | setDriveVelocity (float velocity, velocityUnits units) |
Sets the velocity of the drive 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 | setDriveVelocity (float velocity, percentUnits units) |
void | setTurnVelocity (float velocity, velocityUnits units) |
Sets the turn velocity of the drive based on the parameters set in the command. This command will not run the motor. More... | |
void | setTurnVelocity (float velocity, percentUnits units) |
void | setTimeout (float 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... | |
float | timeout (timeUnits units) |
bool | didTimeout () |
void | setStopping (brakeType mode) |
Sets the stopping mode of the motor group by passing a brake mode as a parameter. More... | |
void | drive (directionType dir) |
Turns the motors on, and drive in the specified direction. More... | |
void | drive (directionType dir, float velocity, velocityUnits units) |
Turn on the motors and drive in the specified direction and a specified velocity. More... | |
bool | driveFor (float distance, distanceUnits units, bool waitForCompletion=true) |
Turn on the motors and drive a distance at the default velocity. More... | |
bool | driveFor (directionType dir, float distance, distanceUnits units, bool waitForCompletion=true) |
Turn on the motors and drive a distance at the default velocity. More... | |
bool | driveFor (float distance, distanceUnits units, float velocity, velocityUnits units_v, bool waitForCompletion=true) |
Turn on the motors and drive a distance at a specified velocity. More... | |
bool | driveFor (directionType dir, float distance, distanceUnits units, float velocity, velocityUnits units_v, bool waitForCompletion=true) |
Turn on the motors and drive a distance at a specified velocity. More... | |
void | startDriveFor (float distance, distanceUnits distUnit) |
Start driving a distance at a pre-set velocity. More... | |
void | startDriveFor (directionType dir, float distance, distanceUnits distUnit) |
Start driving a distance at a pre-set velocity. More... | |
void | startDriveFor (float distance, distanceUnits distUnit, float velocity, velocityUnits velUnit) |
Start driving a distance at a specified velocity. More... | |
void | startDriveFor (directionType dir, float distance, distanceUnits distUnit, float velocity, velocityUnits velUnit) |
Start driving a distance at a specified velocity. More... | |
void | turn (turnType dir) |
Turns the motors on, and rotate in the specified direction. More... | |
void | turn (turnType dir, float velocity, velocityUnits units) |
Turns the motors on, and rotate in the specified direction and a specified velocity. More... | |
virtual bool | turnFor (float angle, rotationUnits units, bool waitForCompletion=true) |
Turn on the motors and rotate an angle at the default velocity. More... | |
virtual bool | turnFor (turnType dir, float angle, rotationUnits units, bool waitForCompletion=true) |
Turn on the motors and rotate an angle at the default velocity. More... | |
virtual bool | turnFor (float angle, rotationUnits units, float velocity, velocityUnits units_v, bool waitForCompletion=true) |
Turn on the motors and rotate an angle at a specified velocity. More... | |
virtual bool | turnFor (turnType dir, float angle, rotationUnits units, float velocity, velocityUnits units_v, bool waitForCompletion=true) |
Turn on the motors and rotate an angle at a specified velocity. More... | |
virtual void | startTurnFor (float angle, rotationUnits angleUnit) |
Start turning the drivetrain for a given angle. More... | |
virtual void | startTurnFor (turnType dir, float angle, rotationUnits angleUnit) |
Start turning the drivetrain for a given angle. More... | |
virtual void | startTurnFor (float angle, rotationUnits angleUnit, float velocity, velocityUnits velUnit) |
Start turning the drivetrain for a given angle at a given velocity. More... | |
virtual void | startTurnFor (turnType dir, float angle, rotationUnits angleUnit, float velocity, velocityUnits velUnit) |
Start turning the drivetrain for a given angle at a given velocity. More... | |
virtual bool | isMoving (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 () |
Stops the drive using the default brake mode. More... | |
void | stop (brakeType mode) |
Stops the drive using a specified brake mode. More... | |
void | arcade (float drivePower, float turnPower, percentUnits units=percentUnits::pct) |
Drive in arcade mode, normally corresponding to two controller joystick axis values. More... | |
float | velocity (velocityUnits units) |
Gets the average velocity of the drivetrain;. More... | |
float | velocity (percentUnits units) |
float | current (currentUnits units=currentUnits::amp) |
Gets the total current of the drivetrain;. More... | |
Protected Attributes | |
Drivetrain_t | _dt |
vex::drivetrain::drivetrain | ( | vex::motor_group & | leftMotors, |
vex::motor_group & | rightMotors, | ||
float | wheelTravel = 200 , |
||
float | trackWidth = 176 , |
||
float | wheelBase = 50 , |
||
distanceUnits | unit = distanceUnits::mm , |
||
float | externalGearRatio = 1.0 |
||
) |
Creates a new drivetrain object.
leftMotors | motor group driving the left side of the drivetrain |
rightMotors | motor group driving the right side of the drivetrain |
wheelTravel | circumference of the wheel type used |
trackWidth | distance between the wheels on opposite sides |
wheelBase | |
unit | distance unit for wheelTravel and trackWith |
externalGearRatio | external gear ratio, usually 1.0 |
vex::drivetrain::drivetrain | ( | vex::motor & | leftMotor, |
vex::motor & | rightMotor, | ||
float | wheelTravel = 200 , |
||
float | trackWidth = 176 , |
||
float | wheelBase = 50 , |
||
distanceUnits | unit = distanceUnits::mm , |
||
float | externalGearRatio = 1.0 |
||
) |
vex::drivetrain::~drivetrain | ( | ) |
void vex::drivetrain::setGearRatio | ( | float | ratio | ) |
Sets the external gear ratio of the drivetrain.
ratio | gear ratio value, usually 1.0 |
void vex::drivetrain::setDriveVelocity | ( | float | velocity, |
velocityUnits | units | ||
) |
Sets the velocity of the drive 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.
velocity | Sets the amount of velocity. |
units | The measurement unit for the velocity value. |
void vex::drivetrain::setDriveVelocity | ( | float | velocity, |
percentUnits | units | ||
) |
void vex::drivetrain::setTurnVelocity | ( | float | velocity, |
velocityUnits | units | ||
) |
Sets the turn velocity of the drive based on the parameters set in the command. This command will not run the motor.
velocity | Sets the amount of velocity. |
units | The measurement unit for the velocity value. |
void vex::drivetrain::setTurnVelocity | ( | float | velocity, |
percentUnits | units | ||
) |
void vex::drivetrain::setTimeout | ( | float | 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.
time | Sets the amount of time. |
units | The measurement unit for the time value. |
float vex::drivetrain::timeout | ( | timeUnits | units | ) |
bool vex::drivetrain::didTimeout | ( | ) |
void vex::drivetrain::setStopping | ( | brakeType | mode | ) |
Sets the stopping mode of the motor group by passing a brake mode as a parameter.
mode | The stopping mode can be set to coast, brake, or hold. |
void vex::drivetrain::drive | ( | directionType | dir | ) |
Turns the motors on, and drive in the specified direction.
dir | The direction to drive. |
void vex::drivetrain::drive | ( | directionType | dir, |
float | velocity, | ||
velocityUnits | units | ||
) |
Turn on the motors and drive in the specified direction and a specified velocity.
dir | The direction to drive. |
velocity | Sets the amount of velocity. |
units | The measurement unit for the velocity value. |
bool vex::drivetrain::driveFor | ( | float | distance, |
distanceUnits | units, | ||
bool | waitForCompletion = true |
||
) |
Turn on the motors and drive a distance at the default velocity.
distance | Sets the distance to drive. |
units | The measurement unit for the distance 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. |
bool vex::drivetrain::driveFor | ( | directionType | dir, |
float | distance, | ||
distanceUnits | units, | ||
bool | waitForCompletion = true |
||
) |
Turn on the motors and drive a distance at the default velocity.
dir | The direction to drive in. |
distance | Sets the distance to drive. |
units | The measurement unit for the distance 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. |
bool vex::drivetrain::driveFor | ( | float | distance, |
distanceUnits | units, | ||
float | velocity, | ||
velocityUnits | units_v, | ||
bool | waitForCompletion = true |
||
) |
Turn on the motors and drive a distance at a specified velocity.
distance | Sets the distance to drive. |
units | The measurement unit for the distance value. |
velocity | Sets the amount of velocity. |
units_v | The 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. |
bool vex::drivetrain::driveFor | ( | directionType | dir, |
float | distance, | ||
distanceUnits | units, | ||
float | velocity, | ||
velocityUnits | units_v, | ||
bool | waitForCompletion = true |
||
) |
Turn on the motors and drive a distance at a specified velocity.
dir | The direction to drive in. |
distance | Sets the distance to drive. |
units | The measurement unit for the distance value. |
velocity | Sets the amount of velocity. |
units_v | The 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. |
void vex::drivetrain::startDriveFor | ( | float | distance, |
distanceUnits | distUnit | ||
) |
Start driving a distance at a pre-set velocity.
distance | Sets the distance to drive. |
distUnit | The measurement unit for the distance value. |
void vex::drivetrain::startDriveFor | ( | directionType | dir, |
float | distance, | ||
distanceUnits | distUnit | ||
) |
Start driving a distance at a pre-set velocity.
dir | The direction to drive in. |
distance | Sets the distance to drive. |
distUnit | The measurement unit for the distance value. |
void vex::drivetrain::startDriveFor | ( | float | distance, |
distanceUnits | distUnit, | ||
float | velocity, | ||
velocityUnits | velUnit | ||
) |
Start driving a distance at a specified velocity.
distance | Sets the distance to drive. |
distUnit | The measurement unit for the distance value. |
velocity | Sets the amount of velocity. |
velUnit | The measurement unit for the velocity value. |
void vex::drivetrain::startDriveFor | ( | directionType | dir, |
float | distance, | ||
distanceUnits | distUnit, | ||
float | velocity, | ||
velocityUnits | velUnit | ||
) |
Start driving a distance at a specified velocity.
dir | The direction to drive in. |
distance | Sets the distance to drive. |
distUnit | The measurement unit for the distance value. |
velocity | Sets the amount of velocity. |
velUnit | The measurement unit for the velocity value. |
void vex::drivetrain::turn | ( | turnType | dir | ) |
Turns the motors on, and rotate in the specified direction.
dir | The direction to rotate the robot. |
void vex::drivetrain::turn | ( | turnType | dir, |
float | velocity, | ||
velocityUnits | units | ||
) |
Turns the motors on, and rotate in the specified direction and a specified velocity.
dir | The direction to rotate the robot. |
velocity | Sets the amount of velocity. |
units | The measurement unit for the velocity value. |
|
virtual |
Turn on the motors and rotate an angle at the default velocity.
angle | Sets the angle to turn. |
units | The measurement unit for the angle 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. |
Reimplemented in vex::smartdrive.
|
virtual |
Turn on the motors and rotate an angle at the default velocity.
dir | Direction to turn in, left or right. |
angle | Sets the angle to turn. |
units | The measurement unit for the angle 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. |
Reimplemented in vex::smartdrive.
|
virtual |
Turn on the motors and rotate an angle at a specified velocity.
angle | Sets the angle to turn. |
units | The measurement unit for the angle value. |
velocity | Sets the amount of velocity. |
units_v | The 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. |
Reimplemented in vex::smartdrive.
|
virtual |
Turn on the motors and rotate an angle at a specified velocity.
dir | Direction to turn in, left or right. |
angle | Sets the angle to turn. |
units | The measurement unit for the angle value. |
velocity | Sets the amount of velocity. |
units_v | The 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. |
Reimplemented in vex::smartdrive.
|
virtual |
Start turning the drivetrain for a given angle.
angle | Sets the angle to turn. |
angleUnit | The measurement unit for the angle value. |
Reimplemented in vex::smartdrive.
|
virtual |
Start turning the drivetrain for a given angle.
dir | Direction to turn in, left or right. |
angle | Sets the angle to turn. |
angleUnit | The measurement unit for the angle value. |
Reimplemented in vex::smartdrive.
|
virtual |
Start turning the drivetrain for a given angle at a given velocity.
angle | Sets the angle to turn. |
angleUnit | The measurement unit for the angle value. |
velocity | Sets the amount of velocity. |
velUnit | The measurement unit for the velocity value. |
Reimplemented in vex::smartdrive.
|
virtual |
Start turning the drivetrain for a given angle at a given velocity.
dir | Direction to turn in, left or right. |
angle | Sets the angle to turn. |
angleUnit | The measurement unit for the angle value. |
velocity | Sets the amount of velocity. |
velUnit | The measurement unit for the velocity value. |
Reimplemented in vex::smartdrive.
|
virtual |
Checks to see if any of the motors are rotating to a specific target.
Reimplemented in vex::smartdrive.
bool vex::drivetrain::isDone | ( | void | ) |
Checks to see if all the motor are done rotating to a specific target.
void vex::drivetrain::stop | ( | ) |
Stops the drive using the default brake mode.
void vex::drivetrain::stop | ( | brakeType | mode | ) |
Stops the drive using a specified brake mode.
mode | The brake mode can be set to coast, brake, or hold. |
void vex::drivetrain::arcade | ( | float | drivePower, |
float | turnPower, | ||
percentUnits | units = percentUnits::pct |
||
) |
Drive in arcade mode, normally corresponding to two controller joystick axis values.
drivePower | percent power to apply to driving, -100..100 |
turnPower | percent power to apply to turning, -100..100 |
units | percent |
float vex::drivetrain::velocity | ( | velocityUnits | units | ) |
Gets the average velocity of the drivetrain;.
units | The measurement unit for the velocity. |
|
inline |
float vex::drivetrain::current | ( | currentUnits | units = currentUnits::amp | ) |
Gets the total current of the drivetrain;.
units | The measurement unit for the current. |
|
protected |