Index: /fact/FADctrl/FAD.h
===================================================================
--- /fact/FADctrl/FAD.h	(revision 10262)
+++ /fact/FADctrl/FAD.h	(revision 10263)
@@ -46,5 +46,4 @@
 	static void LaunchEventThread(class FAD *);
 	pthread_t Thread;
-	float EventUpdateDelay;
 
     int Datafile;
@@ -92,4 +91,5 @@
 	int Pipe[2];
     int NumEventsRequested;	// Number of events requested
+	float EventUpdateDelay;
 	std::vector<std::string> BoardList;
 };
Index: /fact/FADctrl/FADBoard.cc
===================================================================
--- /fact/FADctrl/FADBoard.cc	(revision 10262)
+++ /fact/FADctrl/FADBoard.cc	(revision 10263)
@@ -348,4 +348,5 @@
   struct sockaddr_in SocketAddress;
   struct BoardStatus PrevStatus;
+  time_t LastUpdate = 0; 
   int Ret;
 
@@ -506,15 +507,19 @@
 
 	  // Update DIM services if necessary
-	  if (memcmp(PrevStatus.Temp, Status.Temp, sizeof(Status.Temp)) != 0) {
-		DIM_Temp->updateService(Status.Temp, sizeof(Status.Temp));
-	  }
-	  if (memcmp(PrevStatus.DAC, Status.DAC, sizeof(Status.DAC)) != 0) {
-		DIM_DAC->updateService(Status.DAC, sizeof(Status.DAC));
-	  }  
-	  if (memcmp(PrevStatus.ROI, Status.ROI, sizeof(Status.ROI)) != 0) {
-		DIM_ROI->updateService(Status.ROI, sizeof(Status.ROI));
-	  }  
-	  if (PrevStatus.BoardID != Status.BoardID) {
-		DIM_ID->updateService(&Status.BoardID, sizeof(Status.BoardID));
+	  if (time(NULL) - LastUpdate > m->EventUpdateDelay) {
+		LastUpdate = time(NULL);
+
+		if (memcmp(PrevStatus.Temp, Status.Temp, sizeof(Status.Temp)) != 0) {
+		  DIM_Temp->updateService(Status.Temp, sizeof(Status.Temp));
+		}
+		if (memcmp(PrevStatus.DAC, Status.DAC, sizeof(Status.DAC)) != 0) {
+		  DIM_DAC->updateService(Status.DAC, sizeof(Status.DAC));
+		}  
+		if (memcmp(PrevStatus.ROI, Status.ROI, sizeof(Status.ROI)) != 0) {
+		  DIM_ROI->updateService(Status.ROI, sizeof(Status.ROI));
+		}  
+		if (PrevStatus.BoardID != Status.BoardID) {
+		  DIM_ID->updateService(&Status.BoardID, sizeof(Status.BoardID));
+		}
 	  }
 	  
Index: /fact/FADctrl/History.txt
===================================================================
--- /fact/FADctrl/History.txt	(revision 10262)
+++ /fact/FADctrl/History.txt	(revision 10263)
@@ -19,2 +19,3 @@
 28/3/2011	Boards with communication error set themselves inactive
 29/3/2011	Added Status message service for each board (removed several console messages in turn)
+			Limited update rate of slow control data to 1 second or interval set by 'update'
