mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-23 10:07:59 +02:00
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:
@ -609,17 +609,17 @@ The detector can be setup such to receive external triggers. Connect a LEMO sign
|
||||
\begin{verbatim}
|
||||
sls_detector_put 0-timing [auto/trigger/burst_trigger/gating]
|
||||
sls_detector_put 0-frames x
|
||||
sls_detector_put 0-cycles y
|
||||
sls_detector_put 0-triggers y
|
||||
sls_detector_acquire 0-
|
||||
\end{verbatim}
|
||||
No timeout is expected between the start of the acquisition and the arrival of the first trigger.
|
||||
|
||||
Here are the implemented options so far:
|
||||
\begin{itemize}
|
||||
\item {\tt{auto}} is the software controlled acquisition (does not use triggers), where {\tt{exptime}} and {\tt{period}} have to be set. Set number of cycles (i.e. triggers) to 1 using {\tt{cycles}}. Set number of frames using {\tt{frames}}.
|
||||
\item {\tt{trigger}} 1 frame taken for 1 trigger. Your {\tt{frames}} needs to be 1 always, {\tt{cycles}} can be changed and defines how many triggers are considered. {\tt{exptime}} needs to be set. In the GUI this is called trigger exposure series.
|
||||
\item {\tt{burst\_trigger}} gets only 1 trigger, but allows to take many frames. With {\tt{frames}} one can change the number of frames. {\tt{cycles}} needs to be 1. {\tt{exptime}} and {\tt{period}} have to be set. In the gui it is called trigger readout.
|
||||
\item{\tt{gating}} allows to get a frame only when the trigger pulse is gating. Note that in this case the exp time and period only depend on the gating signal. {\tt{cycles}} allows to select how many gates to consider. Set number of frames to 1 using {\tt{frames}}. IMPORTANT: Up to firmware 23, the last subframe is oblige to finish being taken, despite the gate signal going down. This will be configurable from later fw and software version. Also, in gating mode, due to timimg of the state machine, you need to leave 500~$\mu$s deadtime between the end on an acquisition and the next. This is as the state machine is unable to check for changes in the status in the first 500~$\mu$s. ATTENTION: if you are in 16 bit mode and you are applying online rate corrections, as now the exptime is generated by the trigger, you might not have correct rate corrections. If you know what the exposure time is in the gating signal, then you can set the {\tt{exptime}} once and the rate corrections will be correct. In 32 bit mode, it does not matter as the rate corrections depends on the {\tt{subexptime}} which is software set independently from the gate exptime.
|
||||
\item {\tt{auto}} is the software controlled acquisition (does not use triggers), where {\tt{exptime}} and {\tt{period}} have to be set. Set number of triggers (i.e. triggers) to 1 using {\tt{triggers}}. Set number of frames using {\tt{frames}}.
|
||||
\item {\tt{trigger}} 1 frame taken for 1 trigger. Your {\tt{frames}} needs to be 1 always, {\tt{triggers}} can be changed and defines how many triggers are considered. {\tt{exptime}} needs to be set. In the GUI this is called trigger exposure series.
|
||||
\item {\tt{burst\_trigger}} gets only 1 trigger, but allows to take many frames. With {\tt{frames}} one can change the number of frames. {\tt{triggers}} needs to be 1. {\tt{exptime}} and {\tt{period}} have to be set. In the gui it is called trigger readout.
|
||||
\item{\tt{gating}} allows to get a frame only when the trigger pulse is gating. Note that in this case the exp time and period only depend on the gating signal. {\tt{triggers}} allows to select how many gates to consider. Set number of frames to 1 using {\tt{frames}}. IMPORTANT: Up to firmware 23, the last subframe is oblige to finish being taken, despite the gate signal going down. This will be configurable from later fw and software version. Also, in gating mode, due to timimg of the state machine, you need to leave 500~$\mu$s deadtime between the end on an acquisition and the next. This is as the state machine is unable to check for changes in the status in the first 500~$\mu$s. ATTENTION: if you are in 16 bit mode and you are applying online rate corrections, as now the exptime is generated by the trigger, you might not have correct rate corrections. If you know what the exposure time is in the gating signal, then you can set the {\tt{exptime}} once and the rate corrections will be correct. In 32 bit mode, it does not matter as the rate corrections depends on the {\tt{subexptime}} which is software set independently from the gate exptime.
|
||||
|
||||
When using 32-bit mode, by default the acquisition ends the last complete subframe that was started when still the acquisition time was valid. This has been chosen as many people wants to know the exact acquisition time for when the detector was taking data and also, if {\tt{ratecorr}} are active, the last subframe will be correctly corrected, while otherwise it will be corrected with a wrong subdeadtime.
|
||||
However, from 4.1.0, in gating mode, an option to immediately terminate the subframe when the gate signal goes down it is implemented to stop the acquisition at the same time. This option is {\tt{./sls\_detector\_put interruptsubframe 1}} while the default option is {\tt{./sls\_detector\_put interruptsubframe 0}}.
|
||||
@ -628,13 +628,13 @@ However, from 4.1.0, in gating mode, an option to immediately terminate the subf
|
||||
|
||||
Hardware-wise, the ENABLE OUT signal outputs when the chips are really acquiring. This means that the single subframes will be output in 32 bit mode. The TRIGGER OUT outputs the sum-up-signal at the moment (which is useless). This will be changed in the future to output the envelop of the enable signal.
|
||||
|
||||
We are planning to change some functionality, i.e. unify the {\tt{trigger}} and {\tt{burst\_trigger}} trigger modes and make both {\tt{frames}} and {\tt{cycles}} configurable at the same time.
|
||||
We are planning to change some functionality, i.e. unify the {\tt{trigger}} and {\tt{burst\_trigger}} trigger modes and make both {\tt{frames}} and {\tt{triggers}} configurable at the same time.
|
||||
|
||||
There is the possibility to use {\tt{timing trigger/burst\_trigger}} and send software single commands to fake the trigger. This is done with:
|
||||
\begin{verbatim}
|
||||
sls_detector_put 0-timing [trigger/burst_trigger]
|
||||
sls_detector_put 0-frames x
|
||||
sls_detector_put 0-cycles y
|
||||
sls_detector_put 0-triggers y
|
||||
sls_detector_status trigger
|
||||
\end{verbatim}
|
||||
Note that this functionality is very (!) useful if you need to do something between and acquisition and the next. This can be used to do a fast threshold scan for example. See section~\ref{sec:fastthresholdscan}.
|
||||
@ -715,7 +715,7 @@ If \textbf{dr} is 32 and \textbf{clkdivider} is not 2, whatever the detector get
|
||||
Here is a list of parameters that should be reset:
|
||||
\begin{enumerate}
|
||||
\item \textbf{resetframescaught} should be reset to zero after every acquisition taken with {\tt{receiver start}},{\tt{status start}},{\tt{receiver stop}}. If the acquisition is taken with {\tt{sls\_detector\_acquire}}, there is no need to reset this.
|
||||
\item After changing the {\tt{timing}} mode of the detector, one should reset to '1' the unused value, in that specific timing mode, between \textbf{frames} and \textbf{cycles}. See section~\ref{triggering} for how to use the timing. At the present moment the detector will acquire more frames than planned if the variable not used between \textbf{frames} and \textbf{cycles} is not reset. In future releases, the unused variable will be ignored. Still resetting is a good practice.
|
||||
\item After changing the {\tt{timing}} mode of the detector, one should reset to '1' the unused value, in that specific timing mode, between \textbf{frames} and \textbf{triggers}. See section~\ref{triggering} for how to use the timing. At the present moment the detector will acquire more frames than planned if the variable not used between \textbf{frames} and \textbf{triggers} is not reset. In future releases, the unused variable will be ignored. Still resetting is a good practice.
|
||||
|
||||
\end{enumerate}
|
||||
|
||||
@ -1257,7 +1257,7 @@ We have also been requested if we could speed up the threshold scan. At the mome
|
||||
./sls_detector_put enablefwrite 0
|
||||
./sls_detector_put resetframescaught 0
|
||||
./sls_detector_put index 0
|
||||
./sls_detector_put cycles 21
|
||||
./sls_detector_put triggers 21
|
||||
./sls_detector_put receiver start
|
||||
./sls_detector_put status start
|
||||
for i in $(seq 0 20);
|
||||
@ -1515,8 +1515,8 @@ frames number
|
||||
where {\tt{number}} is a string to be interpreted as an integer.
|
||||
|
||||
\item \begin{verbatim}
|
||||
sls_detector_get cycles
|
||||
cycles number
|
||||
sls_detector_get triggers
|
||||
triggers number
|
||||
\end{verbatim}
|
||||
where {\tt{number}} is a string to be interpreted as an integer.
|
||||
|
||||
|
@ -111,7 +111,7 @@
|
||||
"delay"; // sets/gets delay after trigger in s
|
||||
"gates"; // sets/gets number of gates per frame in gated mode
|
||||
"frames"; // sets/gets number of frames
|
||||
"cycles"; // sets/gets number of cycles (use in trigger mode)
|
||||
"triggers"; // sets/gets number of triggers (use in trigger mode)
|
||||
"probes"; // sets/gets number of probes (advanced!)
|
||||
"measurements"; // sets/gets number of non-real time measurements
|
||||
/* read only timers */
|
||||
@ -120,7 +120,7 @@
|
||||
"delayl"; // gets delay left
|
||||
"gatesl"; // gets number of gates left
|
||||
"framesl"; // gets number of frames left
|
||||
"cyclesl"; // gets number of cycles left
|
||||
"triggersl"; // gets number of triggers left
|
||||
"now"; // gets time stamp from the dteector
|
||||
"timestamp"; // gets time stamp for the frames (fifo-style)
|
||||
"framescaught";// gets the entire frames caught by receiver
|
||||
|
@ -94,7 +94,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 and \E 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).
|
||||
@ -115,10 +115,10 @@ Sets the number of gates per frame in gated (stroboscopic) mode.\\
|
||||
Refer 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. Refer 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. Refer to the detailed documentation to understand how the different timing modes work.
|
||||
Note that the total number of images will be frames times triggers. Refer 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. Refer to the detailed documentation to understand how the different timing modes work.
|
||||
\item[probes] Sets the number of probes to accumulate for stroboscopic measurements. \\
|
||||
Refer 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 automatically incremented.\\
|
||||
@ -231,7 +231,7 @@ It is normally recommended 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}
|
||||
@ -430,11 +430,11 @@ Returns the number of gates per frame in gated (stroboscopic) mode.
|
||||
Refer 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). Returned as a string to be interpreted as an integer ``frames integer''
|
||||
Note that the total number of images is frames times cycles.
|
||||
Note that the total number of images is frames times triggers.
|
||||
Refer to detailed documentation to understand how the different timing modes work.
|
||||
\item[cycles n]
|
||||
Returns the number of cycles (e.g. number of triggers). Returned as atring to be interpreted as an integer ``cycles integer''
|
||||
Note that the total number of images is frames times cycles.
|
||||
\item[triggers n]
|
||||
Returns the number of triggers (e.g. number of triggers). Returned as atring to be interpreted as an integer ``triggers integer''
|
||||
Note that the total number of images is frames times triggers.
|
||||
Refer to detailed documentation to understand how the different timing modes work.
|
||||
\item[probes] Returns the number of probes to accumulate for stroboscopic measurements.
|
||||
Refer to detailed documentation to understand how the different timing modes work.
|
||||
@ -556,7 +556,7 @@ It is normally recommended 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}
|
||||
|
Reference in New Issue
Block a user