Index: /trunk/lib/FlairCore/src/ui_com.cpp
===================================================================
--- /trunk/lib/FlairCore/src/ui_com.cpp	(revision 442)
+++ /trunk/lib/FlairCore/src/ui_com.cpp	(revision 443)
@@ -320,5 +320,5 @@
         // for(int i=0;i<offset;i++) printf("%x ",send_buffer[i]);
         // printf("\n");
-        Send(send_buffer, offset,resume_period);
+        //Send(send_buffer, offset,resume_period);
       }
 
@@ -393,4 +393,5 @@
   if(ptr->actual_size>=ptr->final_size) {//par securité on test aussi le cas ou supérieur
       Printf("ready to send\n");
+      SendNRT(ptr->buf, ptr->actual_size,ptr->period);
       //clean
       ptr->actual_size=0;
Index: /trunk/tools/FlairGCS/src/ConnectionLayout.cpp
===================================================================
--- /trunk/tools/FlairGCS/src/ConnectionLayout.cpp	(revision 442)
+++ /trunk/tools/FlairGCS/src/ConnectionLayout.cpp	(revision 443)
@@ -48,19 +48,23 @@
   }
   case DATA_BIG_ENDIAN: {
-    // for(int i=0;i<size;i++) fprintf(stderr,"%x ",buf[i]);
-    // fprintf(stderr,"\n");
     uint16_t period;
     memcpy(&period, &buf[1], sizeof(uint16_t));
     period = qFromBigEndian(period);
-    drawDatas(&buf[3], size - 3, period, true);
+    drawDatas(&buf[3], size - 3, period, 1,true);
     break;
   }
   case DATA_LITTLE_ENDIAN: {
-    // for(int i=0;i<size;i++) fprintf(stderr,"%x ",buf[i]);
-    // fprintf(stderr,"\n");
     uint16_t period;
     memcpy(&period, &buf[1], sizeof(uint16_t));
-    // fprintf(stderr,"recu %i period %i\n",size,period);
-    drawDatas(&buf[3], size - 3, period);
+    drawDatas(&buf[3], size - 3, period,1);
+    break;
+  }
+  case MULTIPLE_DATA_LITTLE_ENDIAN: {
+    uint16_t period;
+    uint16_t nb_buffering;
+    memcpy(&period, buf+sizeof(char), sizeof(uint16_t));
+    memcpy(&nb_buffering,buf+sizeof(char)+sizeof(uint16_t), sizeof(uint16_t));
+    fprintf(stderr,"recu %i, period %i, nb_buff %i\n",size,period,nb_buffering);
+    drawDatas(buf+sizeof(char)+sizeof(uint16_t)+sizeof(uint16_t), size - sizeof(char)+sizeof(uint16_t)+sizeof(uint16_t), period, nb_buffering);
     break;
   }
@@ -111,9 +115,10 @@
 QString ConnectionLayout::getName() { return name; }
 
