00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef CPtuBase_H
00030 #define CPtuBase_H
00031
00032 #include <mrpt/hwdrivers/CSerialPort.h>
00033
00034 namespace mrpt
00035 {
00036 namespace hwdrivers
00037 {
00041 class HWDLLIMPEXP CPtuBase
00042 {
00043
00044
00045
00046 public:
00047
00048 double tiltResolution,panResolution;
00049
00050 protected:
00051
00052 CSerialPort *serPort;
00053
00054
00055
00056 public:
00057
00060 CPtuBase() {};
00061
00064 virtual ~CPtuBase() {};
00065
00068 virtual bool moveToAbsPos(char axis,double nRad)=0;
00069
00072 virtual bool absPosQ(char axis,double &nRad)=0;
00073
00087 virtual bool moveToOffPos(char axis,double nRad)=0;
00088
00091 virtual bool offPosQ(char axis,double &nRad)=0;
00092
00095 virtual bool maxPosQ(char axis,double &nRad)=0;
00096
00099 virtual bool minPosQ(char axis,double &nRad)=0;
00100
00103 virtual bool enableLimitsQ(bool &enable)=0;
00104
00107 virtual bool enableLimits(bool set)=0;
00108
00128 virtual bool inmediateExecution(bool set)=0;
00129
00134 virtual bool aWait(void)=0;
00135
00138 virtual bool haltAll()=0;
00139
00142 virtual bool halt(char axis)=0;
00143
00146 virtual bool speed(char axis,double RadSec)=0;
00147
00150 virtual bool speedQ(char axis,double &RadSec)=0;
00151
00154 virtual bool aceleration(char axis,double RadSec2)=0;
00155
00158 virtual bool acelerationQ(char axis,double &RadSec2)=0;
00159
00164 virtual bool baseSpeed(char axis,double RadSec)=0;
00165
00170 virtual bool baseSpeedQ(char axis,double &RadSec)=0;
00171
00174 virtual bool upperSpeed(char axis,double RadSec)=0;
00175
00178 virtual bool upperSpeedQ(char axis,double &RadSec)=0;
00179
00182 virtual bool lowerSpeed(char axis,double RadSec)=0;
00183
00186 virtual bool lowerSpeedQ(char axis,double &RadSec)=0;
00187
00190 virtual bool reset(void)=0;
00191
00194 virtual bool save(void)=0;
00195
00198 virtual bool restoreDefaults(void)=0;
00199
00202 virtual bool restoreFactoryDefaults(void)=0;
00203
00206 virtual bool version(char * nVersion)=0;
00207
00210 virtual bool powerModeQ(bool transit,char &mode)=0;
00211
00214 virtual bool powerMode(bool transit,char mode)=0;
00215
00216
00217
00218
00221 virtual int checkErrors()=0;
00222
00225 virtual void clearErrors()=0;
00226
00227
00228
00229
00232 virtual bool init(const std::string port)=0;
00233
00236 virtual void close()=0;
00237
00243 virtual double radError(char axis,double nRadMoved)=0;
00244
00247 virtual long radToPos(char axis,double nRad)=0;
00248
00251 virtual double posToRad(char axis,long nPos)=0;
00252
00261 virtual bool scan(char axis, int wait, float initial, float final, double RadPre)=0;
00262
00265 virtual bool verboseQ(bool &modo)=0;
00266
00278 virtual bool verbose(bool set)=0;
00279
00282 virtual bool echoModeQ(bool &mode)=0;
00283
00293 virtual bool echoMode(bool mode)=0;
00294
00299 virtual bool resolution(void)=0;
00300
00301
00302
00303
00304 private:
00305
00308 virtual bool transmit(const char * command)=0;
00309
00312 virtual bool receive(const char * command,char ** response)=0;
00313
00316 virtual bool radQuerry(char axis,char command,double &nRad)=0;
00317
00320 virtual bool radAsign(char axis,char command,double nRad)=0;
00321
00322
00323 };
00324
00325 }
00326
00327 }
00328
00329 #endif