Index: trunk/include/FlairSimulator/SimuBldc.h
===================================================================
--- trunk/include/FlairSimulator/SimuBldc.h	(revision 68)
+++ trunk/include/FlairSimulator/SimuBldc.h	(revision 68)
@@ -0,0 +1,80 @@
+// %flair:license{
+// This file is part of the Flair framework distributed under the
+// CECILL-C License, Version 1.0.
+// %flair:license}
+/*!
+ * \file SimuBldc.h
+ * \brief Class for a simulation bldc
+ * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
+ * \date 2014/02/07
+ * \version 4.0
+ */
+
+#ifndef SIMUBLDC_H
+#define SIMUBLDC_H
+
+#include <IODevice.h>
+
+namespace flair {
+namespace core {
+class SharedMem;
+}
+}
+
+namespace flair {
+namespace actuator {
+/*! \class SimuBldc
+*
+* \brief Class for a simulation bldc
+*
+*/
+class SimuBldc : public core::IODevice {
+public:
+  /*!
+  * \brief Constructor
+  *
+  * Construct a SimuBldc
+  *
+  * \param parent parent
+  * \param name name
+  * \param motors_count number of motors
+  * \param modelId Model id
+  * \param deviceId Bldc id of the Model
+  */
+  SimuBldc(const core::Object *parent, std::string name, uint8_t motors_count,
+           uint32_t modelId,uint32_t deviceId);
+
+  /*!
+  * \brief Destructor
+  *
+  */
+  ~SimuBldc();
+
+  /*!
+  * \brief Get motors speeds.
+  *
+  *
+  * \param value array to store motors speeds
+  * \param time time when shared memory was written
+  */
+  void GetSpeeds(float *value,core::Time* time) const;
+
+
+private:
+  /*!
+  * \brief Update using provided datas
+  *
+  * Reimplemented from IODevice.
+  *
+  * \param data data from the parent to process
+  */
+  void UpdateFrom(const core::io_data *data){};
+  std::string ShMemName(uint32_t modelId,uint32_t deviceId);
+  core::SharedMem *shmem;
+  char *buf;
+  uint8_t motors_count;
+
+};
+} // end namespace actuator
+} // end namespace flair
+#endif // SIMUBLDC_H
Index: trunk/include/FlairSimulator/SimuCamera.h
===================================================================
--- trunk/include/FlairSimulator/SimuCamera.h	(revision 68)
+++ trunk/include/FlairSimulator/SimuCamera.h	(revision 68)
@@ -0,0 +1,77 @@
+// %flair:license{
+// This file is part of the Flair framework distributed under the
+// CECILL-C License, Version 1.0.
+// %flair:license}
+/*!
+ * \file SimuCamera.h
+ * \brief Class for a simulation camera
+ * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
+ * \date 2014/03/06
+ * \version 4.0
+ */
+
+#ifndef SIMUCAMERA_H
+#define SIMUCAMERA_H
+
+#include <IODevice.h>
+
+namespace flair {
+  namespace core {
+    class SharedMem;
+  }
+}
+
+namespace flair {
+namespace sensor {
+/*! \class SimuCamera
+*
+* \brief Class for a simulation camera
+*/
+class SimuCamera : public core::IODevice {
+public:
+
+  /*!
+  * \brief Constructor
+  *
+  * Construct a SimuCamera. 
+  *
+  * \param parent parent
+  * \param name name
+  * \param width width
+  * \param height height
+  * \param channels number of channels
+  * \param modelId Model id
+  * \param deviceId Camera id of the Model
+  */
+  SimuCamera(const core::IODevice *parent, std::string name, uint16_t width,
+             uint16_t height, uint8_t channels, uint32_t modelId,uint32_t deviceId);
+
+  /*!
+  * \brief Destructor
+  *
+  */
+  ~SimuCamera();
+
+protected:
+  /*!
+  * \brief SharedMem to access datas
+  *
+  */
+  core::SharedMem *shmem;
+
+private:
+  /*!
+  * \brief Update using provided datas
+  *
+  * Reimplemented from IODevice.
+  *
+  * \param data data from the parent to process
+  */
+  void UpdateFrom(const core::io_data *data){};
+  
+  std::string ShMemName(uint32_t modelId,uint32_t deviceId);
+
+};
+} // end namespace sensor
+} // end namespace flair
+#endif // SIMUCAMERA_H
Index: trunk/include/FlairSimulator/SimuGps.h
===================================================================
--- trunk/include/FlairSimulator/SimuGps.h	(revision 68)
+++ trunk/include/FlairSimulator/SimuGps.h	(revision 68)
@@ -0,0 +1,74 @@
+// %flair:license{
+// This file is part of the Flair framework distributed under the
+// CECILL-C License, Version 1.0.
+// %flair:license}
+/*!
+ * \file SimuGps.h
+ * \brief Class for a simulation GPS
+ * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
+ * \date 2013/08/23
+ * \version 4.0
+ */
+
+#ifndef SIMUGPS_H
+#define SIMUGPS_H
+
+#include <IODevice.h>
+
+namespace flair {
+  namespace core {
+    class SharedMem;
+  }
+}
+
+namespace flair {
+namespace sensor {
+/*! \class SimuGps
+*
+* \brief Class for a simulation GPS
+*/
+class SimuGps : public core::IODevice {
+public:
+  /*!
+  * \brief Constructor
+  *
+  * Construct a simulation GPS.
+  *
+  * \param parent parent
+  * \param name name
+  * \param modelId Model id
+  * \param deviceId Gps id of the Model
+  */
+  SimuGps(const core::IODevice *parent, std::string name, uint32_t modelId,uint32_t deviceId);
+
+  /*!
+  * \brief Destructor
+  *
+  */
+  ~SimuGps();
+
+private:
+  /*!
+  * \brief Update using provided datas
+  *
+  * Reimplemented from IODevice.
+  *
+  * \param data data from the parent to process
+  */
+  void UpdateFrom(const core::io_data *data);
+
+  typedef struct {
+    float e;
+    float n;
+    float u;
+    float ve;
+    float vn;
+  } gps_states_t;
+  
+  std::string ShMemName(uint32_t modelId,uint32_t deviceId);
+
+  core::SharedMem *shmem;
+};
+} // end namespace sensor
+} // end namespace flair
+#endif // SIMUGPS_H
Index: trunk/include/FlairSimulator/SimuImu.h
===================================================================
--- trunk/include/FlairSimulator/SimuImu.h	(revision 68)
+++ trunk/include/FlairSimulator/SimuImu.h	(revision 68)
@@ -0,0 +1,82 @@
+// %flair:license{
+// This file is part of the Flair framework distributed under the
+// CECILL-C License, Version 1.0.
+// %flair:license}
+/*!
+ * \file SimuImu.h
+ * \brief Class for a simulation Imu
+ * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
+ * \date 2014/02/07
+ * \version 4.0
+ */
+
+#ifndef SIMUIMU_H
+#define SIMUIMU_H
+
+#include <IODevice.h>
+
+namespace flair {
+  namespace core {
+    class SharedMem;
+  }
+}
+
+namespace flair {
+namespace sensor {
+/*! \class SimuImu
+*
+* \brief Class for a simulation Imu
+*/
+class SimuImu : public core::IODevice {
+public:
+  /*!
+  * \brief Constructor
+  *
+  * Construct a SimuImu.
+  *
+  * \param parent parent
+  * \param name name
+  * \param modelId Model id
+  * \param deviceId Imu id of the Model
+  */
+  SimuImu(const core::IODevice *parent, std::string name, uint32_t modelId,uint32_t deviceId);
+
+  /*!
+  * \brief Destructor
+  *
+  */
+  ~SimuImu();
+
+private:
+  /*!
+  * \brief Update using provided datas
+  *
+  * Reimplemented from IODevice.
+  *
+  * \param data data from the parent to process
+  */
+  void UpdateFrom(const core::io_data *data);
+
+  typedef struct {
+    float q0;
+    float q1;
+    float q2;
+    float q3;
+    float wx;
+    float wy;
+    float wz;
+    float ax;
+    float ay;
+    float az;
+    float mx;
+    float my;
+    float mz;
+  } imu_states_t;
+  
+  std::string ShMemName(uint32_t modelId,uint32_t deviceId);
+
+  core::SharedMem *shmem;
+};
+} // end namespace sensor
+} // end namespace flair
+#endif // SIMUIMU_H
Index: trunk/include/FlairSimulator/SimuLaser.h
===================================================================
--- trunk/include/FlairSimulator/SimuLaser.h	(revision 68)
+++ trunk/include/FlairSimulator/SimuLaser.h	(revision 68)
@@ -0,0 +1,73 @@
+// %flair:license{
+// This file is part of the Flair framework distributed under the
+// CECILL-C License, Version 1.0.
+// %flair:license}
+/*!
+ * \file SimuUs.h
+ * \brief Class for a simulation UsRangeFinder
+ * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
+ * \date 2014/02/07
+ * \version 4.0
+ */
+
+#ifndef SIMULASER_H
+#define SIMULASER_H
+
+#include <LaserRangeFinder.h>
+#include <Thread.h>
+
+namespace flair {
+namespace core {
+class SharedMem;
+}
+}
+
+namespace flair {
+namespace sensor {
+/*! \class SimuUs
+*
+* \brief Class for a simulation UsRangeFinder
+*/
+class SimuLaser : public core::IODevice {
+public:
+
+  /*!
+  * \brief Constructor
+  *
+  * Construct a SimuUs.
+  *
+  * \param parent parent
+  * \param name name
+  * \param modelId Model id
+  * \param deviceId LaserRangeFinder id of the Model
+  */
+  SimuLaser(const core::IODevice *parent, std::string name, uint32_t modelId,uint32_t deviceId);
+
+  /*!
+  * \brief Destructor
+  *
+  */
+  ~SimuLaser();
+
+protected:
+  /*!
+  * \brief SharedMem to access datas
+  *
+  */
+  core::SharedMem *shmem;
+
+private:
+  /*!
+  * \brief Update using provided datas
+  *
+  * Reimplemented from IODevice.
+  *
+  * \param data data from the parent to process
+  */
+  void UpdateFrom(const core::io_data *data){};
+
+  std::string ShMemName(uint32_t modelId,uint32_t deviceId);
+};
+} // end namespace sensor
+} // end namespace flair
+#endif // SIMULASER_H
Index: trunk/include/FlairSimulator/SimuUs.h
===================================================================
--- trunk/include/FlairSimulator/SimuUs.h	(revision 68)
+++ trunk/include/FlairSimulator/SimuUs.h	(revision 68)
@@ -0,0 +1,83 @@
+// %flair:license{
+// This file is part of the Flair framework distributed under the
+// CECILL-C License, Version 1.0.
+// %flair:license}
+/*!
+ * \file SimuUs.h
+ * \brief Class for a simulation UsRangeFinder
+ * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
+ * \date 2014/02/07
+ * \version 4.0
+ */
+
+#ifndef SIMUUS_H
+#define SIMUUS_H
+
+#include <IODevice.h>
+
+namespace flair {
+namespace core {
+class SharedMem;
+}
+namespace gui {
+class SpinBox;
+}
+}
+
+namespace flair {
+namespace sensor {
+/*! \class SimuUs
+*
+* \brief Class for a simulation UsRangeFinder
+*/
+class SimuUs : public core::IODevice {
+public:
+  /*!
+  * \brief Constructor
+  *
+  * Construct a SimuUs
+  *
+  * \param parent parent
+  * \param name name
+  * \param modelId Model id
+  * \param deviceId UsRangeFinder id of the Model
+  */
+  SimuUs(const core::IODevice *parent, std::string name, uint32_t modelId,uint32_t deviceId);
+
+  /*!
+  * \brief Destructor
+  *
+  */
+  ~SimuUs();
+
+protected:
+  /*!
+  * \brief SharedMem to access datas
+  *
+  */
+  core::SharedMem *shmem;
+
+private:
+  /*!
+  * \brief Update using provided datas
+  *
+  * Reimplemented from IODevice.
+  *
+  * \param data data from the parent to process
+  */
+  void UpdateFrom(const core::io_data *data){};
+
+  /*!
+  * \brief Run function
+  *
+  * Reimplemented from Thread.
+  *
+  */
+  void Run(void);
+  
+  std::string ShMemName(uint32_t modelId,uint32_t deviceId);
+  gui::SpinBox *data_rate;
+};
+} // end namespace sensor
+} // end namespace flair
+#endif // SIMUUS_H
Index: trunk/include/FlairSimulator/X4.h
===================================================================
--- trunk/include/FlairSimulator/X4.h	(revision 50)
+++ trunk/include/FlairSimulator/X4.h	(revision 68)
@@ -26,4 +26,5 @@
 namespace gui {
 class DoubleSpinBox;
+class SpinBox;
 }
 namespace actuator {
@@ -63,4 +64,5 @@
   gui::DoubleSpinBox *f_air_vert, *f_air_lat;
   gui::DoubleSpinBox *j_roll, *j_pitch, *j_yaw;
+  gui::SpinBox *motorTimeout;
 };
 } // end namespace simulator
Index: trunk/include/FlairSimulator/X8.h
===================================================================
--- trunk/include/FlairSimulator/X8.h	(revision 50)
+++ trunk/include/FlairSimulator/X8.h	(revision 68)
@@ -26,4 +26,5 @@
 namespace gui {
 class DoubleSpinBox;
+class SpinBox;
 }
 namespace actuator {
@@ -65,4 +66,5 @@
   gui::DoubleSpinBox *j_roll, *j_pitch, *j_yaw;
   gui::DoubleSpinBox *j_r, *sigma, *S;
+  gui::SpinBox *motorTimeout;
 };
 } // end namespace simulator
