
#include <Devices/ssc.H>
Inheritance diagram for SSC:


The ssc.C and ssc.H files has the mini_SSC controller code that help control the servos via the controller. The class is SSC class. Its functions include moving a servo to a specified position, using a serial port. There are two ways to move the servos and thet their current positions: either using calibrated values in [-1.0..1.0], or using raw positions in [0..255]. Calibrated positions are converted to raw using two linear ramps (one for each side of the neutral position) that can be set using the calibrate() function. EXAMPLE: if you do a calibrate(servo, 100, 20, 150), then, subsequently, move(servo, 0.0F) will be equivalent to moveRaw(servo, 100), move(servo, -1.0F) will be equivalent to moveRaw(servo, 20) and move(servo, 1.0F) will be equivalent to moveRaw(servo, 150).
Definition at line 62 of file ssc.H.
Public Member Functions | |
| SSC (OptionManager &mgr, const std::string &descrName="Mini-SSC Servo Driver", const std::string &tagName="MiniSSCdriver", const char *defdev="/dev/ttyS0") | |
| Default constructor; see ModelComponent.H. | |
| ~SSC () | |
| Destructor. | |
| bool | move (const int servo, const float position) |
| Moves servo # to given position in [-1.0 .. 1.0]. | |
| float | getPosition (const int servo) const |
| Gets the current position of given servo. | |
| void | calibrate (const int servo, const byte neutralval, const byte minval, const byte maxval) |
| Calibrate a servo. | |
| bool | moveRaw (const int servo, const byte rawpos) |
| Moves servo # to given RAW (uncalibrated) position in [0..255]. | |
| bool | moveRawHack (const int servo, const byte rawpos, const int port=1) |
| hack work around for moveRaw. Remove when serial stuff is fixed | |
| byte | getPositionRaw (const int servo) const |
| Gets the current RAW (uncalibrated) position [0..255] of given servo. | |
Protected Member Functions | |
| float | rawToCalib (const int servo, const byte rawpos) const |
| Convert from raw (0..255) to calibrated (-1.0..1.0) position. | |
| byte | calibToRaw (const int servo, const float position) const |
| Convert from calibrated (-1.0..1.0) to raw (0..255) position. | |
Protected Attributes | |
| nub::soft_ref< Serial > | itsPort |
| Serial port to use. | |
| rutz::shared_ptr< NModelParam< float > > * | zero |
| zero calibration values | |
| rutz::shared_ptr< NModelParam< float > > * | posmult |
| positive multiplier calib | |
| rutz::shared_ptr< NModelParam< float > > * | negmult |
| negative multiplier calib | |
| byte * | pos |
| raw servo positions [0..255] | |
|
||||||||||||||||||||
|
Default constructor; see ModelComponent.H.
Definition at line 44 of file ssc.C. References ModelComponent::addSubComponent(), buf, i, itsPort, NModelParam< T >::make(), negmult, pos, posmult, SSCNUMSERVOS, and zero. |
|
|
Destructor.
|
|
||||||||||||||||||||
|
Calibrate a servo. Calibration will be made so that move(servo, 0.0F) will send the value 'neutralval' to the servo, move(servo, -1.0F) will send minval and move(servo, 1.0F) will send maxval. Definition at line 92 of file ssc.C. References LFATAL, negmult, posmult, SSCNUMSERVOS, and zero. |
|
||||||||||||
|
Convert from calibrated (-1.0..1.0) to raw (0..255) position.
Definition at line 181 of file ssc.C. References LFATAL, negmult, posmult, SSCNUMSERVOS, and zero. Referenced by move(). |
|
|
Gets the current position of given servo.
Definition at line 84 of file ssc.C. References LFATAL, pos, rawToCalib(), and SSCNUMSERVOS. |
|
|
Gets the current RAW (uncalibrated) position [0..255] of given servo.
Definition at line 152 of file ssc.C. References LFATAL, pos, and SSCNUMSERVOS. |
|
||||||||||||
|
Moves servo # to given position in [-1.0 .. 1.0]. Returns true on success, false if some serial error occurred. Definition at line 80 of file ssc.C. References calibToRaw(), and moveRaw(). |
|
||||||||||||
|
Moves servo # to given RAW (uncalibrated) position in [0..255]. Returns true on success, false if some serial error occurred. Definition at line 104 of file ssc.C. Referenced by move(). |
|
||||||||||||||||
|
hack work around for moveRaw. Remove when serial stuff is fixed
Definition at line 127 of file ssc.C. References LFATAL. |
|
||||||||||||
|
Convert from raw (0..255) to calibrated (-1.0..1.0) position.
Definition at line 161 of file ssc.C. References LFATAL, negmult, posmult, SSCNUMSERVOS, and zero. Referenced by getPosition(). |
|
|
Serial port to use.
|
|
|
negative multiplier calib
Definition at line 102 of file ssc.H. Referenced by calibrate(), calibToRaw(), rawToCalib(), and SSC(). |
|
|
raw servo positions [0..255]
Definition at line 103 of file ssc.H. Referenced by getPosition(), getPositionRaw(), moveRaw(), and SSC(). |
|
|
positive multiplier calib
Definition at line 101 of file ssc.H. Referenced by calibrate(), calibToRaw(), rawToCalib(), and SSC(). |
|
|
zero calibration values
Definition at line 100 of file ssc.H. Referenced by calibrate(), calibToRaw(), rawToCalib(), and SSC(). |
1.4.4