/Sequencer ODB tree: Difference between revisions

From MidasWiki
Jump to navigation Jump to search
mNo edit summary
(The midas documentation has moved to https://midas.triumf.ca/docs/)
Tag: Replaced
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
{{Pagelinks}}
The midas documentation has moved. See [https://midas.triumf.ca/docs/develop/reference/reference/odb_keys/#sequencer /Sequencer] on the ODB keys page and [https://midas.triumf.ca/docs/develop/features/monitoring_and_control/sequencer/ Sequencer: overview] for the new documentation about the /Sequencer ODB keys.
 
== Links ==
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* [[Sequencer]]
* [[mhttpd]]
*
</div>
 
== Purpose  ==
The ODB /Sequencer tree contains information related to the [[Sequencer]]. The keys are used by the Sequencer system and are not usually accessed directly by the user (but see [[#Path]]).
 
== Creating the /Sequencer tree ==
The <span style="color:purple; font-style:italic">/Sequencer</span>  ODB tree is created the first time that the Sequencer button on the MIDAS web browser [[mhttpd]] is pressed. It will be filled with default values.
 
== Example of /Sequencer tree ==
 
 
An example of the  <span style="color:purple; font-style:italic">/Sequencer</span> tree where the sequencer is running is shown below.
<pre>
$mhttpd -p 8080 -D
$odbedit
[local:Defaults:S]ls -rwl /Sequencer
Key name                        Type    #Val  Size  Last Opn Mode Value
---------------------------------------------------------------------------
Sequencer                      DIR
    State                      DIR
      Path                    STRING  1    256  0s  0  RWD  /home/midas/online/seq
        Filename                STRING  1    256  0s  0  RWD  test_seq.msl
        Error                  STRING  1    256  0s  0  RWD
        Error line              INT    1    4    0s  0  RWD  0
        SError line            INT    1    4    0s  0  RWD  0
        Message                STRING  1    256  0s  0  RWD
        Message Wait            BOOL    1    4    0s  0  RWD  n
        Running                BOOL    1    4    0s  0  RWD  y
        Finished                BOOL    1    4    0s  0  RWD  n
        Paused                  BOOL    1    4    0s  0  RWD  n
        Current line number    INT    1    4    0s  0  RWD  8
        SCurrent line number    INT    1    4    0s  0  RWD  7
        Stop after run          BOOL    1    4    0s  0  RWD  n
        Transition request      BOOL    1    4    0s  0  RWD  n
        Loop start line        INT    4    4    0s  0  RWD
                                        [0]            6
                                        [1]            0
                                        [2]            0
                                        [3]            0
        SLoop start line        INT    4    4    0s  0  RWD
                                        [0]            5
                                        [1]            0
                                        [2]            0
                                        [3]            0
        Loop end line          INT    4    4    0s  0  RWD
                                        [0]            11
                                        [1]            0
                                        [2]            0
                                        [3]            0
        SLoop end line          INT    4    4    0s  0  RWD
                                        [0]            10
                                        [1]            0
                                        [2]            0
                                        [3]            0
        Loop counter            INT    4    4    0s  0  RWD
                                        [0]            2
                                        [1]            0
                                        [2]            0
                                        [3]            0
        Loop n                  INT    4    4    0s  0  RWD
                                        [0]            3
                                        [1]            0
                                        [2]            0
                                        [3]            0
        Subdir                  STRING  1    256  0s  0  RWD
        Subdir end line        INT    1    4    0s  0  RWD  0
        Subdir not notify      INT    1    4    0s  0  RWD  0
        Stack index            INT    1    4    0s  0  RWD  0
        Subroutine end line    INT    4    4    0s  0  RWD
                                        [0]            0
                                        [1]            0
                                        [2]            0
                                        [3]            0
        Subroutine return line  INT    4    4    0s  0  RWD
                                        [0]            0
                                        [1]            0
                                        [2]            0
                                        [3]            0
        Subroutine call line    INT    4    4    0s  0  RWD
                                        [0]            0
                                        [1]            0
                                        [2]            0
                                        [3]            0
        SSubroutine call line  INT    4    4    0s  0  RWD
                                        [0]            0
                                        [1]            0
                                        [2]            0
                                        [3]            0
        Subroutine param        STRING  4    256  0s  0  RWD
                                        [0]
                                        [1]
                                        [2]
                                        [3]
        Wait value              FLOAT  1    4    0s  0  RWD  6
        Wait limit              FLOAT  1    4    0s  0  RWD  25
        Start time              DWORD  1    4    0s  0  RWD  0
        Wait type              STRING  1    32    0s  0  RWD  ODB>=
        Last msg                STRING  1    10    0s  0  RWD  12:54:58
    Variables                  DIR
        runs                    STRING  1    2    2m  0  RWD  3
 
</pre>
 
 
== Keys in the <span style="color:purple; font-style:italic">/Sequencer</span> ODB tree ==
 
=== <span style="color:purple; font-style:italic">State</span> subtree ===
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DIR
</div>
 
The  {{Odbpath|path=State}} subtree in the  [[#top|/Sequencer ODB tree]] is created by [[mhttpd]]. It is used by the [[Sequencer]] to store various data while running the sequence.
 
The user may wish to change the path of where Sequencer files are stored (see [[#Path]]) otherwise this tree is largely for internal use.
 
<br>
---------
<br>
 
 
==== <span style="color:purple; font-style:italic">Path</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING
* '''Default:'''  ""
</div>
This key in the [[#State subtree|State subtree]] contains the directory path of the sequencer loadfile(s)
<br>
---------
<br>
 
 
==== <span style="color:purple; font-style:italic">Filename</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING
* '''Default:'''  ""
</div>
This key in the [[#State subtree|State subtree]] contains the name of the current sequencer loadfile.
 
<br>
---------
<br>
 
 
 
==== <span style="color:purple; font-style:italic">Error</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING
* '''Default:'''  ""
</div>
This key in the [[#State subtree|State subtree]] contains the error message from the system when an error is detected, or blank if no error.
 
<br>
---------
<br>
 
 
==== <span style="color:purple; font-style:italic">Error line</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT
* '''Default:'''  0
</div>
This key in the [[#State subtree|State subtree]] contains the loadfile  line number where error occurred,  or zero if no error.
 
<br>
---------
<br>
 
 
==== <span style="color:purple; font-style:italic">Serror line</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT
* '''Default:'''  0
</div>
This key in the [[#State subtree|State subtree]] contains the  ???  line number where error occurred,  or zero if no error.
 
<br>
---------
<br>
 
 
==== <span style="color:purple; font-style:italic">Message</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING
* '''Default:'''  ""
</div>
This key in the [[#State subtree|State subtree]] contains the Sequencer message
 
<br>
---------
<br>
 
 
 
==== <span style="color:purple; font-style:italic">Message wait</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' BOOL
* '''Default:'''  "n"
</div>
This key in the [[#State subtree|State subtree]] contains ...
 
<br>
---------
<br>
 
==== <span style="color:purple; font-style:italic">Running</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' BOOL
* '''Default:'''  "n"
</div>
This key in the [[#State subtree|State subtree]] indicates whether the sequencer is running.
 
<br>
---------
<br>
 
==== <span style="color:purple; font-style:italic">Finished</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' BOOL
* '''Default:'''  "y"
</div>
This key in the [[#State subtree|State subtree]] indicates whether the sequencer is finished.
 
<br>
---------
<br>
 
 
==== <span style="color:purple; font-style:italic">Paused</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' BOOL
* '''Default:'''  "y"
</div>
This key in the [[#State subtree|State subtree]] indicates whether the sequencer is paused.
 
<br>
---------
<br>
 
 
 
==== <span style="color:purple; font-style:italic">Current line number</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT
* '''Default:'''  0
</div>
This key in the [[#State subtree|State subtree]] indicates the line number in the loadfile that the sequencer is currently executing.  
 
<br>
---------
<br>
 
 
 
==== <span style="color:purple; font-style:italic">SCurrent line number</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT
* '''Default:'''  0
</div>
This key in the [[#State subtree|State subtree]] indicates the line number in ???    that the sequencer is currently executing.
 
<br>
---------
<br>
 
 
 
==== <span style="color:purple; font-style:italic">Stop after run</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' BOOL
* '''Default:'''  "n"
</div>
This key in the [[#State subtree|State subtree]] indicates whether the sequencer should stop after current run
 
<br>
---------
<br>
 
 
==== <span style="color:purple; font-style:italic">Transition request</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' BOOL
* '''Default:'''  "n"
</div>
This key in the [[#State subtree|State subtree]] indicates whether a transition has been requested by the sequencer loadfile.
 
<br>
---------
<br>
 
 
 
==== <span style="color:purple; font-style:italic">Transition request</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' BOOL
* '''Default:'''  "n"
</div>
This key in the [[#State subtree|State subtree]] indicates whether a transition has been requested by the sequencer loadfile.
 
<br>
---------
<br>
 
 
 
==== <span style="color:purple; font-style:italic">Loop start line</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT array of 4 elements
* '''Default:'''  0,0,0,0
</div>
This key in the [[#State subtree|State subtree]] contains the line number(s) in the sequencer loadfile where a loop starts.
 
<br>
---------
<br>
 
 
 
==== <span style="color:purple; font-style:italic">SLoop start line</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT array of 4 elements
* '''Default:'''  0,0,0,0
</div>
This key in the [[#State subtree|State subtree]] contains the line number(s) ...
 
<br>
---------
<br>
 
==== <span style="color:purple; font-style:italic">Loop end line</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT array of 4 elements
* '''Default:'''  0,0,0,0
</div>
This key in the [[#State subtree|State subtree]] is filled by the [[Sequencer]] and contains the line number(s) in the sequencer loadfile where a loop ends.
 
<br>
---------
<br>
 
 
==== <span style="color:purple; font-style:italic">SLoop end line</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT array of 4 elements
* '''Default:'''  0,0,0,0
</div>
This key in the [[#State subtree|State subtree]] is filled by the [[Sequencer]] and contains the line number(s) ...  where a loop ends.
 
<br>
---------
<br>
 
 
 
==== <span style="color:purple; font-style:italic">Loop counter</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT array of 4 elements
* '''Default:'''  0,0,0,0
</div>
This key in the [[#State subtree|State subtree]]  is filled by the [[Sequencer]] and contains the loop counter for loops.
 
<br>
---------
<br>
 
 
==== <span style="color:purple; font-style:italic">Loop n</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT array of 4 elements
* '''Default:'''  0,0,0,0
</div>
This key in the [[#State subtree|State subtree]] is filled by the [[Sequencer]] and contains ...
 
<br>
---------
<br>
 
 
==== <span style="color:purple; font-style:italic">Subdir</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING
* '''Default:'''  ""
</div>
This key in the [[#State subtree|State subtree]]  is filled by the [[Sequencer]] and contains ...
 
<br>
---------
<br>
 
 
==== <span style="color:purple; font-style:italic">Subdir end line</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT
* '''Default:'''  0
</div>
This key in the [[#State subtree|State subtree]]  is filled by the [[Sequencer]] and contains ...
 
<br>
---------
<br>
 
 
==== <span style="color:purple; font-style:italic">Subdir not notify</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT
* '''Default:'''  0
</div>
This key in the [[#State subtree|State subtree]]  is filled by the [[Sequencer]] and contains ...
 
<br>
---------
<br>
 
 
 
==== <span style="color:purple; font-style:italic">Stack index</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT
* '''Default:'''  0
</div>
This key in the [[#State subtree|State subtree]]  is filled by the [[Sequencer]] and contains ...
 
<br>
---------
<br>
 
 
 
==== <span style="color:purple; font-style:italic">Subroutine end line</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT array of 4 elements
* '''Default:'''  0,0,0,0
</div>
This key in the [[#State subtree|State subtree]]  is filled by the [[Sequencer]] and contains ...
 
<br>
---------
<br>
 
 
 
==== <span style="color:purple; font-style:italic">Subroutine return line</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT array of 4 elements
* '''Default:'''  0,0,0,0
</div>
This key in the [[#State subtree|State subtree]]  is filled by the [[Sequencer]] and contains ...
 
<br>
---------
<br>
 
 
 
 
==== <span style="color:purple; font-style:italic">Subroutine param</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING array of 4 elements
* '''Default:''' 
</div>
This key in the [[#State subtree|State subtree]]  is filled by the [[Sequencer]] and contains ...
 
<br>
---------
<br>
 
 
 
==== <span style="color:purple; font-style:italic">Wait value</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' FLOAT
* '''Default:'''  0
</div>
This key in the [[#State subtree|State subtree]]  is filled by the [[Sequencer]] and is used when the Sequencer is Waiting
(i.e. is executing a Wait statement in the Sequencer script). It will contain the current value of the wait parameter. For example,
if executing the statement "WAIT events 500" and the current count is 250, this key will contain 250. When the Sequencer is not executing a WAIT statement, this key will be set to 0.
 
 
<br>
---------
<br>
 
 
==== <span style="color:purple; font-style:italic">Wait limit</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' FLOAT
* '''Default:'''  0
</div>
This key in the [[#State subtree|State subtree]] is filled by the [[Sequencer]] and is used when the Sequencer is Waiting
(i.e. is executing a Wait statement in the Sequencer script). It will contain the Wait limit, e.g. it will contain '5' if the Sequencer is executing the statement "WAIT seconds 5".  When the Sequencer is not executing a WAIT statement, this key will be set to 0.
<br>
---------
<br>
 
 
 
==== <span style="color:purple; font-style:italic">Start time</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DWORD
* '''Default:'''  0
</div>
This key in the [[#State subtree|State subtree]]  is filled by the [[Sequencer]]. If the Sequencer is Waiting for a certain time (i.e. executing a Wait Seconds statement in the Sequencer script), this key will contain the time that the Sequencer started waiting. In all other cases, it will be set to 0.
 
<br>
---------
<br>
 
 
 
==== <span style="color:purple; font-style:italic">Wait type</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING
* '''Default:'''  ""
</div>
This key in the [[#State subtree|State subtree]]  is filled by the [[Sequencer]]. If the Sequencer is Waiting (i.e. is executing a Wait statement in the Sequencer script) it will contain the type of the Wait, e.g. "Seconds", "Events" or "ODB" and operator (e.g. "ODB>=" see [[#Example of /Sequencer tree|example above]]).
 
<br>
---------
<br>
 
 
==== <span style="color:purple; font-style:italic">Last msg</span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING
* '''Default:'''  "00:00:00"
</div>
This key in the [[#State subtree|State subtree]]  is filled by the [[Sequencer]] and contains the time of the latest MIDAS message.
 
<br>
---------
<br>
 
 
=== <span style="color:purple; font-style:italic">Variables</span> subtree ===
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DIR
</div>
 
The  {{Odbpath|path=Variables}} subtree in the  [[#top|/Sequencer ODB tree]] is created by the [[Mhttpd]]. It is used by the [[Sequencer]] to store input parameters used by the sequence (see [[Sequencer#PARAM|PARAM command]]).
 
<br>
---------
<br>
 
 
==== <span style="color:purple; font-style:italic"><parameter name></span>  ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING
* '''Default:''' 
</div>
Keys are created when [[Sequencer#PARAM|PARAM statements]] are included in the [[Sequencer]] file. In  the [[#Example of /Sequencer tree|example above]],
the ODB key  {{Odbpath|path=runs}} has been created in the  {{Odbpath|path=Variables}} subtree with the value 3. The Sequencer file used in the example contained a statement
"PARAM runs", and when the sequence was started, the user entered the value "3" for the number of runs.
 
 
 
<br>
---------
<br>
 
 
[[Category:ODB Tree]]

Latest revision as of 22:00, 30 October 2026

The midas documentation has moved. See /Sequencer on the ODB keys page and Sequencer: overview for the new documentation about the /Sequencer ODB keys.