MRPT  1.9.9
List of all members | Public Member Functions | Public Attributes | Protected Attributes | Private Member Functions
mrpt::hwdrivers::CPtuBase Class Referenceabstract

Detailed Description

This class implements initialization and communication methods to control a generic Pan and Tilt Unit, working in radians.

Definition at line 20 of file CPtuBase.h.

#include <mrpt/hwdrivers/CPtuBase.h>

Inheritance diagram for mrpt::hwdrivers::CPtuBase:

Public Member Functions

virtual ~CPtuBase ()=default
 Destructor. More...
 
virtual bool rangeMeasure ()=0
 Search limit forward. More...
 
virtual bool moveToAbsPos (char axis, double nRad)=0
 Specification of positions in absolute terms. More...
 
virtual bool absPosQ (char axis, double &nRad)=0
 Query position in absolute terms. More...
 
virtual bool moveToOffPos (char axis, double nRad)=0
 Specify desired axis position as an offset from the current position. More...
 
virtual bool offPosQ (char axis, double &nRad)=0
 Query position in relative terms. More...
 
virtual bool maxPosQ (char axis, double &nRad)=0
 Query max movement limit of a axis in absolute terms. More...
 
virtual bool minPosQ (char axis, double &nRad)=0
 Query min movement limit of a axis in absolute terms. More...
 
virtual bool enableLimitsQ (bool &enable)=0
 Query if exist movement limits. More...
 
virtual bool enableLimits (bool set)=0
 Enable/Disable movement limits. More...
 
virtual bool inmediateExecution (bool set)=0
 With I mode (default) instructs pan-tilt unit to immediately execute positional commands. More...
 
virtual bool aWait ()=0
 Wait the finish of the last position command to continue accept commands. More...
 
virtual bool haltAll ()=0
 Inmediately stop all. More...
 
virtual bool halt (char axis)=0
 Inmediately stop. More...
 
virtual bool speed (char axis, double RadSec)=0
 Specification of turn speed. More...
 
virtual bool speedQ (char axis, double &RadSec)=0
 Query turn speed. More...
 
virtual bool aceleration (char axis, double RadSec2)=0
 Specification (de/a)celeration in turn. More...
 
virtual bool acelerationQ (char axis, double &RadSec2)=0
 Query (de/a)celeration in turn. More...
 
virtual bool baseSpeed (char axis, double RadSec)=0
 Specification of velocity to which start and finish the (de/a)celeration. More...
 
virtual bool baseSpeedQ (char axis, double &RadSec)=0
 Query velocity to which start and finish the (de/a)celeration. More...
 
virtual bool upperSpeed (char axis, double RadSec)=0
 Specification of velocity upper limit. More...
 
virtual bool upperSpeedQ (char axis, double &RadSec)=0
 Query velocity upper limit. More...
 
virtual bool lowerSpeed (char axis, double RadSec)=0
 Specification of velocity lower limit. More...
 
virtual bool lowerSpeedQ (char axis, double &RadSec)=0
 Query velocity lower limit. More...
 
virtual bool reset ()=0
 Reset PTU to initial state. More...
 
virtual bool save ()=0
 Save or restart default values. More...
 
virtual bool restoreDefaults ()=0
 Restore default values. More...
 
virtual bool restoreFactoryDefaults ()=0
 Restore factory default values. More...
 
virtual bool version (char *nVersion)=0
 Version and CopyRights. More...
 
virtual void nversion (double &nVersion)=0
 Number of version. More...
 
virtual bool powerModeQ (bool transit, char &mode)=0
 Query power mode. More...
 
virtual bool powerMode (bool transit, char mode)=0
 Specification of power mode. More...
 
virtual double status (double &rad)=0
 Check if ptu is moving. More...
 
virtual bool setLimits (char axis, double &l, double &u)=0
 Set limits of movement. More...
 
virtual bool changeMotionDir ()=0
 
virtual int checkErrors ()=0
 Check errors, returns 0 if there are not errors or error code otherwise. More...
 
virtual void clearErrors ()=0
 Clear errors. More...
 
virtual bool init (const std::string &port)=0
 PTU and serial port initialization. More...
 
virtual void close ()=0
 Close Connection with serial port. More...
 
virtual double radError (char axis, double nRadMoved)=0
 To obtains the mistake for use discrete values when the movement is expressed in radians. More...
 
