Index: /trunk/BNC/bncwindow.cpp
===================================================================
--- /trunk/BNC/bncwindow.cpp	(revision 1930)
+++ /trunk/BNC/bncwindow.cpp	(revision 1931)
@@ -67,4 +67,5 @@
     _bytes[staID] = new sumAndMean();
   }
+  _counter = 0;
   slotNextAnimationFrame();
 }
@@ -78,4 +79,5 @@
 ////////////////////////////////////////////////////////////////////////////
 void FWidget::slotNewData(const QByteArray staID, double nbyte) {
+  QMutexLocker locker(&_mutex);
   QMap<QByteArray, sumAndMean*>::const_iterator it = _bytes.find(staID);
   if (it != _bytes.end()) {
@@ -87,4 +89,14 @@
 ////////////////////////////////////////////////////////////////////////////
 void FWidget::slotNextAnimationFrame() {
+  QMutexLocker locker(&_mutex);
+  if (++_counter == 10) {
+    QMapIterator<QByteArray, sumAndMean*> it(_bytes);
+    while (it.hasNext()) {
+      it.next();
+      it.value()->_mean = it.value()->_sum / _counter;
+      it.value()->_sum  = 0.0;
+    }
+    _counter = 0;
+  }
   update();
   QTimer::singleShot(1000, this, SLOT(slotNextAnimationFrame()));
@@ -116,7 +128,6 @@
   while (it.hasNext()) {
     it.next();
-    QByteArray staID    = it.key();
-    double     bytesnew = it.value()->_sum;
-    double     vv       = bytesnew/30;
+    QByteArray staID = it.key();
+    double     vv    = it.value()->_mean;
     QRectF vrect((100+anker*40), (140-vv), (30), (vv));
     QBrush xBrush(Qt::green,Qt::SolidPattern);
Index: /trunk/BNC/bncwindow.h
===================================================================
--- /trunk/BNC/bncwindow.h	(revision 1930)
+++ /trunk/BNC/bncwindow.h	(revision 1931)
@@ -52,4 +52,6 @@
   };
   QMap<QByteArray, sumAndMean*> _bytes;
+  QMutex                        _mutex;
+  int                           _counter;
 };
 
