Index: trunk/lib/FlairCore/src/GpsData.cpp
===================================================================
--- trunk/lib/FlairCore/src/GpsData.cpp	(revision 42)
+++ trunk/lib/FlairCore/src/GpsData.cpp	(revision 42)
@@ -0,0 +1,97 @@
+// %flair:license{
+// This file is part of the Flair framework distributed under the
+// CECILL-C License, Version 1.0.
+// %flair:license}
+//  created:    2016/07/01
+//  filename:   GpsData.cpp
+//
+//  author:     Guillaume Sanahuja
+//              Copyright Heudiasyc UMR UTC/CNRS 7253
+//
+//  version:    $Id: $
+//
+//  purpose:    class defining gps datas
+//
+//
+/*********************************************************************/
+
+#include "GpsData.h"
+#include "Euler.h"
+#include <math.h>
+#include <string.h>
+#include <stdlib.h>
+
+using std::string;
+
+namespace flair {
+namespace core {
+
+/*! \class GpsDataElement
+    */
+class GpsDataElement : public IODataElement {
+public:
+  GpsDataElement(const GpsData *inGpsdata, string name,
+                 GpsData::PlotableData_t inPlotableData)
+      : IODataElement(inGpsdata, name) {
+    gpsdata = inGpsdata;
+    plotableData = inPlotableData;
+
+    size = 0;
+  }
+
+  ~GpsDataElement() {}
+
+  void CopyData(char *dst) const {
+
+
+  }
+
+  FloatType const &GetDataType(void) const { return dataType; }
+
+private:
+  const GpsData *gpsdata;
+  GpsData::PlotableData_t plotableData;
+  FloatType dataType;
+};
+
+GpsData::GpsData(const Object *parent, std::string name, int n)
+    : io_data(parent, name, n), dataType(floatType) {
+  if (n > 1)
+    Warn("n>1 not supported\n");
+
+  AppendLogDescription("raw_ax", floatType);
+  AppendLogDescription("raw_ay", floatType);
+  AppendLogDescription("raw_az", floatType);
+
+  AppendLogDescription("raw_gx", floatType);
+  AppendLogDescription("raw_gy", floatType);
+  AppendLogDescription("raw_gz", floatType);
+
+  AppendLogDescription("raw_mx", floatType);
+  AppendLogDescription("raw_my", floatType);
+  AppendLogDescription("raw_mz", floatType);
+}
+
+GpsData::~GpsData() {}
+
+
+IODataElement *GpsData::Element(PlotableData_t data_type) const {
+
+  //return new GpsDataElement(this, name, data_type);
+}
+
+void GpsData::CopyDatas(char *dst) const {
+  GetMutex();
+
+  //Queue(&dst, &rawAcc.x, sizeof(rawAcc.x));
+
+  ReleaseMutex();
+}
+
+void GpsData::Queue(char **dst, const void *src, size_t size) const {
+  memcpy(*dst, src, size);
+  *dst += size;
+}
+
+} // end namespace core
+} // end namespace flair
Index: trunk/lib/FlairCore/src/GpsData.h
===================================================================
--- trunk/lib/FlairCore/src/GpsData.h	(revision 42)
+++ trunk/lib/FlairCore/src/GpsData.h	(revision 42)
@@ -0,0 +1,105 @@
+// %flair:license{
+// This file is part of the Flair framework distributed under the
+// CECILL-C License, Version 1.0.
+// %flair:license}
+/*!
+ * \file GpsData.h
+ * \brief Class defining gps datas
+ * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
+ * \date 2016/07/01
+ * \version 4.0
+ */
+#ifndef GPSDATA_H
+#define GPSDATA_H
+
+#include <io_data.h>
+#include <IODataElement.h>
+#include <Vector3D.h>
+
+namespace flair {
+namespace core {
+
+/*! \class GpsData
+*
+* \brief Class defining gps datas
+*
+* GPS datas consist of
+*
+*
+*/
+class GpsData : public io_data {
+public:
+  class Type : public DataType {
+  public:
+    Type(ScalarType const &_elementDataType)
+        : elementDataType(_elementDataType) {}
+    ScalarType const &GetElementDataType() const { return elementDataType; }
+    std::string GetDescription() const { return "gps data"; }
+    size_t GetSize() const {
+      return 0;
+    }
+
+  private:
+    ScalarType const &elementDataType;
+  };
+
+  /*!
+  \enum PlotableData_t
+  \brief Datas wich can be plotted in a DataPlot1D
+  */
+  typedef enum {
+
+  } PlotableData_t;
+
+  /*!
+  * \brief Constructor
+  *
+  * Construct an io_data representing GPS datas. \n
+  *
+  * \param parent parent
+  * \param name name
+  * \param n number of samples
+  */
+  GpsData(const Object *parent, std::string name = "", int n = 1);
+
+  /*!
+  * \brief Destructor
+  *
+  */
+  ~GpsData();
+
+  /*!
+  * \brief Element
+  *
+  * Get a pointer to a specific element. This pointer can be used for plotting.
+  *
+  * \param data_type data type
+  *
+  * \return pointer to the element
+  */
+  IODataElement *Element(PlotableData_t data_type) const;
+
+
+  Type const &GetDataType() const { return dataType; }
+
+private:
+  /*!
+  * \brief Copy datas
+  *
+  * Reimplemented from io_data. \n
+  * See io_data::CopyDatas.
+  *
+  * \param dst destination buffer
+  */
+  void CopyDatas(char *dst) const;
+
+
+
+  void Queue(char **dst, const void *src, size_t size) const;
+  Type dataType;
+};
+
+} // end namespace core
+} // end namespace flair
+
+#endif // GPSDATA_H
