Index: fact/drsdaq/DAQReadout.cc
===================================================================
--- fact/drsdaq/DAQReadout.cc	(revision 10118)
+++ fact/drsdaq/DAQReadout.cc	(revision 10903)
@@ -46,4 +46,5 @@
    {"uptime", &DAQReadout::cmd_uptime, false, "", "Get DAQ uptime"},		  
    {"update", &DAQReadout::cmd_update, false, "<sec>", "Minimum delay between updates to DIM event service"},		  
+   {"write", &DAQReadout::cmd_write, true, "<chips> <channels>", "Select number of chips and channels to write to disk"},		  
    {"exit", &DAQReadout::cmd_exit, false, "", "Exit program"},
    {"help", &DAQReadout::cmd_help, false, "", "Print help"}};
@@ -79,4 +80,6 @@
   MinDelay  			= 1;
   RunNumber 			= -1;
+  ChipsToWrite			= kNumberOfChipsMax;
+  ChannelsToWrite		= kNumberOfChannelsMax;
 
   // Get configuration data (static needed for c_str() pointers to remain valid after constructor finished)
@@ -205,6 +208,8 @@
 // Get uptime
 void DAQReadout::cmd_uptime() {
+
   time_t ActualT;
-  time (&ActualT);
+
+  time(&ActualT);
   PrintMessage("%02d:%02d:%02d\n", (int) difftime(ActualT, StartTime)/3600, ((int) difftime(ActualT, StartTime)/60)%60, (int) difftime(ActualT, StartTime)%60);
 } 
@@ -212,4 +217,5 @@
 // Print disk space
 void DAQReadout::cmd_disk() {
+
   PrintMessage("Free disk space (%s) [MB]: %lu\n", fRawDataPath, CheckDisk(fRawDataPath));
 } 
@@ -217,4 +223,5 @@
 // Print current number of events
 void DAQReadout::cmd_events() {
+
   if(daq_state != active) PrintMessage("DAQ not active\n");
   else PrintMessage("Current number of events: %d (of %d requested)\n", NumEvents, NumEventsRequested);
@@ -620,4 +627,5 @@
 // Set DRS sampling frequency
 void DAQReadout::cmd_freq() {    
+
   if (NParam>=2 && atof(Param[1])) {
     SetDRSFrequency(atof(Param[1]), NParam==2 ? false : true);
@@ -628,4 +636,5 @@
 // Set LED
 void DAQReadout::cmd_led() {
+
   if (Match(Param[1], "on") || Match(Param[1], "off"))
     for (int i=FirstBoard; i<=LastBoard; i++)
@@ -719,4 +728,26 @@
 }
 
+// Select chips and channels to write to disk
+void DAQReadout::cmd_write() {    
+
+  int Chips, Chans;
+
+  if (NParam != 3) {
+	PrintUsage();
+	return;
+  }
+
+  Chips = atoi(Param[1]);
+  Chans = atoi(Param[2]);
+  
+  if (Chips<1 || Chips>kNumberOfChipsMax || Chans<1 || Chans>kNumberOfChannelsMax) {
+    PrintMessage("Number of chips or channels out of range\n");
+	return;
+  }
+  
+  ChipsToWrite = Chips;
+  ChannelsToWrite = Chans;
+} 
+
 // Adress DRS boards
 void DAQReadout::cmd_board() {
@@ -993,6 +1024,6 @@
   
   RHeader->NBoards   = NumBoards==0 && daq_runtype==test ? 1 : (LastBoard - FirstBoard) + 1;  
-  RHeader->NChips    = NumBoards==0 ? kNumberOfChipsMax : GetBoard(0)->GetNumberOfChips();
-  RHeader->NChannels = NumBoards==0 ? kNumberOfChannelsMax : GetBoard(0)->GetNumberOfChannels();
+  RHeader->NChips    = NumBoards==0 ? kNumberOfChipsMax : std::min(GetBoard(0)->GetNumberOfChips(), ChipsToWrite);
+  RHeader->NChannels = NumBoards==0 ? kNumberOfChannelsMax : std::min(GetBoard(0)->GetNumberOfChannels(), ChannelsToWrite);
   RHeader->NBytes    = sizeof(short);
 
Index: fact/drsdaq/DAQReadout.h
===================================================================
--- fact/drsdaq/DAQReadout.h	(revision 10118)
+++ fact/drsdaq/DAQReadout.h	(revision 10903)
@@ -17,4 +17,5 @@
 #include <sys/vfs.h>
 #include <sys/time.h>
+#include <algorithm>
 
 #include "RawDataCTX.h"
@@ -88,4 +89,7 @@
     int FirstBoard;
     int LastBoard;
+	int ChipsToWrite;
+	int ChannelsToWrite;
+  
     float *DRSFreq;   	      	// DRS sampling frequency [GHz]
     bool *ACalib;
@@ -101,5 +105,5 @@
     void cmd_acalib();	   void cmd_serial();
     void cmd_trigger();	   void cmd_centre();
-	void cmd_refclk();
+	void cmd_refclk();	   void cmd_write();
     void cmd_wmode();	   void cmd_rmode();
     void cmd_dmode();	   void cmd_read();
Index: fact/drsdaq/History.txt
===================================================================
--- fact/drsdaq/History.txt	(revision 10118)
+++ fact/drsdaq/History.txt	(revision 10903)
@@ -74,3 +74,4 @@
 			drsdaq is 264.
 30/7/2010	Published some run-related information as DIM service.
+3/6/2011	Added 'write' command (for PEBS application)
 			
