diff --git a/manual/slsDetectorClientDocs/html/acquisition.html b/manual/slsDetectorClientDocs/html/acquisition.html new file mode 100644 index 000000000..fff67317d --- /dev/null +++ b/manual/slsDetectorClientDocs/html/acquisition.html @@ -0,0 +1,85 @@ + + + + + +Acquition commands + + + + + + + + + +
+ + +

Acquition commands

Commands to control the acquisition

+ + + + + + + + +
+ +
+
+ + +
+ +
+ +
Generated on 16 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/slsDetectorClientDocs/html/actions.html b/manual/slsDetectorClientDocs/html/actions.html new file mode 100644 index 000000000..8875d9354 --- /dev/null +++ b/manual/slsDetectorClientDocs/html/actions.html @@ -0,0 +1,136 @@ + + + + + +Actions + + + + + + + + + +
+ + +

Actions

Commands to define scripts to be executed during the acquisition flow

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + +
+ +
+ +
Generated on 16 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/slsDetectorClientDocs/html/advanced.html b/manual/slsDetectorClientDocs/html/advanced.html new file mode 100644 index 000000000..76a4216d3 --- /dev/null +++ b/manual/slsDetectorClientDocs/html/advanced.html @@ -0,0 +1,61 @@ + + + + + +Advanced Usage + + + + + + + + + +
+ + +

Advanced Usage

This page is for advanced users. Make sure you have first read the introduction.

+
+ +
+
+ + +
+ +
+ +
Generated on 16 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/slsDetectorClientDocs/html/config.html b/manual/slsDetectorClientDocs/html/config.html new file mode 100644 index 000000000..dd4c9ee02 --- /dev/null +++ b/manual/slsDetectorClientDocs/html/config.html @@ -0,0 +1,284 @@ + + + + + +Configuration commands + + + + + + + + + +
+ + +

Configuration commands

Commands to configure the detector. these commands are often left to the configuration file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + +
+ +
+ +
Generated on 16 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/slsDetectorClientDocs/html/data.html b/manual/slsDetectorClientDocs/html/data.html new file mode 100644 index 000000000..0edd097dd --- /dev/null +++ b/manual/slsDetectorClientDocs/html/data.html @@ -0,0 +1,106 @@ + + + + + +Data processing commands + + + + + + + + + +
+ + +

Data processing commands

Commands to setup the data processing (mainly MYTHEN related)

+ + + + + + + + + + + + + + + +
+ +
+
+ + +
+ +
+ +
Generated on 16 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/slsDetectorClientDocs/html/doxygen.css b/manual/slsDetectorClientDocs/html/doxygen.css new file mode 100644 index 000000000..9ca3cafbc --- /dev/null +++ b/manual/slsDetectorClientDocs/html/doxygen.css @@ -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; +} diff --git a/manual/slsDetectorClientDocs/html/doxygen.png b/manual/slsDetectorClientDocs/html/doxygen.png new file mode 100644 index 000000000..f0a274bba Binary files /dev/null and b/manual/slsDetectorClientDocs/html/doxygen.png differ diff --git a/manual/slsDetectorClientDocs/html/index.html b/manual/slsDetectorClientDocs/html/index.html new file mode 100644 index 000000000..95f14d56c --- /dev/null +++ b/manual/slsDetectorClientDocs/html/index.html @@ -0,0 +1,88 @@ + + + + + +Introduction + + + + + + + + + +
+

Introduction

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:

+ +

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:

+

sls_detector_clnt i:cmd

+

where 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:

+

sls_detector_clnt j-cmd

+

where sls_detector_clnt is the text client (put, get, acquire, help).

+

To address a specific controller i of detector j use:

+

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:

+ +
+ +
+
+ + +
+ +
+ +
Generated on 16 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/slsDetectorClientDocs/html/installdox b/manual/slsDetectorClientDocs/html/installdox new file mode 100755 index 000000000..9b89fe025 --- /dev/null +++ b/manual/slsDetectorClientDocs/html/installdox @@ -0,0 +1,117 @@ +#!/usr/bin/perl + +%subst = ( ); +$quiet = 0; + +if (open(F,"search.cfg")) +{ + $_= ; s/[ \t\n]*$//g ; $subst{"_doc"} = $_; + $_= ; 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 () { + s/doxygen\=\"([^ \"\:\t\>\<]*)\:([^ \"\t\>\<]*)\" (href|src)=\"\2/doxygen\=\"$1:$subst{$1}\" \3=\"$subst{$1}/g; + print G "$_"; + } + } + else { + while () { + 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; +} diff --git a/manual/slsDetectorClientDocs/html/network.html b/manual/slsDetectorClientDocs/html/network.html new file mode 100644 index 000000000..2ed453306 --- /dev/null +++ b/manual/slsDetectorClientDocs/html/network.html @@ -0,0 +1,112 @@ + + + + + +Network + + + + + + + + + +
+ + +

Network

Commands to setup the network between client, detector and receiver

+
    +
  • rx_hostname [s] 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). none disables. If used, use as last network command in configuring detector MAC.
  • +
+
    +
  • rx_udpip [ip] 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.
  • +
+
    +
  • rx_udpmac [mac] 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).
  • +
+
    +
  • rx_udpport [port] sets/gets the port of the receiver UDP interface where the data from the detector will be streamed to. Use single-detector command.
  • +
+
    +
  • rx_udpport2 [port] 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.
  • +
+
    +
  • detectormac [mac] sets/gets the mac address of the detector UDP interface from where the detector will stream data. Use single-detector command. Normally unused.
  • +
+
    +
  • detectorip [ip] 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).
  • +
+
    +
  • txndelay_left [delay] 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.
  • +
+
    +
  • txndelay_right [delay] 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.
  • +
+
    +
  • txndelay_frame [delay] 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.
  • +
+
    +
  • flowcontrol_10g [delay] Enables/disables 10 GbE flow control. 1 enables, 0 disables. Used for EIGER only.
  • +
+
    +
  • zmqport [port] 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 port for the rest.
  • +
+
    +
  • configuremac [i] configures the MAC of the detector with these parameters: detectorip, detectormac, rx_udpip, rx_udpmac, rx_udpport, rx_udpport2 (if applicable). Only put!
  • +
+
    +
  • rx_tcpport [port] sets/gets the port of the client-receiver TCP interface. Use single-detector command. Is different for each detector if same rx_hostname used. Must be first command to communicate with receiver.
  • +
+
    +
  • port [port] 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.
  • +
+
    +
  • stopport [port] 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.
  • +
+
    +
  • lastclient Gets the last client communicating with the detector. Cannot put!
  • +
+
+ +
+
+ + +
+ +
+ +
Generated on 16 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/slsDetectorClientDocs/html/output.html b/manual/slsDetectorClientDocs/html/output.html new file mode 100644 index 000000000..8a43df14e --- /dev/null +++ b/manual/slsDetectorClientDocs/html/output.html @@ -0,0 +1,82 @@ + + + + + +Output settings + + + + + + + + + +
+ + +

Output settings

Commands to setup the file destination and format

+
    +
  • outdir [dir] Sets/gets the file output directory (string)
  • +
+
    +
  • fname [fn] Sets/gets the root of the output file name (string)
  • +
+
    +
  • index [i] Sets/gets the current file index (int)
  • +
+
    +
  • enablefwrite [i] Enables/disables file writing. 1 enables, 0 disables.
  • +
+
    +
  • overwrite [i] enables(1) /disables(0) file overwriting
  • +
+
    +
  • currentfname gets the filename for the data without index and extension
  • +
+
    +
  • fileformat sets/gets the file format for data in receiver. Options: [ascii, binary, hdf5]. Ascii is not implemented in Receiver.
  • +
+
+ +
+
+ + +
+ +
+ +
Generated on 16 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/slsDetectorClientDocs/html/pages.html b/manual/slsDetectorClientDocs/html/pages.html new file mode 100644 index 000000000..bf01fa332 --- /dev/null +++ b/manual/slsDetectorClientDocs/html/pages.html @@ -0,0 +1,80 @@ + + + + + +Page Index + + + + + + + + + +
+

Related Pages

