moved the output dir of slsdetectorClientDocs

This commit is contained in:
Dhanya Maliakal 2017-08-16 11:11:13 +02:00
parent 6a2c0ac86d
commit c489aeb9dc
38 changed files with 4397 additions and 0 deletions

View File

@ -0,0 +1,85 @@
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Acquition commands</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<img id="MSearchSelect" src="search/search.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</div>
</li>
</ul>
</div>
</div>
<div class="contents">
<h1><a class="anchor" id="acquisition">Acquition commands </a></h1><p>Commands to control the acquisition</p>
<ul>
<li><b>acquire</b> blocking acquisition (like calling sls_detector_acquire). Starts receiver and detector, writes and processes the data, stops detector. Only get!</li>
</ul>
<ul>
<li><b>data</b> gets all data from the detector (if any) processes them and writes them to file according to the preferences already setup (MYTHEN only). Only get!</li>
</ul>
<ul>
<li><b>frame</b> gets a single frame from the detector (if any) processes it and writes it to file according to the preferences already setup (MYTHEN only). Only get!</li>
</ul>
<ul>
<li><b>status</b> <code>returns</code> the detector status (string)- can be: <code>running</code>, <code>error</code>, <code>transmitting</code>, <code>finished</code>, <code>waiting</code> or <code>idle</code>; <code>put</code> can be <code>start</code> or <code>stop</code> </li>
</ul>
<ul>
<li><b>busy</b> returns <code>1</code> if the acquisition is active, <code>0</code> otherwise. Works when the acquisition is started in non-blocking mode. Only get!</li>
</ul>
<ul>
<li><b>readctr </b> Reads the counters from the detector memory (analog detector returning values translated into number of photons - only GOTTHARD). Cannot put.</li>
</ul>
<ul>
<li><b>resetctr i </b> Resets counter in detector, restarts acquisition if i=1(analog detector returning values translated into number of photons - only GOTTHARD). Cannot put.</li>
</ul>
<ul>
<li><b>resmat i </b> sets/resets counter bit in detector.gets the counter bit in detector ???? </li>
</ul>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on 16 Aug 2017 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View File

@ -0,0 +1,136 @@
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Actions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<img id="MSearchSelect" src="search/search.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</div>
</li>
</ul>
</div>
</div>
<div class="contents">
<h1><a class="anchor" id="actions">Actions </a></h1><p>Commands to define scripts to be executed during the acquisition flow</p>
<ul>
<li><b>positions [n [p0..pn-1]]</b> sets/gets number of angular position and positions to be acquired.</li>
</ul>
<ul>
<li><b>startscript [s]</b> sets/gets the script to be executed at the beginning of the acquisition. <code>none</code> unsets.</li>
</ul>
<ul>
<li><b>startscriptpar [s]</b> sets/gets a string to be passed as a parameter to the startscript</li>
</ul>
<ul>
<li><b>stopscript [s]</b> sets/gets the script to be executed at the end of the acquisition. <code>none</code> unsets.</li>
</ul>
<ul>
<li><b>stopscriptpar [s]</b> sets/gets a string to be passed as a parameter to the stopscript</li>
</ul>
<ul>
<li><b>scriptbefore [s]</b> sets/gets the script to be executed before starting the detector every time in the acquisition. <code>none</code> unsets.</li>
</ul>
<ul>
<li><b>scriptbeforepar [s]</b> sets/gets a string to be passed as a parameter to the scriptbefore</li>
</ul>
<ul>
<li><b>scriptafter [s]</b> sets/gets the script to be executed after the detector has finished every time in the acquisition. <code>none</code> unsets.</li>
</ul>
<ul>
<li><b>scriptafterpar [s]</b> sets/gets a string to be passed as a parameter to the scriptafter</li>
</ul>
<ul>
<li><b>headerafter [s]</b> sets/gets the script to be executed for logging the detector parameters. <code>none</code> unsets.</li>
</ul>
<ul>
<li><b>headerbefore [s]</b> sets/gets the script to be executed for logging the detector parameters. <code>none</code> unsets.</li>
</ul>
<ul>
<li><b>headerbeforepar [s]</b> sets/gets a string to be passed as a parameter to the headerbefore script</li>
</ul>
<ul>
<li><b>headerafterpar [s]</b> sets/gets a string to be passed as a parameter to the headerafter script</li>
</ul>
<ul>
<li><b>enacallog [i]</b> enables/disables logging of the parameters necessary for the energy calibration. 1 sets, 0 unsets.</li>
</ul>
<ul>
<li><b>angcallog [i]</b> enables/disables logging of the parameters necessary for the angular calibration. 1 sets, 0 unsets.</li>
</ul>
<ul>
<li><b>scan0script [s]</b> sets/gets the script to be executed for the scan 0 level. <code>none</code> unsets.</li>
</ul>
<ul>
<li><b>scan0par [s]</b> sets/gets a string to be passed as a parameter to the scan0script</li>
</ul>
<ul>
<li><b>scan0prec [i]</b> sets/gets number of digits to be used for the scan0 variable in the file name.</li>
</ul>
<ul>
<li><b>scan0steps [i [s0..sn-1]]</b> sets/gets number of steps (int) of the scan0 level and their values (float).</li>
</ul>
<ul>
<li><b>scan0range [smin smax sstep]</b> sets scan0 min, max and step, returns the number of steps and their values as scan0steps.</li>
</ul>
<ul>
<li><b>scan1script [s]</b> sets/gets the script to be executed for the scan1 level. <code>none</code> unsets.</li>
</ul>
<ul>
<li><b>scan1par [s]</b> sets/gets a string to be passed as a parameter to the scan1script</li>
</ul>
<ul>
<li><b>scan1prec [i]</b> sets/gets number of digits to be used for the scan1 variable in the file name.</li>
</ul>
<ul>
<li><b>scan1steps [i [s0..sn-1]]</b> sets/gets number of steps (int) of the scan1 level and their values (float).</li>
</ul>
<ul>
<li><b>scan1range [smin smax sstep]</b> sets scan1 min, max and step, returns the number of steps and their values as scan1steps. </li>
</ul>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on 16 Aug 2017 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View File

@ -0,0 +1,61 @@
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Advanced Usage</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<img id="MSearchSelect" src="search/search.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</div>
</li>
</ul>
</div>
</div>
<div class="contents">
<h1><a class="anchor" id="advanced">Advanced Usage </a></h1><p>This page is for advanced users. Make sure you have first read the introduction. </p>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on 16 Aug 2017 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View File

@ -0,0 +1,284 @@
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Configuration commands</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<img id="MSearchSelect" src="search/search.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</div>
</li>
</ul>
</div>
</div>
<div class="contents">
<h1><a class="anchor" id="config">Configuration commands </a></h1><p>Commands to configure the detector. these commands are often left to the configuration file.</p>
<ul>
<li><b>datastream</b> enables/disables the 0MQ data stream (0MQ threads created) from receiver to client.</li>
</ul>
<ul>
<li><b>free</b> Free shared memory on the control PC</li>
</ul>
<ul>
<li><b>add</b> Adds a detector at the end of the multi-detector structure. <code>put</code> argument is the hostname or IP adress. Returns the chained list of detector hostnames.</li>
</ul>
<ul>
<li><b>remove i</b> Removes controller <code>i</code> from the multi-detector structure. Can be used for partial readout of the detector.</li>
</ul>
<ul>
<li><b>type</b> Sets/gets detector type (string).</li>
</ul>
<ul>
<li><b>hostname</b> <code>put</code> adds the hostname (ot IP adress) at the end of the multi-detector structure. If used for a single controlled (i:) replaces the current hostname. Returns the list of the hostnames of the multi-detector structure.</li>
</ul>
<ul>
<li><b>id[:i]</b> Returns the id of the detector structure. i is the detector position in a multi detector system. If used a <code>put</code>, configures the id of the detector structure. i is the detector position in a multi detector system and l is the id of the detector to be added.</li>
</ul>
<ul>
<li><b>master i</b> <code>put</code> sets the position of the master of the acquisition (-1 if none). Returns the position of the master of the detector structure (-1 if none).</li>
</ul>
<ul>
<li><b>sync</b> Sets/gets the synchronization mode of the detectors in the multi-detector structure. Can be: <code>none</code>, <code>gating</code>, <code>trigger</code>, <code>complementary</code>. Mainly used by MYTHEN/GOTTHARD.</li>
</ul>
<ul>
<li><b>online [i]</b> sets the detector in online (1) or offline (0) mode</li>
</ul>
<ul>
<li><b>checkonline</b> returns the hostnames of all detectors without connecting to them</li>
</ul>
<ul>
<li><b>activate</b> Activates/Deactivates the detector. Deactivated detector does not send data. Used for EIGER only.</li>
</ul>
<ul>
<li><b>lock [i]</b> Locks/Unlocks the detector to communicate with this client. 1 locks, 0 unlocks.</li>
</ul>
<ul>
<li><b>nmod [i]</b> sets/gets the number of modules of the detector. Used for MYTHEN only.</li>
</ul>
<ul>
<li><b>maxmod </b> Gets the maximum number of modules of the detector. Used for MYTHEN only. Cannot put!</li>
</ul>
<ul>
<li><b>dr [i]</b> sets/gets the dynamic range of detector. Mythen [4,8,16,24]. Eiger [4,8,16,32]. Others cannot put!</li>
</ul>
<ul>
<li><b>roi [i] [xmin] [xmax] [ymin] [ymax] </b> sets region of interest of the detector, where i is number of rois;i=0 to clear rois. Used for GOTTHARD only.</li>
</ul>
<ul>
<li><b>detsizechan [xmax] [ymax]</b> sets the maximum number of channels in each dimension for complete detector set; -1 is no limit. Use for multi-detector system as first command in config file.</li>
</ul>
<ul>
<li><b>roimask [i]</b> ??</li>
</ul>
<ul>
<li><b>flippeddatax [i]</b> enables/disables data being flipped across x axis. 1 enables, 0 disables. Used for EIGER only. 1 for bottom half-module, 0 for top-half module.</li>
</ul>
<ul>
<li><b>flags [flag]</b> sets/gets the readout flags to mode. Options: none, storeinram, tot, continous, parallel, nonparallel, safe, digital, analog_digital, unknown. Used for MYTHEN and EIGER only.</li>
</ul>
<ul>
<li><b>extsig:[i] [flag]</b> sets/gets the mode of the external signal i. Options: <code>off</code>, <code>gate_in_active_high</code>, <code>gate_in_active_low</code>, <code>trigger_in_rising_edge</code>, <code>trigger_in_falling_edge</code>, <code>ro_trigger_in_rising_edge</code>, <code>ro_trigger_in_falling_edge</code>, <code>gate_out_active_high</code>, <code>gate_out_active_low</code>, <code>trigger_out_rising_edge</code>, <code>trigger_out_falling_edge</code>, <code>ro_trigger_out_rising_edge</code>, <code>ro_trigger_out_falling_edge</code>. <br/>
Used in MYTHEN, GOTTHARD, PROPIX only.</li>
</ul>
<ul>
<li><b>programfpga [file]</b> programs the FPGA with file f (with .pof extension). Used for JUNGFRAU, MOENCH only. Only put!</li>
</ul>
<ul>
<li><b>resetfpga [f]</b> resets FPGA, where f can be any value. Used for JUNGFRAU only. Only put!</li>
</ul>
<ul>
<li><b>powerchip [i]</b> Powers on/off the chip. 1 powers on, 0 powers off. Can also get the power status. Used for JUNGFRAU only.</li>
</ul>
<ul>
<li><b>led [i]</b> sets/gets the led status. 1 on, 0 off. Used for MOENCH only ??</li>
</ul>
<ul>
<li><b>moduleversion:[i]</b> Gets the firmware version of module i. Used for MYTHEN only. Only get!</li>
</ul>
<ul>
<li><b>detectornumber</b> Gets the serial number or MAC of detector. Only get!</li>
</ul>
<ul>
<li><b>modulenumber:[i]</b> Gets the serial number of module i. Used for MYTHEN only. Only get!</li>
</ul>
<ul>
<li><b>detectorversion</b> Gets the firmware version of detector. Only get!</li>
</ul>
<ul>
<li><b>softwareversion</b> Gets the software version of detector server. Only get!</li>
</ul>
<ul>
<li><b>thisversion</b> Gets the software version of this client software. Only get!</li>
</ul>
<ul>
<li><b>receiverversion</b> Gets the software version of receiver. Only get!</li>
</ul>
<ul>
<li><b>timing [mode]</b> sets/gets synchronization mode of the detector. Mode: auto, trigger, ro_trigger, gating, triggered_gating</li>
</ul>
<ul>
<li><b>exptime [i]</b> sets/gets exposure time in s</li>
</ul>
<ul>
<li><b>subexptime [i]</b> sets/gets sub exposure time in s. Used in EIGER only in 32 bit mode.</li>
</ul>
<ul>
<li><b>period [i]</b> sets/gets frame period in s.</li>
</ul>
<ul>
<li><b>delay [i]</b> sets/gets delay in s. Used in MYTHEN, GOTTHARD only</li>
</ul>
<ul>
<li><b>gates [i]</b> sets/gets number of gates. Used in MYTHEN, GOTTHARD, EIGER only</li>
</ul>
<ul>
<li><b>gates [i]</b> sets/gets number of frames. If <code>timing</code> is not <code>auto</code>, then it is the number of frames per cycle/trigger.</li>
</ul>
<ul>
<li><b>cycles [i]</b> sets/gets number of triggers. Timing mode should be set appropriately.</li>
</ul>
<ul>
<li><b>probes [i]</b> sets/gets number of probes to accumulate. When setting, max 3! cycles should be set to 1, frames to the number of pump-probe events. Used in MYTHEN only</li>
</ul>
<ul>
<li><b>measurements [i]</b> sets/gets number of measurements.</li>
</ul>
<ul>
<li><b>samples [i]</b> sets/gets number of samples expected from the jctb. Used in CHIP TEST BOARD only.</li>
</ul>
<ul>
<li><b>exptimel</b> gets exposure time left. Used in MYTHEN, GOTTHARD only. Only get!</li>
</ul>
<ul>
<li><b>periodl</b> gets frame period left. Used in MYTHEN, GOTTHARD only. Only get!</li>
</ul>
<ul>
<li><b>delayl</b> gets delay left. Used in MYTHEN, GOTTHARD only. Only get!</li>
</ul>
<ul>
<li><b>gatesl</b> gets number of gates left. Used in MYTHEN, GOTTHARD only. Only get!</li>
</ul>
<ul>
<li><b>framesl</b> gets number of frames left. Used in MYTHEN, GOTTHARD only. Only get!</li>
</ul>
<ul>
<li><b>cyclesl</b> gets number of cylces left. Used in MYTHEN, GOTTHARD only. Only get!</li>
</ul>
<ul>
<li><b>probesl</b> gets number of probes left. Used in MYTHEN, GOTTHARD only. Only get!</li>
</ul>
<ul>
<li><b>now</b> ??? Only get!</li>
</ul>
<ul>
<li><b>timestamp</b> ??? Only get!</li>
</ul>
<ul>
<li><b>nframes</b> ??? Only get!</li>
</ul>
<ul>
<li><b>clkdivider [i]</b> sets/gets the readout clock divider. EIGER, JUNGFRAU [0(fast speed), 1(half speed), 2(quarter speed)]. MYTHEN[???]</li>
</ul>
<ul>
<li><b>clkdivider [i]</b> sets/gets length of set/reset signals (in clock cycles). Used in MYTHEN only</li>
</ul>
<ul>
<li><b>clkdivider [i]</b> sets/gets waitstates of the bus interface (in clock cycles). Used in MYTHEN only</li>
</ul>
<ul>
<li><b>clkdivider [i]</b> sets/gets clock divider in tot mode. Used in MYTHEN only</li>
</ul>
<ul>
<li><b>clkdivider [i]</b> sets/gets duty cycle of the tot clock. Used in MYTHEN only</li>
</ul>
<ul>
<li><b>phasestep [i]</b> ???</li>
</ul>
<ul>
<li><b>oversampling [i]</b> ???</li>
</ul>
<ul>
<li><b>adcclk [i]</b> ???</li>
</ul>
<ul>
<li><b>adcphase [i]</b> ??? Used in MYTHEN, JUNGFRAU only.</li>
</ul>
<ul>
<li><b>adcpipeline [i]</b> ???</li>
</ul>
<ul>
<li><b>dbitclk [i]</b> ???</li>
</ul>
<ul>
<li><b>dbitphase [i]</b> ???</li>
</ul>
<ul>
<li><b>config [fname]</b> sets/saves detector/receiver to configuration contained in fname. Same as executing sls_detector_put for every line. Normally a one time operation.</li>
</ul>
<ul>
<li><b>rx_printconfig</b> prints the receiver configuration. Only get!</li>
</ul>
<ul>
<li><b>parameters [fname]</b> sets/saves detector parameters contained in fname. Normally once per different measurement.</li>
</ul>
<ul>
<li><b>setup [fname]</b> sets/saves detector complete setup contained in fname (extensions automatically generated), including trimfiles, ff coefficients etc.</li>
</ul>
<ul>
<li><b>tengiga [i]</b> enables/disables 10GbE in system (detector &amp; receiver). 1 enabled 10GbE, 0 enables 1GbE. Used in EIGER only.</li>
</ul>
<ul>
<li><b>pulse [n] [x] [y]</b> pulses pixel at coordinates (x,y) n number of times. Used in EIGER only. Only put!</li>
</ul>
<ul>
<li><b>pulsenmove [n] [x] [y]</b> pulses pixel n number of times and moves relatively by x value (x axis) and y value(y axis). Used in EIGER only. Only put!</li>
</ul>
<ul>
<li><b>pulsechip [n]</b>pulses chip n number of times, while n=-1 will reset it to normal mode. Used in EIGER only. Only put! </li>
</ul>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on 16 Aug 2017 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View File

