/*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) "framescaught";// gets the entire frames caught by receiver "resetframescaught x"; resets the value of framescaught to x /* 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)