Here is a list of all related documentation pages: +
+ +
+
+ + +
+ +
+ +
Generated on 16 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/slsDetectorClientDocs/html/receiver.html b/manual/slsDetectorClientDocs/html/receiver.html new file mode 100644 index 000000000..e654765f6 --- /dev/null +++ b/manual/slsDetectorClientDocs/html/receiver.html @@ -0,0 +1,92 @@ + + + + + +Receiver commands + + + + + + + + + +
+ + +

Receiver commands

Commands to configure the receiver. Not used in MYTHEN.

+
    +
  • receiver [s] starts/stops the receiver to listen to detector packets. Gets status of receiver. Options: [start, stop].
  • +
+
    +
  • r_online [i] sets/gets the receiver in online/offline mode. 1 is online, 0 is offline. Get is from shared memory.
  • +
+
    +
  • r_checkonline 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++;
  • +
+

/*!

+
    +
  • framescaught gets the number of frames caught by receiver. Average of all for multi-detector command. Only get!
  • +
+
    +
  • resetframescaught [i] 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!
  • +
+
    +
  • frameindex [i] gets the current frame index of receiver. Average of all for multi-detector command. Only get!
  • +
+
    +
  • r_lock [i] locks/unlocks the receiver to communicate with only this client. 1 locks, 0 unlocks.
  • +
+
    +
  • r_lastclient gets the last client communicating with the receiver. Only get!
  • +
+
    +
  • r_readfreq [i] 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).
  • +
+
    +
  • rx_fifodepth [i] 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.
  • +
+
+ +
+
+ + +
+ +
+ +
Generated on 16 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/slsDetectorClientDocs/html/search/close.png b/manual/slsDetectorClientDocs/html/search/close.png new file mode 100644 index 000000000..9342d3dfe Binary files /dev/null and b/manual/slsDetectorClientDocs/html/search/close.png differ diff --git a/manual/slsDetectorClientDocs/html/search/nomatches.html b/manual/slsDetectorClientDocs/html/search/nomatches.html new file mode 100644 index 000000000..b1ded27e9 --- /dev/null +++ b/manual/slsDetectorClientDocs/html/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
+
No Matches
+
+ + diff --git a/manual/slsDetectorClientDocs/html/search/search.css b/manual/slsDetectorClientDocs/html/search/search.css new file mode 100644 index 000000000..d263b9724 --- /dev/null +++ b/manual/slsDetectorClientDocs/html/search/search.css @@ -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; +} + diff --git a/manual/slsDetectorClientDocs/html/search/search.js b/manual/slsDetectorClientDocs/html/search/search.js new file mode 100644 index 000000000..474cc1a80 --- /dev/null +++ b/manual/slsDetectorClientDocs/html/search/search.js @@ -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 do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // 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 . + 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; + } +} diff --git a/manual/slsDetectorClientDocs/html/search/search.png b/manual/slsDetectorClientDocs/html/search/search.png new file mode 100644 index 000000000..9dd2396db Binary files /dev/null and b/manual/slsDetectorClientDocs/html/search/search.png differ diff --git a/manual/slsDetectorClientDocs/html/settings.html b/manual/slsDetectorClientDocs/html/settings.html new file mode 100644 index 000000000..924a984c4 --- /dev/null +++ b/manual/slsDetectorClientDocs/html/settings.html @@ -0,0 +1,95 @@ + + + + + +Detector settings commands + + + + + + + + + +
+ + +

Detector settings commands

Commands to setup the settings of the detector

+
    +
  • settingsdir [dir] Sets/gets the directory where the settings files are located (string)
  • +
+
    +
  • trimdir [dir] obsolete settingsdir
  • +
+
    +
  • caldir [dir] Sets/gets the directory where the calibration files are located (string)
  • +
+
    +
  • trimen [n e0 e1...e(n-1)] Sets/gets the number of energies n at which the detector has default trim file and their values in eV (int)
  • +
+
    +
  • settings [s] sets/gets the settings of the detector. Options: standard, fast, highgain, dynamicgain, lowgain, mediumgain, veryhighgain, lownoise, dynamichg0, fixgain1, fixgain2, forceswitchg1, forceswitchg2.
    + In Eiger, only sets in client shared memory. Use threshold or thresholdnotb to pass to detector. Gets from detector.
  • +
+
    +
  • threshold [eV] [sett] sets/gets the detector threshold in eV. sett is optional and if provided also sets the settings. Use this for Eiger instead of settings.
  • +
+
    +
  • thresholdnotb [eV] [sett] 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 settings.
  • +
+
    +
  • trimbits [fname] loads/stores the trimbits to/from the detector. If no extension is specified, the serial number of each module will be attached.
  • +
+
    +
  • trim:[mode] [fname] trims the detector according to mode and saves resulting trimbits to file. Mode: noise, beam, improve, fix. Used in MYTHEN only. Only put!
  • +
+
    +
  • trimval [i] sets all trimbits to i. Used in EIGER only.
  • +
+
    +
  • pedestal [i] starts acquisition for i frames, calculates pedestal and writes back to fpga. Used in GOTTHARD only. Only put!
  • +
+
+ +
+
+ + +
+ +
+ +
Generated on 16 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/slsDetectorClientDocs/html/tab_b.gif b/manual/slsDetectorClientDocs/html/tab_b.gif new file mode 100644 index 000000000..0d623483f Binary files /dev/null and b/manual/slsDetectorClientDocs/html/tab_b.gif differ diff --git a/manual/slsDetectorClientDocs/html/tab_l.gif b/manual/slsDetectorClientDocs/html/tab_l.gif new file mode 100644 index 000000000..9b1e6337c Binary files /dev/null and b/manual/slsDetectorClientDocs/html/tab_l.gif differ diff --git a/manual/slsDetectorClientDocs/html/tab_r.gif b/manual/slsDetectorClientDocs/html/tab_r.gif new file mode 100644 index 000000000..ce9dd9f53 Binary files /dev/null and b/manual/slsDetectorClientDocs/html/tab_r.gif differ diff --git a/manual/slsDetectorClientDocs/html/tabs.css b/manual/slsDetectorClientDocs/html/tabs.css new file mode 100644 index 000000000..a44416341 --- /dev/null +++ b/manual/slsDetectorClientDocs/html/tabs.css @@ -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; +} diff --git a/manual/slsDetectorClientDocs/html/test.html b/manual/slsDetectorClientDocs/html/test.html new file mode 100644 index 000000000..01b0b54f5 --- /dev/null +++ b/manual/slsDetectorClientDocs/html/test.html @@ -0,0 +1,103 @@ + + + + + +Developer + + + + + + + + + +
+ + +

Developer

Commands to be used only for software debugging. Avoid using them!

+
    +
  • test returns an error
  • +
+
    +
  • help Returns a list of possible commands.
  • +
+
    +
  • exitserver Shuts down all the detector servers. Don't use it!!!!
  • +
+
    +
  • exitreceiver Shuts down all the receivers. Don't use it!!!!
  • +
+
    +
  • flippeddatay [i] enables/disables data being flipped across y axis. 1 enables, 0 disables. Not implemented.
  • +
+
    +
  • digitest [i] will perform test which will plot the unique channel identifier, instead of data. Only get!
  • +
+
    +
  • 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!
  • +
+
    +
  • digibittest:[i] performs digital test of the module i. Returns 0 if succeeded, otherwise error mask. Only put!
  • +
+
    +
  • reg [addr] [val] ??? writes to an register addr with value in hexadecimal format.
  • +
+
    +
  • adcreg [addr] [val] ??? writes to an adc register addr with value in hexadecimal format. Only put!
  • +
+
    +
  • setbit ??? Only put!
  • +
+
    +
  • clearbit ??? Only put!
  • +
+
    +
  • getbit ??? Only get!
  • +
+
    +
  • r_compression [i] sets/gets compression in receiver. 1 sets, 0 unsets. Not implemented.
  • +
+
+ +
+
+ + +
+ +
+ +
Generated on 16 Aug 2017 by  + +doxygen 1.6.1
+ + diff --git a/manual/slsDetectorClientDocs/latex/Makefile b/manual/slsDetectorClientDocs/latex/Makefile new file mode 100644 index 000000000..8b7c89a1b --- /dev/null +++ b/manual/slsDetectorClientDocs/latex/Makefile @@ -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 diff --git a/manual/slsDetectorClientDocs/latex/acquisition.tex b/manual/slsDetectorClientDocs/latex/acquisition.tex new file mode 100644 index 000000000..29603ddd1 --- /dev/null +++ b/manual/slsDetectorClientDocs/latex/acquisition.tex @@ -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} \ No newline at end of file diff --git a/manual/slsDetectorClientDocs/latex/actions.tex b/manual/slsDetectorClientDocs/latex/actions.tex new file mode 100644 index 000000000..c21066a0d --- /dev/null +++ b/manual/slsDetectorClientDocs/latex/actions.tex @@ -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} \ No newline at end of file diff --git a/manual/slsDetectorClientDocs/latex/advanced.tex b/manual/slsDetectorClientDocs/latex/advanced.tex new file mode 100644 index 000000000..72d2fa6d2 --- /dev/null +++ b/manual/slsDetectorClientDocs/latex/advanced.tex @@ -0,0 +1 @@ +This page is for advanced users. Make sure you have first read the introduction. \ No newline at end of file diff --git a/manual/slsDetectorClientDocs/latex/config.tex b/manual/slsDetectorClientDocs/latex/config.tex new file mode 100644 index 000000000..a5612ef96 --- /dev/null +++ b/manual/slsDetectorClientDocs/latex/config.tex @@ -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} \ No newline at end of file diff --git a/manual/slsDetectorClientDocs/latex/data.tex b/manual/slsDetectorClientDocs/latex/data.tex new file mode 100644 index 000000000..898020fd0 --- /dev/null +++ b/manual/slsDetectorClientDocs/latex/data.tex @@ -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} \ No newline at end of file diff --git a/manual/slsDetectorClientDocs/latex/doxygen.sty b/manual/slsDetectorClientDocs/latex/doxygen.sty new file mode 100644 index 000000000..a81c49682 --- /dev/null +++ b/manual/slsDetectorClientDocs/latex/doxygen.sty @@ -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
 ... 
+\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
    ...
) +\newenvironment{DoxyEnumerate}{% + \enumerate% +}{% + \endenumerate% +} + +% Used by bullet lists (using '-', @li, @arg, or
    ...
) +\newenvironment{DoxyItemize}{% + \itemize% +}{% + \enditemize% +} + +% Used by description lists (using
...
) +\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} diff --git a/manual/slsDetectorClientDocs/latex/index.tex b/manual/slsDetectorClientDocs/latex/index.tex new file mode 100644 index 000000000..613142828 --- /dev/null +++ b/manual/slsDetectorClientDocs/latex/index.tex @@ -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} \ No newline at end of file diff --git a/manual/slsDetectorClientDocs/latex/network.tex b/manual/slsDetectorClientDocs/latex/network.tex new file mode 100644 index 000000000..26dd6c0a1 --- /dev/null +++ b/manual/slsDetectorClientDocs/latex/network.tex @@ -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} \ No newline at end of file diff --git a/manual/slsDetectorClientDocs/latex/output.tex b/manual/slsDetectorClientDocs/latex/output.tex new file mode 100644 index 000000000..7c67a9751 --- /dev/null +++ b/manual/slsDetectorClientDocs/latex/output.tex @@ -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} \ No newline at end of file diff --git a/manual/slsDetectorClientDocs/latex/receiver.tex b/manual/slsDetectorClientDocs/latex/receiver.tex new file mode 100644 index 000000000..e1370ae22 --- /dev/null +++ b/manual/slsDetectorClientDocs/latex/receiver.tex @@ -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} \ No newline at end of file diff --git a/manual/slsDetectorClientDocs/latex/refman.tex b/manual/slsDetectorClientDocs/latex/refman.tex new file mode 100644 index 000000000..6f5a49136 --- /dev/null +++ b/manual/slsDetectorClientDocs/latex/refman.tex @@ -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} diff --git a/manual/slsDetectorClientDocs/latex/settings.tex b/manual/slsDetectorClientDocs/latex/settings.tex new file mode 100644 index 000000000..5655ee20c --- /dev/null +++ b/manual/slsDetectorClientDocs/latex/settings.tex @@ -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} \ No newline at end of file diff --git a/manual/slsDetectorClientDocs/latex/test.tex b/manual/slsDetectorClientDocs/latex/test.tex new file mode 100644 index 000000000..ad49ae565 --- /dev/null +++ b/manual/slsDetectorClientDocs/latex/test.tex @@ -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} \ No newline at end of file