@ -0,0 +1,106 @@
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Data processing commands</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<img id="MSearchSelect" src="search/search.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</div>
</li>
</ul>
</div>
</div>
<div class="contents">
<h1><a class="anchor" id="data">Data processing commands </a></h1><p>Commands to setup the data processing (mainly MYTHEN related)</p>
<ul>
<li><b>flatfield [fn]</b> <code>put</code> sets flatfield file to <code>fn</code> (relative to <code>ffdir</code>). returns the flatfield file name relative to <code>ffdir</code> (string). If</li>
</ul>
<ul>
<li><b>ffdir [d]</b> Sets/gets the directory in which the flat field file is located.</li>
</ul>
<ul>
<li><b>ratecorr [ns]</b> Returns the dead time used for rate correections in ns (int). <code>put</code> sets the deadtime correction constant in ns, -1 will set it to default tau of settings (0 unset).</li>
</ul>
<ul>
<li><b>badchannels [fn]</b> <code>put</code> sets the badchannels file to <code>fn</code> . returns the bad channels file name. If</li>
</ul>
<ul>
<li><b>angconv [fn]</b> <code>put</code> sets the angular conversion file to <code>fn</code> . returns the angular conversion file name. If</li>
</ul>
<ul>
<li><b>globaloff [f]</b> Sets/gets the beamline angular global offset (float).</li>
</ul>
<ul>
<li><b>fineoff [f]</b> Sets/gets the angular fine offset of the measurement (float).</li>
</ul>
<ul>
<li><b>binsize [f]</b> Sets/gets the bin size used for the angular conversion (float).</li>
</ul>
<ul>
<li><b>angdir [i]</b> Sets/gets the angular direction. 1 means increasing channels number as increasing angle, -1 increasing channel number decreasing angle.</li>
</ul>
<ul>
<li><b>moveflag [i]</b> Sets/gets the flag for physically moving the detector during the acquisition of several positions. 1 sets (moves), 0 unsets.</li>
</ul>
<ul>
<li><b>samplex [f]</b> Sets/gets the sample displacement in th direction parallel to the beam in um. Unused!</li>
</ul>
<ul>
<li><b>sampley [f]</b> Sets/gets the sample displacement in th direction orthogonal to the beam in um. Unused!</li>
</ul>
<ul>
<li><b>threaded [i]</b> Sets/gets the data processing threaded flag. 1 is threaded, 0 unthreaded.</li>
</ul>
<ul>
<li><b>darkimage fn</b> Loads the dark image to the detector from file fn (pedestal image). Cannot get.</li>
</ul>
<ul>
<li><b>gainimage fn</b> Loads the gain image to the detector from file fn (gain map for translation into number of photons of an analog detector). Cannot get. </li>
</ul>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on 16 Aug 2017 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View File

@ -0,0 +1,498 @@
/* The standard CSS for doxygen */
body, table, div, p, dl {
font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
font-size: 12px;
}
/* @group Heading Levels */
h1 {
text-align: center;
font-size: 150%;
}
h2 {
font-size: 120%;
}
h3 {
font-size: 100%;
}
dt {
font-weight: bold;
}
div.multicol {
-moz-column-gap: 1em;
-webkit-column-gap: 1em;
-moz-column-count: 3;
-webkit-column-count: 3;
}
p.startli, p.startdd {
margin-top: 2px;
}
p.endli {
margin-bottom: 0px;
}
p.enddd {
margin-bottom: 4px;
}
/* @end */
caption {
font-weight: bold;
}
span.legend {
font-size: 70%;
text-align: center;
}
div.qindex, div.navtab{
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
padding: 2px;
}
div.qindex, div.navpath {
width: 100%;
line-height: 140%;
}
div.navtab {
margin-right: 15px;
}
/* @group Link Styling */
a {
color: #153788;
font-weight: normal;
text-decoration: none;
}
.contents a:visited {
color: #1b77c5;
}
a:hover {
text-decoration: underline;
}
a.qindex {
font-weight: bold;
}
a.qindexHL {
font-weight: bold;
background-color: #6666cc;
color: #ffffff;
border: 1px double #9295C2;
}
.contents a.qindexHL:visited {
color: #ffffff;
}
a.el {
font-weight: bold;
}
a.elRef {
}
a.code {
}
a.codeRef {
}
/* @end */
dl.el {
margin-left: -1cm;
}
.fragment {
font-family: monospace, fixed;
font-size: 105%;
}
pre.fragment {
border: 1px solid #CCCCCC;
background-color: #f5f5f5;
padding: 4px 6px;
margin: 4px 8px 4px 2px;
}
div.ah {
background-color: black;
font-weight: bold;
color: #ffffff;
margin-bottom: 3px;
margin-top: 3px
}
div.groupHeader {
margin-left: 16px;
margin-top: 12px;
margin-bottom: 6px;
font-weight: bold;
}
div.groupText {
margin-left: 16px;
font-style: italic;
}
body {
background: white;
color: black;
margin-right: 20px;
margin-left: 20px;
}
td.indexkey {
background-color: #e8eef2;
font-weight: bold;
border: 1px solid #CCCCCC;
margin: 2px 0px 2px 0;
padding: 2px 10px;
}
td.indexvalue {
background-color: #e8eef2;
border: 1px solid #CCCCCC;
padding: 2px 10px;
margin: 2px 0px;
}
tr.memlist {
background-color: #f0f0f0;
}
p.formulaDsp {
text-align: center;
}
img.formulaDsp {
}
img.formulaInl {
vertical-align: middle;
}
div.center {
text-align: center;
margin-top: 0px;
margin-bottom: 0px;
padding: 0px;
}
div.center img {
border: 0px;
}
img.footer {
border: 0px;
vertical-align: middle;
}
/* @group Code Colorization */
span.keyword {
color: #008000
}
span.keywordtype {
color: #604020
}
span.keywordflow {
color: #e08000
}
span.comment {
color: #800000
}
span.preprocessor {
color: #806020
}
span.stringliteral {
color: #002080
}
span.charliteral {
color: #008080
}
span.vhdldigit {
color: #ff00ff
}
span.vhdlchar {
color: #000000
}
span.vhdlkeyword {
color: #700070
}
span.vhdllogic {
color: #ff0000
}
/* @end */
.search {
color: #003399;
font-weight: bold;
}
form.search {
margin-bottom: 0px;
margin-top: 0px;
}
input.search {
font-size: 75%;
color: #000080;
font-weight: normal;
background-color: #e8eef2;
}
td.tiny {
font-size: 75%;
}
.dirtab {
padding: 4px;
border-collapse: collapse;
border: 1px solid #84b0c7;
}
th.dirtab {
background: #e8eef2;
font-weight: bold;
}
hr {
height: 0;
border: none;
border-top: 1px solid #666;
}
/* @group Member Descriptions */
.mdescLeft, .mdescRight,
.memItemLeft, .memItemRight,
.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
background-color: #FAFAFA;
border: none;
margin: 4px;
padding: 1px 0 0 8px;
}
.mdescLeft, .mdescRight {
padding: 0px 8px 4px 8px;
color: #555;
}
.memItemLeft, .memItemRight, .memTemplParams {
border-top: 1px solid #ccc;
}
.memItemLeft, .memTemplItemLeft {
white-space: nowrap;
}
.memTemplParams {
color: #606060;
white-space: nowrap;
}
/* @end */
/* @group Member Details */
/* Styles for detailed member documentation */
.memtemplate {
font-size: 80%;
color: #606060;
font-weight: normal;
margin-left: 3px;
}
.memnav {
background-color: #e8eef2;
border: 1px solid #84b0c7;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
.memitem {
padding: 0;
margin-bottom: 10px;
}
.memname {
white-space: nowrap;
font-weight: bold;
}
.memproto, .memdoc {
border: 1px solid #84b0c7;
}
.memproto {
padding: 0;
background-color: #d5e1e8;
font-weight: bold;
-webkit-border-top-left-radius: 8px;
-webkit-border-top-right-radius: 8px;
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-moz-border-radius-topleft: 8px;
-moz-border-radius-topright: 8px;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
}
.memdoc {
padding: 2px 5px;
background-color: #eef3f5;
border-top-width: 0;
-webkit-border-bottom-left-radius: 8px;
-webkit-border-bottom-right-radius: 8px;
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-moz-border-radius-bottomleft: 8px;
-moz-border-radius-bottomright: 8px;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
}
.paramkey {
text-align: right;
}
.paramtype {
white-space: nowrap;
}
.paramname {
color: #602020;
white-space: nowrap;
}
.paramname em {
font-style: normal;
}
/* @end */
/* @group Directory (tree) */
/* for the tree view */
.ftvtree {
font-family: sans-serif;
margin: 0.5em;
}
/* these are for tree view when used as main index */
.directory {
font-size: 9pt;
font-weight: bold;
}
.directory h3 {
margin: 0px;
margin-top: 1em;
font-size: 11pt;
}
/*
The following two styles can be used to replace the root node title
with an image of your choice. Simply uncomment the next two styles,
specify the name of your image and be sure to set 'height' to the
proper pixel height of your image.
*/
/*
.directory h3.swap {
height: 61px;
background-repeat: no-repeat;
background-image: url("yourimage.gif");
}
.directory h3.swap span {
display: none;
}
*/
.directory > h3 {
margin-top: 0;
}
.directory p {
margin: 0px;
white-space: nowrap;
}
.directory div {
display: none;
margin: 0px;
}
.directory img {
vertical-align: -30%;
}
/* these are for tree view when not used as main index */
.directory-alt {
font-size: 100%;
font-weight: bold;
}
.directory-alt h3 {
margin: 0px;
margin-top: 1em;
font-size: 11pt;
}
.directory-alt > h3 {
margin-top: 0;
}
.directory-alt p {
margin: 0px;
white-space: nowrap;
}
.directory-alt div {
display: none;
margin: 0px;
}
.directory-alt img {
vertical-align: -30%;
}
/* @end */
address {
font-style: normal;
color: #333;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,88 @@
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Introduction</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li class="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<img id="MSearchSelect" src="search/search.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</div>
</li>
</ul>
</div>
</div>
<div class="contents">
<h1>Introduction</h1><p>This program is intended to control the SLS detectors via command line interface. This is the only way to access all possible functionality of the detectors, however it is often recommendable to avoid changing the most advanced settings, rather leaving the task to configuration files, as when using the GUI or the API provided.</p>
<p>The command line interface consists in four main functions:</p>
<ul>
<li><b>sls_detector_acquire</b> to acquire data from the detector</li>
<li><b>sls_detector_put</b> to set detector parameters</li>
<li><b>sls_detector_get</b> to retrieve detector parameters</li>
<li><b>sls_detector_help</b> to get help concerning the text commands Additionally the program slsReceiver should be started on the machine expected to receive the data from the detector.</li>
</ul>
<p>If you need control a single detector, the use of the command line interface does not need any additional arguments.</p>
<p>For commands addressing a single controller of your detector, the command cmd should be called with the index i of the controller:</p>
<p><b>sls_detector_clnt i:cmd</b></p>
<p>where <b>sls_detector_clnt</b> is the text client (put, get, acquire, help).</p>
<p>In case more than one detector is configured on the control PC, the command cmd should be called with their respective index j:</p>
<p><b>sls_detector_clnt j-cmd</b></p>
<p>where <b>sls_detector_clnt</b> is the text client (put, get, acquire, help).</p>
<p>To address a specific controller i of detector j use:</p>
<p><b>sls_detector_clnt j-i:cmd</b></p>
<p>For additional questions concerning the indexing of the detector, please refer to the SLS Detectors FAQ documentation.</p>
<p>The commands are sudivided into different pages depending on their functionalities:</p>
<ul>
<li><a class="el" href="acquisition.html">Acquition commands</a> Acquisition: commands to start/stop the acquisition and retrieve data</li>
<li><a class="el" href="config.html">Configuration commands</a> Configuration: commands to configure the detector</li>
<li><a class="el" href="data.html">Data postprocessing</a>: commands to process the data - mainly for MYTHEN except for rate corrections.</li>
<li><a class="el" href="settings.html">Settings</a>: commands to define detector settings/threshold.</li>
<li><a class="el" href="output.html">Output</a>: commands to define output file destination and format</li>
<li><a class="el" href="actions.html">Actions</a>: commands to define scripts to be executed during the acquisition flow</li>
<li><a class="el" href="network.html">Network</a>: commands to setup the network between client, detector and receiver</li>
<li><a class="el" href="receiver.html">Receiver</a>: commands to configure the receiver</li>
<li><a class="el" href="test.html">Developer</a> Developer: commands to be used only for software debugging. Avoid using them! </li>
</ul>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on 16 Aug 2017 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View File

@ -0,0 +1,117 @@
#!/usr/bin/perl
%subst = ( );
$quiet = 0;
if (open(F,"search.cfg"))
{
$_=<F> ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_;
$_=<F> ; s/[ \t\n]*$//g ; $subst{"_cgi"} = $_;
}
while ( @ARGV ) {
$_ = shift @ARGV;
if ( s/^-// ) {
if ( /^l(.*)/ ) {
$v = ($1 eq "") ? shift @ARGV : $1;
($v =~ /\/$/) || ($v .= "/");
$_ = $v;
if ( /(.+)\@(.+)/ ) {
if ( exists $subst{$1} ) {
$subst{$1} = $2;
} else {
print STDERR "Unknown tag file $1 given with option -l\n";
&usage();
}
} else {
print STDERR "Argument $_ is invalid for option -l\n";
&usage();
}
}
elsif ( /^q/ ) {
$quiet = 1;
}
elsif ( /^\?|^h/ ) {
&usage();
}
else {
print STDERR "Illegal option -$_\n";
&usage();
}
}
else {
push (@files, $_ );
}
}
foreach $sub (keys %subst)
{
if ( $subst{$sub} eq "" )
{
print STDERR "No substitute given for tag file `$sub'\n";
&usage();
}
elsif ( ! $quiet && $sub ne "_doc" && $sub ne "_cgi" )
{
print "Substituting $subst{$sub} for each occurence of tag file $sub\n";
}
}
if ( ! @files ) {
if (opendir(D,".")) {
foreach $file ( readdir(D) ) {
$match = ".html";
next if ( $file =~ /^\.\.?$/ );
($file =~ /$match/) && (push @files, $file);
($file =~ "tree.js") && (push @files, $file);
}
closedir(D);
}
}
if ( ! @files ) {
print STDERR "Warning: No input files given and none found!\n";
}
foreach $f (@files)
{
if ( ! $quiet ) {
print "Editing: $f...\n";
}
$oldf = $f;
$f .= ".bak";
unless (rename $oldf,$f) {
print STDERR "Error: cannot rename file $oldf\n";
exit 1;
}
if (open(F,"<$f")) {
unless (open(G,">$oldf")) {
print STDERR "Error: opening file $oldf for writing\n";
exit 1;
}
if ($oldf ne "tree.js") {
while (<F>) {
s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g;
print G "$_";
}
}
else {
while (<F>) {
s/\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\", \"\2/\"$1:$subst{$1}\" ,\"$subst{$1}/g;
print G "$_";
}
}
}
else {
print STDERR "Warning file $f does not exist\n";
}
unlink $f;
}
sub usage {
print STDERR "Usage: installdox [options] [html-file [html-file ...]]\n";
print STDERR "Options:\n";
print STDERR " -l tagfile\@linkName tag file + URL or directory \n";
print STDERR " -q Quiet mode\n\n";
exit 1;
}

View File

@ -0,0 +1,112 @@
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Network</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<img id="MSearchSelect" src="search/search.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</div>
</li>
</ul>
</div>
</div>
<div class="contents">
<h1><a class="anchor" id="network">Network </a></h1><p>Commands to setup the network between client, detector and receiver</p>
<ul>
<li><b>rx_hostname [s]</b> sets/gets the receiver hostname or IP address, configures detector mac with all network parameters and updates receiver with acquisition parameters. Normally used for single detectors (Can be multi-detector). <code>none</code> disables. If used, use as last network command in configuring detector MAC.</li>
</ul>
<ul>
<li><b>rx_udpip [ip]</b> sets/gets the ip address of the receiver UDP interface where the data from the detector will be streamed to. Normally used for single detectors (Can be multi-detector). Used if different from eth0.</li>
</ul>
<ul>
<li><b>rx_udpmac [mac]</b> sets/gets the mac address of the receiver UDP interface where the data from the detector will be streamed to. Normally used for single detectors (Can be multi-detector).</li>
</ul>
<ul>
<li><b>rx_udpport [port]</b> sets/gets the port of the receiver UDP interface where the data from the detector will be streamed to. Use single-detector command.</li>
</ul>
<ul>
<li><b>rx_udpport2 [port]</b> sets/gets the second port of the receiver UDP interface where the data from the second half of the detector will be streamed to. Use single-detector command. Used for EIGER only.</li>
</ul>
<ul>
<li><b>detectormac [mac]</b> sets/gets the mac address of the detector UDP interface from where the detector will stream data. Use single-detector command. Normally unused.</li>
</ul>
<ul>
<li><b>detectorip [ip]</b> sets/gets the ip address of the detector UDP interface from where the detector will stream data. Use single-detector command. Keep in same subnet as rx_udpip (if rx_udpip specified).</li>
</ul>
<ul>
<li><b>txndelay_left [delay]</b> sets/gets the transmission delay of first packet in an image being streamed out from the detector's left UDP port. Use single-detector command. Used for EIGER only.</li>
</ul>
<ul>
<li><b>txndelay_right [delay]</b> sets/gets the transmission delay of first packet in an image being streamed out from the detector's right UDP port. Use single-detector command. Used for EIGER only.</li>
</ul>
<ul>
<li><b>txndelay_frame [delay]</b> sets/gets the transmission frame period of entire frame being streamed out from the detector for both ports. Use single-detector command. Used for EIGER only.</li>
</ul>
<ul>
<li><b>flowcontrol_10g [delay]</b> Enables/disables 10 GbE flow control. 1 enables, 0 disables. Used for EIGER only.</li>
</ul>
<ul>
<li><b>zmqport [port]</b> sets/gets the 0MQ (TCP) port of the receiver from where data is streamed to the client. Use single-detector command to set individually or multi-detector command to calculate based on <code>port</code> for the rest.</li>
</ul>
<ul>
<li><b>configuremac [i]</b> configures the MAC of the detector with these parameters: detectorip, detectormac, rx_udpip, rx_udpmac, rx_udpport, rx_udpport2 (if applicable). Only put!</li>
</ul>
<ul>
<li><b>rx_tcpport [port]</b> sets/gets the port of the client-receiver TCP interface. Use single-detector command. Is different for each detector if same <code>rx_hostname</code> used. Must be first command to communicate with receiver.</li>
</ul>
<ul>
<li><b>port [port]</b> sets/gets the port of the client-detector control server TCP interface. Use single-detector command. Default value is 1952 for all detectors. Normally not changed.</li>
</ul>
<ul>
<li><b>stopport [port]</b> sets/gets the port of the client-detector stop server TCP interface. Use single-detector command. Default value is 1953 for all detectors. Normally not changed.</li>
</ul>
<ul>
<li><b>lastclient </b> Gets the last client communicating with the detector. Cannot put! </li>
</ul>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on 16 Aug 2017 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View File

@ -0,0 +1,82 @@
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Output settings</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<img id="MSearchSelect" src="search/search.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</div>
</li>
</ul>
</div>
</div>
<div class="contents">
<h1><a class="anchor" id="output">Output settings </a></h1><p>Commands to setup the file destination and format</p>
<ul>
<li><b>outdir [dir]</b> Sets/gets the file output directory (string)</li>
</ul>
<ul>
<li><b>fname [fn]</b> Sets/gets the root of the output file name (string)</li>
</ul>
<ul>
<li><b>index [i]</b> Sets/gets the current file index (int)</li>
</ul>
<ul>
<li><b>enablefwrite [i]</b> Enables/disables file writing. 1 enables, 0 disables.</li>
</ul>
<ul>
<li><b>overwrite [i]</b> enables(1) /disables(0) file overwriting</li>
</ul>
<ul>
<li><b>currentfname</b> gets the filename for the data without index and extension</li>
</ul>
<ul>
<li><b>fileformat</b> sets/gets the file format for data in receiver. Options: [ascii, binary, hdf5]. Ascii is not implemented in Receiver. </li>
</ul>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on 16 Aug 2017 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View File

@ -0,0 +1,80 @@
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Page Index</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<img id="MSearchSelect" src="search/search.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</div>
</li>
</ul>
</div>
</div>
<div class="contents">
<h1>Related Pages</h1>Here is a list of all related documentation pages:<ul>
<li><a class="el" href="test.html">Developer</a>
</li>
<li><a class="el" href="acquisition.html">Acquition commands</a>
</li>
<li><a class="el" href="config.html">Configuration commands</a>
</li>
<li><a class="el" href="data.html">Data processing commands</a>
</li>
<li><a class="el" href="settings.html">Detector settings commands</a>
</li>
<li><a class="el" href="output.html">Output settings</a>
</li>
<li><a class="el" href="actions.html">Actions</a>
</li>
<li><a class="el" href="network.html">Network</a>
</li>
<li><a class="el" href="receiver.html">Receiver commands</a>
</li>
<li><a class="el" href="advanced.html">Advanced Usage</a>
</li>
</ul>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on 16 Aug 2017 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View File

@ -0,0 +1,92 @@
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Receiver commands</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<img id="MSearchSelect" src="search/search.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</div>
</li>
</ul>
</div>
</div>
<div class="contents">
<h1><a class="anchor" id="receiver">Receiver commands </a></h1><p>Commands to configure the receiver. Not used in MYTHEN.</p>
<ul>
<li><b>receiver [s]</b> starts/stops the receiver to listen to detector packets. Gets status of receiver. Options: [start, stop].</li>
</ul>
<ul>
<li><b>r_online [i]</b> sets/gets the receiver in online/offline mode. 1 is online, 0 is offline. Get is from shared memory.</li>
</ul>
<ul>
<li><b>r_checkonline</b> Checks the receiver if it is online/offline mode. Prints either 'All receiver online', '[List of all receiver hostname in offline mode] :Not all receiver online'. Only get! i++;</li>
</ul>
<p>/*!</p>
<ul>
<li><b>framescaught</b> gets the number of frames caught by receiver. Average of all for multi-detector command. Only get!</li>
</ul>
<ul>
<li><b>resetframescaught [i]</b> resets the number of frames caught to 0. i can be any number. Use this if using status start, instead of acquire (this command is included). Only put!</li>
</ul>
<ul>
<li><b>frameindex [i]</b> gets the current frame index of receiver. Average of all for multi-detector command. Only get!</li>
</ul>
<ul>
<li><b>r_lock [i]</b> locks/unlocks the receiver to communicate with only this client. 1 locks, 0 unlocks.</li>
</ul>
<ul>
<li><b>r_lastclient</b> gets the last client communicating with the receiver. Only get!</li>
</ul>
<ul>
<li><b>r_readfreq [i]</b> sets/gets the stream frequency of data from receiver to client. i &gt; 0 is the nth frame being streamed. 0 sets frequency to a default timer (200ms).</li>
</ul>
<ul>
<li><b>rx_fifodepth [i]</b> sets/gets receiver fifo (between Listener and Writer Threads) depth to i number of frames. Can improve listener packet loss, not if limited by writing. </li>
</ul>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on 16 Aug 2017 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 B

View File

@ -0,0 +1,12 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</body>
</html>

View File

@ -0,0 +1,198 @@
/*---------------- Search Box */
#MSearchBox {
padding: 0px;
margin: 0px;
border: none;
border: 1px solid #84B0C7;
white-space: nowrap;
-moz-border-radius: 8px;
-webkit-border-top-left-radius: 8px;
-webkit-border-top-right-radius: 8px;
-webkit-border-bottom-left-radius: 8px;
-webkit-border-bottom-right-radius: 8px;
}
#MSearchField {
font: 9pt Arial, Verdana, sans-serif;
color: #999999;
background-color: #FFFFFF;
font-style: normal;
cursor: text;
padding: 1px 1px;
margin: 0px 6px 0px 0px;
border: none;
outline: none;
vertical-align: middle;
}
.MSearchBoxActive #MSearchField {
color: #000000;
}
#MSearchSelect {
float : none;
display : inline;
background : none;
font: 9pt Verdana, sans-serif;
border: none;
margin: 0px 0px 0px 6px;
vertical-align: middle;
padding: 0px 0px;
}
#MSearchClose {
float : none;
display : none;
background : none;
border: none;
margin: 0px 4px 0px 0px;
padding: 0px 0px;
outline: none;
}
#MSearchCloseImg {
vertical-align: middle;
}
.MSearchBoxLeft {
display: block;
text-align: left;
float: left;
margin-left: 6px;
}
.MSearchBoxRight {
display: block;
float: right;
text-align: right;
margin-right: 6px;
}
.MSearchBoxSpacer {
font-size: 0px;
clear: both;
}
.MSearchBoxRow {
font-size: 0px;
clear: both;
}
/*---------------- Search filter selection */
#MSearchSelectWindow {
display: none;
position: absolute;
left: 0; top: 0;
border: 1px solid #A0A0A0;
background-color: #FAFAFA;
z-index: 1;
padding-top: 4px;
padding-bottom: 4px;
-moz-border-radius: 4px;
-webkit-border-top-left-radius: 4px;
-webkit-border-top-right-radius: 4px;
-webkit-border-bottom-left-radius: 4px;
-webkit-border-bottom-right-radius: 4px;
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
}
.SelectItem {
font: 8pt Arial, Verdana, sans-serif;
padding-left: 2px;
padding-right: 12px;
border: 0px;
}
span.SelectionMark {
margin-right: 4px;
font-family: monospace;
outline-style: none;
text-decoration: none;
}
a.SelectItem {
display: block;
outline-style: none;
color: #000000;
text-decoration: none;
padding-left: 6px;
padding-right: 12px;
}
a.SelectItem:focus,
a.SelectItem:active {
color: #000000;
outline-style: none;
text-decoration: none;
}
a.SelectItem:hover {
color: #FFFFFF;
background-color: #2A50E4;
outline-style: none;
text-decoration: none;
cursor: pointer;
display: block;
}
/*---------------- Search results window */
iframe#MSearchResults {
width: 60ex;
height: 15em;
}
#MSearchResultsWindow {
display: none;
position: absolute;
left: 0; top: 0;
border: 1px solid #000000;
background-color: #EEF3F5;
}
/* ----------------------------------- */
#SRIndex {
clear:both;
padding-bottom: 15px;
}
.SREntry {
font-size: 10pt;
padding-left: 1ex;
}
.SRPage .SREntry {
font-size: 8pt;
padding: 1px 5px;
}
body.SRPage {
margin: 5px 2px;
}
.SRChildren {
padding-left: 3ex; padding-bottom: .5em
}
.SRPage .SRChildren {
display: none;
}
.SRSymbol {
font-weight: bold; color: #153788;
font-family: Arial, Verdana, sans-serif;
text-decoration: none;
outline: none;
}
a.SRScope {
display: block;
color: #153788;
font-family: Arial, Verdana, sans-serif;
text-decoration: none;
outline: none;
}
a.SRSymbol:focus, a.SRSymbol:active,
a.SRScope:focus, a.SRScope:active {
text-decoration: underline;
}
.SRPage .SRStatus {
padding: 2px 5px;
font-size: 8pt;
font-style: italic;
}
.SRResult {
display: none;
}

View File

@ -0,0 +1,724 @@
// Search script generated by doxygen
// Copyright (C) 2009 by Dimitri van Heesch.
// The code in this file is loosly based on main.js, part of Natural Docs,
// which is Copyright (C) 2003-2008 Greg Valure
// Natural Docs is licensed under the GPL.
var indexSectionsWithContent =
{
};
var indexSectionNames =
{
};
function convertToId(search)
{
var result = '';
for (i=0;i<search.length;i++)
{
var c = search.charAt(i);
var cn = c.charCodeAt(0);
if (c.match(/[a-z0-9]/))
{
result+=c;
}
else if (cn<16)
{
result+="_0"+cn.toString(16);
}
else
{
result+="_"+cn.toString(16);
}
}
return result;
}
function getXPos(item)
{
var x = 0;
if (item.offsetWidth)
{
while (item && item!=document.body)
{
x += item.offsetLeft;
item = item.offsetParent;
}
}
return x;
}
function getYPos(item)
{
var y = 0;
if (item.offsetWidth)
{
while (item && item!=document.body)
{
y += item.offsetTop;
item = item.offsetParent;
}
}
return y;
}
/* A class handling everything associated with the search panel.
Parameters:
name - The name of the global variable that will be
storing this instance. Is needed to be able to set timeouts.
resultPath - path to use for external files
*/
function SearchBox(name, resultsPath, inFrame, label)
{
if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); }
// ---------- Instance variables
this.name = name;
this.resultsPath = resultsPath;
this.keyTimeout = 0;
this.keyTimeoutLength = 500;
this.closeSelectionTimeout = 300;
this.lastSearchValue = "";
this.lastResultsPage = "";
this.hideTimeout = 0;
this.searchIndex = 0;
this.searchActive = false;
this.insideFrame = inFrame;
this.searchLabel = label;
// ----------- DOM Elements
this.DOMSearchField = function()
{ return document.getElementById("MSearchField"); }
this.DOMSearchSelect = function()
{ return document.getElementById("MSearchSelect"); }
this.DOMSearchSelectWindow = function()
{ return document.getElementById("MSearchSelectWindow"); }
this.DOMPopupSearchResults = function()
{ return document.getElementById("MSearchResults"); }
this.DOMPopupSearchResultsWindow = function()
{ return document.getElementById("MSearchResultsWindow"); }
this.DOMSearchClose = function()
{ return document.getElementById("MSearchClose"); }
this.DOMSearchBox = function()
{ return document.getElementById("MSearchBox"); }
// ------------ Event Handlers
// Called when focus is added or removed from the search field.
this.OnSearchFieldFocus = function(isActive)
{
this.Activate(isActive);
}
this.OnSearchSelectShow = function()
{
var searchSelectWindow = this.DOMSearchSelectWindow();
var searchField = this.DOMSearchSelect();
if (this.insideFrame)
{
var left = getXPos(searchField);
var top = getYPos(searchField);
left += searchField.offsetWidth + 6;
top += searchField.offsetHeight;
// show search selection popup
searchSelectWindow.style.display='block';
left -= searchSelectWindow.offsetWidth;
searchSelectWindow.style.left = left + 'px';
searchSelectWindow.style.top = top + 'px';
}
else
{
var left = getXPos(searchField);
var top = getYPos(searchField);
top += searchField.offsetHeight;
// show search selection popup
searchSelectWindow.style.display='block';
searchSelectWindow.style.left = left + 'px';
searchSelectWindow.style.top = top + 'px';
}
// stop selection hide timer
if (this.hideTimeout)
{
clearTimeout(this.hideTimeout);
this.hideTimeout=0;
}
return false; // to avoid "image drag" default event
}
this.OnSearchSelectHide = function()
{
this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
this.closeSelectionTimeout);
}
// Called when the content of the search field is changed.
this.OnSearchFieldChange = function(evt)
{
if (this.keyTimeout) // kill running timer
{
clearTimeout(this.keyTimeout);
this.keyTimeout = 0;
}
var e = (evt) ? evt : window.event; // for IE
if (e.keyCode==40 || e.keyCode==13)
{
if (e.shiftKey==1)
{
this.OnSearchSelectShow();
var win=this.DOMSearchSelectWindow();
for (i=0;i<win.childNodes.length;i++)
{
var child = win.childNodes[i]; // get span within a
if (child.className=='SelectItem')
{
child.focus();
return;
}
}
return;
}
else if (window.frames.MSearchResults.searchResults)
{
var elem = window.frames.MSearchResults.searchResults.NavNext(0);
if (elem) elem.focus();
}
}
else if (e.keyCode==27) // Escape out of the search field
{
this.DOMSearchField().blur();
this.DOMPopupSearchResultsWindow().style.display = 'none';
this.DOMSearchClose().style.display = 'none';
this.lastSearchValue = '';
this.Activate(false);
return;
}
// strip whitespaces
var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
if (searchValue != this.lastSearchValue) // search value has changed
{
if (searchValue != "") // non-empty search
{
// set timer for search update
this.keyTimeout = setTimeout(this.name + '.Search()',
this.keyTimeoutLength);
}
else // empty search field
{
this.DOMPopupSearchResultsWindow().style.display = 'none';
this.DOMSearchClose().style.display = 'none';
this.lastSearchValue = '';
}
}
}
this.SelectItemCount = function(id)
{
var count=0;
var win=this.DOMSearchSelectWindow();
for (i=0;i<win.childNodes.length;i++)
{
var child = win.childNodes[i]; // get span within a
if (child.className=='SelectItem')
{
count++;
}
}
return count;
}
this.SelectItemSet = function(id)
{
var i,j=0;
var win=this.DOMSearchSelectWindow();
for (i=0;i<win.childNodes.length;i++)
{
var child = win.childNodes[i]; // get span within a
if (child.className=='SelectItem')
{
var node = child.firstChild;
if (j==id)
{
node.innerHTML='&bull;';
}
else
{
node.innerHTML='&nbsp;';
}
j++;
}
}
}
// Called when an search filter selection is made.
// set item with index id as the active item
this.OnSelectItem = function(id)
{
this.searchIndex = id;
this.SelectItemSet(id);
var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
if (searchValue!="" && this.searchActive) // something was found -> do a search
{
this.Search();
}
}
this.OnSearchSelectKey = function(evt)
{
var e = (evt) ? evt : window.event; // for IE
if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
{
this.searchIndex++;
this.OnSelectItem(this.searchIndex);
}
else if (e.keyCode==38 && this.searchIndex>0) // Up
{
this.searchIndex--;
this.OnSelectItem(this.searchIndex);
}
else if (e.keyCode==13 || e.keyCode==27)
{
this.OnSelectItem(this.searchIndex);
this.CloseSelectionWindow();
this.DOMSearchField().focus();
}
return false;
}
// --------- Actions
// Closes the results window.
this.CloseResultsWindow = function()
{
this.DOMPopupSearchResultsWindow().style.display = 'none';
this.DOMSearchClose().style.display = 'none';
this.Activate(false);
}
this.CloseSelectionWindow = function()
{
this.DOMSearchSelectWindow().style.display = 'none';
}
// Performs a search.
this.Search = function()
{
this.keyTimeout = 0;
// strip leading whitespace
var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
var code = searchValue.toLowerCase().charCodeAt(0);
var hexCode;
if (code<16)
{
hexCode="0"+code.toString(16);
}
else
{
hexCode=code.toString(16);
}
var resultsPage;
var resultsPageWithSearch;
var hasResultsPage;
if (indexSectionsWithContent[this.searchIndex].charAt(code-32) == '1')
{
resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
hasResultsPage = true;
}
else // nothing available for this search term
{
resultsPage = this.resultsPath + '/nomatches.html';
resultsPageWithSearch = resultsPage;
hasResultsPage = false;
}
window.frames.MSearchResults.location.href = resultsPageWithSearch;
var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
if (domPopupSearchResultsWindow.style.display!='block')
{
var domSearchBox = this.DOMSearchBox();
this.DOMSearchClose().style.display = 'inline';
if (this.insideFrame)
{
var domPopupSearchResults = this.DOMPopupSearchResults();
domPopupSearchResultsWindow.style.position = 'relative';
domPopupSearchResultsWindow.style.display = 'block';
var width = document.body.clientWidth - 8; // the -8 is for IE :-(
domPopupSearchResultsWindow.style.width = width + 'px';
domPopupSearchResults.style.width = width + 'px';
}
else
{
var domPopupSearchResults = this.DOMPopupSearchResults();
var left = getXPos(domSearchBox) + domSearchBox.offsetWidth;
var top = getYPos(domSearchBox) + domSearchBox.offsetHeight + 1;
domPopupSearchResultsWindow.style.display = 'block';
left -= domPopupSearchResults.offsetWidth;
domPopupSearchResultsWindow.style.top = top + 'px';
domPopupSearchResultsWindow.style.left = left + 'px';
}
}
this.lastSearchValue = searchValue;
this.lastResultsPage = resultsPage;
}
// -------- Activation Functions
// Activates or deactivates the search panel, resetting things to
// their default values if necessary.
this.Activate = function(isActive)
{
if (isActive || // open it
this.DOMPopupSearchResultsWindow().style.display == 'block'
)
{
this.DOMSearchBox().className = 'MSearchBoxActive';
var searchField = this.DOMSearchField();
if (searchField.value == this.searchLabel) // clear "Search" term upon entry
{
searchField.value = '';
this.searchActive = true;
}
}
else if (!isActive) // directly remove the panel
{
this.DOMSearchBox().className = 'MSearchBoxInactive';
this.DOMSearchField().value = this.searchLabel;
this.searchActive = false;
this.lastSearchValue = ''
this.lastResultsPage = '';
}
}
}
// -----------------------------------------------------------------------
// The class that handles everything on the search results page.
function SearchResults(name)
{
// The number of matches from the last run of <Search()>.
this.lastMatchCount = 0;
this.lastKey = 0;
this.repeatOn = false;
// Toggles the visibility of the passed element ID.
this.FindChildElement = function(id)
{
var parentElement = document.getElementById(id);
var element = parentElement.firstChild;
while (element && element!=parentElement)
{
if (element.nodeName == 'DIV' && element.className == 'SRChildren')
{
return element;
}
if (element.nodeName == 'DIV' && element.hasChildNodes())
{
element = element.firstChild;
}
else if (element.nextSibling)
{
element = element.nextSibling;
}
else
{
do
{
element = element.parentNode;
}
while (element && element!=parentElement && !element.nextSibling);
if (element && element!=parentElement)
{
element = element.nextSibling;
}
}
}
}
this.Toggle = function(id)
{
var element = this.FindChildElement(id);
if (element)
{
if (element.style.display == 'block')
{
element.style.display = 'none';
}
else
{
element.style.display = 'block';
}
}
}
// Searches for the passed string. If there is no parameter,
// it takes it from the URL query.
//
// Always returns true, since other documents may try to call it
// and that may or may not be possible.
this.Search = function(search)
{
if (!search) // get search word from URL
{
search = window.location.search;
search = search.substring(1); // Remove the leading '?'
search = unescape(search);
}
search = search.replace(/^ +/, ""); // strip leading spaces
search = search.replace(/ +$/, ""); // strip trailing spaces
search = search.toLowerCase();
search = convertToId(search);
var resultRows = document.getElementsByTagName("div");
var matches = 0;
var i = 0;
while (i < resultRows.length)
{
var row = resultRows.item(i);
if (row.className == "SRResult")
{
var rowMatchName = row.id.toLowerCase();
rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
if (search.length<=rowMatchName.length &&
rowMatchName.substr(0, search.length)==search)
{
row.style.display = 'block';
matches++;
}
else
{
row.style.display = 'none';
}
}
i++;
}
document.getElementById("Searching").style.display='none';
if (matches == 0) // no results
{
document.getElementById("NoMatches").style.display='block';
}
else // at least one result
{
document.getElementById("NoMatches").style.display='none';
}
this.lastMatchCount = matches;
return true;
}
// return the first item with index index or higher that is visible
this.NavNext = function(index)
{
var focusItem;
while (1)
{
var focusName = 'Item'+index;
focusItem = document.getElementById(focusName);
if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
{
break;
}
else if (!focusItem) // last element
{
break;
}
focusItem=null;
index++;
}
return focusItem;
}
this.NavPrev = function(index)
{
var focusItem;
while (1)
{
var focusName = 'Item'+index;
focusItem = document.getElementById(focusName);
if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
{
break;
}
else if (!focusItem) // last element
{
break;
}
focusItem=null;
index--;
}
return focusItem;
}
this.ProcessKeys = function(e)
{
if (e.type == "keydown")
{
this.repeatOn = false;
this.lastKey = e.keyCode;
}
else if (e.type == "keypress")
{
if (!this.repeatOn)
{
if (this.lastKey) this.repeatOn = true;
return false; // ignore first keypress after keydown
}
}
else if (e.type == "keyup")
{
this.lastKey = 0;
this.repeatOn = false;
}
return this.lastKey!=0;
}
this.Nav = function(evt,itemIndex)
{
var e = (evt) ? evt : window.event; // for IE
if (e.keyCode==13) return true;
if (!this.ProcessKeys(e)) return false;
if (this.lastKey==38) // Up
{
var newIndex = itemIndex-1;
var focusItem = this.NavPrev(newIndex);
if (focusItem)
{
var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
if (child && child.style.display == 'block') // children visible
{
var n=0;
var tmpElem;
while (1) // search for last child
{
tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
if (tmpElem)
{
focusItem = tmpElem;
}
else // found it!
{
break;
}
n++;
}
}
}
if (focusItem)
{
focusItem.focus();
}
else // return focus to search field
{
parent.document.getElementById("MSearchField").focus();
}
}
else if (this.lastKey==40) // Down
{
var newIndex = itemIndex+1;
var focusItem;
var item = document.getElementById('Item'+itemIndex);
var elem = this.FindChildElement(item.parentNode.parentNode.id);
if (elem && elem.style.display == 'block') // children visible
{
focusItem = document.getElementById('Item'+itemIndex+'_c0');
}
if (!focusItem) focusItem = this.NavNext(newIndex);
if (focusItem) focusItem.focus();
}
else if (this.lastKey==39) // Right
{
var item = document.getElementById('Item'+itemIndex);
var elem = this.FindChildElement(item.parentNode.parentNode.id);
if (elem) elem.style.display = 'block';
}
else if (this.lastKey==37) // Left
{
var item = document.getElementById('Item'+itemIndex);
var elem = this.FindChildElement(item.parentNode.parentNode.id);
if (elem) elem.style.display = 'none';
}
else if (this.lastKey==27) // Escape
{
parent.searchBox.CloseResultsWindow();
parent.document.getElementById("MSearchField").focus();
}
else if (this.lastKey==13) // Enter
{
return true;
}
return false;
}
this.NavChild = function(evt,itemIndex,childIndex)
{
var e = (evt) ? evt : window.event; // for IE
if (e.keyCode==13) return true;
if (!this.ProcessKeys(e)) return false;
if (this.lastKey==38) // Up
{
if (childIndex>0)
{
var newIndex = childIndex-1;
document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
}
else // already at first child, jump to parent
{
document.getElementById('Item'+itemIndex).focus();
}
}
else if (this.lastKey==40) // Down
{
var newIndex = childIndex+1;
var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
if (!elem) // last child, jump to parent next parent
{
elem = this.NavNext(itemIndex+1);
}
if (elem)
{
elem.focus();
}
}
else if (this.lastKey==27) // Escape
{
parent.searchBox.CloseResultsWindow();
parent.document.getElementById("MSearchField").focus();
}
else if (this.lastKey==13) // Enter
{
return true;
}
return false;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 527 B

View File

@ -0,0 +1,95 @@
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Detector settings commands</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<img id="MSearchSelect" src="search/search.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</div>
</li>
</ul>
</div>
</div>
<div class="contents">
<h1><a class="anchor" id="settings">Detector settings commands </a></h1><p>Commands to setup the settings of the detector</p>
<ul>
<li><b>settingsdir [dir]</b> Sets/gets the directory where the settings files are located (string)</li>
</ul>
<ul>
<li><b>trimdir [dir]</b> obsolete <code>settingsdir</code> </li>
</ul>
<ul>
<li><b>caldir [dir]</b> Sets/gets the directory where the calibration files are located (string)</li>
</ul>
<ul>
<li><b>trimen [n e0 e1...e(n-1)]</b> Sets/gets the number of energies n at which the detector has default trim file and their values in eV (int)</li>
</ul>
<ul>
<li><b>settings [s]</b> sets/gets the settings of the detector. Options: <code>standard</code>, <code>fast</code>, <code>highgain</code>, <code>dynamicgain</code>, <code>lowgain</code>, <code>mediumgain</code>, <code>veryhighgain</code>, <code>lownoise</code>, <code>dynamichg0</code>, <code>fixgain1</code>, <code>fixgain2</code>, <code>forceswitchg1</code>, <code>forceswitchg2</code>. <br/>
In Eiger, only sets in client shared memory. Use <code>threshold</code> or <code>thresholdnotb</code> to pass to detector. Gets from detector.</li>
</ul>
<ul>
<li><b>threshold [eV] [sett] </b> sets/gets the detector threshold in eV. sett is optional and if provided also sets the settings. Use this for Eiger instead of <code>settings</code>.</li>
</ul>
<ul>
<li><b>thresholdnotb [eV] [sett] </b> sets/gets the detector threshold in eV without loading trimbits. sett is optional and if provided also sets the settings. Use this for Eiger instead of <code>settings</code>.</li>
</ul>
<ul>
<li><b>trimbits [fname] </b> loads/stores the trimbits to/from the detector. If no extension is specified, the serial number of each module will be attached.</li>
</ul>
<ul>
<li><b>trim:[mode] [fname]</b> trims the detector according to mode and saves resulting trimbits to file. Mode: noise, beam, improve, fix. Used in MYTHEN only. Only put!</li>
</ul>
<ul>
<li><b>trimval [i]</b> sets all trimbits to i. Used in EIGER only.</li>
</ul>
<ul>
<li><b>pedestal [i]</b> starts acquisition for i frames, calculates pedestal and writes back to fpga. Used in GOTTHARD only. Only put! </li>
</ul>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on 16 Aug 2017 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 706 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -0,0 +1,105 @@
/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */
DIV.tabs
{
float : left;
width : 100%;
background : url("tab_b.gif") repeat-x bottom;
margin-bottom : 4px;
}
DIV.tabs UL
{
margin : 0px;
padding-left : 10px;
list-style : none;
}
DIV.tabs LI, DIV.tabs FORM
{
display : inline;
margin : 0px;
padding : 0px;
}
DIV.tabs FORM
{
float : right;
}
DIV.tabs A
{
float : left;
background : url("tab_r.gif") no-repeat right top;
border-bottom : 1px solid #84B0C7;
font-size : 80%;
font-weight : bold;
text-decoration : none;
}
DIV.tabs A:hover
{
background-position: 100% -150px;
}
DIV.tabs A:link, DIV.tabs A:visited,
DIV.tabs A:active, DIV.tabs A:hover
{
color: #1A419D;
}
DIV.tabs SPAN
{
float : left;
display : block;
background : url("tab_l.gif") no-repeat left top;
padding : 5px 9px;
white-space : nowrap;
}
DIV.tabs #MSearchBox
{
float : right;
display : inline;
font-size : 1em;
}
DIV.tabs TD
{
font-size : 80%;
font-weight : bold;
text-decoration : none;
}
/* Commented Backslash Hack hides rule from IE5-Mac \*/
DIV.tabs SPAN {float : none;}
/* End IE5-Mac hack */
DIV.tabs A:hover SPAN
{
background-position: 0% -150px;
}
DIV.tabs LI.current A
{
background-position: 100% -150px;
border-width : 0px;
}
DIV.tabs LI.current SPAN
{
background-position: 0% -150px;
padding-bottom : 6px;
}
DIV.navpath
{
background : none;
border : none;
border-bottom : 1px solid #84B0C7;
text-align : center;
margin : 2px;
padding : 2px;
}

View File

@ -0,0 +1,103 @@
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Developer</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<img id="MSearchSelect" src="search/search.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</div>
</li>
</ul>
</div>
</div>
<div class="contents">
<h1><a class="anchor" id="test">Developer </a></h1><p>Commands to be used only for software debugging. Avoid using them!</p>
<ul>
<li><b>test</b> returns an error</li>
</ul>
<ul>
<li><b>help</b> Returns a list of possible commands.</li>
</ul>
<ul>
<li><b>exitserver</b> Shuts down all the detector servers. Don't use it!!!!</li>
</ul>
<ul>
<li><b>exitreceiver</b> Shuts down all the receivers. Don't use it!!!!</li>
</ul>
<ul>
<li><b>flippeddatay [i]</b> enables/disables data being flipped across y axis. 1 enables, 0 disables. Not implemented.</li>
</ul>
<ul>
<li><b>digitest [i]</b> will perform test which will plot the unique channel identifier, instead of data. Only get!</li>
</ul>
<ul>
<li><b>bustest</b> performs test of the bus interface between FPGA and embedded Linux system. Can last up to a few minutes. Cannot set! Used for Mythen only. Only get!</li>
</ul>
<ul>
<li><b>digibittest:[i]</b> performs digital test of the module i. Returns 0 if succeeded, otherwise error mask. Only put!</li>
</ul>
<ul>
<li><b>reg [addr] [val]</b> ??? writes to an register <code>addr</code> with <code>value</code> in hexadecimal format.</li>
</ul>
<ul>
<li><b>adcreg [addr] [val]</b> ??? writes to an adc register <code>addr</code> with <code>value</code> in hexadecimal format. Only put!</li>
</ul>
<ul>
<li><b>setbit</b> ??? Only put!</li>
</ul>
<ul>
<li><b>clearbit </b> ??? Only put!</li>
</ul>
<ul>
<li><b>getbit </b> ??? Only get!</li>
</ul>
<ul>
<li><b>r_compression [i] sets/gets compression in receiver. 1 sets, 0 unsets. Not implemented.</b> </li>
</ul>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on 16 Aug 2017 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View File

@ -0,0 +1,19 @@
all: clean refman.pdf
pdf: refman.pdf
refman.pdf: refman.tex
pdflatex refman.tex
makeindex refman.idx
pdflatex refman.tex
latex_count=5 ; \
while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
do \
echo "Rerunning latex...." ;\
pdflatex refman.tex ;\
latex_count=`expr $$latex_count - 1` ;\
done
clean:
rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out refman.pdf

View File

@ -0,0 +1,41 @@
Commands to control the acquisition
\begin{DoxyItemize}
\item {\bfseries acquire} blocking acquisition (like calling sls\_\-detector\_\-acquire). Starts receiver and detector, writes and processes the data, stops detector. Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries data} gets all data from the detector (if any) processes them and writes them to file according to the preferences already setup (MYTHEN only). Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries frame} gets a single frame from the detector (if any) processes it and writes it to file according to the preferences already setup (MYTHEN only). Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries status} {\ttfamily returns} the detector status (string)-\/ can be: {\ttfamily running}, {\ttfamily error}, {\ttfamily transmitting}, {\ttfamily finished}, {\ttfamily waiting} or {\ttfamily idle}; {\ttfamily put} can be {\ttfamily start} or {\ttfamily stop}
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries busy} returns {\ttfamily 1} if the acquisition is active, {\ttfamily 0} otherwise. Works when the acquisition is started in non-\/blocking mode. Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries readctr } Reads the counters from the detector memory (analog detector returning values translated into number of photons -\/ only GOTTHARD). Cannot put.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries resetctr i } Resets counter in detector, restarts acquisition if i=1(analog detector returning values translated into number of photons -\/ only GOTTHARD). Cannot put.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries resmat i } sets/resets counter bit in detector.gets the counter bit in detector ????
\end{DoxyItemize}

View File

@ -0,0 +1,126 @@
Commands to define scripts to be executed during the acquisition flow
\begin{DoxyItemize}
\item {\bfseries positions \mbox{[}n \mbox{[}p0..pn-\/1\mbox{]}\mbox{]}} sets/gets number of angular position and positions to be acquired.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries startscript \mbox{[}s\mbox{]}} sets/gets the script to be executed at the beginning of the acquisition. {\ttfamily none} unsets.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries startscriptpar \mbox{[}s\mbox{]}} sets/gets a string to be passed as a parameter to the startscript
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries stopscript \mbox{[}s\mbox{]}} sets/gets the script to be executed at the end of the acquisition. {\ttfamily none} unsets.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries stopscriptpar \mbox{[}s\mbox{]}} sets/gets a string to be passed as a parameter to the stopscript
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries scriptbefore \mbox{[}s\mbox{]}} sets/gets the script to be executed before starting the detector every time in the acquisition. {\ttfamily none} unsets.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries scriptbeforepar \mbox{[}s\mbox{]}} sets/gets a string to be passed as a parameter to the scriptbefore
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries scriptafter \mbox{[}s\mbox{]}} sets/gets the script to be executed after the detector has finished every time in the acquisition. {\ttfamily none} unsets.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries scriptafterpar \mbox{[}s\mbox{]}} sets/gets a string to be passed as a parameter to the scriptafter
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries headerafter \mbox{[}s\mbox{]}} sets/gets the script to be executed for logging the detector parameters. {\ttfamily none} unsets.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries headerbefore \mbox{[}s\mbox{]}} sets/gets the script to be executed for logging the detector parameters. {\ttfamily none} unsets.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries headerbeforepar \mbox{[}s\mbox{]}} sets/gets a string to be passed as a parameter to the headerbefore script
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries headerafterpar \mbox{[}s\mbox{]}} sets/gets a string to be passed as a parameter to the headerafter script
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries enacallog \mbox{[}i\mbox{]}} enables/disables logging of the parameters necessary for the energy calibration. 1 sets, 0 unsets.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries angcallog \mbox{[}i\mbox{]}} enables/disables logging of the parameters necessary for the angular calibration. 1 sets, 0 unsets.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries scan0script \mbox{[}s\mbox{]}} sets/gets the script to be executed for the scan 0 level. {\ttfamily none} unsets.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries scan0par \mbox{[}s\mbox{]}} sets/gets a string to be passed as a parameter to the scan0script
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries scan0prec \mbox{[}i\mbox{]}} sets/gets number of digits to be used for the scan0 variable in the file name.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries scan0steps \mbox{[}i \mbox{[}s0..sn-\/1\mbox{]}\mbox{]}} sets/gets number of steps (int) of the scan0 level and their values (float).
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries scan0range \mbox{[}smin smax sstep\mbox{]}} sets scan0 min, max and step, returns the number of steps and their values as scan0steps.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries scan1script \mbox{[}s\mbox{]}} sets/gets the script to be executed for the scan1 level. {\ttfamily none} unsets.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries scan1par \mbox{[}s\mbox{]}} sets/gets a string to be passed as a parameter to the scan1script
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries scan1prec \mbox{[}i\mbox{]}} sets/gets number of digits to be used for the scan1 variable in the file name.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries scan1steps \mbox{[}i \mbox{[}s0..sn-\/1\mbox{]}\mbox{]}} sets/gets number of steps (int) of the scan1 level and their values (float).
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries scan1range \mbox{[}smin smax sstep\mbox{]}} sets scan1 min, max and step, returns the number of steps and their values as scan1steps.
\end{DoxyItemize}

View File

@ -0,0 +1 @@
This page is for advanced users. Make sure you have first read the introduction.

View File

@ -0,0 +1,372 @@
Commands to configure the detector. these commands are often left to the configuration file.
\begin{DoxyItemize}
\item {\bfseries datastream} enables/disables the 0MQ data stream (0MQ threads created) from receiver to client.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries free} Free shared memory on the control PC
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries add} Adds a detector at the end of the multi-\/detector structure. {\ttfamily put} argument is the hostname or IP adress. Returns the chained list of detector hostnames.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries remove i} Removes controller {\ttfamily i} from the multi-\/detector structure. Can be used for partial readout of the detector.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries type} Sets/gets detector type (string).
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries hostname} {\ttfamily put} adds the hostname (ot IP adress) at the end of the multi-\/detector structure. If used for a single controlled (i:) replaces the current hostname. Returns the list of the hostnames of the multi-\/detector structure.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries id\mbox{[}:i\mbox{]}} Returns the id of the detector structure. i is the detector position in a multi detector system. If used a {\ttfamily put}, configures the id of the detector structure. i is the detector position in a multi detector system and l is the id of the detector to be added.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries master i} {\ttfamily put} sets the position of the master of the acquisition (-\/1 if none). Returns the position of the master of the detector structure (-\/1 if none).
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries sync} Sets/gets the synchronization mode of the detectors in the multi-\/detector structure. Can be: {\ttfamily none}, {\ttfamily gating}, {\ttfamily trigger}, {\ttfamily complementary}. Mainly used by MYTHEN/GOTTHARD.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries online \mbox{[}i\mbox{]}} sets the detector in online (1) or offline (0) mode
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries checkonline} returns the hostnames of all detectors without connecting to them
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries activate} Activates/Deactivates the detector. Deactivated detector does not send data. Used for EIGER only.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries lock \mbox{[}i\mbox{]}} Locks/Unlocks the detector to communicate with this client. 1 locks, 0 unlocks.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries nmod \mbox{[}i\mbox{]}} sets/gets the number of modules of the detector. Used for MYTHEN only.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries maxmod } Gets the maximum number of modules of the detector. Used for MYTHEN only. Cannot put!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries dr \mbox{[}i\mbox{]}} sets/gets the dynamic range of detector. Mythen \mbox{[}4,8,16,24\mbox{]}. Eiger \mbox{[}4,8,16,32\mbox{]}. Others cannot put!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries roi \mbox{[}i\mbox{]} \mbox{[}xmin\mbox{]} \mbox{[}xmax\mbox{]} \mbox{[}ymin\mbox{]} \mbox{[}ymax\mbox{]} } sets region of interest of the detector, where i is number of rois;i=0 to clear rois. Used for GOTTHARD only.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries detsizechan \mbox{[}xmax\mbox{]} \mbox{[}ymax\mbox{]}} sets the maximum number of channels in each dimension for complete detector set; -\/1 is no limit. Use for multi-\/detector system as first command in config file.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries roimask \mbox{[}i\mbox{]}} ??
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries flippeddatax \mbox{[}i\mbox{]}} enables/disables data being flipped across x axis. 1 enables, 0 disables. Used for EIGER only. 1 for bottom half-\/module, 0 for top-\/half module.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries flags \mbox{[}flag\mbox{]}} sets/gets the readout flags to mode. Options: none, storeinram, tot, continous, parallel, nonparallel, safe, digital, analog\_\-digital, unknown. Used for MYTHEN and EIGER only.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries extsig:\mbox{[}i\mbox{]} \mbox{[}flag\mbox{]}} sets/gets the mode of the external signal i. Options: {\ttfamily off}, {\ttfamily gate\_\-in\_\-active\_\-high}, {\ttfamily gate\_\-in\_\-active\_\-low}, {\ttfamily trigger\_\-in\_\-rising\_\-edge}, {\ttfamily trigger\_\-in\_\-falling\_\-edge}, {\ttfamily ro\_\-trigger\_\-in\_\-rising\_\-edge}, {\ttfamily ro\_\-trigger\_\-in\_\-falling\_\-edge}, {\ttfamily gate\_\-out\_\-active\_\-high}, {\ttfamily gate\_\-out\_\-active\_\-low}, {\ttfamily trigger\_\-out\_\-rising\_\-edge}, {\ttfamily trigger\_\-out\_\-falling\_\-edge}, {\ttfamily ro\_\-trigger\_\-out\_\-rising\_\-edge}, {\ttfamily ro\_\-trigger\_\-out\_\-falling\_\-edge}. \par
Used in MYTHEN, GOTTHARD, PROPIX only.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries programfpga \mbox{[}file\mbox{]}} programs the FPGA with file f (with .pof extension). Used for JUNGFRAU, MOENCH only. Only put!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries resetfpga \mbox{[}f\mbox{]}} resets FPGA, where f can be any value. Used for JUNGFRAU only. Only put!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries powerchip \mbox{[}i\mbox{]}} Powers on/off the chip. 1 powers on, 0 powers off. Can also get the power status. Used for JUNGFRAU only.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries led \mbox{[}i\mbox{]}} sets/gets the led status. 1 on, 0 off. Used for MOENCH only ??
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries moduleversion:\mbox{[}i\mbox{]}} Gets the firmware version of module i. Used for MYTHEN only. Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries detectornumber} Gets the serial number or MAC of detector. Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries modulenumber:\mbox{[}i\mbox{]}} Gets the serial number of module i. Used for MYTHEN only. Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries detectorversion} Gets the firmware version of detector. Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries softwareversion} Gets the software version of detector server. Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries thisversion} Gets the software version of this client software. Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries receiverversion} Gets the software version of receiver. Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries timing \mbox{[}mode\mbox{]}} sets/gets synchronization mode of the detector. Mode: auto, trigger, ro\_\-trigger, gating, triggered\_\-gating
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries exptime \mbox{[}i\mbox{]}} sets/gets exposure time in s
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries subexptime \mbox{[}i\mbox{]}} sets/gets sub exposure time in s. Used in EIGER only in 32 bit mode.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries period \mbox{[}i\mbox{]}} sets/gets frame period in s.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries delay \mbox{[}i\mbox{]}} sets/gets delay in s. Used in MYTHEN, GOTTHARD only
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries gates \mbox{[}i\mbox{]}} sets/gets number of gates. Used in MYTHEN, GOTTHARD, EIGER only
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries gates \mbox{[}i\mbox{]}} sets/gets number of frames. If {\ttfamily timing} is not {\ttfamily auto}, then it is the number of frames per cycle/trigger.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries cycles \mbox{[}i\mbox{]}} sets/gets number of triggers. Timing mode should be set appropriately.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries probes \mbox{[}i\mbox{]}} sets/gets number of probes to accumulate. When setting, max 3! cycles should be set to 1, frames to the number of pump-\/probe events. Used in MYTHEN only
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries measurements \mbox{[}i\mbox{]}} sets/gets number of measurements.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries samples \mbox{[}i\mbox{]}} sets/gets number of samples expected from the jctb. Used in CHIP TEST BOARD only.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries exptimel} gets exposure time left. Used in MYTHEN, GOTTHARD only. Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries periodl} gets frame period left. Used in MYTHEN, GOTTHARD only. Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries delayl} gets delay left. Used in MYTHEN, GOTTHARD only. Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries gatesl} gets number of gates left. Used in MYTHEN, GOTTHARD only. Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries framesl} gets number of frames left. Used in MYTHEN, GOTTHARD only. Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries cyclesl} gets number of cylces left. Used in MYTHEN, GOTTHARD only. Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries probesl} gets number of probes left. Used in MYTHEN, GOTTHARD only. Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries now} ??? Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries timestamp} ??? Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries nframes} ??? Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries clkdivider \mbox{[}i\mbox{]}} sets/gets the readout clock divider. EIGER, JUNGFRAU \mbox{[}0(fast speed), 1(half speed), 2(quarter speed)\mbox{]}. MYTHEN\mbox{[}???\mbox{]}
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries clkdivider \mbox{[}i\mbox{]}} sets/gets length of set/reset signals (in clock cycles). Used in MYTHEN only
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries clkdivider \mbox{[}i\mbox{]}} sets/gets waitstates of the bus interface (in clock cycles). Used in MYTHEN only
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries clkdivider \mbox{[}i\mbox{]}} sets/gets clock divider in tot mode. Used in MYTHEN only
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries clkdivider \mbox{[}i\mbox{]}} sets/gets duty cycle of the tot clock. Used in MYTHEN only
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries phasestep \mbox{[}i\mbox{]}} ???
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries oversampling \mbox{[}i\mbox{]}} ???
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries adcclk \mbox{[}i\mbox{]}} ???
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries adcphase \mbox{[}i\mbox{]}} ??? Used in MYTHEN, JUNGFRAU only.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries adcpipeline \mbox{[}i\mbox{]}} ???
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries dbitclk \mbox{[}i\mbox{]}} ???
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries dbitphase \mbox{[}i\mbox{]}} ???
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries config \mbox{[}fname\mbox{]}} sets/saves detector/receiver to configuration contained in fname. Same as executing sls\_\-detector\_\-put for every line. Normally a one time operation.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries rx\_\-printconfig} prints the receiver configuration. Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries parameters \mbox{[}fname\mbox{]}} sets/saves detector parameters contained in fname. Normally once per different measurement.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries setup \mbox{[}fname\mbox{]}} sets/saves detector complete setup contained in fname (extensions automatically generated), including trimfiles, ff coefficients etc.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries tengiga \mbox{[}i\mbox{]}} enables/disables 10GbE in system (detector \& receiver). 1 enabled 10GbE, 0 enables 1GbE. Used in EIGER only.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries pulse \mbox{[}n\mbox{]} \mbox{[}x\mbox{]} \mbox{[}y\mbox{]}} pulses pixel at coordinates (x,y) n number of times. Used in EIGER only. Only put!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries pulsenmove \mbox{[}n\mbox{]} \mbox{[}x\mbox{]} \mbox{[}y\mbox{]}} pulses pixel n number of times and moves relatively by x value (x axis) and y value(y axis). Used in EIGER only. Only put!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries pulsechip \mbox{[}n\mbox{]}}pulses chip n number of times, while n=-\/1 will reset it to normal mode. Used in EIGER only. Only put!
\end{DoxyItemize}

