14#ifndef VEX_DRIVETRAIN_CLASS_H
15#define VEX_DRIVETRAIN_CLASS_H
31 double _wheel_circumference;
34 double _wheel_motor_gear_ratio;
37 bool _waitForCompletionAll();
38 double _distanceToRevs(
double distance, distanceUnits units );
39 double _angleToRevs(
double angle, rotationUnits units );
42 drivetrain(
motor_group &l,
motor_group &r,
double wheelTravel=200,
double trackWidth=200,
double wheelBase=50, distanceUnits unit=distanceUnits::mm,
double externalGearRatio = 1.0 );
43 drivetrain(
vex::motor &l,
vex::motor &r,
double wheelTravel=200,
double trackWidth=200,
double wheelBase=50, distanceUnits unit=distanceUnits::mm,
double externalGearRatio = 1.0 );
47 void setGearRatio(
double ratio );
84 void drive( directionType dir ) ;
103 bool driveFor( directionType dir,
double distance, distanceUnits units,
bool waitForCompletion=
true );
116 bool driveFor( directionType dir,
double distance, distanceUnits units,
double velocity, velocityUnits units_v,
bool waitForCompletion=
true );
139 virtual bool turnFor(
double angle, rotationUnits units,
bool waitForCompletion=
true );
141 virtual bool turnFor( turnType dir,
double angle, rotationUnits units,
bool waitForCompletion=
true );
152 virtual bool turnFor(
double angle, rotationUnits units,
double velocity, velocityUnits units_v,
bool waitForCompletion=
true );
154 virtual bool turnFor( turnType dir,
double angle, rotationUnits units,
double velocity, velocityUnits units_v,
bool waitForCompletion=
true );
179 void arcade(
double drivePower,
double turnPower, percentUnits units=percentUnits::pct );
188 double velocity( percentUnits units ) {
189 return velocity(
static_cast<velocityUnits
>(units) );
197 double current( currentUnits units = currentUnits::amp );
214 double voltage( voltageUnits units = voltageUnits::volt );
221 double power( powerUnits units = powerUnits::watt );
228 double torque( torqueUnits units = torqueUnits::Nm );
246 double distanceToMm(
double distance, distanceUnits units );
247 double angleToDeg(
double angle, rotationUnits units );
248 int32_t timeoutGet();
250 double _turnvelocity;
251 velocityUnits _turnvelocityUnits;
Use the distance class to control the distance sensor.
double current(currentUnits units=currentUnits::amp)
Gets the total current of the drivetrain;.
void setTimeout(int32_t time, timeUnits units)
Sets the timeout for the motor group. If the motor group does not reach its' commanded position prior...
double temperature(percentUnits units)
Gets the average temperature of the drivetrain;.
virtual bool isMoving(void)
Checks to see if any of the motors are rotating to a specific target.
double torque(torqueUnits units=torqueUnits::Nm)
Gets the average torque of the drivetrain;.
void setDriveVelocity(double velocity, velocityUnits units)
Sets the velocity of the drive based on the parameters set in the command. This command will not run ...
void turn(turnType dir, double velocity, velocityUnits units)
Turns the motors on, and rotate in the specified direction and a specified velocity.
double current(percentUnits units)
Gets the electrical current of the drivetrain as percentage of maximum.
bool isDone(void)
Checks to see if all the motor are done rotating to a specific target.
void stop(brakeType mode)
Stops the drive using a specified brake mode.
virtual bool turnFor(double angle, rotationUnits units, bool waitForCompletion=true)
Turn on the motors and rotate an angle at the default velocity.
double velocity(velocityUnits units)
Gets the average velocity of the drivetrain;.
void setTurnVelocity(double velocity, velocityUnits units)
Sets the turn velocity of the drive based on the parameters set in the command. This command will not...
bool driveFor(double distance, distanceUnits units, double velocity, velocityUnits units_v, bool waitForCompletion=true)
Turn on the motors and drive a distance at a specified velocity.
void stop()
Stops the drive using the default brake mode.
bool driveFor(double distance, distanceUnits units, bool waitForCompletion=true)
Turn on the motors and drive a distance at the default velocity.
double power(powerUnits units=powerUnits::watt)
Gets the average power of the drivetrain;.
double voltage(voltageUnits units=voltageUnits::volt)
Gets the average voltage of the drivetrain;.
void setStopping(brakeType mode)
Sets the stopping mode of the motor group by passing a brake mode as a parameter.
double efficiency(percentUnits units=percentUnits::pct)
Gets the average efficiency of the drivetrain;.
void turn(turnType dir)
Turns the motors on, and rotate in the specified direction.
void drive(directionType dir)
Turns the motors on, and drive in the specified direction.
virtual bool turnFor(double angle, rotationUnits units, double velocity, velocityUnits units_v, bool waitForCompletion=true)
Turn on the motors and rotate an angle at a specified velocity.
void drive(directionType dir, double velocity, velocityUnits units)
Turn on the motors and drive in the specified direction and a specified velocity.
Use the motor class to control motor devices.
Bumper switch device class
Motor group class header.