Class CPtuBase
Defined in File CPtuBase.h
Class Documentation
-
class CPtuBase
This class implements initialization and communication methods to control a generic Pan and Tilt Unit, working in radians.
Public Functions
-
virtual ~CPtuBase() = default
Destructor
-
virtual bool rangeMeasure() = 0
Search limit forward
-
virtual bool moveToAbsPos(char axis, double nRad) = 0
Specification of positions in absolute terms
-
virtual bool absPosQ(char axis, double &nRad) = 0
Query position in absolute terms
-
virtual bool moveToOffPos(char axis, double nRad) = 0
Specify desired axis position as an offset from the current position.
This method recives the number of radians to move.
Example of use: TT-500 * A * TO * Current Tilt position is -500 TO500 * A * TT * Current Pan position is 1000
-
virtual bool offPosQ(char axis, double &nRad) = 0
Query position in relative terms
-
virtual bool maxPosQ(char axis, double &nRad) = 0
Query max movement limit of a axis in absolute terms
-
virtual bool minPosQ(char axis, double &nRad) = 0
Query min movement limit of a axis in absolute terms
-
virtual bool enableLimitsQ(bool &enable) = 0
Query if exist movement limits
-
virtual bool enableLimits(bool set) = 0
Enable/Disable movement limits
-
virtual bool inmediateExecution(bool set) = 0
With I mode (default) instructs pan-tilt unit to immediately execute positional commands.
In S mode instructs pan-tilt unit to execute positional commands only when an Await Position Command Completion command is executed or when put into Immediate Execution Mode.
Example of use of S mode: DR * S * PP1500 * TP-900 * PP * Current Pan position is 0 TP * Current Tilt position is 0 A * PP * Current Pan position is 1500 TP * Current Tilt position is -900
-
virtual bool aWait() = 0
Wait the finish of the last position command to continue accept commands
-
virtual bool haltAll() = 0
Inmediately stop all
-
virtual bool halt(char axis) = 0
Inmediately stop
-
virtual bool speed(char axis, double RadSec) = 0
Specification of turn speed
-
virtual bool speedQ(char axis, double &RadSec) = 0
Query turn speed
-
virtual bool aceleration(char axis, double RadSec2) = 0
Specification (de/a)celeration in turn
-
virtual bool acelerationQ(char axis, double &RadSec2) = 0
Query (de/a)celeration in turn
-
virtual bool baseSpeed(char axis, double RadSec) = 0
Specification of velocity to which start and finish the (de/a)celeration
-
virtual bool baseSpeedQ(char axis, double &RadSec) = 0
Query velocity to which start and finish the (de/a)celeration
-
virtual bool upperSpeed(char axis, double RadSec) = 0
Specification of velocity upper limit
-
virtual bool upperSpeedQ(char axis, double &RadSec) = 0
Query velocity upper limit
-
virtual bool lowerSpeed(char axis, double RadSec) = 0
Specification of velocity lower limit
-
virtual bool lowerSpeedQ(char axis, double &RadSec) = 0
Query velocity lower limit
-
virtual bool reset() = 0
Reset PTU to initial state
-
virtual bool save() = 0
Save or restart default values
-
virtual bool restoreDefaults() = 0
Restore default values
-
virtual bool restoreFactoryDefaults() = 0
Restore factory default values
-
virtual bool version(char *nVersion) = 0
Version and CopyRights
-
virtual void nversion(double &nVersion) = 0
Number of version
-
virtual bool powerModeQ(bool transit, char &mode) = 0
Query power mode
-
virtual bool powerMode(bool transit, char mode) = 0
Specification of power mode
-
virtual double status(double &rad) = 0
Check if ptu is moving
-
virtual bool setLimits(char axis, double &l, double &u) = 0
Set limits of movement
-
virtual bool changeMotionDir() = 0
-
virtual int checkErrors() = 0
Check errors, returns 0 if there are not errors or error code otherwise
-
virtual void clearErrors() = 0
Clear errors
-
virtual bool init(const std::string &port) = 0
PTU and serial port initialization
-
virtual void close() = 0
Close Connection with serial port
-
virtual double radError(char axis, double nRadMoved) = 0
To obtains the mistake for use discrete values when the movement is expressed in radians. Parameters are the absolute position in radians and the axis desired
-
virtual long radToPos(char axis, double nRad) = 0
To obtain the discrete value for a number of radians
-
virtual double posToRad(char axis, long nPos) = 0
To obtain the number of radians for a discrete value
-
virtual bool scan(char axis, int wait, float initial, float final, double RadPre) = 0
Performs a scan in the axis indicated and whit the precision desired.
- Parameters:
<axis> – {Pan or Till}
<tWait> – {Wait time betwen commands}
<initial> – {initial position}
<final> – {final position}
<RadPre> – {radians precision for the scan}
-
virtual bool verboseQ(bool &modo) = 0
Query verbose mode
-
virtual bool verbose(bool set) = 0
Set verbose.
\conde Example of response with FV (verbose) active: FV * PP * Current pan position is 0 Example of response with FT (terse) active: FT * PP * 0
-
virtual bool echoModeQ(bool &mode) = 0
Query echo mode
-
virtual bool echoMode(bool mode) = 0
Enable/Disable echo response with command.
Example of use (EE supposed): PP * 22 ED * <pp entered again, but not echoed>* 22
-
virtual bool resolution() = 0
Query the pan and tilt resolution per position moved and initialize local atributes
Protected Attributes
-
mrpt::comms::CSerialPort serPort
-
virtual ~CPtuBase() = default