View File

@ -0,0 +1,76 @@
Commands to setup the data processing (mainly MYTHEN related)
\begin{DoxyItemize}
\item {\bfseries flatfield \mbox{[}fn\mbox{]}} {\ttfamily put} sets flatfield file to {\ttfamily fn} (relative to {\ttfamily ffdir}). returns the flatfield file name relative to {\ttfamily ffdir} (string). If
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries ffdir \mbox{[}d\mbox{]}} Sets/gets the directory in which the flat field file is located.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries ratecorr \mbox{[}ns\mbox{]}} Returns the dead time used for rate correections in ns (int). {\ttfamily put} sets the deadtime correction constant in ns, -\/1 will set it to default tau of settings (0 unset).
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries badchannels \mbox{[}fn\mbox{]}} {\ttfamily put} sets the badchannels file to {\ttfamily fn} . returns the bad channels file name. If
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries angconv \mbox{[}fn\mbox{]}} {\ttfamily put} sets the angular conversion file to {\ttfamily fn} . returns the angular conversion file name. If
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries globaloff \mbox{[}f\mbox{]}} Sets/gets the beamline angular global offset (float).
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries fineoff \mbox{[}f\mbox{]}} Sets/gets the angular fine offset of the measurement (float).
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries binsize \mbox{[}f\mbox{]}} Sets/gets the bin size used for the angular conversion (float).
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries angdir \mbox{[}i\mbox{]}} Sets/gets the angular direction. 1 means increasing channels number as increasing angle, -\/1 increasing channel number decreasing angle.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries moveflag \mbox{[}i\mbox{]}} Sets/gets the flag for physically moving the detector during the acquisition of several positions. 1 sets (moves), 0 unsets.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries samplex \mbox{[}f\mbox{]}} Sets/gets the sample displacement in th direction parallel to the beam in um. Unused!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries sampley \mbox{[}f\mbox{]}} Sets/gets the sample displacement in th direction orthogonal to the beam in um. Unused!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries threaded \mbox{[}i\mbox{]}} Sets/gets the data processing threaded flag. 1 is threaded, 0 unthreaded.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries darkimage fn} Loads the dark image to the detector from file fn (pedestal image). Cannot get.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries gainimage fn} Loads the gain image to the detector from file fn (gain map for translation into number of photons of an analog detector). Cannot get.
\end{DoxyItemize}

View File

@ -0,0 +1,348 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{doxygen}
% Packages used by this style file
\RequirePackage{alltt}
\RequirePackage{array}
\RequirePackage{calc}
\RequirePackage{color}
\RequirePackage{fancyhdr}
\RequirePackage{verbatim}
% Setup fancy headings
\pagestyle{fancyplain}
\newcommand{\clearemptydoublepage}{%
\newpage{\pagestyle{empty}\cleardoublepage}%
}
\renewcommand{\sectionmark}[1]{%
\markright{\thesection\ #1}%
}
\lhead[\fancyplain{}{\bfseries\thepage}]{%
\fancyplain{}{\bfseries\rightmark}%
}
\rhead[\fancyplain{}{\bfseries\leftmark}]{%
\fancyplain{}{\bfseries\thepage}%
}
\rfoot[\fancyplain{}{\bfseries\scriptsize%
Generated on Wed Aug 16 11:08:55 2017 by Doxygen }]{}
\lfoot[]{\fancyplain{}{\bfseries\scriptsize%
Generated on Wed Aug 16 11:08:55 2017 by Doxygen }}
\cfoot{}
%---------- Internal commands used in this style file ----------------
% Generic environment used by all paragraph-based environments defined
% below. Note that the command \title{...} needs to be defined inside
% those environments!
\newenvironment{DoxyDesc}[1]{%
\begin{list}{}%
{%
\settowidth{\labelwidth}{40pt}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\parsep}{0pt}%
\setlength{\itemsep}{-4pt}%
\renewcommand{\makelabel}{\entrylabel}%
}%
\item[#1:]%
}{%
\end{list}%
}
%---------- Commands used by doxygen LaTeX output generator ----------
% Used by <pre> ... </pre>
\newenvironment{DoxyPre}{%
\small%
\begin{alltt}%
}{%
\end{alltt}%
\normalsize%
}
% Used by @code ... @endcode
\newenvironment{DoxyCode}{%
\footnotesize%
\verbatim%
}{%
\endverbatim%
\normalsize%
}
% Used by @example, @include, @includelineno and @dontinclude
\newenvironment{DoxyCodeInclude}{%
\DoxyCode%
}{%
\endDoxyCode%
}
% Used by @verbatim ... @endverbatim
\newenvironment{DoxyVerb}{%
\footnotesize%
\verbatim%
}{%
\endverbatim%
\normalsize%
}
% Used by @verbinclude
\newenvironment{DoxyVerbInclude}{%
\DoxyVerb%
}{%
\endDoxyVerb%
}
% Used by numbered lists (using '-#' or <ol> ... </ol>)
\newenvironment{DoxyEnumerate}{%
\enumerate%
}{%
\endenumerate%
}
% Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>)
\newenvironment{DoxyItemize}{%
\itemize%
}{%
\enditemize%
}
% Used by description lists (using <dl> ... </dl>)
\newenvironment{DoxyDescription}{%
\description%
}{%
\enddescription%
}
% Used by @image, @dotfile, and @dot ... @enddot
% (only if caption is specified)
\newenvironment{DoxyImage}{%
\begin{figure}[H]%
\begin{center}%
}{%
\end{center}%
\end{figure}%
}
% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
% (only if no caption is specified)
\newenvironment{DoxyImageNoCaption}{%
}{%
}
% Used by @attention
\newenvironment{DoxyAttention}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @author and @authors
\newenvironment{DoxyAuthor}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @date
\newenvironment{DoxyDate}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @invariant
\newenvironment{DoxyInvariant}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @note
\newenvironment{DoxyNote}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @post
\newenvironment{DoxyPostcond}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @pre
\newenvironment{DoxyPrecond}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @remark
\newenvironment{DoxyRemark}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @return
\newenvironment{DoxyReturn}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @since
\newenvironment{DoxySince}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @see
\newenvironment{DoxySeeAlso}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @version
\newenvironment{DoxyVersion}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @warning
\newenvironment{DoxyWarning}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @internal
\newenvironment{DoxyInternal}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @par and @paragraph
\newenvironment{DoxyParagraph}[1]{%
\begin{list}{}%
{%
\settowidth{\labelwidth}{40pt}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\parsep}{0pt}%
\setlength{\itemsep}{-4pt}%
\renewcommand{\makelabel}{\entrylabel}%
}%
\item[#1]%
}{%
\end{list}%
}
% Used by parameter lists
\newenvironment{DoxyParams}[1]{%
\begin{DoxyDesc}{#1}%
\begin{description}%
}{%
\end{description}%
\end{DoxyDesc}%
}
% Used by return value lists
\newenvironment{DoxyRetVals}[1]{%
\begin{DoxyDesc}{#1}%
\begin{description}%
}{%
\end{description}%
\end{DoxyDesc}%
}
% Used by exception lists
\newenvironment{DoxyExceptions}[1]{%
\begin{DoxyDesc}{#1}%
\begin{description}%
}{%
\end{description}%
\end{DoxyDesc}%
}
% Used by template parameter lists
\newenvironment{DoxyTemplParams}[1]{%
\begin{DoxyDesc}{#1}%
\begin{description}%
}{%
\end{description}%
\end{DoxyDesc}%
}
\newcommand{\doxyref}[3]{\textbf{#1} (\textnormal{#2}\,\pageref{#3})}
\newenvironment{DoxyCompactList}
{\begin{list}{}{
\setlength{\leftmargin}{0.5cm}
\setlength{\itemsep}{0pt}
\setlength{\parsep}{0pt}
\setlength{\topsep}{0pt}
\renewcommand{\makelabel}{\hfill}}}
{\end{list}}
\newenvironment{DoxyCompactItemize}
{
\begin{itemize}
\setlength{\itemsep}{-3pt}
\setlength{\parsep}{0pt}
\setlength{\topsep}{0pt}
\setlength{\partopsep}{0pt}
}
{\end{itemize}}
\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}
\newlength{\tmplength}
\newenvironment{TabularC}[1]
{
\setlength{\tmplength}
{\linewidth/(#1)-\tabcolsep*2-\arrayrulewidth*(#1+1)/(#1)}
\par\begin{tabular*}{\linewidth}
{*{#1}{|>{\PBS\raggedright\hspace{0pt}}p{\the\tmplength}}|}
}
{\end{tabular*}\par}
\newcommand{\entrylabel}[1]{
{\parbox[b]{\labelwidth-4pt}{\makebox[0pt][l]{\textbf{#1}}\vspace{1.5\baselineskip}}}}
\newenvironment{Desc}
{\begin{list}{}
{
\settowidth{\labelwidth}{40pt}
\setlength{\leftmargin}{\labelwidth}
\setlength{\parsep}{0pt}
\setlength{\itemsep}{-4pt}
\renewcommand{\makelabel}{\entrylabel}
}
}
{\end{list}}
\newenvironment{Indent}
{\begin{list}{}{\setlength{\leftmargin}{0.5cm}}
\item[]\ignorespaces}
{\unskip\end{list}}
\setlength{\parindent}{0cm}
\setlength{\parskip}{0.2cm}
\addtocounter{secnumdepth}{1}
\sloppy
\usepackage[T1]{fontenc}
\makeatletter
\renewcommand{\paragraph}{\@startsection{paragraph}{4}{0ex}%
{-3.25ex plus -1ex minus -0.2ex}%
{1.5ex plus 0.2ex}%
{\normalfont\normalsize\bfseries}}
\makeatother
\stepcounter{secnumdepth}
\stepcounter{tocdepth}
\definecolor{comment}{rgb}{0.5,0.0,0.0}
\definecolor{keyword}{rgb}{0.0,0.5,0.0}
\definecolor{keywordtype}{rgb}{0.38,0.25,0.125}
\definecolor{keywordflow}{rgb}{0.88,0.5,0.0}
\definecolor{preprocessor}{rgb}{0.5,0.38,0.125}
\definecolor{stringliteral}{rgb}{0.0,0.125,0.25}
\definecolor{charliteral}{rgb}{0.0,0.5,0.5}
\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}
\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}
\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}
\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}

View File

@ -0,0 +1,44 @@
This program is intended to control the SLS detectors via command line interface. This is the only way to access all possible functionality of the detectors, however it is often recommendable to avoid changing the most advanced settings, rather leaving the task to configuration files, as when using the GUI or the API provided.
The command line interface consists in four main functions:
\begin{DoxyItemize}
\item {\bfseries sls\_\-detector\_\-acquire} to acquire data from the detector
\item {\bfseries sls\_\-detector\_\-put} to set detector parameters
\item {\bfseries sls\_\-detector\_\-get} to retrieve detector parameters
\item {\bfseries sls\_\-detector\_\-help} to get help concerning the text commands Additionally the program slsReceiver should be started on the machine expected to receive the data from the detector.
\end{DoxyItemize}
If you need control a single detector, the use of the command line interface does not need any additional arguments.
For commands addressing a single controller of your detector, the command cmd should be called with the index i of the controller:
{\bfseries sls\_\-detector\_\-clnt i:cmd}
where {\bfseries sls\_\-detector\_\-clnt} is the text client (put, get, acquire, help).
In case more than one detector is configured on the control PC, the command cmd should be called with their respective index j:
{\bfseries sls\_\-detector\_\-clnt j-\/cmd}
where {\bfseries sls\_\-detector\_\-clnt} is the text client (put, get, acquire, help).
To address a specific controller i of detector j use:
{\bfseries sls\_\-detector\_\-clnt j-\/i:cmd}
For additional questions concerning the indexing of the detector, please refer to the SLS Detectors FAQ documentation.
The commands are sudivided into different pages depending on their functionalities:
\begin{DoxyItemize}
\item \hyperlink{acquisition}{Acquition commands} Acquisition: commands to start/stop the acquisition and retrieve data
\item \hyperlink{config}{Configuration commands} Configuration: commands to configure the detector
\item \hyperlink{data}{Data postprocessing}: commands to process the data -\/ mainly for MYTHEN except for rate corrections.
\item \hyperlink{settings}{Settings}: commands to define detector settings/threshold.
\item \hyperlink{output}{Output}: commands to define output file destination and format
\item \hyperlink{actions}{Actions}: commands to define scripts to be executed during the acquisition flow
\item \hyperlink{network}{Network}: commands to setup the network between client, detector and receiver
\item \hyperlink{receiver}{Receiver}: commands to configure the receiver
\item \hyperlink{test}{Developer} Developer: commands to be used only for software debugging. Avoid using them!
\end{DoxyItemize}

View File

@ -0,0 +1,84 @@
Commands to setup the network between client, detector and receiver
\begin{DoxyItemize}
\item {\bfseries rx\_\-hostname \mbox{[}s\mbox{]}} sets/gets the receiver hostname or IP address, configures detector mac with all network parameters and updates receiver with acquisition parameters. Normally used for single detectors (Can be multi-\/detector). {\ttfamily none} disables. If used, use as last network command in configuring detector MAC.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries rx\_\-udpip \mbox{[}ip\mbox{]}} sets/gets the ip address of the receiver UDP interface where the data from the detector will be streamed to. Normally used for single detectors (Can be multi-\/detector). Used if different from eth0.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries rx\_\-udpmac \mbox{[}mac\mbox{]}} sets/gets the mac address of the receiver UDP interface where the data from the detector will be streamed to. Normally used for single detectors (Can be multi-\/detector).
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries rx\_\-udpport \mbox{[}port\mbox{]}} sets/gets the port of the receiver UDP interface where the data from the detector will be streamed to. Use single-\/detector command.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries rx\_\-udpport2 \mbox{[}port\mbox{]}} sets/gets the second port of the receiver UDP interface where the data from the second half of the detector will be streamed to. Use single-\/detector command. Used for EIGER only.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries detectormac \mbox{[}mac\mbox{]}} sets/gets the mac address of the detector UDP interface from where the detector will stream data. Use single-\/detector command. Normally unused.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries detectorip \mbox{[}ip\mbox{]}} sets/gets the ip address of the detector UDP interface from where the detector will stream data. Use single-\/detector command. Keep in same subnet as rx\_\-udpip (if rx\_\-udpip specified).
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries txndelay\_\-left \mbox{[}delay\mbox{]}} sets/gets the transmission delay of first packet in an image being streamed out from the detector's left UDP port. Use single-\/detector command. Used for EIGER only.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries txndelay\_\-right \mbox{[}delay\mbox{]}} sets/gets the transmission delay of first packet in an image being streamed out from the detector's right UDP port. Use single-\/detector command. Used for EIGER only.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries txndelay\_\-frame \mbox{[}delay\mbox{]}} sets/gets the transmission frame period of entire frame being streamed out from the detector for both ports. Use single-\/detector command. Used for EIGER only.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries flowcontrol\_\-10g \mbox{[}delay\mbox{]}} Enables/disables 10 GbE flow control. 1 enables, 0 disables. Used for EIGER only.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries zmqport \mbox{[}port\mbox{]}} sets/gets the 0MQ (TCP) port of the receiver from where data is streamed to the client. Use single-\/detector command to set individually or multi-\/detector command to calculate based on {\ttfamily port} for the rest.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries configuremac \mbox{[}i\mbox{]}} configures the MAC of the detector with these parameters: detectorip, detectormac, rx\_\-udpip, rx\_\-udpmac, rx\_\-udpport, rx\_\-udpport2 (if applicable). Only put!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries rx\_\-tcpport \mbox{[}port\mbox{]}} sets/gets the port of the client-\/receiver TCP interface. Use single-\/detector command. Is different for each detector if same {\ttfamily rx\_\-hostname} used. Must be first command to communicate with receiver.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries port \mbox{[}port\mbox{]}} sets/gets the port of the client-\/detector control server TCP interface. Use single-\/detector command. Default value is 1952 for all detectors. Normally not changed.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries stopport \mbox{[}port\mbox{]}} sets/gets the port of the client-\/detector stop server TCP interface. Use single-\/detector command. Default value is 1953 for all detectors. Normally not changed.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries lastclient } Gets the last client communicating with the detector. Cannot put!
\end{DoxyItemize}