virtual long radToPos (char axis, double nRad)=0
 To obtain the discrete value for a number of radians. More...
 
virtual double posToRad (char axis, long nPos)=0
 To obtain the number of radians for a discrete value. More...
 
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. More...
 
virtual bool verboseQ (bool &modo)=0
 Query verbose mode. More...
 
virtual bool verbose (bool set)=0
 Set verbose. More...
 
virtual bool echoModeQ (bool &mode)=0
 Query echo mode. More...
 
virtual bool echoMode (bool mode)=0
 Enable/Disable echo response with command. More...
 
virtual bool resolution ()=0
 Query the pan and tilt resolution per position moved and initialize local atributes. More...
 

Public Attributes

double tiltResolution
 
double panResolution
 

Protected Attributes

mrpt::comms::CSerialPort serPort
 

Private Member Functions

virtual bool transmit (const char *command)=0
 To transmition commands to the PTU. More...
 
virtual bool receive (const char *command, char *response)=0
 To receive the responseof the PTU. More...
 
virtual bool radQuerry (char axis, char command, double &nRad)=0
 Used to obtains a number of radians. More...
 
virtual bool radAsign (char axis, char command, double nRad)=0
 Method used for asign a number of radians with a command. More...
 

Constructor & Destructor Documentation

◆ ~CPtuBase()

virtual mrpt::hwdrivers::CPtuBase::~CPtuBase ( )
virtualdefault

Destructor.

Member Function Documentation

◆ absPosQ()

virtual bool mrpt::hwdrivers::CPtuBase::absPosQ ( char  axis,
double &  nRad 
)
pure virtual

Query position in absolute terms.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ aceleration()

virtual bool mrpt::hwdrivers::CPtuBase::aceleration ( char  axis,
double  RadSec2 
)
pure virtual

Specification (de/a)celeration in turn.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ acelerationQ()

virtual bool mrpt::hwdrivers::CPtuBase::acelerationQ ( char  axis,
double &  RadSec2 
)
pure virtual

Query (de/a)celeration in turn.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ aWait()

virtual bool mrpt::hwdrivers::CPtuBase::aWait ( )
pure virtual

Wait the finish of the last position command to continue accept commands.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ baseSpeed()

virtual bool mrpt::hwdrivers::CPtuBase::baseSpeed ( char  axis,
double  RadSec 
)
pure virtual

Specification of velocity to which start and finish the (de/a)celeration.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ baseSpeedQ()

virtual bool mrpt::hwdrivers::CPtuBase::baseSpeedQ ( char  axis,
double &  RadSec 
)
pure virtual

Query velocity to which start and finish the (de/a)celeration.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ changeMotionDir()

virtual bool mrpt::hwdrivers::CPtuBase::changeMotionDir ( )
pure virtual

◆ checkErrors()

virtual int mrpt::hwdrivers::CPtuBase::checkErrors ( )
pure virtual

Check errors, returns 0 if there are not errors or error code otherwise.

Implemented in mrpt::hwdrivers::CPtuDPerception, and mrpt::hwdrivers::CTuMicos.

◆ clearErrors()

virtual void mrpt::hwdrivers::CPtuBase::clearErrors ( )
pure virtual

Clear errors.

Implemented in mrpt::hwdrivers::CPtuDPerception, and mrpt::hwdrivers::CTuMicos.

◆ close()

virtual void mrpt::hwdrivers::CPtuBase::close ( )
pure virtual

Close Connection with serial port.

Implemented in mrpt::hwdrivers::CPtuDPerception, and mrpt::hwdrivers::CTuMicos.

◆ echoMode()

virtual bool mrpt::hwdrivers::CPtuBase::echoMode ( bool  mode)
pure virtual

Enable/Disable echo response with command.


Example of use (EE supposed):
PP * 22
ED *
<pp entered again, but not echoed>* 22

Implemented in mrpt::hwdrivers::CPtuDPerception, and mrpt::hwdrivers::CTuMicos.

◆ echoModeQ()

virtual bool mrpt::hwdrivers::CPtuBase::echoModeQ ( bool &  mode)
pure virtual

Query echo mode.

Implemented in mrpt::hwdrivers::CPtuDPerception, and mrpt::hwdrivers::CTuMicos.

◆ enableLimits()

virtual bool mrpt::hwdrivers::CPtuBase::enableLimits ( bool  set)
pure virtual

Enable/Disable movement limits.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ enableLimitsQ()

