Index: trunk/lib/FlairCore/src/ui_com.cpp
===================================================================
--- trunk/lib/FlairCore/src/ui_com.cpp	(revision 443)
+++ trunk/lib/FlairCore/src/ui_com.cpp	(revision 444)
@@ -389,8 +389,8 @@
   dataToSend->CopyDatas(ptr->buf+ptr->actual_size);
   ptr->actual_size+=dataToSend->SendSize();
-  Printf("nb buffered %i/%i\n",ptr->actual_size,ptr->final_size);
-  Printf("pushed size %i period %i nb buffering %i\n",dataToSend->SendSize(),dataToSend->SendPeriod(),dataToSend->NbBuffering());
+  //Printf("nb buffered %i/%i\n",ptr->actual_size,ptr->final_size);
+  //Printf("pushed size %i period %i nb buffering %i\n",dataToSend->SendSize(),dataToSend->SendPeriod(),dataToSend->NbBuffering());
   if(ptr->actual_size>=ptr->final_size) {//par securité on test aussi le cas ou supérieur
-      Printf("ready to send\n");
+      //Printf("ready to send\n");
       SendNRT(ptr->buf, ptr->actual_size,ptr->period);
       //clean
@@ -615,5 +615,5 @@
         if(bufSize!=0) bufSize+=sizeof(char)+sizeof(uint16_t)+sizeof(uint16_t);//header+period+nb_buffering
         if(bufSize!=(*pushedDatasIterator).final_size && bufSize!=0) {
-            Printf("change buf size %i->%i\n",(*pushedDatasIterator).final_size,bufSize);
+            //Printf("change buf size %i->%i\n",(*pushedDatasIterator).final_size,bufSize);
             (*pushedDatasIterator).actual_size=0;
             (*pushedDatasIterator).final_size=bufSize;
@@ -622,5 +622,5 @@
         }
         if(bufSize==0) {
-            Printf("delete buf\n");
+            //Printf("delete buf\n");
             free((*pushedDatasIterator).buf);
             pushedDatasIterator = pushedDatas.erase(pushedDatasIterator);
@@ -635,5 +635,5 @@
       for (size_t i = 0; i < pushedDatas.size(); i++) {
           if (pushedDatas.at(i).period==obj->SendPeriod() && pushedDatas.at(i).nb_buffering==obj->NbBuffering()) {
-              Printf("match item %i, period %i nb buff %i\n",i,obj->SendPeriod(),obj->NbBuffering());
+              //Printf("match item %i, period %i nb buff %i\n",i,obj->SendPeriod(),obj->NbBuffering());
               match=true;
             }
@@ -641,5 +641,5 @@
       //create new one
       if(!match) {
-        printf("no match\n");
+        //printf("no match\n");
         PushedData_t tmp;
         tmp.period=obj->SendPeriod();
@@ -648,13 +648,13 @@
         tmp.final_size=0;
         for (size_t i = 0; i < datasToSend.size(); i++) {
-            Printf("data %i/%i %i %i\n",i,datasToSend.size(),datasToSend.at(i)->SendPeriod() ,datasToSend.at(i)->NbBuffering());
+            //Printf("data %i/%i %i %i\n",i,datasToSend.size(),datasToSend.at(i)->SendPeriod() ,datasToSend.at(i)->NbBuffering());
             if (datasToSend.at(i)->IsEnabled() && datasToSend.at(i)->SendPeriod() == obj->SendPeriod() && datasToSend.at(i)->NbBuffering()==obj->NbBuffering()) {
               tmp.final_size+=datasToSend.at(i)->SendSize();
-              Printf("add %i\n",datasToSend.at(i)->SendSize());
+              //Printf("add %i\n",datasToSend.at(i)->SendSize());
             }
         }
         tmp.final_size*=obj->NbBuffering();
         tmp.final_size+=sizeof(char)+sizeof(uint16_t)+sizeof(uint16_t);//header+period+nb_buffering
-        printf("final size %i\n",tmp.final_size);
+        //printf("final size %i\n",tmp.final_size);
         tmp.buf=(char*)malloc(tmp.final_size);
         if(tmp.buf!=NULL) {
@@ -665,5 +665,5 @@
       }
   }
-  Printf("nb buf %i\n",pushedDatas.size());
+  //Printf("nb buf %i\n",pushedDatas.size());
   return;
 }
@@ -688,4 +688,6 @@
 
 void ui_com::UpdateDataToSendBufferSize(const SendData *obj) {
+    if(!obj->IsEnabled()) return;
+    
     send_mutex->GetMutex();
     
Index: trunk/tools/FlairGCS/src/ConnectionLayout.cpp
===================================================================
--- trunk/tools/FlairGCS/src/ConnectionLayout.cpp	(revision 443)
+++ trunk/tools/FlairGCS/src/ConnectionLayout.cpp	(revision 444)
@@ -60,4 +60,15 @@
     break;
   }
+  case MULTIPLE_DATA_BIG_ENDIAN: {
+    uint16_t period;
+    uint16_t nb_buffering;
+    memcpy(&period, buf+sizeof(char), sizeof(uint16_t));
+    period = qFromBigEndian(period);
+    memcpy(&nb_buffering,buf+sizeof(char)+sizeof(uint16_t), sizeof(uint16_t));
+    nb_buffering = qFromBigEndian(nb_buffering);
+    //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,true);
+    break;
+  }
   case MULTIPLE_DATA_LITTLE_ENDIAN: {
     uint16_t period;
@@ -65,5 +76,5 @@
     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);
+    //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;
@@ -118,5 +129,5 @@
     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);
+            dataremotes.at(j)->BufEvent(&buf, &buf_size, period, nb_buffering,big_endian);
         }
     }
