Index: trunk/FACT++/src/EventBuilderWrapper.h
===================================================================
--- trunk/FACT++/src/EventBuilderWrapper.h	(revision 11223)
+++ trunk/FACT++/src/EventBuilderWrapper.h	(revision 11224)
@@ -742,4 +742,30 @@
     }
 
+
+    int fRunNumber;
+
+
+    void InitRunNumber()
+    {
+        const int night = Time().NightAsInt();
+
+        fRunNumber = 1000;
+
+        while (--fRunNumber>=0)
+        {
+            ostringstream name;
+            name << night << '.' << setfill('0') << setw(3) << fRunNumber;
+
+            if (access((name.str()+".bin").c_str(), F_OK) == 0)
+                break;
+            if (access((name.str()+".fits").c_str(), F_OK) == 0)
+                break;
+        }
+
+        fRunNumber++;
+
+        cout << "FOUND: " << night << '.' << setfill('0') << setw(3) << fRunNumber << endl;
+    }
+
 public:
     EventBuilderWrapper(MessageImp &imp) : fMsg(imp),
@@ -767,4 +793,6 @@
         for (size_t i=0; i<40; i++)
             ConnectSlot(i, tcp::endpoint());
+
+        InitRunNumber();
     }
     ~EventBuilderWrapper()
@@ -1184,7 +1212,4 @@
     int eventCheck(PEVNT_HEADER *fadhd, EVENT *event)
     {
-
-        return 0;
-
         /*
          fadhd[i] ist ein array mit den 40 fad-headers
@@ -1199,32 +1224,11 @@
          */
 
-        /*
-         uint16_t start_package_flag;
-         uint16_t package_length;
-         uint16_t version_no;
-         uint16_t PLLLCK;
-
-         uint16_t trigger_crc;
-         uint16_t trigger_type;
-         uint32_t trigger_id;
-
-         uint32_t fad_evt_counter;
-         uint32_t REFCLK_frequency;
-
-         uint16_t board_id;
-         uint8_t  zeroes;
-         int8_t   adc_clock_phase_shift;
-         uint16_t number_of_triggers_to_generate;
-         uint16_t trigger_generator_prescaler;
-
-         uint64_t DNA;
-
-         uint32_t time;
-         uint32_t runnumber;
-
-         int16_t  drs_temperature[NTemp];
-
-         uint16_t dac[NDAC];
-         */
+        static Time oldt(boost::date_time::neg_infin);
+        Time newt;
+
+        if (newt<oldt+boost::posix_time::seconds(1))
+            return 0;
+
+        oldt = newt;
 
 	static DimEventData *data = 0;
@@ -1481,4 +1485,6 @@
         if (newt>oldt+boost::posix_time::seconds(1))
         {
+            oldt = newt;
+
             const boost::array<int16_t,42> tmp[4] =
             {