virtual bool mrpt::hwdrivers::CPtuBase::enableLimitsQ ( bool &  enable)
pure virtual

Query if exist movement limits.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ halt()

virtual bool mrpt::hwdrivers::CPtuBase::halt ( char  axis)
pure virtual

Inmediately stop.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ haltAll()

virtual bool mrpt::hwdrivers::CPtuBase::haltAll ( )
pure virtual

Inmediately stop all.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ init()

virtual bool mrpt::hwdrivers::CPtuBase::init ( const std::string port)
pure virtual

PTU and serial port initialization.

Implemented in mrpt::hwdrivers::CPtuDPerception, and mrpt::hwdrivers::CTuMicos.

◆ inmediateExecution()

virtual bool mrpt::hwdrivers::CPtuBase::inmediateExecution ( bool  set)
pure virtual

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

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ lowerSpeed()

virtual bool mrpt::hwdrivers::CPtuBase::lowerSpeed ( char  axis,
double  RadSec 
)
pure virtual

Specification of velocity lower limit.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ lowerSpeedQ()

virtual bool mrpt::hwdrivers::CPtuBase::lowerSpeedQ ( char  axis,
double &  RadSec 
)
pure virtual

Query velocity lower limit.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ maxPosQ()

virtual bool mrpt::hwdrivers::CPtuBase::maxPosQ ( char  axis,
double &  nRad 
)
pure virtual

Query max movement limit of a axis in absolute terms.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ minPosQ()

virtual bool mrpt::hwdrivers::CPtuBase::minPosQ ( char  axis,
double &  nRad 
)
pure virtual

Query min movement limit of a axis in absolute terms.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ moveToAbsPos()

virtual bool mrpt::hwdrivers::CPtuBase::moveToAbsPos ( char  axis,
double  nRad 
)
pure virtual

Specification of positions in absolute terms.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ moveToOffPos()

virtual bool mrpt::hwdrivers::CPtuBase::moveToOffPos ( char  axis,
double  nRad 
)
pure virtual

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

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ nversion()

virtual void mrpt::hwdrivers::CPtuBase::nversion ( double &  nVersion)
pure virtual

Number of version.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ offPosQ()

virtual bool mrpt::hwdrivers::CPtuBase::offPosQ ( char  axis,
double &  nRad 
)
pure virtual

Query position in relative terms.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ posToRad()

virtual double mrpt::hwdrivers::CPtuBase::posToRad ( char  axis,
long  nPos 
)
pure virtual

To obtain the number of radians for a discrete value.

Implemented in mrpt::hwdrivers::CPtuDPerception, and mrpt::hwdrivers::CTuMicos.

◆ powerMode()

virtual bool mrpt::hwdrivers::CPtuBase::powerMode ( bool  transit,
char  mode 
)
pure virtual

Specification of power mode.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ powerModeQ()

virtual bool mrpt::hwdrivers::CPtuBase::powerModeQ ( bool  transit,
char &  mode 
)
pure virtual

Query power mode.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ radAsign()

virtual bool mrpt::hwdrivers::CPtuBase::radAsign ( char  axis,
char  command,
double  nRad 
)
privatepure virtual

Method used for asign a number of radians with a command.

Implemented in mrpt::hwdrivers::CPtuDPerception, and mrpt::hwdrivers::CTuMicos.

◆ radError()

virtual double mrpt::hwdrivers::CPtuBase::radError ( char  axis,
double  nRadMoved 
)
pure virtual

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

Implemented in mrpt::hwdrivers::CPtuDPerception, and mrpt::hwdrivers::CTuMicos.

◆ radQuerry()

virtual bool mrpt::hwdrivers::CPtuBase::radQuerry ( char  axis,
char  command,
double &  nRad 
)
privatepure virtual

Used to obtains a number of radians.

Implemented in mrpt::hwdrivers::CPtuDPerception, and mrpt::hwdrivers::CTuMicos.

◆ radToPos()

virtual long mrpt::hwdrivers::CPtuBase::radToPos ( char  axis,
double  nRad 
)
pure virtual

To obtain the discrete value for a number of radians.

Implemented in mrpt::hwdrivers::CPtuDPerception, and mrpt::hwdrivers::CTuMicos.

◆ rangeMeasure()

virtual bool mrpt::hwdrivers::CPtuBase::rangeMeasure ( )
pure virtual

Search limit forward.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ receive()