-void ConnectionLayout::drawDatas(char *buf, int buf_size, uint16_t period,
-                                 bool big_endian) {
-  for (int i = 0; i < dataremotes.count(); i++) {
-    dataremotes.at(i)->BufEvent(&buf, &buf_size, period, big_endian);
-  }
+void ConnectionLayout::drawDatas(char *buf, int buf_size, uint16_t period,uint16_t nb_buffering, bool big_endian) {
+    for (int i = 0; i < nb_buffering; i++) {
+        for (int j = 0; j < dataremotes.count(); j++) {
+            dataremotes.at(j)->BufEvent(&buf, &buf_size, period, nb_buffering, big_endian);
+        }
+    }
 }
 
Index: /trunk/tools/FlairGCS/src/ConnectionLayout.h
===================================================================
--- /trunk/tools/FlairGCS/src/ConnectionLayout.h	(revision 442)
+++ /trunk/tools/FlairGCS/src/ConnectionLayout.h	(revision 443)
@@ -27,5 +27,5 @@
   
 private:
-  void drawDatas(char *buf, int buf_size, uint16_t period,
+  void drawDatas(char *buf, int buf_size, uint16_t period,uint16_t nb_buffering,
                  bool big_endian = false);
   QString name;
Index: /trunk/tools/FlairGCS/src/DataPlot1D.cpp
===================================================================
--- /trunk/tools/FlairGCS/src/DataPlot1D.cpp	(revision 442)
+++ /trunk/tools/FlairGCS/src/DataPlot1D.cpp	(revision 443)
@@ -76,9 +76,8 @@
 }
 
-void DataPlot1D::BufEvent(char **buf, int *buf_size, uint16_t period,
+void DataPlot1D::BufEvent(char **buf, int *buf_size, uint16_t period,uint16_t nb_buffering,
                           bool big_endian) {
   setEnabled(IsEnabled());
-  if (IsEnabled() == false || RefreshRate_ms() != period)
-    return;
+  if (IsEnabled() == false || RefreshRate_ms() != period) return;
   double *datas = (double *)malloc(datas_type.count() * sizeof(double));
 
@@ -89,6 +88,5 @@
       memcpy((void *)&data_raw, *buf, sizeof(uint32_t));
       *buf += sizeof(uint32_t);
-      if (big_endian == true)
-        data_raw = qFromBigEndian(data_raw);
+      if (big_endian == true) data_raw = qFromBigEndian(data_raw);
       datas[i] = *data;
     } else if (datas_type.at(i) == "int8_t") {
@@ -101,10 +99,8 @@
       memcpy((void *)&data, *buf, sizeof(data));
       *buf += sizeof(data);
-      if (big_endian == true)
-        data = qFromBigEndian(data);
+      if (big_endian == true) data = qFromBigEndian(data);
       datas[i] = data;
     } else {
-      fprintf(stderr,"DataPlot1D::BufEvent unknown type %s\n",
-             datas_type.at(i).toLocal8Bit().constData());
+      fprintf(stderr,"DataPlot1D::BufEvent unknown type %s\n",datas_type.at(i).toLocal8Bit().constData());
     }
   }
Index: /trunk/tools/FlairGCS/src/DataPlot1D.h
===================================================================
--- /trunk/tools/FlairGCS/src/DataPlot1D.h	(revision 442)
+++ /trunk/tools/FlairGCS/src/DataPlot1D.h	(revision 443)
@@ -21,5 +21,5 @@
   void XmlEvent(QDomElement *dom);
   bool eventFilter(QObject *, QEvent *);
-  void BufEvent(char **buf, int *buf_size, uint16_t period, bool big_endian);
+  void BufEvent(char **buf, int *buf_size, uint16_t period, uint16_t nb_buffering,bool big_endian);
   bool mouseEvent(QMouseEvent *event);
   QList<QString> datas_type;
Index: /trunk/tools/FlairGCS/src/DataPlot2D.cpp
===================================================================
--- /trunk/tools/FlairGCS/src/DataPlot2D.cpp	(revision 442)
+++ /trunk/tools/FlairGCS/src/DataPlot2D.cpp	(revision 443)
@@ -251,5 +251,5 @@
 }
 
-void DataPlot2D::BufEvent(char **buf, int *buf_size, uint16_t period, bool big_endian) {
+void DataPlot2D::BufEvent(char **buf, int *buf_size, uint16_t period, uint16_t nb_buffering,bool big_endian) {
   
   if (IsEnabled() == false || RefreshRate_ms() != period)
Index: /trunk/tools/FlairGCS/src/DataPlot2D.h
===================================================================
--- /trunk/tools/FlairGCS/src/DataPlot2D.h	(revision 442)
+++ /trunk/tools/FlairGCS/src/DataPlot2D.h	(revision 443)
@@ -46,5 +46,5 @@
   void setYAxisScale(float ymin, float ymax);
   void setXAxisScale(float xmin, float xmax);
-  void BufEvent(char **buf, int *buf_size, uint16_t period, bool big_endian);
+  void BufEvent(char **buf, int *buf_size, uint16_t period,uint16_t nb_buffering, bool big_endian);
   void showCurve(QwtPlotItem *item, bool on);
 
Index: /trunk/tools/FlairGCS/src/DataRemote.h
===================================================================
--- /trunk/tools/FlairGCS/src/DataRemote.h	(revision 442)
+++ /trunk/tools/FlairGCS/src/DataRemote.h	(revision 443)
@@ -21,6 +21,5 @@
   bool IsEnabled(void);
   int ReceiveSize(void);
-  virtual void BufEvent(char **buf, int *buf_size, uint16_t period,
-                        bool big_endian) = 0;
+  virtual void BufEvent(char **buf, int *buf_size, uint16_t period,uint16_t nb_buffering, bool big_endian) = 0;
   void appendmenu(QMenu *menu);
   QAction *execmenu(QWidget *parent, QMenu *menu, QPoint point);
Index: /trunk/tools/FlairGCS/src/Map.cpp
===================================================================
--- /trunk/tools/FlairGCS/src/Map.cpp	(revision 442)
+++ /trunk/tools/FlairGCS/src/Map.cpp	(revision 443)
@@ -287,5 +287,5 @@
 }
 
-void Map::BufEvent(char **buf, int *buf_size, uint16_t period,
+void Map::BufEvent(char **buf, int *buf_size, uint16_t period,uint16_t nb_buffering,
                    bool big_endian) {
   if (IsEnabled() == false || RefreshRate_ms() != period)
Index: /trunk/tools/FlairGCS/src/Map.h
===================================================================
--- /trunk/tools/FlairGCS/src/Map.h	(revision 442)
+++ /trunk/tools/FlairGCS/src/Map.h	(revision 443)
@@ -57,5 +57,5 @@
   void Reset(void);
   void XmlEvent(QDomElement *dom);
-  void BufEvent(char **buf, int *buf_size, uint16_t period, bool big_endian);
+  void BufEvent(char **buf, int *buf_size, uint16_t period,uint16_t nb_buffering, bool big_endian);
 
   void RemovePoints(void);
Index: /trunk/tools/FlairGCS/src/Picture.cpp
===================================================================
--- /trunk/tools/FlairGCS/src/Picture.cpp	(revision 442)
+++ /trunk/tools/FlairGCS/src/Picture.cpp	(revision 443)
@@ -45,5 +45,5 @@
 Picture::~Picture() { delete layout; }
 
-void Picture::BufEvent(char **buf, int *buf_size, uint16_t period,
+void Picture::BufEvent(char **buf, int *buf_size, uint16_t period,uint16_t nb_buffering,
                        bool big_endian) {
   if (big_endian)
Index: /trunk/tools/FlairGCS/src/Picture.h
===================================================================
--- /trunk/tools/FlairGCS/src/Picture.h	(revision 442)
+++ /trunk/tools/FlairGCS/src/Picture.h	(revision 443)
@@ -37,5 +37,5 @@
 
   bool eventFilter(QObject *, QEvent *);
-  void BufEvent(char **buf, int *buf_size, uint16_t period, bool big_endian);
+  void BufEvent(char **buf, int *buf_size, uint16_t period,uint16_t nb_buffering, bool big_endian);
   void XmlEvent(QDomElement *dom);
 };
Index: /trunk/tools/FlairGCS/src/RangeFinderPlot.cpp
===================================================================
--- /trunk/tools/FlairGCS/src/RangeFinderPlot.cpp	(revision 442)
+++ /trunk/tools/FlairGCS/src/RangeFinderPlot.cpp	(revision 443)
@@ -148,5 +148,5 @@
 }
 
-void RangeFinderPlot::BufEvent(char **buf, int *buf_size, uint16_t period,
+void RangeFinderPlot::BufEvent(char **buf, int *buf_size, uint16_t period,uint16_t nb_buffering,
                                bool big_endian) {
   plot->setEnabled(IsEnabled());
Index: /trunk/tools/FlairGCS/src/RangeFinderPlot.h
===================================================================
--- /trunk/tools/FlairGCS/src/RangeFinderPlot.h	(revision 442)
+++ /trunk/tools/FlairGCS/src/RangeFinderPlot.h	(revision 443)
@@ -44,5 +44,5 @@
 
   bool eventFilter(QObject *, QEvent *);
-  void BufEvent(char **buf, int *buf_size, uint16_t period, bool big_endian);
+  void BufEvent(char **buf, int *buf_size, uint16_t period, uint16_t nb_buffering,bool big_endian);
 };
 
Index: /trunk/tools/FlairGCS/src/UdtSocket.cpp
===================================================================
--- /trunk/tools/FlairGCS/src/UdtSocket.cpp	(revision 442)
+++ /trunk/tools/FlairGCS/src/UdtSocket.cpp	(revision 443)
@@ -225,5 +225,7 @@
             case DATA_BIG_ENDIAN:
             case DATA_LITTLE_ENDIAN:
-              emit dataReady(buf, size );
+            case MULTIPLE_DATA_BIG_ENDIAN:
+            case MULTIPLE_DATA_LITTLE_ENDIAN:
+              emit dataReady(buf, size);
               break;
             case CLOSING_CONNECTION:
Index: /trunk/tools/FlairGCS/src/UsSensorPlot.cpp
===================================================================
--- /trunk/tools/FlairGCS/src/UsSensorPlot.cpp	(revision 442)
+++ /trunk/tools/FlairGCS/src/UsSensorPlot.cpp	(revision 443)
@@ -184,5 +184,5 @@
 }
 
-void UsSensorPlot::BufEvent(char **buf, int *buf_size, uint16_t period,bool big_endian) {
+void UsSensorPlot::BufEvent(char **buf, int *buf_size, uint16_t period,uint16_t nb_buffering,bool big_endian) {
   plot->setEnabled(IsEnabled());
   if (IsEnabled() == false || RefreshRate_ms() != period)
Index: /trunk/tools/FlairGCS/src/UsSensorPlot.h
===================================================================
--- /trunk/tools/FlairGCS/src/UsSensorPlot.h	(revision 442)
+++ /trunk/tools/FlairGCS/src/UsSensorPlot.h	(revision 443)
@@ -57,5 +57,5 @@
   void setYAxisScale(float ymin, float ymax);
   void setXAxisScale(float xmin, float xmax);
-  void BufEvent(char **buf, int *buf_size, uint16_t period, bool big_endian);
+  void BufEvent(char **buf, int *buf_size, uint16_t period, uint16_t nb_buffering,bool big_endian);
   void plotMeasure(int index);
   
