Index: trunk/include/FlairMeta/HdsX8.h
===================================================================
--- trunk/include/FlairMeta/HdsX8.h	(revision 27)
+++ trunk/include/FlairMeta/HdsX8.h	(revision 44)
@@ -24,8 +24,9 @@
 class HdsX8 : public Uav {
 public:
-  HdsX8(core::FrameworkManager *parent, std::string uav_name,
+  HdsX8(std::string name,
         filter::UavMultiplex *multiplex = NULL);
   ~HdsX8();
   void StartSensors(void);
+	std::string GetDefaultVrpnAddress(void) const{return "192.168.147.197:3883";}
 
 private:
Index: trunk/include/FlairMeta/MetaVrpnObject.h
===================================================================
--- trunk/include/FlairMeta/MetaVrpnObject.h	(revision 27)
+++ trunk/include/FlairMeta/MetaVrpnObject.h	(revision 44)
@@ -18,20 +18,17 @@
 
 namespace flair {
-namespace core {
-class Vector3D;
-class FloatType;
-}
-namespace gui {
-class DataPlot1D;
-class DataPlot2D;
-class Tab;
-}
-namespace filter {
-class EulerDerivative;
-class LowPassFilter;
-}
-namespace sensor {
-class VrpnClient;
-}
+	namespace core {
+		class Vector3D;
+		class FloatType;
+	}
+	namespace gui {
+		class DataPlot1D;
+		class DataPlot2D;
+		class Tab;
+	}
+	namespace filter {
+		class EulerDerivative;
+		class LowPassFilter;
+	}
 }
 
@@ -47,7 +44,6 @@
 class MetaVrpnObject : public sensor::VrpnObject {
 public:
-  MetaVrpnObject(const sensor::VrpnClient *parent, std::string name);
-  MetaVrpnObject(const sensor::VrpnClient *parent, std::string name,
-                 uint8_t id);
+  MetaVrpnObject(std::string name);
+  MetaVrpnObject(std::string name,uint8_t id);
   ~MetaVrpnObject();
   gui::DataPlot1D *VxPlot(void) const; // 1,0
@@ -58,5 +54,5 @@
 
 private:
-  void ConstructorCommon(const sensor::VrpnClient *parent, std::string name);
+  void ConstructorCommon(std::string name);
   filter::LowPassFilter *pbas;
   filter::EulerDerivative *euler;
Index: trunk/include/FlairMeta/SimuX4.h
===================================================================
--- trunk/include/FlairMeta/SimuX4.h	(revision 27)
+++ trunk/include/FlairMeta/SimuX4.h	(revision 44)
@@ -26,9 +26,8 @@
   // simu_id: 0 if simulating only one UAV
   //>0 otherwise
-  SimuX4(core::FrameworkManager *parent, std::string uav_name, int simu_id = 0,
+  SimuX4(std::string name, int simu_id = 0,
          filter::UavMultiplex *multiplex = NULL);
   ~SimuX4();
   void StartSensors(void);
-  void SetupVRPNAutoIP(std::string name);
 };
 } // end namespace meta
Index: trunk/include/FlairMeta/SimuX8.h
===================================================================
--- trunk/include/FlairMeta/SimuX8.h	(revision 27)
+++ trunk/include/FlairMeta/SimuX8.h	(revision 44)
@@ -26,9 +26,8 @@
   // simu_id: 0 if simulating only one UAV
   //>0 otherwise
-  SimuX8(core::FrameworkManager *parent, std::string uav_name, int simu_id = 0,
+  SimuX8(std::string name, int simu_id = 0,
          filter::UavMultiplex *multiplex = NULL);
   ~SimuX8();
   void StartSensors(void);
-  void SetupVRPNAutoIP(std::string name);
 };
 } // end namespace meta
Index: trunk/include/FlairMeta/Uav.h
===================================================================
--- trunk/include/FlairMeta/Uav.h	(revision 27)
+++ trunk/include/FlairMeta/Uav.h	(revision 44)
@@ -17,21 +17,17 @@
 
 namespace flair {
-namespace core {
-class FrameworkManager;
-}
-namespace filter {
-class Ahrs;
-class UavMultiplex;
-}
-namespace actuator {
-class Bldc;
-}
-namespace sensor {
-class UsRangeFinder;
-class BatteryMonitor;
-class VrpnClient;
-class Imu;
-class Camera;
-}
+	namespace filter {
+		class Ahrs;
+		class UavMultiplex;
+	}
+	namespace actuator {
+		class Bldc;
+	}
+	namespace sensor {
+		class UsRangeFinder;
+		class BatteryMonitor;
+		class Imu;
+		class Camera;
+	}
 }
 
@@ -39,32 +35,20 @@
 namespace meta {
 class MetaUsRangeFinder;
-class MetaVrpnObject;
 
 /*! \class Uav
 *
-* \brief Base class to construct sensors/actuators depending on uav type
+* \brief Base class to construct sensors/actuators depending on uav type.
+* The Object is created with 
+*  the FrameworkManager as parent. FrameworkManager must be created before.
+* Only one instance of this class is allowed by program.
 */
 class Uav : public core::Object {
 public:
-  /*
-      typedef enum {
-          None,
-          Auto,//rt serial if hds x4 ou x8, auto ip sinon
-          AutoIP,
-          UserDefinedIP,
-          AutoSerialPort,
-          } VRPNType_t;
-*/
-  // uav_name: for optitrack
-  Uav(core::FrameworkManager *parent, std::string name,
+
+  Uav(std::string name,
       filter::UavMultiplex *multiplex = NULL);
   ~Uav();
-  void SetupVRPN(std::string optitrack_address, std::string name);
-  // vrpn serial: broken, need to add serial port in uav specific code
-  // void SetupVRPNSerial(core::SerialPort *vrpn_port,std::string name,int
-  // VRPNSerialObjectId);
-  virtual void SetupVRPNAutoIP(std::string name);
 
-  virtual void StartSensors(void);
+  virtual void StartSensors(void)=0;
   void UseDefaultPlot(void);
   actuator::Bldc *GetBldc(void) const;
@@ -75,7 +59,7 @@
   sensor::UsRangeFinder *GetUsRangeFinder(void) const;
   sensor::BatteryMonitor *GetBatteryMonitor(void) const;
-  sensor::VrpnClient *GetVrpnClient(void) const;
-  meta::MetaVrpnObject *GetVrpnObject(void) const;
   sensor::Camera *GetVerticalCamera(void) const;
+  sensor::Camera *GetHorizontalCamera(void) const;
+	virtual std::string GetDefaultVrpnAddress(void) const{return "127.0.0.1:3883";}
 
 protected:
@@ -86,4 +70,5 @@
   void SetBatteryMonitor(const sensor::BatteryMonitor *battery);
   void SetVerticalCamera(const sensor::Camera *verticalCamera);
+  void SetHorizontalCamera(const sensor::Camera *verticalCamera);
 
 private:
@@ -94,9 +79,15 @@
   sensor::UsRangeFinder *us;
   MetaUsRangeFinder *meta_us;
-  sensor::VrpnClient *vrpnclient;
-  MetaVrpnObject *uav_vrpn;
   sensor::BatteryMonitor *battery;
-  sensor::Camera *verticalCamera;
+  sensor::Camera *verticalCamera,*horizontalCamera;
 };
+
+/*!
+* \brief get Uav
+*
+* \return the Uav
+*/
+Uav *GetUav(void);
+
 } // end namespace meta
 } // end namespace flair
Index: trunk/include/FlairMeta/UavFactory.h
===================================================================
--- trunk/include/FlairMeta/UavFactory.h	(revision 27)
+++ trunk/include/FlairMeta/UavFactory.h	(revision 44)
@@ -21,10 +21,8 @@
 #include <Uav.h>
 
-flair::meta::Uav *CreateUav(flair::core::FrameworkManager *parent,
-                            std::string uav_name, std::string uav_type,
+flair::meta::Uav *CreateUav(std::string name, std::string type,
                             flair::filter::UavMultiplex *multiplex = NULL);
 
-void RegisterUavCreator(flair::meta::Uav*(*func)(flair::core::FrameworkManager *parent,
-                                   std::string uav_name, std::string uav_type,
+void RegisterUavCreator(flair::meta::Uav*(*func)(std::string name, std::string type,
                                    flair::filter::UavMultiplex *multiplex));
 #endif // UAVFACTORY
Index: trunk/include/FlairMeta/UavStateMachine.h
===================================================================
--- trunk/include/FlairMeta/UavStateMachine.h	(revision 27)
+++ trunk/include/FlairMeta/UavStateMachine.h	(revision 44)
@@ -59,7 +59,8 @@
 *
 * \brief State machine for UAV
-*
-* thread synchronized with ahrs, unless a period is set with SetPeriodUS or
-*SetPeriodMS
+*  The Thread is created with 
+*  the FrameworkManager as parent. FrameworkManager must be created before.
+* The Thread is synchronized with Ahrs, unless a period is set with SetPeriodUS or
+* SetPeriodMS
 */
 
@@ -101,5 +102,5 @@
   };
 
-        UavStateMachine(meta::Uav* uav, sensor::TargetController* controller);
+        UavStateMachine(sensor::TargetController* controller);
         ~UavStateMachine();
 
@@ -107,6 +108,4 @@
 
   const core::Vector3D &GetCurrentAngularSpeed(void) const;
-
-  const meta::Uav *GetUav(void) const;
 
         void Land(void);
Index: trunk/include/FlairMeta/XAir.h
===================================================================
--- trunk/include/FlairMeta/XAir.h	(revision 27)
+++ trunk/include/FlairMeta/XAir.h	(revision 44)
@@ -24,8 +24,9 @@
 class XAir : public Uav {
 public:
-  XAir(core::FrameworkManager *parent, std::string uav_name,
+  XAir(std::string name,
        filter::UavMultiplex *multiplex = NULL);
   ~XAir();
   void StartSensors(void);
+	std::string GetDefaultVrpnAddress(void) const{return "192.168.147.197:3883";}
 
 private:
