00001 #ifndef BASE_VELOCITY_CONTROLLER_HPP
00002 #define BASE_VELOCITY_CONTROLLER_HPP
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
00030
00031
00032
00033
00034
00035 #include <rtt/RTT.hpp>
00036 #include <rtt/TaskContext.hpp>
00037 #include <rtt/Attribute.hpp>
00038 #include <rtt/Ports.hpp>
00039 #include "liasclient.hpp"
00040
00041 class BaseVelocityController
00042 : public RTT::TaskContext
00043 {
00047 public:
00048 BaseVelocityController(const std::string& name="BaseVelocityController",const std::string& propfile="cpf/base.cpf");
00049
00050 protected:
00051 RTT::ReadDataPort<double> velocity;
00052 RTT::ReadDataPort<double> rotvel;
00053
00054 RTT::WriteDataPort<double> x_world_pf;
00055 RTT::WriteDataPort<double> y_world_pf;
00056 RTT::WriteDataPort<double> theta_world_pf;
00057
00062 RTT::Property<std::string> hostname;
00063 RTT::Property<int> port;
00064 RTT::Property<bool> logging;
00065
00066 LiasClientN::Client *cl;
00067 bool connected, initialiseC, setVelocityC, stopnowC, startLaserScannerC, stopLaserScannerC;
00072 virtual bool initialise(double v1,double v2,double v3);
00073 virtual bool initialiseDone(double v1,double v2,double v3) const;
00074
00075 virtual bool setVelocity(double v1,double v2);
00076 virtual bool setVelocityDone() const;
00077
00078 virtual bool stopnow() ;
00079 virtual bool stopnowDone() const;
00080
00081 virtual bool startLaserScanner() ;
00082 virtual bool startLaserScannerDone() const;
00083
00084 virtual bool stopLaserScanner() ;
00085 virtual bool stopLaserScannerDone() const;
00086
00087 virtual bool startup();
00088 virtual void update();
00089 virtual void shutdown();
00090 };
00091
00092 #endif