/Equipment ODB tree: Difference between revisions
No edit summary |
Stefan Ritt (talk | contribs) No edit summary |
||
(13 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Pagelinks}} | |||
== Links == | == Links == | ||
Line 20: | Line 15: | ||
An empty /Equipment tree will be created by mlogger. | An empty /Equipment tree will be created by mlogger. | ||
If an [[ Frontend Operation#Equipments and Events|Equipment]] is defined in [[Frontend user code]], the first time the frontend is run, that equipment | If an [[ Frontend Operation#Equipments and Events|Equipment]] is defined in [[Frontend user code]], the first time the frontend is run, if that equipment does not exist in the ODB, it | ||
will be created in the ODB as a subtree under the /Equipment tree with the values supplied in the [[Frontend user code]]. | will be created (using db_create_record) in the ODB as a subtree under the /Equipment tree with the values supplied in the [[Frontend user code]]. | ||
== Example of /Equipment tree == | == Example of /Equipment tree == | ||
Line 42: | Line 37: | ||
[local:pol:S]Settings>ls /Equipment/info/ -lr | [local:pol:S]Settings>ls /Equipment/info/ -lr | ||
Key name Type #Val Size Last Opn Mode Value | Key name Type #Val Size Last Opn Mode Value | ||
--------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ||
Line 59: | Line 52: | ||
Event limit DOUBLE 1 8 9h 0 RWD 0 | Event limit DOUBLE 1 8 9h 0 RWD 0 | ||
Num subevents DWORD 1 4 9h 0 RWD 0 | Num subevents DWORD 1 4 9h 0 RWD 0 | ||
Log history INT 1 4 2h 0 RWD | Log history INT 1 4 2h 0 RWD 60 | ||
Frontend host STRING 1 32 9h 0 RWD lxpol.triumf.ca | Frontend host STRING 1 32 9h 0 RWD lxpol.triumf.ca | ||
Frontend name STRING 1 32 9h 0 RWD pol_fevme | Frontend name STRING 1 32 9h 0 RWD pol_fevme | ||
Line 66: | Line 59: | ||
Status color STRING 1 32 9h 0 RWD #00FF00 | Status color STRING 1 32 9h 0 RWD #00FF00 | ||
Hidden BOOL 1 4 9h 0 RWD n | Hidden BOOL 1 4 9h 0 RWD n | ||
<div id="Example Variables subtree"></div> | |||
Variables DIR | Variables DIR | ||
DBUG FLOAT | DBUG FLOAT 9 4 2h 0 RWD | ||
[0] 0 | [0] 0 | ||
[1] 101 | [1] 101 | ||
[2] | [2] 10201 | ||
[3] | [3] 10201 | ||
[4] 101 | [4] 101 | ||
[5] 2 | [5] 2 | ||
Line 77: | Line 71: | ||
[7] 1 | [7] 1 | ||
[8] 1 | [8] 1 | ||
CYCL FLOAT | CYCL FLOAT 15 4 2h 0 RWD | ||
[0] 1 | [0] 1 | ||
[1] | [1] 9800 | ||
[2] | [2] 98 | ||
[3] | [3] 100 | ||
[4] | [4] 9 | ||
[5] | [5] 98 | ||
[6] | [6] 9800 | ||
[7] | [7] 9 | ||
[8] 0. | [8] 9 | ||
[ | [9] 8.9682 | ||
SUMS DOUBLE 4 8 | [10] 8.966 | ||
[11] 0.0504 | |||
[12] 0 | |||
[13] 8.7906 | |||
[14] 0 | |||
SUMS DOUBLE 4 8 2h 0 RWD | |||
[0] 0 | [0] 0 | ||
[1] | [1] 50002 | ||
[2] 0 | [2] 0 | ||
[3] 0 | [3] 0 | ||
<div id="Example Statistics subtree"></div> | |||
Statistics DIR | Statistics DIR | ||
Events sent DOUBLE 1 8 8h 0 RWD 176 | Events sent DOUBLE 1 8 8h 0 RWD 176 | ||
Events per sec. DOUBLE 1 8 8h 0 RWD 0 | Events per sec. DOUBLE 1 8 8h 0 RWD 0 | ||
kBytes per sec. DOUBLE 1 8 8h 0 RWD 0 | kBytes per sec. DOUBLE 1 8 8h 0 RWD 0 | ||
<div id="Example Settings subtree"></div> | |||
Settings DIR | Settings DIR | ||
Names DBUG STRING 12 32 9h 0 RWD | Names DBUG STRING 12 32 9h 0 RWD | ||
Line 112: | Line 113: | ||
[10] not used | [10] not used | ||
[11] not used | [11] not used | ||
Names CYCL STRING | Names CYCL STRING 15 32 9h 0 RWD | ||
[0] Scan type code | [0] Scan type code | ||
[1] Number good cycles | [1] Number good cycles | ||
Line 123: | Line 124: | ||
[8] DAC Set Value (volts) | [8] DAC Set Value (volts) | ||
[9] DAC Readback (volts) | [9] DAC Readback (volts) | ||
[10] | [10] ADC1 Average | ||
[11] | [11] ADC2 Average | ||
[12] ADC3 Average | |||
[13] ADC4 Average | |||
[14] spare | |||
Names SUMS STRING 4 32 9h 0 RWD | Names SUMS STRING 4 32 9h 0 RWD | ||
[0] SC Sum ch17 | [0] SC Sum ch17 | ||
Line 135: | Line 140: | ||
=== <span style="color: purple;">''<equipment-name>''</span> subtree === | === <span style="color: purple;">''<equipment-name>''</span> subtree === | ||
This subtree in the [[#top|/Equipment ODB tree]] The [[#top|/Equipment ODB tree]] | This subtree in the [[#top|/Equipment ODB tree]] The [[#top|/Equipment ODB tree]] | ||
will be named for an [[Frontend Operation#Equipments and Events|Equipment]] defined in the [[Frontend user code]]. No two subtrees in an experiment can have the same name. An <equipment-name> subtree will be present for every defined equipment in all the frontend(s) run on the experiment. | will be named for an [[Frontend Operation#Equipments and Events|Equipment]] defined in the [[Frontend user code]]. No two subtrees in an experiment can have the same name. An <equipment-name> subtree will be present for every defined equipment in all the frontend(s) run on the experiment. | ||
<div id="initial values"></div> | |||
This subtree will be created (if it does not already exist) the first time the defining frontend is run, and the '''initial values''' set are defined in the [[Equipment List Parameters]] in the [[Frontend user code]] that defines this particular equipment. | |||
'''Note:''' that if these parameters are later changed in the ODB, they will '''not''' be overwritten by the values in the frontend, if the frontend is restarted. | |||
Line 143: | Line 153: | ||
==== <span style="color: purple;">''Common''</span> subtree ==== | ==== <span style="color: purple;">''Common''</span> subtree ==== | ||
This subtree in an [[#<equipment-name> subtree|<equipment-name> subtree]] contains the parameters used by the system to process the | This subtree in an [[#<equipment-name> subtree|/Equipment/<equipment-name> subtree]] contains the parameters used by the system to process the [[Frontend Operation#Equipments and Events|Equipment]]. | ||
The initial values of the Common parameters are set when this tree is created (see [[#initial value|initial values]]). | |||
<br> | <br> | ||
Line 152: | Line 163: | ||
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | <div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | ||
* '''Type:''' WORD | * '''Type:''' WORD | ||
* '''Default:''' | * '''Default:''' See [[#initial value|initial value]] | ||
</div> | </div> | ||
This key in the [[#Common subtree|Common subtree]] contains the Event ID of this equipment. See [[Equipment List Parameters#EventID]] for details. | This key in the [[#Common subtree|Common subtree]] contains the Event ID of this equipment. See '''[[Equipment List Parameters#EventID|EventID]]''' for details. | ||
<br> | <br> | ||
--------- | --------- | ||
Line 164: | Line 174: | ||
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | <div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | ||
* '''Type:''' WORD | * '''Type:''' WORD | ||
* '''Default:''' | * '''Default:''' See [[#initial value|initial value]] | ||
</div> | </div> | ||
This key in the [[#Common subtree|Common subtree]] contains the Trigger mask of this equipment. See [[Equipment List Parameters#TriggerMask| | This key in the [[#Common subtree|Common subtree]] contains the Trigger mask of this equipment. See '''[[Equipment List Parameters#TriggerMask|TriggerMask]]''' for details. | ||
Line 180: | Line 189: | ||
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | <div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | ||
* '''Type:''' STRING | * '''Type:''' STRING | ||
* '''Default:''' | * '''Default:''' See [[#initial value|initial value]] | ||
</div> | </div> | ||
This key in the [[#Common subtree|Common subtree]] contains the Buffer parameter of this equipment. See | This key in the [[#Common subtree|Common subtree]] contains the Buffer parameter of this equipment. See | ||
[[Equipment List Parameters#Buffer|Buffer]] for details. | '''[[Equipment List Parameters#Buffer|Buffer]]''' for details. | ||
For Events that are to be logged as banks, Buffer is set to "SYSTEM". | |||
<br> | <br> | ||
Line 196: | Line 204: | ||
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | <div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | ||
* '''Type:''' INT | * '''Type:''' INT | ||
* '''Default:''' | * '''Default:''' See [[#initial value|initial value]] | ||
</div> | </div> | ||
This key in the [[#Common subtree|Common subtree]] contains the Type of this equipment. See [[Equipment List Parameters#Type|Type]] for details. | This key in the [[#Common subtree|Common subtree]] contains the Type of this equipment. See '''[[Equipment List Parameters#Type|Type]]''' for details. | ||
The Type is one of the defined '''Equipment Flags'''. | |||
Line 213: | Line 220: | ||
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | <div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | ||
* '''Type:''' INT | * '''Type:''' INT | ||
* '''Default:''' | * '''Default:''' See [[#initial value|initial value]] | ||
</div> | </div> | ||
This key in the [[#Common subtree|Common subtree]] contains the Interrupt or Event Source of this equipment. See [[Equipment List Parameters#Source|Source]] for details. | This key in the [[#Common subtree|Common subtree]] contains the Interrupt or Event Source of this equipment. See '''[[Equipment List Parameters#Source|Source]]''' for details. | ||
Line 230: | Line 236: | ||
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | <div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | ||
* '''Type:''' STRING | * '''Type:''' STRING | ||
* '''Default:''' | * '''Default:''' See [[#initial value|initial value]] | ||
</div> | </div> | ||
This key in the [[#Common subtree|Common subtree]] contains the data format used for generating the event of this equipment. See [[Equipment List Parameters# | This key in the [[#Common subtree|Common subtree]] contains the data format used for generating the event of this equipment. See '''[[Equipment List Parameters#Format|Format]]''' for details. | ||
Line 247: | Line 252: | ||
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | <div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | ||
* '''Type:''' BOOL | * '''Type:''' BOOL | ||
* '''Default:''' | * '''Default:''' See [[#initial value|initial value]] | ||
</div> | </div> | ||
This key in the [[#Common subtree|Common subtree]] indicated whether this equipment is active. See [[Equipment List Parameters#Enabled|Enabled]] for details. | This key in the [[#Common subtree|Common subtree]] indicated whether this equipment is active. See '''[[Equipment List Parameters#Enabled|Enabled]]''' for details. | ||
<br> | <br> | ||
Line 262: | Line 267: | ||
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | <div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | ||
* '''Type:''' INT | * '''Type:''' INT | ||
* '''Default:''' | * '''Default:''' See [[#initial value|initial value]] | ||
</div> | </div> | ||
This key in the [[#Common subtree|Common subtree]] specifies when the read-out of an event occurs or is enabled. It is set to one or a combination of [[ReadOn Flags]]. See [[Equipment List Parameters#ReadOn|Read on]] for details. | This key in the [[#Common subtree|Common subtree]] specifies when the read-out of an event occurs or is enabled. It is set to one or a combination of [[ReadOn Flags]]. See '''[[Equipment List Parameters#ReadOn|Read on]]''' for details. | ||
Line 278: | Line 281: | ||
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | <div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | ||
* '''Type:''' INT | * '''Type:''' INT | ||
* '''Default:''' | * '''Default:''' See [[#initial value|initial value]] | ||
</div> | </div> | ||
This key in the [[#Common subtree|Common subtree]] specifies the time interval or time-out. See [[Equipment List Parameters#Period|Period]] for details. | This key in the [[#Common subtree|Common subtree]] specifies the time interval or time-out (units are milliseconds). See '''[[Equipment List Parameters#Period|Period]]''' for details. | ||
Line 300: | Line 302: | ||
This key in the [[#Common subtree|Common subtree]] specifies the time interval or time-out. See [[Equipment List Parameters#Event limit|Event limit]] for details. | This key in the [[#Common subtree|Common subtree]] specifies the time interval or time-out. See '''[[Equipment List Parameters#Event limit|Event limit]]''' for details. | ||
Line 314: | Line 316: | ||
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | <div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | ||
* '''Type:''' DWORD | * '''Type:''' DWORD | ||
* '''Default:''' | * '''Default:''' See [[#initial value|initial value]] | ||
</div> | </div> | ||
This key in the [[#Common subtree|Common subtree]] enables the super-event capability. See [[Equipment List Parameters#Number of subevents|Number of subevents]] for details. | This key in the [[#Common subtree|Common subtree]] enables the super-event capability. See '''[[Equipment List Parameters#Number of subevents|Number of subevents]]''' for details. | ||
Line 331: | Line 333: | ||
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | <div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | ||
* '''Type:''' INT | * '''Type:''' INT | ||
* '''Default:''' | * '''Default:''' See [[#initial value|initial value]] | ||
</div> | </div> | ||
This key in the [[#Common subtree|Common subtree]] enables the [[History System]] for this equipment. See [[Equipment List Parameters#Log History|Log History]] for details. | This key in the [[#Common subtree|Common subtree]] enables the [[History System]] for this equipment. See '''[[Equipment List Parameters#Log History|Log History]]''' for details. | ||
A value of 0 disables history logging. This parameter also controls how frequently the history events are generated. | |||
Line 400: | Line 404: | ||
This key in the [[#Common subtree|Common subtree]] contains the combination of [[#Frontend name|Frontend name]] and [[#Frontend host|Frontend host]] Frontend host that define this particular equipment. It is filled by the system and used by [[mhttpd]] | This key in the [[#Common subtree|Common subtree]] contains the combination of [[#Frontend name|Frontend name]] and [[#Frontend host|Frontend host]] Frontend host that define this particular equipment. It is filled by the system and used by the [[Status Page#mhttpd status page]]. | ||
Line 414: | Line 418: | ||
This key in the [[#Common subtree|Common subtree]] contains a colour code to be used for the display of this equipment on the [[mhttpd]] | This key in the [[#Common subtree|Common subtree]] contains a colour code to be used for the display of this equipment on the [[Status Page#mhttpd status page]]. | ||
Line 427: | Line 431: | ||
</div> | </div> | ||
This key in the [[#Common subtree|Common subtree]] if set to "y" will prevent the display of this equipment on the [[mhttpd]] | This key in the [[#Common subtree|Common subtree]] if set to "y" will prevent the display of this equipment on the [[Status Page#mhttpd status page]]. | ||
<br> | |||
--------- | |||
<br> | |||
===== <span style="color: purple;">''Write cache size''</span> ===== | |||
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | |||
* '''Type:''' INT | |||
* '''Default:''' 10000000 | |||
</div> | |||
This key in the [[#Common subtree|Common subtree]] controls the size of a cache (in bytes) that the midas frontend framework will use to buffer events before sending them to other clients (like the [[Logger]]). Optimising the size of the cache may improve the performance of your frontend, especially if you're sending large events. The minimum (and default) value is 10MB (10000000 bytes). | |||
Line 443: | Line 461: | ||
If either | If either | ||
* the [[#Read on | * the [[#Read on|Read on]] parameter contains the [[ReadOn Flags|RO_ODB flag]] or | ||
* [[#Log history]] is enabled | * [[#Log history|Log history]] is non-zero, i.e. History logging is enabled | ||
the event data will be copied to the ODB and listed in this subtree. | the event data will be copied to the ODB and listed in this subtree. | ||
In that case, this subtree will contain array(s) of event data named for the bankname(s) in the readout function (see Frontend user code#Event Readout routine]]. | In that case, this subtree will contain array(s) of event data named for the bankname(s) in the readout function (see [[Frontend user code#Event Readout routine]]. | ||
See [[#Example | See [[#Example Variables subtree|example]] above. | ||
Line 468: | Line 486: | ||
===== <span style="color: purple;">''Events sent''</span> | ===== <span style="color: purple;">''Events sent''</span> ===== | ||
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | <div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | ||
* '''Type:''' DOUBLE | * '''Type:''' DOUBLE | ||
</div> | </div> | ||
This key in the [[#Statistics subtree|Statistics]] subtree contains the number of events of [[#Event ID|Event ID]] sent. It is filled by the system and used for display on [[mhttpd]] | This key in the [[#Statistics subtree|Statistics]] subtree contains the number of events of [[#Event ID|Event ID]] sent. It is filled by the system and used for display on the [[Status Page#mhttpd status page]]. See [[#Example Statistics subtree|example]] above. | ||
<br> | <br> | ||
Line 479: | Line 497: | ||
===== <span style="color: purple;">''Events per sec''</span> | ===== <span style="color: purple;">''Events per sec''</span> ===== | ||
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | <div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | ||
* '''Type:''' DOUBLE | * '''Type:''' DOUBLE | ||
</div> | </div> | ||
This key in the [[#Statistics subtree|Statistics]] subtree contains the number of events of [[#Event ID|Event ID]] sent per second. It is filled by the system and used for display on [[mhttpd]] | This key in the [[#Statistics subtree|Statistics]] subtree contains the number of events of [[#Event ID|Event ID]] sent per second. It is filled by the system and used for display on the [[Status Page#mhttpd status page]]. | ||
Line 491: | Line 509: | ||
<br> | <br> | ||
===== <span style="color: purple;">''kBytes per sec''</span> | ===== <span style="color: purple;">''kBytes per sec''</span> ===== | ||
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | <div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | ||
* '''Type:''' DOUBLE | * '''Type:''' DOUBLE | ||
</div> | </div> | ||
This key in the [[#Statistics subtree|Statistics]] subtree contains the number of kBytes per second for events of [[#Event ID|Event ID]] sent. It is filled by the system and used for display on [[mhttpd]] | This key in the [[#Statistics subtree|Statistics]] subtree contains the number of kBytes per second for events of [[#Event ID|Event ID]] sent. It is filled by the system and used for display on the [[Status Page#mhttpd status page]]. | ||
<br> | <br> | ||
Line 513: | Line 531: | ||
<br> | <br> | ||
===== <span style="color: purple;">''<Names | ===== <span style="color: purple;">''Names''</span> and <span style="color: purple;">''Names <variable>''</span> ===== | ||
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | <div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | ||
* '''Type:''' STRING (ARRAY) | * '''Type:''' STRING (ARRAY) | ||
</div> | </div> | ||
These optional key(s) in the [[#Settings subtree|Settings]] subtree are used to define the names of variables in the [[#Variables subtree|Variables subtree]]. | |||
Say you have an entry in Variables called "CURR" that contains 3 floats. You can then specify the names of these 3 elements here (i.e. if you're storing the current of 3 channels, you use Names to define the name of each channel). | |||
You can either create a key called "Names" that will apply to all Variables, or create separate keys for each Variable (e.g. "Names CURR"). | |||
The Names array(s) (if present) will be used by the [[Equipment Page]], and by the [[History System]] to generate tags. See [[#Example Settings subtree|example]] above. | |||
<br> | |||
--------- | |||
<br> | |||
===== <span style="color: purple;">''Unit <variable>''</span></span> ===== | |||
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | |||
* '''Type:''' STRING | |||
</div> | |||
These optional key(s) in the [[#Settings subtree|Settings]] subtree are used to define the units of variables in the [[#Variables subtree|Variables subtree]]. | |||
Say you have an entry in Variables called "CURR". You can specify that the current is measured in mA by creating a key called "Unit CURR" and setting it to "mA". | |||
These keys (if present) will be used by the [[Equipment Page]]. | |||
<br> | |||
--------- | |||
<br> | |||
===== <span style="color: purple;">''Format <variable>''</span></span> ===== | |||
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | |||
* '''Type:''' STRING | |||
</div> | |||
These optional key(s) in the [[#Settings subtree|Settings]] subtree are used to define the formatting of variables in the [[#Variables subtree|Variables subtree]]. | |||
A value of "%f2" for example shows a value with two digits after the period. A complete list of formats is listed on the [[Custom Page#Formatting|MIDAS custom page documentation]]. | |||
These keys (if present) will be used by the [[Equipment Page]]. | |||
<br> | |||
--------- | |||
<br> | |||
===== <span style="color: purple;">''Editable''</span></span> ===== | |||
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | |||
* '''Type:''' STRING | |||
</div> | |||
This optional key in the [[#Settings subtree|Settings]] subtree is used to by the [[Equipment Page]] to decide whether to show an "editable" interface for each variable, or just show the present value. | |||
It should contain a comma-separated list of Variables that are allowed to be edited on the [[Equipment Page]]. | |||
[[Category:ODB Tree]] [[Category:Equipment]] [[Category:History]] | |||
<br> | |||
--------- | |||
<br> | |||
===== <span style="color: purple;">''Grid display''</span></span> ===== | |||
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3"> | |||
* '''Type:''' BOOLEAN | |||
</div> | |||
This key in the [[#Settings subtree|Settings]] subtree is used to by the [[Equipment Page]] to define the display mode of equipment variables. If '''false''', each variable is shown on a separate row. | |||
This make sense for example for environment variables where one has an array of temperatures, another array for pressures et. | |||
If '''true''', the display switches to grid mode. This shows now one '''channel''' per row. That makes sense for equipment which has several parameters per channel. An example is a high voltage channel | |||
which has attributes like '''voltage''', '''current''', '''trip voltage''', '''temperature''', '''status'''. The grid display is then more compact and shows all attributes of a channel next to each other. | |||
The equipment page code tries to 'guess' the grid mode if this setting is not present in the ODB. It turns it on if it finds a number of arrays under 'variables' with exactly the same length, assuming that these then are | |||
channel attributes. If at least one array has a different length, the mode is turned off. It can always be overwritten by changing the ODB setting later. | |||
[[Category:ODB Tree]] | [[Category:ODB Tree]] [[Category:Equipment]] [[Category:History]] |
Latest revision as of 01:08, 2 May 2024
Links
Purpose
The ODB /Equipment tree contains user and system information related to a frontend.
Creating the /Equipment tree
An empty /Equipment tree will be created by mlogger.
If an Equipment is defined in Frontend user code, the first time the frontend is run, if that equipment does not exist in the ODB, it will be created (using db_create_record) in the ODB as a subtree under the /Equipment tree with the values supplied in the Frontend user code.
Example of /Equipment tree
The following is an example of the /Equipment tree from an experiment obtained with the odbedit ls command listing all the defined equipments in the experiment :
[local:pol:S]Settings>ls /Equipment -l Key name Type #Val Size Last Opn Mode Value --------------------------------------------------------------------------- POL_ACQ DIR Scaler DIR Trigger DIR VME DIR SisPulser DIR INFO DIR HISTO DIR
The following is a listing of one of the equipments in the /Equipment tree shown above :
[local:pol:S]Settings>ls /Equipment/info/ -lr Key name Type #Val Size Last Opn Mode Value --------------------------------------------------------------------------- INFO DIR Common DIR Event ID WORD 1 2 9h 0 RWD 3 Trigger mask WORD 1 2 9h 0 RWD 8 Buffer STRING 1 32 9h 0 RWD SYSTEM Type INT 1 4 9h 0 RWD 1 Source INT 1 4 9h 0 RWD 0 Format STRING 1 8 9h 0 RWD MIDAS Enabled BOOL 1 4 9h 0 RWD y Read on INT 1 4 9h 0 RWD 257 Period INT 1 4 9h 0 RWD 100 Event limit DOUBLE 1 8 9h 0 RWD 0 Num subevents DWORD 1 4 9h 0 RWD 0 Log history INT 1 4 2h 0 RWD 60 Frontend host STRING 1 32 9h 0 RWD lxpol.triumf.ca Frontend name STRING 1 32 9h 0 RWD pol_fevme Frontend file name STRING 1 256 9h 0 RWD pol_fevme.cxx Status STRING 1 256 9h 0 RWD pol_fevme@lxpol.triumf.ca Status color STRING 1 32 9h 0 RWD #00FF00 Hidden BOOL 1 4 9h 0 RWD n
Variables DIR DBUG FLOAT 9 4 2h 0 RWD [0] 0 [1] 101 [2] 10201 [3] 10201 [4] 101 [5] 2 [6] 4 [7] 1 [8] 1
CYCL FLOAT 15 4 2h 0 RWD [0] 1 [1] 9800 [2] 98 [3] 100 [4] 9 [5] 98 [6] 9800 [7] 9 [8] 9 [9] 8.9682 [10] 8.966 [11] 0.0504 [12] 0 [13] 8.7906 [14] 0 SUMS DOUBLE 4 8 2h 0 RWD [0] 0 [1] 50002 [2] 0 [3] 0
Statistics DIR Events sent DOUBLE 1 8 8h 0 RWD 176 Events per sec. DOUBLE 1 8 8h 0 RWD 0 kBytes per sec. DOUBLE 1 8 8h 0 RWD 0
Settings DIR Names DBUG STRING 12 32 9h 0 RWD [0] Data still buffered [1] Num SIS LNE events [2] LNE count from SIS [3] LNE preset value [4] number of bins [5] data bytes code [6] num enabled channels [7] discard first bin [8] discard first cycle [9] not used [10] not used [11] not used Names CYCL STRING 15 32 9h 0 RWD [0] Scan type code [1] Number good cycles [2] Number supercycles [3] Cycle num within supercycle [4] Sweep number [5] Num cycles skipped [6] Num cycles histogrammed [7] DAC Increment number [8] DAC Set Value (volts) [9] DAC Readback (volts) [10] ADC1 Average [11] ADC2 Average [12] ADC3 Average [13] ADC4 Average [14] spare
Names SUMS STRING 4 32 9h 0 RWD [0] SC Sum ch17 [1] SC Sum ch18 [2] SC Sum ch19 [3] SC Sum ch20
Keys in the /Equipment ODB tree
<equipment-name> subtree
This subtree in the /Equipment ODB tree The /Equipment ODB tree will be named for an Equipment defined in the Frontend user code. No two subtrees in an experiment can have the same name. An <equipment-name> subtree will be present for every defined equipment in all the frontend(s) run on the experiment.
This subtree will be created (if it does not already exist) the first time the defining frontend is run, and the initial values set are defined in the Equipment List Parameters in the Frontend user code that defines this particular equipment.
Note: that if these parameters are later changed in the ODB, they will not be overwritten by the values in the frontend, if the frontend is restarted.
Common subtree
This subtree in an /Equipment/<equipment-name> subtree contains the parameters used by the system to process the Equipment.
The initial values of the Common parameters are set when this tree is created (see initial values).
Event ID
- Type: WORD
- Default: See initial value
This key in the Common subtree contains the Event ID of this equipment. See EventID for details.
Trigger mask
- Type: WORD
- Default: See initial value
This key in the Common subtree contains the Trigger mask of this equipment. See TriggerMask for details.
Buffer
- Type: STRING
- Default: See initial value
This key in the Common subtree contains the Buffer parameter of this equipment. See
Buffer for details.
For Events that are to be logged as banks, Buffer is set to "SYSTEM".
Type
- Type: INT
- Default: See initial value
This key in the Common subtree contains the Type of this equipment. See Type for details.
The Type is one of the defined Equipment Flags.
Source
- Type: INT
- Default: See initial value
This key in the Common subtree contains the Interrupt or Event Source of this equipment. See Source for details.
Format
- Type: STRING
- Default: See initial value
This key in the Common subtree contains the data format used for generating the event of this equipment. See Format for details.
Enabled
- Type: BOOL
- Default: See initial value
This key in the Common subtree indicated whether this equipment is active. See Enabled for details.
Read on
- Type: INT
- Default: See initial value
This key in the Common subtree specifies when the read-out of an event occurs or is enabled. It is set to one or a combination of ReadOn Flags. See Read on for details.
Period
- Type: INT
- Default: See initial value
This key in the Common subtree specifies the time interval or time-out (units are milliseconds). See Period for details.
Event limit
- Type: DOUBLE
- Default:
This key in the Common subtree specifies the time interval or time-out. See Event limit for details.
Num subevents
- Type: DWORD
- Default: See initial value
This key in the Common subtree enables the super-event capability. See Number of subevents for details.
Log history
- Type: INT
- Default: See initial value
This key in the Common subtree enables the History System for this equipment. See Log History for details.
A value of 0 disables history logging. This parameter also controls how frequently the history events are generated.
Frontend host
- Type: STRING
- Default:
This key in the Common subtree contains the name of the Frontend host running the Frontend user code that defines this particular equipment.
It is filled by the system.
Frontend name
- Type: STRING
- Default:
This key in the Common subtree contains the Frontend name defined in the Frontend user code that defines this particular equipment.
It is filled by the system.
Frontend file name
- Type: STRING
- Default:
This key in the Common subtree contains the filename of the Frontend user code that defines this particular equipment.
It is filled by the system.
Status
- Type: STRING
- Default:
This key in the Common subtree contains the combination of Frontend name and Frontend host Frontend host that define this particular equipment. It is filled by the system and used by the Status Page#mhttpd status page.
Status color
- Type: STRING
- Default: "#00FF00"
This key in the Common subtree contains a colour code to be used for the display of this equipment on the Status Page#mhttpd status page.
Hidden
- Type: BOOL
- Default: "n"
This key in the Common subtree if set to "y" will prevent the display of this equipment on the Status Page#mhttpd status page.
Write cache size
- Type: INT
- Default: 10000000
This key in the Common subtree controls the size of a cache (in bytes) that the midas frontend framework will use to buffer events before sending them to other clients (like the Logger). Optimising the size of the cache may improve the performance of your frontend, especially if you're sending large events. The minimum (and default) value is 10MB (10000000 bytes).
Variables subtree
- Type: DIR
This is a subtree in the /Equipment ODB Tree.
If either
- the Read on parameter contains the RO_ODB flag or
- Log history is non-zero, i.e. History logging is enabled
the event data will be copied to the ODB and listed in this subtree.
In that case, this subtree will contain array(s) of event data named for the bankname(s) in the readout function (see Frontend user code#Event Readout routine. See example above.
Statistics subtree
- Type: DIR
This subtree in the /Equipment ODB Tree contains statistics written by the system.
Events sent
- Type: DOUBLE
This key in the Statistics subtree contains the number of events of Event ID sent. It is filled by the system and used for display on the Status Page#mhttpd status page. See example above.
Events per sec
- Type: DOUBLE
This key in the Statistics subtree contains the number of events of Event ID sent per second. It is filled by the system and used for display on the Status Page#mhttpd status page.
kBytes per sec
- Type: DOUBLE
This key in the Statistics subtree contains the number of kBytes per second for events of Event ID sent. It is filled by the system and used for display on the Status Page#mhttpd status page.
Settings subtree
- Type: DIR
This subtree in the /Equipment ODB Tree contains user-defined settings, some of which may be used by the system. Any values defined in this subtree will appear in experim.h files.
Names and Names <variable>
- Type: STRING (ARRAY)
These optional key(s) in the Settings subtree are used to define the names of variables in the Variables subtree.
Say you have an entry in Variables called "CURR" that contains 3 floats. You can then specify the names of these 3 elements here (i.e. if you're storing the current of 3 channels, you use Names to define the name of each channel).
You can either create a key called "Names" that will apply to all Variables, or create separate keys for each Variable (e.g. "Names CURR").
The Names array(s) (if present) will be used by the Equipment Page, and by the History System to generate tags. See example above.
Unit <variable>
- Type: STRING
These optional key(s) in the Settings subtree are used to define the units of variables in the Variables subtree.
Say you have an entry in Variables called "CURR". You can specify that the current is measured in mA by creating a key called "Unit CURR" and setting it to "mA".
These keys (if present) will be used by the Equipment Page.
Format <variable>
- Type: STRING
These optional key(s) in the Settings subtree are used to define the formatting of variables in the Variables subtree.
A value of "%f2" for example shows a value with two digits after the period. A complete list of formats is listed on the MIDAS custom page documentation.
These keys (if present) will be used by the Equipment Page.
Editable
- Type: STRING
This optional key in the Settings subtree is used to by the Equipment Page to decide whether to show an "editable" interface for each variable, or just show the present value.
It should contain a comma-separated list of Variables that are allowed to be edited on the Equipment Page.
Grid display
- Type: BOOLEAN
This key in the Settings subtree is used to by the Equipment Page to define the display mode of equipment variables. If false, each variable is shown on a separate row. This make sense for example for environment variables where one has an array of temperatures, another array for pressures et.
If true, the display switches to grid mode. This shows now one channel per row. That makes sense for equipment which has several parameters per channel. An example is a high voltage channel which has attributes like voltage, current, trip voltage, temperature, status. The grid display is then more compact and shows all attributes of a channel next to each other.
The equipment page code tries to 'guess' the grid mode if this setting is not present in the ODB. It turns it on if it finds a number of arrays under 'variables' with exactly the same length, assuming that these then are channel attributes. If at least one array has a different length, the mode is turned off. It can always be overwritten by changing the ODB setting later.