Index: trunk/tools/FlairGCS/src/DataPlot1D.cpp
===================================================================
--- trunk/tools/FlairGCS/src/DataPlot1D.cpp	(revision 443)
+++ trunk/tools/FlairGCS/src/DataPlot1D.cpp	(revision 444)
@@ -76,8 +76,7 @@
 }
 
-void DataPlot1D::BufEvent(char **buf, int *buf_size, uint16_t period,uint16_t nb_buffering,
-                          bool big_endian) {
+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 || NbBuffering()!=nb_buffering) return;
   double *datas = (double *)malloc(datas_type.count() * sizeof(double));
 
Index: trunk/tools/FlairGCS/src/DataPlot1D.h
===================================================================
--- trunk/tools/FlairGCS/src/DataPlot1D.h	(revision 443)
+++ trunk/tools/FlairGCS/src/DataPlot1D.h	(revision 444)
@@ -21,5 +21,5 @@
   void XmlEvent(QDomElement *dom);
   bool eventFilter(QObject *, QEvent *);
-  void BufEvent(char **buf, int *buf_size, uint16_t period, uint16_t nb_buffering,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 443)
+++ trunk/tools/FlairGCS/src/DataPlot2D.cpp	(revision 444)
@@ -251,8 +251,7 @@
 }
 
-void DataPlot2D::BufEvent(char **buf, int *buf_size, uint16_t period, uint16_t nb_buffering,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)
-    return;
+  if (IsEnabled() == false || RefreshRate_ms() != period || NbBuffering()!=nb_buffering) return;
 
   for (int i = 0; i < datas->count(); i++) {
Index: trunk/tools/FlairGCS/src/DataPlot2D.h
===================================================================
--- trunk/tools/FlairGCS/src/DataPlot2D.h	(revision 443)
+++ trunk/tools/FlairGCS/src/DataPlot2D.h	(revision 444)
@@ -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,uint16_t nb_buffering, 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.cpp
===================================================================
--- trunk/tools/FlairGCS/src/DataRemote.cpp	(revision 443)
+++ trunk/tools/FlairGCS/src/DataRemote.cpp	(revision 444)
@@ -87,4 +87,8 @@
 }
 
+uint16_t DataRemote::NbBuffering(void) {
+   return nb_buffering;
+}
+
 bool DataRemote::IsEnabled(void) { return auto_refresh; }
 
@@ -107,6 +111,4 @@
 }
 
-int DataRemote::ReceiveSize(void) { return receivesize; }
-
 void DataRemote::XmlSetup(QDomElement *dom) {
   refresh_rate = dom->attribute("period").toUShort() / 1000.;
Index: trunk/tools/FlairGCS/src/DataRemote.h
===================================================================
--- trunk/tools/FlairGCS/src/DataRemote.h	(revision 443)
+++ trunk/tools/FlairGCS/src/DataRemote.h	(revision 444)
@@ -18,23 +18,23 @@
              uint16_t period, uint16_t nb_buffering=1);
   ~DataRemote();
+  virtual void BufEvent(char **buf, int *buf_size, uint16_t period,uint16_t nb_buffering,bool big_endian) = 0;
+
+protected:
+  int receivesize;
+  double refresh_rate; // en s
+  
+  void XmlSetup(QDomElement *dom);
   uint16_t RefreshRate_ms(void);
+  uint16_t NbBuffering(void);
   bool IsEnabled(void);
-  int ReceiveSize(void);
-  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);
-
-protected:
-  bool auto_refresh;
-  bool is_logging;
-  double refresh_rate; // en s
-  int receivesize;
-  uint16_t nb_buffering;
-
-  void XmlSetup(QDomElement *dom);
 
 private:
   void SendPeriod(uint16_t period, bool auto_refresh);
   void SendNbBuffering(uint16_t nb_buffering);
+  bool is_logging;
+  bool auto_refresh;
+  uint16_t nb_buffering;
   QAction *SetAutoRefresh, *setRefreshRate,*setNbBuffering;
   //QAction **log;//todo implement this feature (log directly in gcs, in case of uav program crash)
