Index: /trunk/FACT++/gui/FactGui.h
===================================================================
--- /trunk/FACT++/gui/FactGui.h	(revision 11165)
+++ /trunk/FACT++/gui/FactGui.h	(revision 11166)
@@ -390,4 +390,5 @@
     DimStampedInfo fDimFadConnections;
     DimStampedInfo fDimFadFwVersion;
+    DimStampedInfo fDimFadPllLock;
     DimStampedInfo fDimFadStatistics;
 
@@ -1110,5 +1111,39 @@
         fFadFwVersion->setToolTip(tip.str().c_str());
 
-        SetLedColor(fFadLEDFwVersion, d.qos?kLedGreen:kLedOrange, d.time);
+        SetLedColor(fFadLedFwVersion, d.qos?kLedGreen:kLedOrange, d.time);
+    }
+
+    void handleFadPllLock(const DimData &d)
+    {
+        if (!CheckSize(d, 43*sizeof(uint8_t)))
+            return;
+
+        SetLedColor(fFadLedPllLock, d.qos?kLedGreen:kLedOrange, d.time);
+
+        const uint8_t *ptr = d.ptr<uint8_t>();
+
+        ostringstream tip;
+        tip << "<table border='1'><tr><th colspan='11'>" << Time().GetAsStr() << "</th></tr><tr><th></th>";
+        for (int b=0; b<10; b++)
+            tip << "<th>" << b << "</th>";
+        tip << "</tr>";
+
+        for (int c=0; c<4; c++)
+        {
+            tip << "<tr><th>" << c << "</th>";
+            for (int b=0; b<10; b++)
+            {
+                tip << "<td>"
+                    << (int)(ptr[c*10+b+3]&8)
+                    << (int)(ptr[c*10+b+3]&4)
+                    << (int)(ptr[c*10+b+3]&2)
+                    << (int)(ptr[c*10+b+3]&1)
+                    << "</td>";
+            }
+            tip << "</tr>";
+        }
+        tip << "</table>";
+
+        fFadLedPllLock->setToolTip(tip.str().c_str());
     }
 
@@ -1908,4 +1943,7 @@
             return PostInfoHandler(&FactGui::handleFadFwVersion);
 
+        if (getInfo()==&fDimFadPllLock)
+            return PostInfoHandler(&FactGui::handleFadPllLock);
+
         if (getInfo()==&fDimFadStatistics)
             return PostInfoHandler(&FactGui::handleFadStatistics);
@@ -2349,4 +2387,5 @@
         fDimFadConnections     ("FAD_CONTROL/CONNECTIONS",      (void*)NULL, 0, this),
         fDimFadFwVersion       ("FAD_CONTROL/FIRMWARE_VERSION", (void*)NULL, 0, this),
+        fDimFadPllLock         ("FAD_CONTROL/PLL_LOCK",         (void*)NULL, 0, this),
         fDimFadStatistics      ("FAD_CONTROL/STATISTICS",       (void*)NULL, 0, this)
     {
Index: /trunk/FACT++/src/EventBuilderWrapper.h
===================================================================
--- /trunk/FACT++/src/EventBuilderWrapper.h	(revision 11165)
+++ /trunk/FACT++/src/EventBuilderWrapper.h	(revision 11166)
@@ -721,4 +721,5 @@
     DimDescribedService fDimEventData;
     DimDescribedService fDimFwVersion;
+    DimDescribedService fDimPllLock;
     DimDescribedService fDimStatistics;
 
@@ -740,4 +741,5 @@
 	fDimEventData("FAD_CONTROL/EVENT_DATA", "S:1;I:1;S:1;I:2;S:1;S", ""),
         fDimFwVersion("FAD_CONTROL/FIRMWARE_VERSION", "F:43", ""),
+        fDimPllLock("FAD_CONTROL/PLL_LOCK", "C:43", ""),
         fDimStatistics("FAD_CONTROL/STATISTICS", "X:8", ""),
         fDebugStream(false), fDebugRead(false)
@@ -1353,6 +1355,6 @@
             vec[i+3] = *ref;
 
-            if (gi_NumConnect[i/7]!=7)
-                continue;
+//            if (gi_NumConnect[i/7]!=7)
+//                continue;
 
             if (!val)
@@ -1403,5 +1405,5 @@
     {
         const uint16_t id = h.Id();
-        if (id>39) // WARNING
+        if (id>39) 
             return;
 
@@ -1442,5 +1444,10 @@
         {
             const pair<bool, boost::array<uint16_t,43>> pll = Compare(&h, &h.fStatus, 0xf<<12, 12);
-            Print("Pll", pll);
+            pair<bool, boost::array<uint8_t,43>> data;
+            data.first = pll.first;
+
+            for (int i=0; i<43; i++)
+                data.second[i] = (pll.second[i]>>12)&0xf;
+            Update(fDimPllLock, data);
         }
 
