Commandline (#66)

* WIP

* WIP

* removed status to string from defs

* WIP

* WIP

* WIP removed unused functions in multi

* WIP

* print hex in a terrible way

* WIP, loadconfig error

* WIP, type to string

* WIP

* fix to conversion

* WIP, hostname doesnt work

* WIP

* WIP

* WIP

* WIP, threshold

* WIP, threshold

* WIP

* WIP, triggers

* WIP, cycles to triggers

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* rx_udsocksize fx, WIP

* WIP

* WIP

* WIP

* file index (64 bit), WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* merge

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* New python mod
This commit is contained in:
Dhanya Thattil
2019-10-21 10:29:06 +02:00
committed by GitHub
parent eebc1109b0
commit 995f0924e5
95 changed files with 5320 additions and 8114 deletions

View File

@ -372,7 +372,7 @@ gs 1 -1 sc (Number of frames) col0 sh gr
gs 1 -1 sc (Number of frames) col0 sh gr
/Times-Roman ff 450.00 scf sf
11325 9150 m
gs 1 -1 sc (Number of cycles) col0 sh gr
gs 1 -1 sc (Number of triggers) col0 sh gr
/Times-Roman ff 240.00 scf sf
5325 4950 m
gs 1 -1 sc (Readout) col0 sh gr

View File

@ -118,7 +118,7 @@ Single
21900 2700 22050 2700
4 0 0 50 0 0 30 0.0000 4 300 3225 6975 7800 Number of frames\001
4 0 0 50 0 0 30 0.0000 4 300 3225 15975 7800 Number of frames\001
4 0 0 50 0 0 30 0.0000 4 405 3090 11325 9150 Number of cycles\001
4 0 0 50 0 0 30 0.0000 4 405 3090 11325 9150 Number of triggers\001
4 0 0 50 0 0 16 0.0000 4 165 810 5325 4950 Readout\001
4 0 0 50 0 0 30 0.0000 4 300 2565 825 4125 Detection time\001
4 0 0 50 0 0 30 0.0000 4 300 1785 825 5550 Dead time\001

View File

@ -95,7 +95,7 @@ Single
4 0 0 50 0 0 30 0.0000 4 405 2580 9450 6600 Exposure time\001
4 0 0 50 0 0 30 0.0000 4 300 3225 6975 7800 Number of frames\001
4 0 0 50 0 0 30 0.0000 4 300 3225 15975 7800 Number of frames\001
4 0 0 50 0 0 30 0.0000 4 405 3090 11325 9150 Number of cycles\001
4 0 0 50 0 0 30 0.0000 4 405 3090 11325 9150 Number of triggers\001
4 0 0 50 0 0 16 0.0000 4 165 810 5325 4950 Readout\001
4 0 0 50 0 0 30 0.0000 4 300 2565 1050 4125 Detection time\001
4 0 0 50 0 0 30 0.0000 4 300 1785 1050 5550 Dead time\001

View File

@ -341,7 +341,7 @@ gs 1 -1 sc (Number of frames) col0 sh gr
gs 1 -1 sc (Number of frames) col0 sh gr
/Times-Roman ff 450.00 scf sf
11325 9150 m
gs 1 -1 sc (Number of cycles) col0 sh gr
gs 1 -1 sc (Number of triggers) col0 sh gr
/Times-Roman ff 240.00 scf sf
5325 4950 m
gs 1 -1 sc (Readout) col0 sh gr

View File

@ -79,7 +79,7 @@ Single
4200 5850 4650 5850
4 0 0 50 0 0 30 0.0000 4 300 3225 6975 7800 Number of frames\001
4 0 0 50 0 0 30 0.0000 4 300 3225 15975 7800 Number of frames\001
4 0 0 50 0 0 30 0.0000 4 405 3090 11325 9150 Number of cycles\001
4 0 0 50 0 0 30 0.0000 4 405 3090 11325 9150 Number of triggers\001
4 0 0 50 0 0 16 0.0000 4 165 810 5325 4950 Readout\001
4 0 0 50 0 0 30 0.0000 4 300 2565 825 4125 Detection time\001
4 0 0 50 0 0 30 0.0000 4 300 1785 825 5550 Dead time\001

View File

@ -118,7 +118,7 @@ Single
21900 2700 22050 2700
4 0 0 50 0 0 30 0.0000 4 300 3225 6975 7800 Number of frames\001
4 0 0 50 0 0 30 0.0000 4 300 3225 15975 7800 Number of frames\001
4 0 0 50 0 0 30 0.0000 4 405 3090 11325 9150 Number of cycles\001
4 0 0 50 0 0 30 0.0000 4 405 3090 11325 9150 Number of triggers\001
4 0 0 50 0 0 16 0.0000 4 165 810 5325 4950 Readout\001
4 0 0 50 0 0 30 0.0000 4 300 2565 825 4125 Detection time\001
4 0 0 50 0 0 30 0.0000 4 300 1785 825 5550 Dead time\001

View File

@ -401,7 +401,7 @@ gs 1 -1 sc (External trigger) col0 sh gr
gs 1 -1 sc (Number of frames) col0 sh gr
/Times-Roman ff 450.00 scf sf
12600 9150 m
gs 1 -1 sc (Number of cycles) col0 sh gr
gs 1 -1 sc (Number of triggers) col0 sh gr
/Times-Roman ff 240.00 scf sf
6600 4950 m
gs 1 -1 sc (Readout) col0 sh gr

View File

@ -111,7 +111,7 @@ Single
4 0 0 50 0 0 30 0.0000 4 300 1785 825 5550 Dead time\001
4 0 0 50 0 0 30 0.0000 4 405 2760 825 2700 External trigger\001
4 0 0 50 0 0 30 0.0000 4 300 3225 8250 7800 Number of frames\001
4 0 0 50 0 0 30 0.0000 4 405 3090 12600 9150 Number of cycles\001
4 0 0 50 0 0 30 0.0000 4 405 3090 12600 9150 Number of triggers\001
4 0 0 50 0 0 16 0.0000 4 165 810 6600 4950 Readout\001
4 0 0 50 0 0 30 0.0000 4 405 2580 4575 6225 Exposure time\001
4 0 0 50 0 0 30 0.0000 4 300 1140 9525 6225 Period\001

View File

@ -79,7 +79,7 @@ Single
4200 5850 4650 5850
4 0 0 50 0 0 30 0.0000 4 300 3225 6975 7800 Number of frames\001
4 0 0 50 0 0 30 0.0000 4 300 3225 15975 7800 Number of frames\001
4 0 0 50 0 0 30 0.0000 4 405 3090 11325 9150 Number of cycles\001
4 0 0 50 0 0 30 0.0000 4 405 3090 11325 9150 Number of triggers\001
4 0 0 50 0 0 16 0.0000 4 165 810 5325 4950 Readout\001
4 0 0 50 0 0 30 0.0000 4 300 2565 825 4125 Detection time\001
4 0 0 50 0 0 30 0.0000 4 300 1785 825 5550 Dead time\001

View File

@ -217,7 +217,7 @@ is used to configure the detector parameter var
\item[delay t] Sets the delay after trigger (in s)
\item[gates n] Sets the number of gates per frame
\item[frames n] Sets the number of frames per cycle (e.g. after each trigger)
\item[cycles n] Sets the number of cycles (e.g. number of triggers)
\item[triggers n] Sets the number of triggers (e.g. number of triggers)
\item[probes n] Sets the number of probes to accumulate (max 3)
\item[dr n] Sets the dynamic range - can be (1,) 4, 8,16 or 24 bits
\item[flags mode] Sets the readout flags - can be none or storeinram
@ -298,7 +298,7 @@ is used to retrieve the detector parameter var
\item[delay] Gets the delay after trigger (in s)
\item[gates] Gets the number of gates per frame
\item[frames] Gets the number of frames per cycle (e.g. after each trigger)
\item[cycles] Gets the number of cycles (e.g. number of triggers)
\item[triggers] Gets the number of triggers (e.g. number of triggers)
\item[probes] Gets the number of probes to accumulate (max 3)
\item[timestamp] Gets the internal time stamp of the nex frame acquired (i.e. during an acquisition, all timestamps of the frames are stored in a FIFO which can be read after the acquisition - returns -1 if the FIFO is empty)
\item[dr] Gets the dynamic range

View File

@ -127,7 +127,7 @@ where: \\
\textit{v0} is the scan0 variable with the desired precision, if scan0 is enabled;\\
\textit{v1} is the scan1 variable with the desired precision, if scan1 is enabled;\\
\textit{p} is the position index, if different positions are configured;\\
\textit{f} is the frame index of the first frame stored in the file, if many frames and cycles are configured;\\
\textit{f} is the frame index of the first frame stored in the file, if many frames and triggers are configured;\\
\textit{i} is the file index;\\
\textit{ext} is the file extension e.g. \textit{.raw} for MYTHEN raw data, \textit{.dat} for MYTHEN processed data.
@ -241,7 +241,7 @@ Figure~\ref{eq:acqflow} shows in which sequence the various scripts and loops ar
If you prefere to handle the acquisition from your acquisition enviroment, simply leave al scripts and scans disabled and call the acquition from your acquisition enviroment. \\
Only the frames and cycles loops are defined in firmware and guarantee a precise timing of the acquisition which cannot replaced by any other method (you can synchronize to your beamline by hardware connection of the IO signals as described in~\ref{sec:timing}).
Only the frames and triggers loops are defined in firmware and guarantee a precise timing of the acquisition which cannot replaced by any other method (you can synchronize to your beamline by hardware connection of the IO signals as described in~\ref{sec:timing}).
Hereafter a description of the meaning of the various loops:
\begin{description}
@ -259,11 +259,11 @@ Hereafter a description of the meaning of the various loops:
The detector is moved in the angular positions specified by the positions command.\\
The command for moving the detector should be defined as described in~\ref{sec:usersFunc}.\\
All data acquired during a position loop will be merged together, unless the number of positions is set to 0. In this case single frames will be converted to angle without merging.\\
Avoid using the position loop together with many frames/cycles.
Avoid using the position loop together with many frames/triggers.
\item[Cycles loop] is executed in real time and defines e.g. the number of triggers that will be accepted. The total number of images will be given by frames times cycles.
\item[Triggers loop] is executed in real time and defines e.g. the number of triggers that will be accepted. The total number of images will be given by frames times triggers.
\item[Frames loop] is executed in real time and defines e.g. the images acquired per trigger. The total number of images will be given by frames times cycles.
\item[Frames loop] is executed in real time and defines e.g. the images acquired per trigger. The total number of images will be given by frames times triggers.
\end{description}
Executing a script simply consists in a system call with the arguments specified below. The various scripts are executed only if they are enabled and different than \textit{none}. \\
@ -332,11 +332,11 @@ In the following is a list of the main parameters involved in the acquisition ti
\item[Period] is the period of the images acquired. If it is shorter than the exposure time plus readout time, it will be ignored.
\item[Delay after trigger] can be set as a delay between the trigger signal and the start of the detection time.
\item[Number of gates] is used only in \textit{gating} mode and is the number of times that the gate is toggled before the detector is read out. Useful for stroboscopic measurements with gate period shorter than the minim acquisition period of the detector, otherwise can be left to 1.
\item[Number of frames] is the number of images to be acquired per cycle. Frames and cycles have the same meaning except in trigger mode, when frames means the number of images per trigger. The total number of images is frames time cycles.
\item[Number of cycles] is the number of times that the frames are acquired. Frames and cycles have the same meaning except in trigger mode, when cycles means the number of triggers that will be accepted. The total number of images is frames time cycles.
\item[Number of frames] is the number of images to be acquired per cycle. Frames and triggers have the same meaning except in trigger mode, when frames means the number of images per trigger. The total number of images is frames time triggers.
\item[Number of triggers] is the number of times that the frames are acquired. Frames and triggers have the same meaning except in trigger mode, when triggers means the number of triggers that will be accepted. The total number of images is frames time triggers.
\item[Number of probes] is used in stoboscopic measurements when the period is longer than the minimum acquisition period, but shorter than the frame rate.\\
In this case the data can be summed in firmware. \\
Currently it is implemented for Mythen only. If probes is set to 0, works normallyreturning an image for each readout, otherwise set number of cycles to 1. The maximum number of probes that can be set is 3. The detector will return a number of image equal to the number of probes, where all frames are going to be accumulated. The total number of readouts is number of frames time probes and for probes=1 the detector will return one image where all frames have been summed, for probes=2 two images where every second frame has been summed (each image accumulates the number of frames), for probes=3 three images where every third image has been summed (each image accumulates the number of frames).\\
Currently it is implemented for Mythen only. If probes is set to 0, works normallyreturning an image for each readout, otherwise set number of triggers to 1. The maximum number of probes that can be set is 3. The detector will return a number of image equal to the number of probes, where all frames are going to be accumulated. The total number of readouts is number of frames time probes and for probes=1 the detector will return one image where all frames have been summed, for probes=2 two images where every second frame has been summed (each image accumulates the number of frames), for probes=3 three images where every third image has been summed (each image accumulates the number of frames).\\
The returned images will always have 32~bit dynamic range, while the dynamic range if the detector defines the bit depth of the counters in rder to limit the readout time, if necessary.\\
The probes counter waorks also in trigger and gating modes.
\end{description}
@ -349,14 +349,14 @@ The probes counter waorks also in trigger and gating modes.
\begin{center}
\includegraphics[width=\textwidth]{images/normal_acquisition.eps}
\end{center}
\caption{Auto timing: the detection time is defined by the exposure time and the period by period (if longer than exposure time plus readout time). The total number of images is frames (in the example 3) times cycles (in the example 2), and in this case there is no difference between the acquisition of the two.}\label{fig:autotiming}
\caption{Auto timing: the detection time is defined by the exposure time and the period by period (if longer than exposure time plus readout time). The total number of images is frames (in the example 3) times triggers (in the example 2), and in this case there is no difference between the acquisition of the two.}\label{fig:autotiming}
\end{figure}
\begin{figure}
\begin{center}
\includegraphics[width=\textwidth]{images/gated_acquisition.eps}
\end{center}
\caption{Gating mode: the detector acquires for a number of gates define by the user (in this case 4) before being read out, independently on the timing of the gates. The detector remains insensitive during the readout time and then starts being active again. External gates given during the readout time are ignored. The total number of images is frames (in the example 3) times cycles (in the example 2), and in this case there is no difference between the acquisition of the two. The polarity of the external gate signal can be defined by the user through the \textit{external signal flag} (in the example active high).}\label{fig:gating}
\caption{Gating mode: the detector acquires for a number of gates define by the user (in this case 4) before being read out, independently on the timing of the gates. The detector remains insensitive during the readout time and then starts being active again. External gates given during the readout time are ignored. The total number of images is frames (in the example 3) times triggers (in the example 2), and in this case there is no difference between the acquisition of the two. The polarity of the external gate signal can be defined by the user through the \textit{external signal flag} (in the example active high).}\label{fig:gating}
\end{figure}
@ -365,7 +365,7 @@ The probes counter waorks also in trigger and gating modes.
\begin{center}
\includegraphics[width=\textwidth]{images/trigger_acquisition.eps}
\end{center}
\caption{Trigger mode: the external trigger signal defines the start of the beginning of the acquisition, which starts after the delay set by the user. For each trigger, the number of frames is acquired (in the example 3) and all trigger signals ignored. The number of trigger accepted is given by the number of cycles (in the example 2). The polarity of the external trigger signal can be defined by the user through the \textit{external signal flag} (in the example rising edge).}\label{fig:trig}
\caption{Trigger mode: the external trigger signal defines the start of the beginning of the acquisition, which starts after the delay set by the user. For each trigger, the number of frames is acquired (in the example 3) and all trigger signals ignored. The number of trigger accepted is given by the number of triggers (in the example 2). The polarity of the external trigger signal can be defined by the user through the \textit{external signal flag} (in the example rising edge).}\label{fig:trig}
\end{figure}
@ -373,7 +373,7 @@ The probes counter waorks also in trigger and gating modes.
\begin{center}
\includegraphics[width=\textwidth]{images/ro_trigger_acquisition.eps}
\end{center}
\caption{Read Out Trigger mode: the external trigger signal defines the beginning of the readout. The exposure time works as a time out for the waiting time for the trigger signal. The number of trigger accepted is given by the number of cycles (in the example 3) and it does not make sense to program more than one frame. The polarity of the external trigger signal can be defined by the user through the \textit{external signal flag} (in the example rising edge).}\label{fig:trig}
\caption{Read Out Trigger mode: the external trigger signal defines the beginning of the readout. The exposure time works as a time out for the waiting time for the trigger signal. The number of trigger accepted is given by the number of triggers (in the example 3) and it does not make sense to program more than one frame. The polarity of the external trigger signal can be defined by the user through the \textit{external signal flag} (in the example rising edge).}\label{fig:trig}
\end{figure}

View File

@ -91,7 +91,7 @@ where: \\
\textit{v0} is the scan0 variable with the desired precision, if scan0 is enabled;\\
\textit{v1} is the scan1 variable with the desired precision, if scan1 is enabled;\\
\textit{p} is the position index, if different positions are configured;\\
\textit{f} is the frame index of the first frame stored in the file, if many frames and cycles are configured;\\
\textit{f} is the frame index of the first frame stored in the file, if many frames and triggers are configured;\\
\textit{i} is the file index;\\
\textit{ext} is the file extension e.g. \textit{.raw} for MYTHEN raw data, \textit{.dat} for MYTHEN processed data.
\item[index i] Sets the starting index of the file i at the beginning of the acquisition (automatically incremented for each measurement).
@ -110,10 +110,10 @@ Sets the number of gates per frame in gated (stroboscopic) mode.\\
Refere to the detailed documentation to understand how the different timing modes work.
\item[frames n]
Sets the number of frames acquired sequentially per cycle (e.g. after each trigger), with the exposure time defined by exptime and the period defined by period (unless in gated mode). The frame index in the output file name will automatically be incremented.\\
Note that the total number of images will be frames times cycles. Refere to detailed documentation to understand how the different timing modes work.
\item[cycles n]
Sets the number of cycles (e.g. number of triggers). The frame index in the output file name will automatically be incremented. \\
Note that the total number of images will be by frames times cycles. Refere to the detailed documentation to understand how the different timing modes work.
Note that the total number of images will be frames times triggers. Refere to detailed documentation to understand how the different timing modes work.
\item[triggers n]
Sets the number of triggers (e.g. number of triggers). The frame index in the output file name will automatically be incremented. \\
Note that the total number of images will be by frames times triggers. Refere to the detailed documentation to understand how the different timing modes work.
\item[probes] Sets the number of probes to accumulate for stroboscopic measurements. \\
Refere to detailed documentation to understand how the different timing modes work.
\item[measurements] Sets the number of repetitions of the acquisitions (non real time!). The file index in the file name will be automotically incremented.\\
@ -234,7 +234,7 @@ It is normally reccomended to use \verb=sls\_detector\_acquire [j-]=, which take
%\item[delayl]
%\item[gatesl]
%\item[framesl]
%\item[cyclesl]
%\item[triggersl]
%\item[frameindex]
%\item[now]
\end{description}
@ -393,11 +393,11 @@ Returns the number of gates per frame in gated (stroboscopic) mode.
Refere to detailed documentation to understand how the different timing modes work.
\item[frames]
Returns the number of frames acquired sequentially per cycle (e.g. after each trigger), with the exposure time defined by exptime and the period defined by period (unless in gated mode).
Note that the total number of images is frames times cycles.
Note that the total number of images is frames times triggers.
Refere to detailed documentation to understand how the different timing modes work.
\item[cycles n]
Returns the number of cycles (e.g. number of triggers).
Note that the total number of images is frames times cycles.
\item[triggers n]
Returns the number of triggers (e.g. number of triggers).
Note that the total number of images is frames times triggers.
Refere to detailed documentation to understand how the different timing modes work.
\item[probes] Returns the number of probes to accumulate for stroboscopic measurements.
Refere to detailed documentation to understand how the different timing modes work.
@ -518,7 +518,7 @@ It is normally reccomended to use \verb=sls\_detector\_acquire [j-]=, which take
\item[delayl] Returns the delay after trigger left for the current frame.
\item[gatesl] Returns the number of gates left for the current frame.
\item[framesl] Returns the number of frames left for the current cycle.
\item[cyclesl] Returns the number of cycles left for the current acquisition.
\item[triggersl] Returns the number of triggers left for the current acquisition.
\item[now] Returns the current timestamp of the detector clock.
\item[timestamp] Returns the timestamp of the acquisitions in a First-In/First-Out mode i.e. every time it is called it returns the timestamp of the first acquisition start of readout. The FIFO is reset everytime the acquisition is started.
\end{description}

View File

@ -217,7 +217,7 @@ is used to configure the detector parameter var
\item[delay t] Sets the delay after trigger (in s)
\item[gates n] Sets the number of gates per frame
\item[frames n] Sets the number of frames per cycle (e.g. after each trigger)
\item[cycles n] Sets the number of cycles (e.g. number of triggers)
\item[triggers n] Sets the number of triggers (e.g. number of triggers)
\item[probes n] Sets the number of probes to accumulate (max 3)
\item[dr n] Sets the dynamic range - can be (1,) 4, 8,16 or 24 bits
\item[flags mode] Sets the readout flags - can be none or storeinram
@ -298,7 +298,7 @@ is used to retrieve the detector parameter var
\item[delay] Gets the delay after trigger (in s)
\item[gates] Gets the number of gates per frame
\item[frames] Gets the number of frames per cycle (e.g. after each trigger)
\item[cycles] Gets the number of cycles (e.g. number of triggers)
\item[triggers] Gets the number of triggers (e.g. number of triggers)
\item[probes] Gets the number of probes to accumulate (max 3)
\item[timestamp] Gets the internal time stamp of the nex frame acquired (i.e. during an acquisition, all timestamps of the frames are stored in a FIFO which can be read after the acquisition - returns -1 if the FIFO is empty)
\item[dr] Gets the dynamic range