Index: /trunk/FACT++/gui/FactGui.h
===================================================================
--- /trunk/FACT++/gui/FactGui.h	(revision 11321)
+++ /trunk/FACT++/gui/FactGui.h	(revision 11322)
@@ -385,4 +385,5 @@
     DimStampedInfo fDimFtmCounter;
 
+    DimStampedInfo fDimFadWriteStats;
     DimStampedInfo fDimFadRuns;
     DimStampedInfo fDimFadEvents;
@@ -890,4 +891,90 @@
 
     // ===================== FAD ============================================
+
+    void handleFadWriteStats(const DimData &d)
+    {
+        const bool connected = d.size()!=0;
+
+        fEvtBuilderET->setEnabled(connected);
+        fEvtBuilderRate->setEnabled(connected);
+        fEvtBuilderWritten->setEnabled(connected);
+        fEvtBuilderFreeSpace->setEnabled(connected);
+        fEvtBuilderSpaceLeft->setEnabled(connected);
+
+        if (!connected)
+            return;
+
+        const uint64_t *vals = d.ptr<uint64_t>();
+
+        const size_t space   = vals[0];
+        const size_t written = vals[1];
+        const size_t rate    = float(vals[2])/vals[3];
+
+        fEvtBuilderFreeSpace->setSuffix(" MB");
+        fEvtBuilderFreeSpace->setDecimals(0);
+        fEvtBuilderFreeSpace->setValue(space*1e-6);
+
+        if (space>   1000000)  // > 1GB
+        {
+            fEvtBuilderFreeSpace->setSuffix(" GB");
+            fEvtBuilderFreeSpace->setDecimals(2);
+            fEvtBuilderFreeSpace->setValue(space*1e-9);
+        }
+        if (space>=  3000000)  // >= 3GB
+        {
+            fEvtBuilderFreeSpace->setSuffix(" GB");
+            fEvtBuilderFreeSpace->setDecimals(1);
+            fEvtBuilderFreeSpace->setValue(space*1e-9);
+        }
+        if (space>=100000000)  // >= 100GB
+        {
+            fEvtBuilderFreeSpace->setSuffix(" GB");
+            fEvtBuilderFreeSpace->setDecimals(0);
+            fEvtBuilderFreeSpace->setValue(space*1e-9);
+        }
+
+        fEvtBuilderET->setTime(QTime().addSecs(rate>0?space/rate:0));
+        fEvtBuilderRate->setValue(rate*1e-3); // kB/s
+        fEvtBuilderWritten->setValue(written*1e-6);
+
+        fEvtBuilderRate->setSuffix(" kB/s");
+        fEvtBuilderRate->setDecimals(2);
+        fEvtBuilderRate->setValue(rate);
+        if (rate>   2)  // > 2kB/s
+        {
+            fEvtBuilderRate->setSuffix(" kB/s");
+            fEvtBuilderRate->setDecimals(1);
+            fEvtBuilderRate->setValue(rate);
+        }
+        if (rate>=100)  // >100kB/s
+        {
+            fEvtBuilderRate->setSuffix(" kB/s");
+            fEvtBuilderRate->setDecimals(0);
+            fEvtBuilderRate->setValue(rate);
+        }
+        if (rate>=1000)  // >100kB/s
+        {
+            fEvtBuilderRate->setSuffix(" MB/s");
+            fEvtBuilderRate->setDecimals(2);
+            fEvtBuilderRate->setValue(rate*1e-3);
+        }
+        if (rate>=10000)  // >1MB/s
+        {
+            fEvtBuilderRate->setSuffix(" MB/s");
+            fEvtBuilderRate->setDecimals(1);
+            fEvtBuilderRate->setValue(rate*1e-3);
+        }
+        if (rate>=100000)  // >10MB/s
+        {
+            fEvtBuilderRate->setSuffix(" MB/s");
+            fEvtBuilderRate->setDecimals(0);
+            fEvtBuilderRate->setValue(rate*1e-3);
+        }
+
+        if (space/1000000>static_cast<size_t>(fEvtBuilderSpaceLeft->maximum()))
+            fEvtBuilderSpaceLeft->setValue(fEvtBuilderSpaceLeft->maximum());  // GB
+        else
+            fEvtBuilderSpaceLeft->setValue(space/1000000);  // MB
+    }
 
     void handleFadRuns(const DimData &d)
@@ -2187,4 +2274,7 @@
 //        if (getInfo()==&fDimFadFiles)
 //            return PostInfoHandler(&FactGui::handleFadFiles);
+
+        if (getInfo()==&fDimFadWriteStats)
+            return PostInfoHandler(&FactGui::handleFadWriteStats);
 
         if (getInfo()==&fDimFadConnections)
@@ -2647,4 +2737,5 @@
         fDimFtmCounter         ("FTM_CONTROL/COUNTER",          (void*)NULL, 0, this),
         //-
+        fDimFadWriteStats      ("FAD_CONTROL/STATS",            (void*)NULL, 0, this),
         fDimFadRuns            ("FAD_CONTROL/RUNS",             (void*)NULL, 0, this),
         fDimFadEvents          ("FAD_CONTROL/EVENTS",           (void*)NULL, 0, this),