virtual bool mrpt::hwdrivers::CPtuBase::receive ( const char *  command,
char *  response 
)
privatepure virtual

To receive the responseof the PTU.

Implemented in mrpt::hwdrivers::CPtuDPerception, and mrpt::hwdrivers::CTuMicos.

◆ reset()

virtual bool mrpt::hwdrivers::CPtuBase::reset ( )
pure virtual

Reset PTU to initial state.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ resolution()

virtual bool mrpt::hwdrivers::CPtuBase::resolution ( )
pure virtual

Query the pan and tilt resolution per position moved and initialize local atributes.

Implemented in mrpt::hwdrivers::CPtuDPerception, and mrpt::hwdrivers::CTuMicos.

◆ restoreDefaults()

virtual bool mrpt::hwdrivers::CPtuBase::restoreDefaults ( )
pure virtual

Restore default values.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ restoreFactoryDefaults()

virtual bool mrpt::hwdrivers::CPtuBase::restoreFactoryDefaults ( )
pure virtual

Restore factory default values.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ save()

virtual bool mrpt::hwdrivers::CPtuBase::save ( )
pure virtual

Save or restart default values.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ scan()

virtual bool mrpt::hwdrivers::CPtuBase::scan ( char  axis,
int  wait,
float  initial,
float  final,
double  RadPre 
)
pure virtual

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}

Implemented in mrpt::hwdrivers::CPtuDPerception, and mrpt::hwdrivers::CTuMicos.

◆ setLimits()

virtual bool mrpt::hwdrivers::CPtuBase::setLimits ( char  axis,
double &  l,
double &  u 
)
pure virtual

Set limits of movement.

Implemented in mrpt::hwdrivers::CPtuDPerception, and mrpt::hwdrivers::CTuMicos.

◆ speed()

virtual bool mrpt::hwdrivers::CPtuBase::speed ( char  axis,
double  RadSec 
)
pure virtual

Specification of turn speed.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ speedQ()

virtual bool mrpt::hwdrivers::CPtuBase::speedQ ( char  axis,
double &  RadSec 
)
pure virtual

Query turn speed.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ status()

virtual double mrpt::hwdrivers::CPtuBase::status ( double &  rad)
pure virtual

Check if ptu is moving.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ transmit()

virtual bool mrpt::hwdrivers::CPtuBase::transmit ( const char *  command)
privatepure virtual

To transmition commands to the PTU.

Implemented in mrpt::hwdrivers::CPtuDPerception, and mrpt::hwdrivers::CTuMicos.

◆ upperSpeed()

virtual bool mrpt::hwdrivers::CPtuBase::upperSpeed ( char  axis,
double  RadSec 
)
pure virtual

Specification of velocity upper limit.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ upperSpeedQ()

virtual bool mrpt::hwdrivers::CPtuBase::upperSpeedQ ( char  axis,
double &  RadSec 
)
pure virtual

Query velocity upper limit.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

◆ verbose()

virtual bool mrpt::hwdrivers::CPtuBase::verbose ( bool  set)
pure virtual

Set verbose.


Example of response with FV (verbose) active: FV * PP * Current pan position is 0 Example of response with FT (terse) active: FT * PP * 0

Implemented in mrpt::hwdrivers::CPtuDPerception, and mrpt::hwdrivers::CTuMicos.

◆ verboseQ()

virtual bool mrpt::hwdrivers::CPtuBase::verboseQ ( bool &  modo)
pure virtual

Query verbose mode.

Implemented in mrpt::hwdrivers::CPtuDPerception, and mrpt::hwdrivers::CTuMicos.

◆ version()

virtual bool mrpt::hwdrivers::CPtuBase::version ( char *  nVersion)
pure virtual

Version and CopyRights.

Implemented in mrpt::hwdrivers::CTuMicos, and mrpt::hwdrivers::CPtuDPerception.

Member Data Documentation

◆ panResolution

double mrpt::hwdrivers::CPtuBase::panResolution

Definition at line 25 of file CPtuBase.h.

◆ serPort

mrpt::comms::CSerialPort mrpt::hwdrivers::CPtuBase::serPort
protected

Definition at line 28 of file CPtuBase.h.

◆ tiltResolution

double mrpt::hwdrivers::CPtuBase::tiltResolution

Definition at line 25 of file CPtuBase.h.




Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 479715d5b Tue Nov 12 07:26:21 2019 +0100 at mar nov 12 07:30:12 CET 2019