Modification history of drsdaq program
--------------------------------------

23/3/2009   Changed 'Events' entry in run header. It now gives the number of
    	    events in the current file.
24/3/2009   Copied into FACT subversion directory. Updated location of
    	    configuration file and PixelMap.txt (in config/ in repository).
	        Improved PrintMessage() and error outputs.
26/3/2009   Added PixelMap translation to communication with HV control.
30/3/2009   Added feedback gain. Checked into repository.
1/4/2009    Changed many 'char *' to 'const char *' to honour compiler warning
            on ihp-pc26 (newer version of g++ than on eth-vme02)
2/4/2009    Introduced check for magic number in RawDataCTX.cc
3/4/2009    Added frequency and scale factor transmission to socket protocol
6/4/2009    Allowed reading of data via read command also while DAQ is active.
22/4/2009   Included sizes of RunHeader, EventHeader and BoardStructure in
    	    RunHeader and changed some data widths in RunHeader to U32 to
	        increase compatibility with Magic raw data format. Unique run
	        numbers are now generated using the file LastRunNumber.
28/4/2009   Raw file writing uses now writev() and is changed entirely to
    	    Linux system calls instead of C++ library functions. Introduced
	        new magic number that indicates an error while writing. More
	        extensive error checking for I/O functions. Requesting zero events
	        will let run go until stopped manually. Feedback writes slow data.
29/4/2009   DAQ writes run summary to slow data file.
14/5/2009   Streamlined raw data format.
18/5/2009   Included some version and size checking in RawDataCTX.cc.
19/5/2009   Subversion revision number included in run header. Added human readable
    	    date and time to slow data.
28/5/2009   Replaced NCMCBoards by NBoards for clarity. Added line editing
    	    capability with the readline library.
29/5/2009   Number of lines in log file limited to configurable number.
4/6/2009    Config file can contain array of numbers. Reading of config file now
    	    safe for buffer overflow. RawDataCTX class take the possibility of
	        varying event data size into account.
12/6/2009   Trigger cells (determined using DRS class GetTriggerCell()) are
    	    stored as array of integers in event data. RawDataCTX class pointer
	        'Data' changed from short* to char*.
16/6/2009   Data is not rotated by copying in memory, but by saving to disk in
    	    correct order using writev() (10% gain in rate)
18/6/2009   Run date is now calculated with a change to the next date on 13:00 UTC.
9/7/2009    SlowData class is now independet of PrintMessage() method, thus more
	    	universal
14/7/2009   Fixed assignment of trigger type in event header (now 0  is hardware
    	    trigger, 1 software trigger). Fixed pointer-arithmetic for trigger cell
	    	writing if first board written to disk is not physically first board.	    
28/7/2009   Added configuration parameters SlowDataPath and DefaultFrequency. All
    	    configuration parameters are now mandatory: if one is not found, the
	    	program terminates.
5/8/2009    Streamlined DRS response calibration (removing unnecessary
    	    initialisation steps)
10/8/2009   Socket interface to hvcontrol only checks, if first reponse starts with
    	    'OK', otherwise assumes command to hvcontrol failed.
22/9/2009   The 'start' command will now start the DAQ without disk writing, but
    	    with invocation of the feedback.
23/9/2009   Fixed bug in RawDataCTX.cc: sequential event number in a file is only
    	    the same as the event number in the run for the first file part
16/12/2009  Removed automatic gain adaption in feedback (caused spikes in the correction)
9/3/2010	Feedback now depended on DIM for communication with bias server.
			Started migration to DRS4 (last tested revision as daqct3 for DRS2 is 161).
			DRS class will not run anymore with DRS2 FPGA firmware.
11/3/2010	Removed SlowData class.			
12/3/2010	Removed local configuration and logging.
30/4/2010	Command 'start' now starts a normal run as 'take', but data is written to
			/dev/null, the run number is -1.
4/5/2010	Removed socket server, added DIM command handler (thus cannot communicate
			with ddd over socket anymore). Added DIM service containing full event.
18/5/2010	Rate of event service adjustable with command 'update'.
21/5/2010	Fix so that 'exit' command also works as DimCommand.
20/7/2010	Replaced mutex with Lock()/Unlock() from Evidence class, introduced DIM
			feedback state service, streamlined PrintMessage().
27/7/2010	Removed feedback from drsdaq. Feedback is now a separate DIM server and
			invoked through a DIM command. Last revision with feedback integrated into
			drsdaq is 264.
			
