  /*acquisition commands */	
 "acquire"; // starts the detector, acquires, saves, postprocesses the data 
 "data"; // get all the data (detector should already be started)
 "frame"; // get one frame (detector should already be started)
 "status"; // can put start or stop, returns idel, error, running, data...
  /*configuration commands */	
 "free";// frees shared memory
 "add";// adds ne detector to multydetector structure
 "remove";// removes detector from multidetector structure
 "type"; // adds ne detector of type to multidetector structure - type can be Mythen , Gotthard...
 "hostname"; // for slsDetector sets the hostname, for multislsdetector adds new detector with hostname
 "id"; // returns the id of a detector
 "master"; // sets/gets the master for synchronization of multidetector
 "sync"; // sets/gets synchronization mode of a multidetector (none, trigger, gating, compementary)
 "help";// help for a command
 "exitserver";// shuts down detector server - do not use!
  /* data processing commands */
 "flatfield"; // sets/gets flatfield file
 "ffdir"; // sets gets/ flatfield directory
 "ratecorr"; // sets/gets rate correction tau in ns
 "badchannels"; // sets/gets badchannel file
 "angconv"; // sets/gets angularconversion file
 "globaloff"; // sets/gets beamline globaloffset
 "fineoff"; // sets/gets experiment fine offset
 "binsize" ;// sets/gets angular binsize for angular conversion
 "angdir" ;// sets/ get angular direction (1,-1)
 "moveflag" ;// sets/gets moveflag for the detector (default is 1)
 "threaded"; // sets/gets threaded mode (do not use!)
 "darkimage"; // sets/gets the darkimage for the Gotthard detector
 "gainimage"; // sets/gets the gainimage for the Gotthard detector
 "readctr"; // read counters for the Gotthard detector
 "resetctr"; //resets counters for the Gotthard detector
 "resmat"; //reset or not the counter before the following acquisition (at the end of the acquisoition the counter is always reset) (very advanced! EIGER only)
 /* trim/cal directories */
 "settingsdir"; //sets/gets the directory where the settings files are
 "trimdir"; // as settingsdir
 "caldir"; //sets/gets the directory where the calibration files are
 "trimen"; // sets/gets the energies at which the detector is trimmed (no implemented)
  /* file name */
 "outdir"; // sets/gets the output directory
 "fname"; // sets/gets the file name
 "index"; // sets/gets the start file index (Automatically incremented during the acquisition)
 "online"; // checks if the detector is online
 "checkonline"; // checks if the detector is online by testing the connection
 "enablefwrite"; // enable/disable file writing
  /* Acquisition actions */
 "positions"; // sets/gets number of positions and their values
 "startscript"; // sets/gets start script
 "startscriptpar"; // sets/gets start script parameter
 "stopscript"; // sets/gets stop script
 "stopscriptpar"; // sets/gets stop script parameter
 "scriptbefore"; // sets/gets scrip before
 "scriptbeforepar"; //sets/gets scrip before parameter
 "scriptafter"; // sets/gets script after
 "scriptafterpar"; //sets/gets script after  parameter
 "headerafter"; // sets/gets header after script
 "headerafterpar"; // sets/gets header after parameter
 "headerbefore"; //  sets/gets header before script
 "headerbeforepar"; // sets/gets header before parameter
 "scan0script"; // sets/gets scan0 script (or none,threshold, energy,position)
 "scan0par"; // sets/gets scan0 parameter
 "scan0prec"; // sets/gets scan0 precision (in file name)
 "scan0steps"; // sets/gets scan0 number of steps and their values
 "scan0range"; // sets/gets scan0 range (min, max, step)
 "scan1script"; // sets/gets scan1 script (or none,threshold, energy,position)
 "scan1par"; // sets/gets scan1 parameter
 "scan1prec"; // sets/gets scan1 precision (in file name)
 "scan1steps"; // sets/gets scan1 number of steps and their values
 "scan1range"; // sets/gets scan1 range (min, max, step)
 "encallog"; // sets/gets encallog mode (0,1) for energy calibration
 "angcallog"; // sets/gets angcallog mode (0,1) for energy calibration
  /* communication configuration */
 "clientip"; // sets/gest client ip for Gotthard
 "clientmac"; // sets/gest client mac for Gotthard
 "servermac"; // sets/gest server mac for Gotthard
 "configuremac"; // configure the detector mac for Gotthard
 "port"; // sets control communication port
 "stopport"; // sets status communication port
 "dataport"; // sets data port 
 "lock"; // lock detector (no other PC can connect)
 "lastclient"; // gest last conencted client
  /* detector and data size */
 "nmod"; // sets/gets number of modules
 "maxmod"; // sets/gets maximum number of modules
 "dr"; // sets/gets dynamic range
  /* flags */
 "flags"; // sets/gets readout flags (none, storeinram, tot)
 "extsig"; // sets/gets configuration of the lemo conenctors
 "timing"; // sets/gets detector timing mode (auto, gating, trigger)
  /* versions/ serial numbers  getId */
 "moduleversion"; // gets module version
 "detectornumber"; // gets detector mac address
 "modulenumber"; // gets module serial number
 "detectorversion"; // gets detector firmware version
 "softwareversion"; // gets detector software version
 "thisversion"; // get client software version
  /* digital test and debugging */
 "digitest";  // digital test of a module
 "bustest"; // test of CPU-FPGA communication
 "digibittest"; // for Gotthard
 "acqtest"; // for Gotthard
 "reg"; // read/write register  - do not use!
  /* settings, threshold */
 "settings"; // set/gets settings (standard, fast, highgain)
 "threshold"; // set threshold in eV
 "trimbits"; // set/get trimbit value (for all channels!)
 "trim"; // trim detector (noise, improve etc.)
  /* r/w timers */
 "exptime"; // sets/gets exposure time in s
 "period"; // sets/gets frame period in s
 "delay"; // sets/gets delay after trigger in s
 "gates"; // sets/gets number of gates per frame in gated mode
 "frames"; // sets/gets number of frames
 "cycles"; // sets/gets number of cycles (use in trigger mode)
 "probes"; // sets/gets number of probes (advanced!)
 "measurements"; // sets/gets number of non-real time measurements
  /* read only timers */
 "exptimel"; // gets exposure time left
 "periodl"; // gets period left
 "delayl"; // gets delay left
 "gatesl"; // gets number of gates left
 "framesl"; // gets number of frames left
 "cyclesl"; // gets number of cycles left
 "now"; // gets time stamp from the dteector
 "timestamp"; // gets time stamp for the frames (fifo-style)
  /* speed */
 "clkdivider"; // sets/gets readout clock divider (advanced!)
 "setlength";// sets/gets readout set/clear length (advanced!)
 "waitstates"; // sets/gets CPU waitstates (advanced!)
 "totdivider"; // sets/gets tot ckdivider (advanced!)
 "totdutycycle"; // sets/gets tot duty cycle (advanced!)
  /* settings dump/retrieve */
 "config"; // loads/save configuration file
 "parameters"; // loads/save parameters file
 "setup"; // loads/save complete detector setup
  /* pots */
 "vthreshold"; // sets/get vthreshold value (advanced! Mythen and Eiger)
 "vcalibration"; // sets/get vcalibration value  (advanced! Mythen)
 "vtrimbit"; // sets/get vtrimbit value  (advanced! Mythen)
 "vpreamp"; // sets/get vpreamp value  (advanced! Mythen)
 "vshaper1"; // sets/get vshaper1 value  (advanced! Mythen)
 "vshaper2"; // sets/get vshaper2 value  (advanced! Mythen)
 "vhighvoltage"; // sets/get vhighvoltage value  (advanced! Chiptest board and Eiger)
 "vapower"; // sets/get vapower value  (advanced! Chiptest board)
 "vddpower"; // sets/get vddpower value  (advanced! Chiptest board)
 "vshpower"; // sets/get vshpower value  (advanced! Chiptest board)
 "viopower"; // sets/get viopower value (advanced! Chiptest board) 
 "vref_ds"; // sets/get vref_ds value (advanced! Gotthard) 
 "vcascn_pb"; // sets/get vcascn_pb value  (advanced! Gotthard) 
 "vcascp_pb"; // sets/get vcascp_pb value  (advanced! Gotthard) 
 "vout_cm"; // sets/get vout_cm value  (advanced! Gotthard) 
 "vcasc_out"; // sets/get vcasc_out value  (advanced! Gotthard) 
 "vin_cm"; // sets/get vin_cm value  (advanced! Gotthard) 
 "vsvp"; // sets/get vsvp value  (advanced! Eiger)
 "vsvn"; // sets/get vsvn value  (advanced! Eiger)
 "vtr"; // sets/get vtr value  (advanced! Eiger)
 "vrf"; // sets/get vrf value  (advanced! Eiger)
 "vrs"; // sets/get vrs value  (advanced! Eiger)
 "vtgstv"; // sets/get vtgstv value  (advanced! Eiger)
 "vcmp_ll"; // sets/get vcmp_ll value  (advanced! Eiger)
 "vcmp_lr"; // sets/get vcmp_lr value  (advanced! Eiger)	
 "vcall"; // sets/get vcall value  (advanced! Eiger) 	
 "vcmp_rl"; // sets/get vcmp_rl value  (advanced! Eiger)
 "vcmp_rr"; // sets/get vcmp_rr value  (advanced! Eiger)
 "rxb_rb"; // sets/get rxb_rb value  (advanced! Eiger)	
 "rxb_lb"; // sets/get rxb_rb value  (advanced! Eiger)	
 "vcp"; // sets/get vcp value  (advanced! Eiger)
 "vcn"; // sets/get vcn value  (advanced! Eiger)
 "vis"; // sets/get vis value  (advanced! Eiger)	
 "iodelay"; // sets/get iodelay value  (advanced! Eiger)

"vref_comp"; // sets/get vref_comp value  (advanced! Gotthard) 
 "ib_test_c"; // sets/get ib_test_c value  (advanced! Gotthard) 
 "temp_adc"; // get adc temperature  (advanced! Gotthard) 
 "temp_fpga"; //get fpga temperature  (advanced! Gotthard) 
 "pulsechip n"; //advanc ed! EIGER: pulses the chip $n$ times with the enable. If n$=-1$, the chip will be set into normal mode. 
 "pulse n x y"; //  Pulses pixel at coordinates (x,y) $n$-times. 
 "pulsenmove n x y"; //Pulses pixel $n$-times and moves relatively by x value (x axis) and y value (y axis)
