/Custom ODB tree: Difference between revisions

From MidasWiki
Jump to navigation Jump to search
(The midas documentation has moved to https://midas.triumf.ca/docs/)
Tag: Replaced
 
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Pagelinks}}
The midas documentation has moved. See [https://midas.triumf.ca/docs/develop/reference/reference/odb_keys/#custom /Custom] on the ODB keys page and [https://midas.triumf.ca/docs/develop/features/monitoring_and_control/custom_pages/ Custom pages: overview] for the new documentation about the /Custom ODB keys.
 
= Links =
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* [[mhttpd |MIDAS web server (mhttpd)]]
* mhttpd [[Custom Page]]
* mhttpd [[Status Page]]
* [[Mhttpd.js|MIDAS Javascript Library]]
</div>
 
 
= Purpose =
The {{Odbpath|path=/Custom}} ODB tree is required if the user wishes to create [[mhttpd]] custom pages. It contains essential data needed for [[mhttpd]] to display a custom page. The {{Odbpath|path=/images}} subtree is required if an imagefile (*.gif) is to be displayed on the custom page. Optionally, labels, bars and fills can be superimposed on the image.
 
= Creating the <span style="color:purple; font-style:italic;">/Custom</span>  tree =
The {{Odbpath|path=/Custom}} ODB tree is an optional tree that may be [[ODB#Creating ODB keys|created by the user]].
 
 
 
= Keys in the /Custom tree =
The optional ODB {{Odbpath|path=/Custom}} tree may contain any of the following :
 
*  keys pointing to '''local''' external files containing custom web pages (html/javascript files)
*  keys pointing to '''local''' external files containing resources for custom web pages (like .css style files, .js javascript file, images).
** Note: files that are have a '.' in the Key name are assumed to be resource files and are treated different from Keys with names with '.'; see particularly the [[#Path key|Path key]] notes below.
** Note: .css, .js, .pdf, .jpg, .gif, .png, .svg, .ps, .eps, .xls, .doc, .txt, .asc, .zip files should get served up with the correct MIME types
*  keys pointing to '''local''' external files containing the html/javascript code for [[Internal Custom Page|internal custom webpages]]
*  <span style="color:purple; font-style:italic">Path</span> variable (optional), used to indicate where to look on host machine for external files.
*  <span style="color:purple; font-style:italic">/pwd</span> subtree used to contain custom password keys
*  <span style="color:purple; font-style:italic">/images</span> subtree used to specify images for custom pages
 
Keys defined in this tree pointing to custom web pages of any kind are called '''''custom-links'''''. 
* External ''custom-links'' contain the path and filename of the external custom page file (or may be a symbolic link to a custom-link)
* Internal ''custom-links'' contain the code for the internal custom page.
 
If ''custom-links'' are defined in this tree, except where [[#Key names|noted below]], the ''custom-links'' will appear as '''''custom-buttons'''''  on the [[mhttpd]] [[Status Page]]. By clicking on one of these ''custom-buttons'', the custom page will be visible in a new frame (see also [[#Key names|Key names]]).
 
We will note some of the subtleties of how the Custom tree keys are used in the following sub-sections.
 
== Key names ==
The user chooses the names of any keys in the <span style="color:purple; font-style:italic;">/Custom</span> ODB tree except for
* the key name <span style="color:purple; font-style:italic">Status</span> is reserved (see [[Custom Page#Custom Status page|Custom Status Page]]).
* the key name <span style="color:purple; font-style:italic">pwd</span> is reserved (see optional  [[#Pwd subtree|Pwd subtree]] for custom passwords)
* the key name <span style="color:purple; font-style:italic">Path</span> is reserved (see optional  [[#Path key|Path key] for details)
* keys in the  <span style="color:purple; font-style:italic">/images</span> subtree have defined names except for the user-defined [[#<Image-name> subtree|<Image-name> subtree]].
 
 
There are two characters that have '''special meaning''' if they are the last character of a ''custom-link'' in the {{Odbpath|path=/Custom}} tree :
*    The character "'''&'''" forces the page to be opened within the current frame when the ''custom-button'' is pressed. If this character is omitted, the page will be opened in a new frame. The "&" character is omitted from the name of the button.
*    The character "'''!'''" suppresses the ''custom-button'' from appearing on the [[Status Page]], forming a ''hidden-link''.
 
The ''hidden-link'' feature can be used to provide external webpages hidden from the user, such as a stylesheet or a file of Javascript functions needed by other custom pages.
 
The {{Odbpath|path=/Custom}} tree in the [[#Example|example]] below would produce one ''custom-button'', i.e.{{Button|name=ppg&nbsp;cycle}}.
 
;NOTE
: To avoid confusion, do not use custom-links that only differ by the special characters "&" and "!" (e.g. "test", "test&" and "test!") in the same ODB.
 
= Path key =
 
= Example  =
The following example using the [[odbedit]] '''ls''' command shows the optional custom tree for an experiment.
<br>Note the use of the "&" and "!" characters in the names of the custom keys  (see [[#Key names|key names]] for details).
[local:pol:S]/ls -lr /Custom
Key name                        Type    #Val  Size  Last Opn Mode Value
---------------------------------------------------------------------------
custom                          DIR
    ppg_cycle&                  STRING  1    80    36h  0  RWD  /home/pol/online/pol/custom/pol_sc.html
    pol_functions!              STRING  1    80    36h  0  RWD  /home/pol/online/pol/custom/pol_functions.js
    style!                      STRING  1    80    36h  0  RWD  /home/pol/online/pol/custom/style.css
    images                      DIR
        pol_sc.gif              DIR
            background          STRING  1    80    36h  0  RWD  /home/pol/online/pol/custom/pol_sc.gif
            labels              DIR
                num bins        DIR
                    Src        STRING  1    256  36h  0  RWD  /Equipment/pol_acq/settings/output/num bins per cycle
                    Format      STRING  1    32    36h  0  RWD  %d
                    Font        STRING  1    32    36h  0  RWD  Medium
                    X          INT    1    4    36h  0  RWD  315
                    Y          INT    1    4    36h  0  RWD  502
                    Align      INT    1    4    36h  0  RWD  0
                    FGColor    STRING  1    8    36h  0  RWD  FFFFFF
                    BGColor    STRING  1    8    36h  0  RWD  0000FF
                dwell time      DIR
                    Src        STRING  1    256  36h  0  RWD  /Equipment/POL_ACQ/Settings/input/dwell time (ms)
                    Format      STRING  1    32    36h  0  RWD  %f ms
                    Font        STRING  1    32    36h  0  RWD  large
                    X          INT    1    4    36h  0  RWD  145
                    Y          INT    1    4    36h  0  RWD  430
                    Align      INT    1    4    36h  0  RWD  0
                    FGColor    STRING  1    8    36h  0  RWD  FFFFFF
                    BGColor    STRING  1    8    36h  0  RWD  0000FF
            fills              DIR
                    SSLevelBox  DIR
                    Src        STRING  1    256  36h  0  RWD  /Equipment/TpcGasPlc/GasCalc/Calculated[136]
                    X          INT    1    4    36h  0  RWD  578
                    Y          INT    1    4    36h  0  RWD  490
                    Limits      DOUBLE  3    8    2s  0  RWD
                                        [0]            0
                                        [1]            1
                                        [2]            2
                    Fillcolors  STRING  4    8    2s  0  RWD
                                        [0]            000000
                                        [1]            00FF00
                                        [2]            808080
            bars              DIR
                    temp        DIR
                    Src        STRING  1    256  36h  0  RWD  /Equipment/Temperature/Variables/Readback[5]
                    X          INT    1    4    36h  0  RWD  42
                    Y          INT    1    4    36h  0  RWD  68
                    Width      INT    1    4    36h  0  RWD  10
                    Height      INT    1    4    36h  0  RWD  50
                    Direction  INT    1    4    36h  0  RWD  0
                    Axis        INT    1    4    36h  0  RWD  1
                    Logscale    BOOL    1    4    >99d 0  RWD  n
                    Min        DOUBLE  1    8    >99d 0  RWD  0
                    Max        DOUBLE  1    8    >99d 0  RWD  0
                    FGcolor    STRING  1    8    2s  0  RWD  000000
                    BGcolor    STRING  1    8    2s  0  RWD  FFFFFF
                    BDcolor    STRING  1    8    2s  0  RWD  808080
 
<div id="Custom-Button"></div><div id="Custom-Link"></div>
 
 
 
= <span style="color:purple; font-style:italic">Pwd</span> subtree=
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DIR
</div>
 
This optional subtree in the  [[#top|/Custom ODB tree]] is created by the user if [[Custom Page]] write access is to be  [[Custom Page Features#Password protection of ODB variables|password protected]].
 
== <span style="color:purple; font-style:italic"><password></span> ==
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING
* '''Default:'''  ""
</div>
The '''name''' of the optional key(s) in the <span style="color:purple; font-style:italic">/Pwd</span> subtree defines a password that the user must specify to gain access to a [[Custom Page Features#Password protection of ODB variables|password-protected]]
item on a [[Custom Page]].
 
=== Password examples ===
If the password is ''CustomPwd'', the ODB key <span style="color:purple; font-style:italic">/Custom/Pwd/CustomPwd</span> would be defined.
 
By using an explicit name, one can use a single password for all controls on a page, or one could use several passwords on the same page. For example, a shift crew password for the less severe controls could be defined as ''ShiftPwd'', and an "expert" password ''ExpertPwd'' for the critical things.
 
In this case, the ODB would have two passwords defined, i.e.
<span style="color:purple; font-style:italic">/Custom/Pwd/ExpertPwd</span>
<span style="color:purple; font-style:italic">/Custom/Pwd/ShiftPwd</span>
 
The password is of course not secure in the sense that it is placed in plain text into the ODB, but its purpose is to prevent accidental modification, rather than malicious interference.
 
 
 
 
 
= <span style="color:purple; font-style:italic">Images</span> subtree =
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DIR
</div>
 
This optional subtree in the  [[#top|/Custom ODB tree]] is created by the user. It is required if an imagefile (*.gif) is to be displayed on a custom page.
This subtree is also required for any '''labels, bars''' or '''fills''' to be superimposed on the image.
 
<br>
---------
<br>
 
== <span style="color:purple; font-style:italic"><Image-name></span> subtree ==
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DIR
* '''Default:'''
</div>
User-created subdirectory usually named for the corresponding gif-image, e.g. "pol_sc.gif" in the [[#Example|example]] above. For multiple images, multiple subdirectories may be defined. The user
chooses the name of this key.
 
<br>
---------
<br>
 
=== <span style="color:purple; font-style:italic">Background</span>  ===
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING
* '''Default:'''
</div>
 
This key in the  [[#<Image-name> subtree|<image-name> subtree]] contains the path and filename of the image file to be loaded into a custom page. Only '''gif''' format is supported for the image. This optional key is created by the user.
 
<br>
---------
<br>
 
 
=== <span style="color:purple; font-style:italic">Labels</span> subtree ===
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DIR
* '''Default:'''
</div>
User-created subdirectory  in the  [[#<Image-name> subtree|<image-name> subtree]] required if '''labels''' are to be superimposed on an image on a custom page.
 
 
<br>
---------
<br>
==== <span style="color:purple; font-style:italic"><label-name></span> subtree ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DIR
* '''Default:'''
</div>
User-created subdirectory  in the  [[#Labels subtree|Labels subtree]] containing keys to define this label as listed below. There will be a <span style="color:purple; font-style:italic"><label-name></span> subtree for each label superimposed on the custom image.
 
The user creates keys in this subtree with the names and types as listed below. See also the [[#Example|example]] above.
<br>
---------
<br>
 
<div id="Labels Src"></div>
===== <span style="color:purple; font-style:italic">Src</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING [256]
* '''Default:'''
</div>
This key in the [[#<label-name>subtree|<label-name> subtree]] contains the path of a valid ODB Key variable. This is the value to be used for this label on an image.
 
<br>
---------
<br>
 
 
===== <span style="color:purple; font-style:italic">Format</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING [32]
* '''Default:''' "%1.1f"
</div>
This key in the [[#<label-name>subtree|<label-name> subtree]] contains the format for this label on the image. Format specifications (c.f. "printf" in C) are used to convert the value specified by the [[#Labels Src|Src key]] into the output string that appears on the image.
For example,
* "Count Rate:%5d kB/s"  used to display an integer value
* "%5.2f%% iBu" used to display a floating point value. Note "%%" displays the "%" sign.
 
 
<br>
---------
<br>
 
 
===== <span style="color:purple; font-style:italic">Font</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING[32]
* '''Default:''' "Medium"
</div>
This key in the [[#<label-name>subtree|<label-name> subtree]] contains the font size for this label. Supported values are "small",  "medium" or "giant".
 
 
<br>
---------
<br>
 
<div id="Labels X"></div>
===== <span style="color:purple; font-style:italic">X</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT
* '''Default:''' 0
</div>
This key in the [[#<label-name>subtree|<label-name> subtree]] contains the X position for this label in pixels.
 
<br>
---------
<br>
 
<div id="Labels Y"></div>
===== <span style="color:purple; font-style:italic">Y</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT
* '''Default:''' 0
</div>
This key in the [[#<label-name>subtree|<label-name> subtree]] contains the Y position for this label in pixels.
 
<br>
---------
<br>
 
 
===== <span style="color:purple; font-style:italic">Align</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT
* '''Default:''' 0
</div>
This key in the [[#<label-name>subtree|<label-name> subtree]] contains an integer representing Horizontal Alignment for this label. Set to one of 0 (left), 1 (center) or 2 (right).
 
<br>
---------
<br>
 
 
<div id="Labels FGColor"></div>
===== <span style="color:purple; font-style:italic">FGColor</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING [8]
* '''Default:''' "000000"
</div>
This key in the [[#<label-name>subtree|<label-name> subtree]] contains the foreground colour  for this label in the format RRGGBB (hex). See [[#Colour table|colour table]].
 
<br>
---------
<br>
 
 
 
 
<div id="Labels BGColor"></div>
===== <span style="color:purple; font-style:italic">BGColor</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING [8]
* '''Default:''' "FFFFFF"
</div>
This key in the [[#<label-name>subtree|<label-name> subtree]] contains the background colour  for this label in the format RRGGBB (hex). See [[#Colour table|colour table]].
 
<br>
---------
<br>
 
 
 
 
=== <span style="color:purple; font-style:italic">Bars</span> subtree ===
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DIR
* '''Default:'''
</div>
User-created subdirectory  in the  [[#<Image-name> subtree|<image-name> subtree]] required if '''bars''' are to be superimposed on an image on a custom page.
 
 
<br>
---------
<br>
 
 
 
 
==== <span style="color:purple; font-style:italic"><bar-name></span> subtree ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DIR
* '''Default:'''
</div>
User-created subdirectory  in the  [[#Bars subtree|Fills subtree]] containing keys to define this '''bar''' as listed below. There will be a <span style="color:purple; font-style:italic"><bar-name></span> subtree for each bar superimposed on the custom image.
 
The user creates keys in this subtree with the names and types as listed below. See also the [[#Example|example]] above.
<br>
---------
<br>
 
<div id="Bars Src"></div>
===== <span style="color:purple; font-style:italic">Src</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING [256]
* '''Default:'''
</div>
This key in the [[#<bar-name>subtree|<bar-name> subtree]] contains the path of a valid ODB Key variable. This is the value to be used for this bar.
 
 
 
<br>
---------
<br>
 
<div id="Bars X"></div>
===== <span style="color:purple; font-style:italic">X</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT
* '''Default:''' 0
</div>
This key in the [[#<bar-name>subtree|<bar-name> subtree]] contains the X position for this bar in pixels.
 
<br>
---------
<br>
 
<div id="Bars Y"></div>
===== <span style="color:purple; font-style:italic">Y</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT
* '''Default:''' 0
</div>
This key in the [[#<bar-name>subtree|<bar-name> subtree]] contains the Y position for this bar in pixels.
 
<br>
---------
<br>
 
 
===== <span style="color:purple; font-style:italic">Width</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT
* '''Default:''' 10
</div>
This key in the [[#<bar-name>subtree|<bar-name> subtree]] contains the width of this bar in pixels. 
 
<br>
---------
<br>
 
 
 
===== <span style="color:purple; font-style:italic">Height</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT
* '''Default:''' 100
</div>
This key in the [[#<bar-name>subtree|<bar-name> subtree]] contains the height of this bar in pixels. 
 
<br>
---------
<br>
 
===== <span style="color:purple; font-style:italic">Direction</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT
* '''Default:''' 0
</div>
This key in the [[#<bar-name>subtree|<bar-name> subtree]] contains an integer denoting the direction of this bar. It can be either 0 (vertical) or 1 (horizontal).
 
<br>
---------
<br>
 
 
 
===== <span style="color:purple; font-style:italic">Axis</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT
* '''Default:''' 1
</div>
This key in the [[#<bar-name>subtree|<bar-name> subtree]] contains an integer specifying the axis of this bar. It can be either 0 (none), 1 (left) or 2 (right).
 
<br>
---------
<br>
 
===== <span style="color:purple; font-style:italic">Logscale</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' BOOL
* '''Default:''' "n"
</div>
This key in the [[#<bar-name>subtree|<bar-name> subtree]] specifies whether the axis of this bar is logarithmic. Set to "y" for logarithmic, otherwise "n".
 
<br>
---------
<br>
 
===== <span style="color:purple; font-style:italic">Min</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DOUBLE
* '''Default:''' 0
</div>
This key in the [[#<bar-name>subtree|<bar-name> subtree]] contains the minimum value for the axis of the bar.
 
<br>
---------
<br>
 
 
===== <span style="color:purple; font-style:italic">Max</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DOUBLE
* '''Default:''' 10
</div>
This key in the [[#<bar-name>subtree|<bar-name> subtree]] contains the maximum value for the axis of the bar.
 
<br>
---------
<br>
 
 
<div id="Bars FGColor"></div>
===== <span style="color:purple; font-style:italic">FGColor</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING [8]
* '''Default:''' "000000"
</div>
This key in the [[#<bar-name>subtree|<bar-name> subtree]] contains the foreground colour  for this bar in the format RRGGBB (hex). See [[#Colour table|colour table]].
 
<br>
---------
<br>
 
 
 
 
<div id="Bars BGColor"></div>
===== <span style="color:purple; font-style:italic">BGColor</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING [8]
* '''Default:''' "FFFFFF"
</div>
This key in the [[#<bar-name>subtree|<bar-name> subtree]] contains the background colour  for this bar in the format RRGGBB (hex). See [[#Colour table|colour table]].
 
<br>
---------
<br>
 
 
===== <span style="color:purple; font-style:italic">BDColor</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING [8]
* '''Default:''' "808080"
</div>
This key in the [[#<bar-name>subtree|<bar-name> subtree]] contains the border colour  for this bar in the format RRGGBB (hex). See [[#Colour table|colour table]].
 
<br>
---------
<br>
 
 
=== <span style="color:purple; font-style:italic">Fills</span> subtree ===
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DIR
* '''Default:'''
</div>
User-created subdirectory  in the  [[#<Image-name> subtree|<image-name> subtree]] required if '''fills''' are to be superimposed on an image on a custom page.
A "fill" can change the colour of a region on the image. The contents of the ODB key defined in [[#Fills Src|Src]] determines the colour as defined by the Limits and Fillcolors arrays.
 
 
<br>
---------
<br>
==== <span style="color:purple; font-style:italic"><fill-name></span> subtree ====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' DIR
* '''Default:'''
</div>
User-created subdirectory  in the  [[#Fills subtree|Fills subtree]] containing keys to define this fill as listed below. There will be a <span style="color:purple; font-style:italic"><fill-name></span> subtree for each fill superimposed on the custom image.
 
The user creates keys in this subtree with the names and types as listed below. See also the [[#Example|example]] above.
<br>
---------
<br>
 
<div id="Fills Src"></div>
===== <span style="color:purple; font-style:italic">Src</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' STRING
* '''Default:'''
</div>
This key in the [[#<fill-name>subtree|<fill-name> subtree]] contains the path of a valid ODB Key variable. Unless a [[#logic_calculation|logic calculation]] is included,  the contents of this key determines the value used for the fill
on the image defined by the key [[#Background|Background]] (see fill-name "SSLevelBox" in the [[#Example|example]] above).
<div id="logic_calculation"></div>
If a '''logic calculation''' is included, up to two operators are permitted, and they must be either
;
:    ">>" (shift to the right) or
:    "&" (bitwise AND).
 
A hexadecimal number preceded by "0x" is also supported.
This feature enables a SRC key that is actually a bit pattern to be used for a fill.
 
In the following example, a gas valve is open if bit 14 of PLCR[136] is TRUE and closed if bit 15 is TRUE (bits are from 0-15). The contents of PLCR[136] are shifted to the right by 14 and then a logical AND is performed to clear all but the lowest 2 bits. The result is used to colour the valve body lime green if the valve is open, and black if it is closed. If neither bit is set (i.e. the valve is neither open nor closed) the valve body is coloured red to indicate an error. Anything else (i.e. both bits TRUE) will give a gray colour.
 
[local:t2kgas:S]/>ls /custom/images/Pump_20.gif/fills/d2vb3
Src                            /Equipment/TpcGasPlc/Variables/PLCR[136] >> 14 & 0x3
X                              905
Y                              536
limits
                                0
                                1
                                2
                                3
Fillcolors
                                808080
                                00FF00
                                000000
                                808080
                 
 
Any fill that requires a more complicated calculation than this will have to be done using Javascript in the custom page. The calculated value can then be stored in an ODB key, which is then defined as a Fill [[#Fills Src|Src]] key.
 
<br>
---------
<br>
 
<div id="Fills X"></div>
===== <span style="color:purple; font-style:italic">X</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT
* '''Default:'''
</div>
This key in the [[#<fill-name>subtree|<fill-name> subtree]] contains the X position for this fill in pixels.
 
<br>
---------
<br>
 
<div id="Fills Y"></div>
===== <span style="color:purple; font-style:italic">Y</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT
* '''Default:'''
</div>
This key in the [[#<fill-name>subtree|<fill-name> subtree]] contains the Y position for this fill in pixels.
 
<br>
---------
<br>
 
 
===== <span style="color:purple; font-style:italic">Limits</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT array
* '''Default:'''
</div>
This key in the [[#<fill-name>subtree|<fill-name> subtree]] is a variable-length array containing the values of the limits that when reached cause a colour change. Array length must match length of array <span style="color:purple; font-style:italic">Fillcolors</span>.
 
<br>
---------
<br>
 
 
===== <span style="color:purple; font-style:italic">Fillcolors</span> =====
<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">
* '''Type:''' INT array
* '''Default:'''
</div>
This key in the [[#<fill-name>subtree|<fill-name> subtree]] is a variable-length array containing the colours corresponding to the [[#Limits|Limits]] array.  The colours are defined in the format RRGGBB (hex). See [[#Colour table|colour table]].  Array length must match length of <span style="color:purple; font-style:italic">Limits</span> array.
 
<br>
---------
<br>
 
 
 
 
 
 
= Colour Table =
For convenience, a colour reference table is shown here for some common colours:
{| class="wikitable"  style="margin: auto; ext-align: left; width: 25%; background-color: rgb(255, 255, 255);" border="3" cellpadding="2" cellspacing="2"
 
|-
| colspan="1" rowspan="1" style="vertical-align: top; background-color: rgb(204, 204, 255); font-weight: bold;" | Colour
| colspan="1" rowspan="1" style="vertical-align: top; background-color: rgb(204, 204, 255); font-weight: bold;" | RGB Value
 
|-
| colspan="1" rowspan="1" style="vertical-align: top; color: black; font-weight: normal;" | Black
| colspan="1" rowspan="1" style="vertical-align: top; color: black; font-weight: normal;" | 000000
 
|-
| colspan="1" rowspan="1" style="vertical-align: top; background-color: silver; color: white; font-weight: normal;" | White
| colspan="1" rowspan="1" style="vertical-align: top; background-color: silver; color: white; font-weight: normal;" | FFFFFF
 
|-
| colspan="1" rowspan="1" style="vertical-align: top; background-color: white; color: red; font-weight: normal;" | Red
| colspan="1" rowspan="1" style="vertical-align: top; color: black; font-weight: normal;" | FF0000
 
|-
| colspan="1" rowspan="1" style="vertical-align: top; background-color: silver; color: lime; font-weight: normal;" | Lime green
| colspan="1" rowspan="1" style="vertical-align: top;  background-color: silver; color: lime; font-weight: normal;" | 00FF00
 
|-
| colspan="1" rowspan="1" style="vertical-align: top; background-color: white; color: blue; font-weight: normal;" | Blue
| colspan="1" rowspan="1" style="vertical-align: top; color: black; font-weight: normal;" | 0000FF
 
|-
| colspan="1" rowspan="1" style="vertical-align: top; background-color: silver; color: yellow; font-weight: normal;" | Yellow
| colspan="1" rowspan="1" style="vertical-align: top; background-color: silver; color: yellow; font-weight: normal;" | FFFF00
 
|-
| colspan="1" rowspan="1" style="vertical-align: top; background-color: white; color: grey; font-weight: normal;" | Grey
| colspan="1" rowspan="1" style="vertical-align: top; color: black; font-weight: normal;" | 808080
 
|}
 
[[Category:ODB Tree]] [[Category:Custom]]

Latest revision as of 22:00, 30 October 2026

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