00001
00002
00003 #ifndef _REC_ROBOTINO_COM_MANIPULATOR_H_
00004 #define _REC_ROBOTINO_COM_MANIPULATOR_H_
00005
00006 #include "rec/robotino/com/Actor.h"
00007 #include "rec/robotino/com/ManipulatorReadings.h"
00008 #include "rec/robotino/com/ManipulatorLimits.h"
00009
00010 #include <vector>
00011 #include <string>
00012
00013 namespace rec
00014 {
00015 namespace robotino
00016 {
00017 namespace com
00018 {
00019 class ManipulatorImpl;
00020
00024 class
00025 #ifdef WIN32
00026 # ifdef rec_robotino_com_EXPORTS
00027 __declspec(dllexport)
00028 #endif
00029 # ifdef rec_robotino_com2_EXPORTS
00030 __declspec(dllexport)
00031 #endif
00032 # ifdef rec_robotino_com3_EXPORTS
00033 __declspec(dllexport)
00034 #endif
00035 #endif
00036 Manipulator : public Actor
00037 {
00038 public:
00039 Manipulator();
00040
00041 virtual ~Manipulator();
00042
00049 void setComId( const ComId& id );
00050
00056 void connectToServer();
00057
00063 void disconnectFromServer();
00064
00070 void setAddress( const std::string& address );
00071
00072 std::string address() const;
00073
00074 bool isConnected() const;
00075
00082 void setAxis( unsigned int axis, float angle, float speed );
00083
00089 void setAxes( const std::vector<float>& angles, const std::vector<float>& speeds );
00090
00099 void setPowerEnabled( unsigned int channel, bool enable );
00100
00104 void toggleTorque();
00105
00106 virtual void servoInfoCallback( const int numServos );
00107
00112 virtual void readingsCallback( const ManipulatorReadings& readings );
00113
00118 virtual void limitsCallback( const ManipulatorLimits& limits );
00119
00124 virtual void error( const std::string& message );
00125
00129 virtual void connected();
00130
00134 virtual void disconnected();
00135
00136 private:
00137 ManipulatorImpl* _impl;
00138 };
00139 }
00140 }
00141 }
00142 #endif