View File

@ -0,0 +1,36 @@
Commands to setup the file destination and format
\begin{DoxyItemize}
\item {\bfseries outdir \mbox{[}dir\mbox{]}} Sets/gets the file output directory (string)
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries fname \mbox{[}fn\mbox{]}} Sets/gets the root of the output file name (string)
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries index \mbox{[}i\mbox{]}} Sets/gets the current file index (int)
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries enablefwrite \mbox{[}i\mbox{]}} Enables/disables file writing. 1 enables, 0 disables.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries overwrite \mbox{[}i\mbox{]}} enables(1) /disables(0) file overwriting
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries currentfname} gets the filename for the data without index and extension
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries fileformat} sets/gets the file format for data in receiver. Options: \mbox{[}ascii, binary, hdf5\mbox{]}. Ascii is not implemented in Receiver.
\end{DoxyItemize}

View File

@ -0,0 +1,53 @@
Commands to configure the receiver. Not used in MYTHEN.
\begin{DoxyItemize}
\item {\bfseries receiver \mbox{[}s\mbox{]}} starts/stops the receiver to listen to detector packets. Gets status of receiver. Options: \mbox{[}start, stop\mbox{]}.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries r\_\-online \mbox{[}i\mbox{]}} sets/gets the receiver in online/offline mode. 1 is online, 0 is offline. Get is from shared memory.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries r\_\-checkonline} Checks the receiver if it is online/offline mode. Prints either 'All receiver online', '\mbox{[}List of all receiver hostname in offline mode\mbox{]} :Not all receiver online'. Only get! i++;
\end{DoxyItemize}
/$\ast$!
\begin{DoxyItemize}
\item {\bfseries framescaught} gets the number of frames caught by receiver. Average of all for multi-\/detector command. Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries resetframescaught \mbox{[}i\mbox{]}} resets the number of frames caught to 0. i can be any number. Use this if using status start, instead of acquire (this command is included). Only put!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries frameindex \mbox{[}i\mbox{]}} gets the current frame index of receiver. Average of all for multi-\/detector command. Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries r\_\-lock \mbox{[}i\mbox{]}} locks/unlocks the receiver to communicate with only this client. 1 locks, 0 unlocks.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries r\_\-lastclient} gets the last client communicating with the receiver. Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries r\_\-readfreq \mbox{[}i\mbox{]}} sets/gets the stream frequency of data from receiver to client. i $>$ 0 is the nth frame being streamed. 0 sets frequency to a default timer (200ms).
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries rx\_\-fifodepth \mbox{[}i\mbox{]}} sets/gets receiver fifo (between Listener and Writer Threads) depth to i number of frames. Can improve listener packet loss, not if limited by writing.
\end{DoxyItemize}

View File

@ -0,0 +1,93 @@
\documentclass[a4paper]{article}
\usepackage{makeidx}
\usepackage{graphicx}
\usepackage{multicol}
\usepackage{float}
\usepackage{listings}
\usepackage{color}
\usepackage{textcomp}
\usepackage{alltt}
\usepackage{times}
\usepackage{ifpdf}
\ifpdf
\usepackage[pdftex,
pagebackref=true,
colorlinks=true,
linkcolor=blue,
unicode
]{hyperref}
\else
\usepackage[ps2pdf,
pagebackref=true,
colorlinks=true,
linkcolor=blue,
unicode
]{hyperref}
\usepackage{pspicture}
\fi
\usepackage[utf8]{inputenc}
\usepackage{doxygen}
\lstset{language=C++,inputencoding=utf8,basicstyle=\footnotesize,breaklines=true,breakatwhitespace=true,tabsize=8,numbers=left }
\makeindex
\setcounter{tocdepth}{3}
\renewcommand{\footrulewidth}{0.4pt}
\begin{document}
\hypersetup{pageanchor=false}
\begin{titlepage}
\vspace*{7cm}
\begin{center}
{\Large Reference Manual}\\
\vspace*{1cm}
{\large Generated by Doxygen 1.6.1}\\
\vspace*{0.5cm}
{\small Wed Aug 16 11:08:55 2017}\\
\end{center}
\end{titlepage}
\pagenumbering{roman}
\tableofcontents
\pagenumbering{arabic}
\hypersetup{pageanchor=true}
\section{Introduction}
\label{index}\hypertarget{index}{}\input{index}
\section{Developer}
\label{test}
\hypertarget{test}{}
\input{test}
\section{Acquition commands}
\label{acquisition}
\hypertarget{acquisition}{}
\input{acquisition}
\section{Configuration commands}
\label{config}
\hypertarget{config}{}
\input{config}
\section{Data processing commands}
\label{data}
\hypertarget{data}{}
\input{data}
\section{Detector settings commands}
\label{settings}
\hypertarget{settings}{}
\input{settings}
\section{Output settings}
\label{output}
\hypertarget{output}{}
\input{output}
\section{Actions}
\label{actions}
\hypertarget{actions}{}
\input{actions}
\section{Network}
\label{network}
\hypertarget{network}{}
\input{network}
\section{Receiver commands}
\label{receiver}
\hypertarget{receiver}{}
\input{receiver}
\section{Advanced Usage}
\label{advanced}
\hypertarget{advanced}{}
\input{advanced}
\printindex
\end{document}

View File

@ -0,0 +1,57 @@
Commands to setup the settings of the detector
\begin{DoxyItemize}
\item {\bfseries settingsdir \mbox{[}dir\mbox{]}} Sets/gets the directory where the settings files are located (string)
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries trimdir \mbox{[}dir\mbox{]}} obsolete {\ttfamily settingsdir}
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries caldir \mbox{[}dir\mbox{]}} Sets/gets the directory where the calibration files are located (string)
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries trimen \mbox{[}n e0 e1...e(n-\/1)\mbox{]}} Sets/gets the number of energies n at which the detector has default trim file and their values in eV (int)
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries settings \mbox{[}s\mbox{]}} sets/gets the settings of the detector. Options: {\ttfamily standard}, {\ttfamily fast}, {\ttfamily highgain}, {\ttfamily dynamicgain}, {\ttfamily lowgain}, {\ttfamily mediumgain}, {\ttfamily veryhighgain}, {\ttfamily lownoise}, {\ttfamily dynamichg0}, {\ttfamily fixgain1}, {\ttfamily fixgain2}, {\ttfamily forceswitchg1}, {\ttfamily forceswitchg2}. \par
In Eiger, only sets in client shared memory. Use {\ttfamily threshold} or {\ttfamily thresholdnotb} to pass to detector. Gets from detector.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries threshold \mbox{[}eV\mbox{]} \mbox{[}sett\mbox{]} } sets/gets the detector threshold in eV. sett is optional and if provided also sets the settings. Use this for Eiger instead of {\ttfamily settings}.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries thresholdnotb \mbox{[}eV\mbox{]} \mbox{[}sett\mbox{]} } sets/gets the detector threshold in eV without loading trimbits. sett is optional and if provided also sets the settings. Use this for Eiger instead of {\ttfamily settings}.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries trimbits \mbox{[}fname\mbox{]} } loads/stores the trimbits to/from the detector. If no extension is specified, the serial number of each module will be attached.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries trim:\mbox{[}mode\mbox{]} \mbox{[}fname\mbox{]}} trims the detector according to mode and saves resulting trimbits to file. Mode: noise, beam, improve, fix. Used in MYTHEN only. Only put!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries trimval \mbox{[}i\mbox{]}} sets all trimbits to i. Used in EIGER only.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries pedestal \mbox{[}i\mbox{]}} starts acquisition for i frames, calculates pedestal and writes back to fpga. Used in GOTTHARD only. Only put!
\end{DoxyItemize}

View File

@ -0,0 +1,69 @@
Commands to be used only for software debugging. Avoid using them!
\begin{DoxyItemize}
\item {\bfseries test} returns an error
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries help} Returns a list of possible commands.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries exitserver} Shuts down all the detector servers. Don't use it!!!!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries exitreceiver} Shuts down all the receivers. Don't use it!!!!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries flippeddatay \mbox{[}i\mbox{]}} enables/disables data being flipped across y axis. 1 enables, 0 disables. Not implemented.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries digitest \mbox{[}i\mbox{]}} will perform test which will plot the unique channel identifier, instead of data. Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries bustest} performs test of the bus interface between FPGA and embedded Linux system. Can last up to a few minutes. Cannot set! Used for Mythen only. Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries digibittest:\mbox{[}i\mbox{]}} performs digital test of the module i. Returns 0 if succeeded, otherwise error mask. Only put!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries reg \mbox{[}addr\mbox{]} \mbox{[}val\mbox{]}} ??? writes to an register {\ttfamily addr} with {\ttfamily value} in hexadecimal format.
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries adcreg \mbox{[}addr\mbox{]} \mbox{[}val\mbox{]}} ??? writes to an adc register {\ttfamily addr} with {\ttfamily value} in hexadecimal format. Only put!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries setbit} ??? Only put!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries clearbit } ??? Only put!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries getbit } ??? Only get!
\end{DoxyItemize}
\begin{DoxyItemize}
\item {\bfseries r\_\-compression \mbox{[}i\mbox{]} sets/gets compression in receiver. 1 sets, 0 unsets. Not implemented.}
\end{DoxyItemize}