Index: /trunk/FACT++/gui/FactGui.h
===================================================================
--- /trunk/FACT++/gui/FactGui.h	(revision 10767)
+++ /trunk/FACT++/gui/FactGui.h	(revision 10768)
@@ -914,4 +914,6 @@
     // ===================== FTM ============================================
 
+    double fTimeStamp1;
+
     void handleFtmTriggerCounter(const DimData &d)
     {
@@ -927,6 +929,11 @@
         const FTM::DimTriggerCounter &sdata = *reinterpret_cast<const FTM::DimTriggerCounter*>(d.ptr());
 
-        fFtmTime->setText(QString::number(sdata.fTimeStamp));
+        fFtmTime->setText(QString::number(sdata.fTimeStamp/1000000., 'f', 6)+ " s");
         fTriggerCounter->setText(QString::number(sdata.fTriggerCounter));
+
+        if (sdata.fTimeStamp>0)
+            fTriggerCounterRate->setValue(1000000.*sdata.fTriggerCounter/sdata.fTimeStamp);
+        else
+            fTriggerCounterRate->setValue(0);
 
 
@@ -937,4 +944,5 @@
         {
             fTriggerCounter0 = sdata.fTriggerCounter;
+            fTimeStamp1      = sdata.fTimeStamp;
             return;
         }
@@ -944,8 +952,11 @@
         TH1 *h = (TH1*)c->FindObject("TimeFrame");
 
-        const double rate = sdata.fTriggerCounter-fTriggerCounter0;
-        fTriggerCounter0 = sdata.fTriggerCounter;
-
-        if (rate<0)
+        const double rate  = sdata.fTriggerCounter-fTriggerCounter0;
+        const double tdiff = sdata.fTimeStamp     -fTimeStamp1;
+
+        fTriggerCounter0   = sdata.fTriggerCounter;
+        fTimeStamp1        = sdata.fTimeStamp;
+
+        if (rate<0 && tdiff<=0)
         {
             fGraphFtmRate.Set(0);
@@ -962,12 +973,15 @@
         }
 
-        const double avgrate = sdata.fTimeStamp>0 ? double(sdata.fTriggerCounter)/sdata.fTimeStamp : 1;
+        if (rate<0)
+            return;
+
+        const double avgrate = sdata.fTimeStamp>0 ? double(sdata.fTriggerCounter)/sdata.fTimeStamp*1000000 : 1;
 
         const double t1 = h->GetXaxis()->GetXmax();
         const double t0 = h->GetXaxis()->GetXmin();
 
-        h->SetBins(h->GetNbinsX()+1, t0, t0+sdata.fTimeStamp+1);
+        h->SetBins(h->GetNbinsX()+1, t0, t0+sdata.fTimeStamp/1000000.+1);
         fGraphFtmRate.SetPoint(fGraphFtmRate.GetN(),
-                               t0+sdata.fTimeStamp, rate);
+                               t0+sdata.fTimeStamp/1000000., 1000000*rate/tdiff);
 
         if (t1-t0>60)
@@ -1023,6 +1037,10 @@
         const FTM::DimDynamicData &sdata = *reinterpret_cast<const FTM::DimDynamicData*>(d.ptr());
 
-        fFtmTime->setText(QString::number(sdata.fTimeStamp));
-        fOnTime->setText(QString::number(sdata.fOnTimeCounter));
+        fOnTime->setText(QString::number(sdata.fOnTimeCounter/1000000., 'f', 6)+" s");
+
+        if (sdata.fTimeStamp>0)
+            fOnTimeRel->setValue(100.*sdata.fOnTimeCounter/sdata.fTimeStamp);
+        else
+            fOnTimeRel->setValue(0);
 
         fFtmTemp0->setValue(sdata.fTempSensor[0]*0.1);
@@ -1350,7 +1368,7 @@
         SetFtuStatusLed(d.time);
 
-        // Write to special window!
-        Out() << "Error:" << endl;
-        Out() << sdata.fError << endl;
+        // FIXME: Write to special window!
+        //Out() << "Error:" << endl;
+        //Out() << sdata.fError << endl;
     }
 
@@ -1375,8 +1393,8 @@
                 SetLedColor(fStatusFTMLed, kLedYellow, time);
 	    if (s.index==FTM::kConnected || s.index==FTM::kIdle || s.index==FTM::kTakingData) // Dim connection / FTM connected
-            {
                 SetLedColor(fStatusFTMLed, kLedGreen, time);
+
+            if (s.index==FTM::kConnected || s.index==FTM::kIdle) // Dim connection / FTM connected
                 enable = true;
-            }
 
             fTriggerWidget->setEnabled(enable);
@@ -1957,8 +1975,22 @@
 #ifdef HAVE_ROOT
 
+        fGraphFtmRate.SetLineColor(kBlue);
+        fGraphFtmRate.SetMarkerColor(kBlue);
+        fGraphFtmRate.SetMarkerStyle(kFullDotMedium);
+
         for (int i=0; i<160; i++)
+        {
             fGraphPatchRate[i].SetName("PatchRate");
+            fGraphPatchRate[i].SetLineColor(kBlue);
+            fGraphPatchRate[i].SetMarkerColor(kBlue);
+            fGraphPatchRate[i].SetMarkerStyle(kFullDotMedium);
+        }
         for (int i=0; i<40; i++)
+        {
             fGraphBoardRate[i].SetName("BoardRate");
+            fGraphBoardRate[i].SetLineColor(kBlue);
+            fGraphBoardRate[i].SetMarkerColor(kBlue);
+            fGraphBoardRate[i].SetMarkerStyle(kFullDotMedium);
+        }
         /*
         TCanvas *c = fFtmTempCanv->GetCanvas();
