Index: fact/FADctrl/FAD.cc
===================================================================
--- fact/FADctrl/FAD.cc	(revision 10098)
+++ fact/FADctrl/FAD.cc	(revision 10099)
@@ -57,5 +57,5 @@
   MainThread = pthread_self();
   Mode = idle;
-  EventUpdateDelay = atof(GetConfig("EventUpdateDelay", "0.5").c_str())*1e6;
+  EventUpdateDelay = atof(GetConfig("EventUpdateDelay", "0.5").c_str());
 
   // DIM console service used in PrintMessage()
@@ -70,5 +70,6 @@
   // Construct boards
   BoardList = Tokenize(GetConfig("BoardList","129.217.160.119"));
-
+  BoardList = Tokenize("192.33.99.225");
+printf("%s ", BoardList[0].c_str());
   for (unsigned int i=0; i<BoardList.size(); i++) {
     Boards.push_back(new class FADBoard(BoardList[i], 5000, this, i));
@@ -649,5 +650,5 @@
   vector<struct FADBoard::BoardStatus> Status;
   vector<unsigned short> ROICmd;
-  unsigned short DACCmd[] = {htons(CMD_Write | (BADDR_DAC + 2)), 0};
+  unsigned short DACCmd[] = {htons(CMD_Write | (BADDR_DAC + 1)), 0, htons(CMD_Write | (BADDR_DAC + 2)), 0, htons(CMD_Write | (BADDR_DAC + 3)), 0};
 
   /* Procedure
@@ -683,4 +684,6 @@
     // Set DAC first value
     DACCmd[1] = htons(0);
+    DACCmd[3] = htons(0);
+    DACCmd[5] = htons(0);
 	Boards[Brd]->Send(DACCmd, sizeof(DACCmd));
 
@@ -715,4 +718,6 @@
 	// Set second DAC value
     DACCmd[1] = htons(50000);
+    DACCmd[3] = htons(50000);
+    DACCmd[5] = htons(50000);
 	Boards[Brd]->Send(DACCmd, sizeof(DACCmd));
 
@@ -754,5 +759,7 @@
 	Boards[Brd]->Send(&ROICmd[0], ROICmd.size()*sizeof(unsigned short));
   
-    DACCmd[1] = htons(Status[Brd].DAC[2]);
+    DACCmd[1] = htons(Status[Brd].DAC[1]);
+    DACCmd[3] = htons(Status[Brd].DAC[2]);
+    DACCmd[5] = htons(Status[Brd].DAC[3]);
   	Boards[Brd]->Send(DACCmd, sizeof(DACCmd));
 	
@@ -842,5 +849,5 @@
   // Update loop
   while (!ExitRequest) {
-    usleep(EventUpdateDelay);
+    usleep(EventUpdateDelay*1e6);
 
 	// Update run and event header with current time
Index: fact/FADctrl/FADBoard.cc
===================================================================
--- fact/FADctrl/FADBoard.cc	(revision 10098)
+++ fact/FADctrl/FADBoard.cc	(revision 10099)
@@ -182,5 +182,5 @@
 
   static char Buffer[READ_BUFFER_SIZE];
-  static unsigned int Pos = 0;
+  static unsigned int Pos = 0, Temp;
   const PEVNT_HEADER *Header = (PEVNT_HEADER *) Buffer;
   ssize_t Result;
@@ -218,6 +218,18 @@
 	}
 	
-	// Check if full event available in buffer
-	if (Pos < sizeof(PEVNT_HEADER) || ntohs(Header->start_package_flag) != 0xfb01) continue;
+	// Check if buffer starts with start_package_flag, remove data if not
+	Temp = 0;
+	while (ntohs(Header->start_package_flag) != 0xfb01 && Pos > 0) {
+	  memmove(Buffer, Buffer+1, Pos-1);
+	  Pos--;
+	  Temp++;
+	}
+	if (Temp != 0) {
+	  printf("Removed %d bytes because of start_package_flag not found\n", Temp);
+	  continue;
+	}
+
+	// Wait until the buffer contains at least enough bytes to potentially hold a PEVNT_HEADER
+	if (Pos < sizeof(PEVNT_HEADER)) continue;
 	
 	unsigned int Length = ntohs(Header->package_length)*2*sizeof(char);
Index: fact/FADctrl/FADctrl.cc
===================================================================
--- fact/FADctrl/FADctrl.cc	(revision 10098)
+++ fact/FADctrl/FADctrl.cc	(revision 10099)
@@ -116,7 +116,7 @@
 
 	//ETHZ
-  //static char Hostname[] = "192.33.99.225";
+  static char Hostname[] = "192.33.99.225";
 	//TUDO
-	static char Hostname[] = "129.217.160.119";
+	//static char Hostname[] = "129.217.160.119";
   int List[] = {5001, 5002, 5003, 5004, 5005, 5006, 5007};
   int Socket[sizeof(List)/sizeof(int)], MaxSocketNum=0, Ret;