Index: trunk/tools/FlairGCS/src/Map.cpp
===================================================================
--- trunk/tools/FlairGCS/src/Map.cpp	(revision 443)
+++ trunk/tools/FlairGCS/src/Map.cpp	(revision 444)
@@ -287,8 +287,6 @@
 }
 
-void Map::BufEvent(char **buf, int *buf_size, uint16_t period,uint16_t nb_buffering,
-                   bool big_endian) {
-  if (IsEnabled() == false || RefreshRate_ms() != period)
-    return;
+void Map::BufEvent(char **buf, int *buf_size, uint16_t period,uint16_t nb_buffering,bool big_endian) {
+  if (IsEnabled() == false || RefreshRate_ms() != period || NbBuffering()!=nb_buffering) return;
 
   for (int i = 0; i < points.count(); i++) {
Index: trunk/tools/FlairGCS/src/Map.h
===================================================================
--- trunk/tools/FlairGCS/src/Map.h	(revision 443)
+++ trunk/tools/FlairGCS/src/Map.h	(revision 444)
@@ -57,5 +57,5 @@
   void Reset(void);
   void XmlEvent(QDomElement *dom);
-  void BufEvent(char **buf, int *buf_size, uint16_t period,uint16_t nb_buffering, 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 443)
+++ trunk/tools/FlairGCS/src/Picture.cpp	(revision 444)
@@ -45,11 +45,9 @@
 Picture::~Picture() { delete layout; }
 
-void Picture::BufEvent(char **buf, int *buf_size, uint16_t period,uint16_t nb_buffering,
-                       bool big_endian) {
+void Picture::BufEvent(char **buf, int *buf_size, uint16_t period,uint16_t nb_buffering,bool big_endian) {
   if (big_endian)
     fprintf(stderr,"Picture::BufEvent, big endian not handled\n");
 
-  if (IsEnabled() == false || RefreshRate_ms() != period)
-    return;
+  if (IsEnabled() == false || RefreshRate_ms() != period || NbBuffering()!=nb_buffering) return;
 
   if ((*buf_size) >= im_width * im_height) {
@@ -89,5 +87,5 @@
 
     a = menu->addAction("get frame");
-    a->setEnabled(!auto_refresh);
+    a->setEnabled(!IsEnabled());
 
     appendmenu(menu);
Index: trunk/tools/FlairGCS/src/Picture.h
===================================================================
--- trunk/tools/FlairGCS/src/Picture.h	(revision 443)
+++ trunk/tools/FlairGCS/src/Picture.h	(revision 444)
@@ -37,5 +37,5 @@
 
   bool eventFilter(QObject *, QEvent *);
-  void BufEvent(char **buf, int *buf_size, uint16_t period,uint16_t nb_buffering, 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 443)
+++ trunk/tools/FlairGCS/src/RangeFinderPlot.cpp	(revision 444)
@@ -148,9 +148,7 @@
 }
 
-void RangeFinderPlot::BufEvent(char **buf, int *buf_size, uint16_t period,uint16_t nb_buffering,
-                               bool big_endian) {
+void RangeFinderPlot::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)
-    return;
+ if (IsEnabled() == false || RefreshRate_ms() != period || NbBuffering()!=nb_buffering) return;
 
   for (uint32_t i = 0; i < nb_samples; i++) {
Index: trunk/tools/FlairGCS/src/RangeFinderPlot.h
===================================================================
--- trunk/tools/FlairGCS/src/RangeFinderPlot.h	(revision 443)
+++ trunk/tools/FlairGCS/src/RangeFinderPlot.h	(revision 444)
@@ -44,5 +44,5 @@
 
   bool eventFilter(QObject *, QEvent *);
-  void BufEvent(char **buf, int *buf_size, uint16_t period, uint16_t nb_buffering,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/UsSensorPlot.cpp
===================================================================
--- trunk/tools/FlairGCS/src/UsSensorPlot.cpp	(revision 443)
+++ trunk/tools/FlairGCS/src/UsSensorPlot.cpp	(revision 444)
@@ -186,6 +186,5 @@
 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)
-    return;
+  if (IsEnabled() == false || RefreshRate_ms() != period || NbBuffering()!=nb_buffering) return;
    
   measure_t measure;
Index: trunk/tools/FlairGCS/src/UsSensorPlot.h
===================================================================
--- trunk/tools/FlairGCS/src/UsSensorPlot.h	(revision 443)
+++ trunk/tools/FlairGCS/src/UsSensorPlot.h	(revision 444)
@@ -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, uint16_t nb_buffering,bool big_endian);
+  void BufEvent(char **buf, int *buf_size, uint16_t period,uint16_t nb_buffering,bool big_endian);
   void plotMeasure(int index);
   
