Index: trunk/FACT++/scripts/CheckUnderflow.js
===================================================================
--- trunk/FACT++/scripts/CheckUnderflow.js	(revision 15135)
+++ trunk/FACT++/scripts/CheckUnderflow.js	(revision 15136)
@@ -58,6 +58,6 @@
 
 var runs = service_drs.get(5000, false);
-if (!runs)
-    throw new Error("Could not connect to FAD_CONTROL/DRS_RUNS");
+//if (!runs)
+//    throw new Error("Could not connect to FAD_CONTROL/DRS_RUNS");
 
 var power = dim.state("AGILENT_CONTROL").time;
@@ -90,9 +90,12 @@
     // events. Thus there is no real guarantee that we do not receive
     // data of the previous run after we have started a new one.
-    dim.wait("FAD_CONTROL", "Connected", 10000);
+    if (dim.state("FAD_CONTROL").name=="WritingData")
+    {
+        dim.send("FAD_CONTROL/CLOSE_OPEN_FILES");
+        dim.wait("FAD_CONTROL", "Connected", 3000);
+    }
     v8.sleep(1000); // Let 'timeout' in SendRawData pass
 
-    var event = service_event.get(5000, false);
-    var event_counter = event.counter;
+    var event_counter = service_event.get(5000, false).counter;
 
     console.out("Starting drs-gain");
@@ -102,7 +105,7 @@
 
     var d = new Date();
-    v8.timeout(10000, function() { if (service_event.get(0, false).counter>event_counter) return true; });
-    //while (service_event.get(0, false).counter<=event_counter)
-    //    v8.sleep();
+    //v8.timeout(10000, function() { if (service_event.get(0, false).counter>event_counter) return true; });
+    while (service_event.get(0, false).counter<=event_counter)
+        v8.sleep();
 
     console.out("Event received: "+(new Date()-d)+"ms");
@@ -110,5 +113,5 @@
     dim.send("MCP/STOP");
 
-    event = service_event.get(0, false);
+    var event = service_event.get(0, false);
     service_event.close();
 
@@ -131,6 +134,7 @@
 
         // FIXME: Timeout
-        var drs_counter = service_drs.get(0, false);
+        var drs_counter = service_drs.get(0, false).counter;
         dim.send("FAD_CONTROL/LOAD_DRS_CALIBRATION", filefmt.$(yy, mm, dd, yy, mm, dd, nn));
+        //v8.timeout(5000, function() { if (service_drs.get(0, false).counter>drs_counter) return true; });
         while (drs_counter == service_drs.get(0, false).counter)
             v8.sleep();
