Index: trunk/FACT++/src/smartfact.cc
===================================================================
--- trunk/FACT++/src/smartfact.cc	(revision 13951)
+++ trunk/FACT++/src/smartfact.cc	(revision 13952)
@@ -393,5 +393,5 @@
      int64_t fFadControlNumEvents;
      int32_t fFadControlDrsStep;
-    uint32_t fFadControlDrsRuns[3];
+    vector<uint32_t> fFadControlDrsRuns;
 
     float  fFtmControlTriggerRateCam;
@@ -406,4 +406,6 @@
     uint8_t   fRateScanBoard;
     deque<float> fRateScanDataHist[41];
+
+    bool fSunIsVisible;
 
     int fHasError;
@@ -534,5 +536,5 @@
         string msg;
         msg += str==time ? "--:--:-- " : time;
-        msg += "<->"+string(d.Ptr<char>())+"</->";
+        msg += d.Ptr<char>();
 
         fControlMessageHist.push_back(msg);
@@ -543,6 +545,8 @@
         out << HTML::kWhite << '\t';
 
+        out << "<->";
         for (auto it=fControlMessageHist.begin(); it!=fControlMessageHist.end(); it++)
             out << *it << "<br/>";
+        out << "</->";
 
         out << '\n';
@@ -667,4 +671,6 @@
         else
             out << "\t\n";
+
+        fSunIsVisible = astro.state>=3 && astro.state<=5;
 
         ofstream(fPath+"/weather.data") << out.str();
@@ -1324,5 +1330,5 @@
         }
 
-        switch (d.GetQoS())
+        switch (fFadControlDrsStep)
         {
         case 0:  WriteBinary(d, "fadcontrol-eventdata", max, 2,   -1); break;
@@ -1607,5 +1613,5 @@
 
 
-        if (!fDimFeedback.state()==Feedback::State::kCalibrating &&
+        if (fDimFeedback.state()!=Feedback::State::kCalibrating &&
             fDimBiasControl.state()==BIAS::State::kVoltageOn &&
             fBiasControlVoltageMed>3 &&
@@ -1767,9 +1773,9 @@
             const State rc = fDimDriveControl.description();
             string col = HTML::kGreen;
-            if (rc.index==6) // Moving
+            if (rc.index==Drive::State::kMoving) // Moving
                 col = HTML::kBlue;
-            if (rc.index==5) // Armed
+            if (rc.index==Drive::State::kArmed) // Armed
                 col = HTML::kWhite;
-            if (rc.index==7) // Tracking
+            if (rc.index==Drive::State::kTracking) // Tracking
             {
                 if (dev>60)   // ~1.5mm
@@ -1781,18 +1787,22 @@
 
             //out << rc.name << '\t';
-            out << fDriveControlPointingZd  << '\t';
+            out << fDriveControlPointingAz << ' ';
             out << setprecision(2);
-            out << fDriveControlPointingAz  << '\t';
-            if (fDimDriveControl.state()==7)
+            out << fDriveControlPointingZd  << "&deg;";
+            if (fDimDriveControl.state()==Drive::State::kTracking)
             {
-                out << fDriveControlSourceName  << '\t';
-                out << dev << '\n';
+                out << " &plusmn; " << dev << '"';
+                if (!fDriveControlSourceName.empty())
+                    out << '[' << fDriveControlSourceName  << ']';
             }
-            else
-                out << "\t\n";
+            if (fDimDriveControl.state()==Drive::State::kMoving)
+                out << " &#8362;";
             out << setprecision(3);
         }
         else
-            out << HTML::kWhite << '\n';
+            out << HTML::kWhite << '\t';
+        if (fSunIsVisible)
+            out << " &#9788;";
+        out << '\n';
 
         // ------------------- FSC ------------------
@@ -1842,6 +1852,8 @@
                 col = HTML::kRed;
 
-            out << col << '\t' << fFtmControlTriggerRateCam << '\t';
-            out << fFtmPatchThresholdMed << '\n';
+            out << col << '\t' << fFtmControlTriggerRateCam << " Hz";
+            if (fDimBiasControl.state()==BIAS::State::kVoltageOn)
+                out << " (" << fFtmPatchThresholdMed << ')';
+            out << '\n';
         }
         else
@@ -1877,5 +1889,5 @@
 
             // Feedback is currently calibrating => Blue
-            if (fDimFeedback.state()==13)
+            if (fDimFeedback.state()==Feedback::State::kCalibrating)
             {
                 out << HTML::kBlue << '\t';
@@ -1961,7 +1973,9 @@
         fBiasControlCurrentMax(0),
         fFscControlHumidityAvg(0),
+        fFadControlDrsRuns(3),
         fFtmControlTriggerRateCam(0),
         fRateScanDataId(0),
         fRateScanBoard(0),
+        fSunIsVisible(true),
         fHasError(2),
         // ---
