Index: /fact/FADctrl/FAD.cc
===================================================================
--- /fact/FADctrl/FAD.cc	(revision 10186)
+++ /fact/FADctrl/FAD.cc	(revision 10187)
@@ -39,5 +39,6 @@
    {"stop", &FAD::cmd_stop, false, 0, "", "Stop current operation/run"},
    {"update", &FAD::cmd_update, false, 1, "<sec>", "Minimum delay between updates to DIM event service"},		  
-   {"socketmode", &FAD::cmd_socketmode, true, 1, "<com|daq>", "Choose which Sockets are used for data transmission"},		  
+   {"socketmode", &FAD::cmd_socketmode, true, 1, "<com|daq>", "Choose which Sockets are used for data transmission"},
+   {"daqmode", &FAD::cmd_daqmode, true, 1, "<start|stop>", "Set FAD DAQ mode. when started, no configurations must be send."},		  		  
    {"reconnect", &FAD::cmd_reconnect, true, 1, "<board range> [init]", "Reconnect to boards (and re-initialise)"},		  
    {"exit", &FAD::cmd_exit, false, 0, "", "Exit program"},
@@ -203,6 +204,6 @@
 
   for (unsigned int i=0; i<Boards.size(); i++) {
-	if (Match(Parameter[1],"com")) Boards[i]->Send(CMD_Stop);
-	else if (Match(Parameter[1],"daq")) Boards[i]->Send(CMD_Start);
+	if (Match(Parameter[1],"com")) Boards[i]->Send(CMD_mode_command);
+	else if (Match(Parameter[1],"daq")) Boards[i]->Send(CMD_mode_all_sockets);
 	else {
 	  PrintUsage();
@@ -211,4 +212,24 @@
   }
 } 
+
+//
+// Set DAQ mode
+// "start" - DAQ started, no configurations may be issued
+// "stop" - DAQ stopped, configurations may be issued
+// 
+//	Note that socket 0 is always used to issue commands
+//
+void FAD::cmd_daqmode() {
+
+  for (unsigned int i=0; i<Boards.size(); i++) {
+	if (Match(Parameter[1],"start")) Boards[i]->Send(CMD_Start);
+	else if (Match(Parameter[1],"stop")) Boards[i]->Send(CMD_Stop);
+	else {
+	  PrintUsage();
+	  return;
+	}
+  }
+} 
+
 
 //
Index: /fact/FADctrl/FAD.h
===================================================================
--- /fact/FADctrl/FAD.h	(revision 10186)
+++ /fact/FADctrl/FAD.h	(revision 10187)
@@ -69,5 +69,6 @@
 	void cmd_board();		void cmd_status();
 	void cmd_acalib();		void cmd_serial();
-	void cmd_trigger(); 	void cmd_socketmode();
+	void cmd_trigger(); 	
+void cmd_socketmode();void cmd_daqmode();  
 	void cmd_srclk();		void cmd_sclk();
 	void cmd_dwrite();		void cmd_domino();
Index: /fact/FADctrl/FADBoard.cc
===================================================================
--- /fact/FADctrl/FADBoard.cc	(revision 10186)
+++ /fact/FADctrl/FADBoard.cc	(revision 10187)
@@ -418,6 +418,6 @@
 	  Status.BoardID = ntohl(Header->board_id);
 	  Status.FirmwareRevision = ntohl(Header->version_no);
-	  Status.TriggerID = ntohl(Header->local_trigger_id);
-	  Status.TriggerType = ntohs(Header->local_trigger_type);
+	  Status.TriggerID = ntohl(Header->trigger_id);
+	  Status.TriggerType = ntohs(Header->trigger_type);
 
 	  // Extract temperatures (MSB indicates if temperature is positive or negative)
Index: /fact/FADctrl/FADFormat.h
===================================================================
--- /fact/FADctrl/FADFormat.h	(revision 10186)
+++ /fact/FADctrl/FADFormat.h	(revision 10187)
@@ -7,6 +7,9 @@
 // Commands for FAD
 //
-#define CMD_Start 0xC000		// Start Run
-#define CMD_Stop 0x3000			// Stop Run
+#define CMD_Start 0x2200						// Start Run
+#define CMD_Stop 0x2300							// Stop Run
+#define CMD_mode_command 0x3000 		// Set Socket mode to: command mode
+#define CMD_mode_all_sockets 0x3100// Set Socket mode to: daq mode
+
 #define CMD_Trigger 0xA000 		// single trigger
 #define CMD_DENABLE 0x0600      // DENABLE line HIGH
@@ -50,29 +53,43 @@
 //
 typedef struct {
-	unsigned short start_package_flag;
-	unsigned short package_length;
-	unsigned short version_no;
-	unsigned long trigger_id;
-	unsigned char trigger_type;
-	unsigned char trigger_crc;
-	unsigned long local_trigger_id;
-	unsigned char local_trigger_type;
-	unsigned char local_trigger_crc;
-	unsigned short board_id;
-	short drs_temperature[NTemp];
-	unsigned short dac[NDAC];
-}  __attribute__((__packed__)) PEVNT_HEADER;
-
+// ------------------------------
+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;
+uint16_t adc_clock_phase_shift;
+uint16_t number_of_triggers_to_generate;
+uint16_t trigger_generator_prescaler;
+// ------------------------------
+uint8_t DNA[8]; // Xilinx DNA
+// ------------------------------
+uint32_t time;
+uint32_t fad_status;
+// ------------------------------
+int16_t drs_temperature[NTemp];
+// ------------------------------
+uint16_t dac[NDAC];
+// ------------------------------
+} __attribute__((__packed__)) PEVNT_HEADER;
 typedef struct {
-	unsigned short id;
-	unsigned short start_cell;
-	unsigned short roi;
-	unsigned short adc_data[];
-}  __attribute__((__packed__)) PCHANNEL;
-
+uint16_t id;
+uint16_t start_cell;
+uint16_t roi;
+uint16_t filling;
+uint16_t adc_data[];
+} __attribute__((__packed__)) PCHANNEL;
 typedef struct {
-	unsigned short package_crc;
-	unsigned short end_package_flag;
-}  __attribute__((__packed__)) PEVNT_FOOTER;
+uint16_t package_crc;
+uint16_t end_package_flag;
+} __attribute__((__packed__)) PEVNT_FOOTER;
 
 #endif
