#include <c++/MotorPair.H>
Collaboration diagram for MotorPair:
Public Types | |
enum | Limits { min = Motor::min, max = Motor::max } |
the minimum and maximum speeds a motor can go, its limits. More... | |
Public Member Functions | |
MotorPair (const Motor::Port lport, const Motor::Port rport) | |
define a pair of motors specifying the connection of each to the RCX | |
~MotorPair () | |
destroy this MotorPair instance | |
void | speed (const int s) const |
set the speed of our two motors | |
void | direction (const MotorDirection dir) const |
set the direction of our two motors | |
void | forward () const |
move forward | |
void | reverse () const |
move reverse | |
void | brake () const |
stop without coasting | |
void | off () const |
stop but allow coasting | |
void | left () const |
turn left about the center of the robot | |
void | pivotLeft () const |
turn left about the left wheel of the robot | |
void | right () const |
turn right about the center of the robot | |
void | pivotRight () const |
turn right about the right wheel of the robot | |
void | forward (const int s) const |
move forward at speed {s} | |
void | reverse (const int s) const |
move reverse (go backwards) at speed {s} | |
void | left (const int s) const |
turn left at speed {s} | |
void | pivotLeft (const int s) const |
turn left at speed {s} but pivot around left wheel | |
void | right (const int s) const |
turn right at speed {s} | |
void | pivotRight (const int s) const |
turn right at speed {s} but pivot around right wheel | |
void | brake (const int ms) const |
apply the brakes to both motors then delay for {ms} mSec | |
Private Attributes | |
const Motor | mLeft |
the left Motor instance | |
const Motor | mRight |
the right Motor instance |
Often our robots use two motors, one on either side, which should be controlled together as one. This class makes this simple by allowing the coder to treat the pair as a single motor.
The two motors can be connected to any of the output ports. When creating an instance of this class, simply specify which two output ports are involved.
The normal Motor methods speed(), direction(), forward(), reverse(), brake(), and off() still apply.
This class adds two new types of control:
Definition at line 57 of file MotorPair.H.
enum MotorPair::Limits |
the minimum and maximum speeds a motor can go, its limits.
Definition at line 167 of file MotorPair.H.
MotorPair::MotorPair | ( | const Motor::Port | lport, | |
const Motor::Port | rport | |||
) | [inline] |
define a pair of motors specifying the connection of each to the RCX
Definition at line 62 of file MotorPair.H.
MotorPair::~MotorPair | ( | ) | [inline] |
destroy this MotorPair instance
Definition at line 67 of file MotorPair.H.
void MotorPair::speed | ( | const int | s | ) | const [inline] |
set the speed of our two motors
Definition at line 70 of file MotorPair.H.
References mLeft, mRight, and Motor::speed().
Referenced by forward(), left(), pivotLeft(), pivotRight(), reverse(), and right().
void MotorPair::direction | ( | const MotorDirection | dir | ) | const [inline] |
set the direction of our two motors
dir | one of the MotorDirection values |
Definition at line 74 of file MotorPair.H.
References Motor::direction(), fwd, mLeft, mRight, and rev.
void MotorPair::forward | ( | ) | const [inline] |
move forward
Definition at line 88 of file MotorPair.H.
References direction(), and fwd.
Referenced by forward().
void MotorPair::reverse | ( | ) | const [inline] |
move reverse
Definition at line 91 of file MotorPair.H.
References direction(), and rev.
Referenced by reverse().
void MotorPair::brake | ( | ) | const [inline] |
stop without coasting
Definition at line 94 of file MotorPair.H.
References Motor::direction(), mLeft, and mRight.
Referenced by brake().
void MotorPair::off | ( | ) | const [inline] |
stop but allow coasting
Definition at line 100 of file MotorPair.H.
References Motor::direction(), mLeft, and mRight.
void MotorPair::left | ( | ) | const [inline] |
turn left about the center of the robot
Definition at line 107 of file MotorPair.H.
References Motor::direction(), fwd, mLeft, and mRight.
Referenced by left().
void MotorPair::pivotLeft | ( | ) | const [inline] |
turn left about the left wheel of the robot
Definition at line 114 of file MotorPair.H.
References Motor::brake(), Motor::direction(), mLeft, mRight, and rev.
Referenced by pivotLeft().
void MotorPair::right | ( | ) | const [inline] |
turn right about the center of the robot
Definition at line 121 of file MotorPair.H.
References Motor::direction(), mLeft, mRight, and rev.
Referenced by right().
void MotorPair::pivotRight | ( | ) | const [inline] |
turn right about the right wheel of the robot
Definition at line 128 of file MotorPair.H.
References Motor::brake(), Motor::direction(), fwd, mLeft, and mRight.
Referenced by pivotRight().
void MotorPair::forward | ( | const int | s | ) | const [inline] |
move forward at speed {s}
s | the desired speed (power level) |
Definition at line 136 of file MotorPair.H.
void MotorPair::reverse | ( | const int | s | ) | const [inline] |
move reverse (go backwards) at speed {s}
s | the desired speed (power level) |
Definition at line 140 of file MotorPair.H.
void MotorPair::left | ( | const int | s | ) | const [inline] |
turn left at speed {s}
s | the desired speed (power level) |
Definition at line 145 of file MotorPair.H.
void MotorPair::pivotLeft | ( | const int | s | ) | const [inline] |
turn left at speed {s} but pivot around left wheel
s | the desired speed (power level) |
Definition at line 150 of file MotorPair.H.
References pivotLeft(), and speed().
void MotorPair::right | ( | const int | s | ) | const [inline] |
turn right at speed {s}
s | the desired speed (power level) |
Definition at line 155 of file MotorPair.H.
void MotorPair::pivotRight | ( | const int | s | ) | const [inline] |
turn right at speed {s} but pivot around right wheel
s | the desired speed (power level) |
Definition at line 160 of file MotorPair.H.
References pivotRight(), and speed().
void MotorPair::brake | ( | const int | ms | ) | const [inline] |
apply the brakes to both motors then delay for {ms} mSec
ms | the time in mSec to wait before returning to caller |
Definition at line 164 of file MotorPair.H.
const Motor MotorPair::mLeft [private] |
the left Motor instance
Definition at line 173 of file MotorPair.H.
Referenced by brake(), direction(), left(), off(), pivotLeft(), pivotRight(), right(), and speed().
const Motor MotorPair::mRight [private] |
the right Motor instance
Definition at line 174 of file MotorPair.H.
Referenced by brake(), direction(), left(), off(), pivotLeft(), pivotRight(), right(), and speed().
brickOS is released under the
Mozilla Public License.
Original code copyright 1998-2005 by the authors. |