[Next] [Previous] [Up] [Top] [Contents] [Index] |
Chapter 6 Monitors
1. General Characteristics and Properties
This section covers the general characteristics of monitors and the properties they have in common.
1.1. Creating Monitors
All monitors are found in the same submenu of the Create menu. Figure 6-1 shows the submenu that has the options for the five types of monitors:
- 1. Indicators
- 2. Bars
- 3. Text update objects
- 4. Meters
- 5. Byte widgets
To create a monitor:
As with all other objects, you can change the size and position of the monitor more exactly by changing the size and position properties in its property sheet.
- 1. Bring up its submenu and choose the option for the monitor you want to create.
- 2. The same thing occurs as when you create any other type of object: the mouse's pointer appears as a tiny box with a dot in the middle and as you move the mouse, a rectangular outline consisting of dashes appears and expands.
- 3. Move the mouse until the outline is the desired size.
Monitors inherit the following defaults from the Display Attributes window:
Monitors do not inherit the 'edge and fill style' properties, so they cannot inherit these from the attributes window. At run-time, monitors always have a solid border and are always filled solidly. Remember monitors do not take on their real appearance until they are connected to channels at run-time.
|Monitors inherit the 'background and foreground color' attributes. Monitors have 'foreground and background color' properties with which you can override these defaults.|
|Monitors, like every other object, inherit the 'default color modifier' attribute, so their 'color modifier' properties will be set to static if the default attribute is set to static, and rule if the attribute is set to rule.|
|Monitors inherit the color rule in the 'default color rule' attribute, regardless of whether the default color modifier is set to static or rule.|
|Monitors inherit the 'default channel name', just as any other type of object does.|
1.2. Property Sheets
Each monitor has several properties in their property sheets that are common to all objects, properties like 'horizontal and vertical size,' 'horizontal and vertical position,' 'color modifier,' and 'color rule' arguments. See Chapter 4, Creating and Manipulating Objects, for more information on how to configure these properties. This section instead covers the general properties unique to monitors. While other objects in other subclasses may have one or more of these properties, they have a slightly different meaning for monitors.
There are nine properties we will discuss here:
As for the rest of these properties, not all are significant for every type of monitor. For example, the 'label type' property has no significance for text update monitors, even though it appears in its property sheet, and the 'precision' property has significance only for the text-update and indicator monitors.
- 1. channel to control or monitor
- 2. foreground color
- 3. background color
- 4. label type
- 5. high display limit
- 6. low display limit
- 7. precision
- 8. specify new units
- 9. units modifier
- 10. 3-D Border
- 11. conversion
- 12. conversion params
Figure 6-2 shows the property sheet for a meter object. Meters have no properties unique to themselves that other monitors do not have. So all the monitors have the properties shown in the figure, although other monitors have additional properties.
A Meter's Property Sheet.
1.2.1. Channel to Control or Monitor
This property is important for every type of monitor. Every monitor must have a valid channel name entered in this property. If this property specifies no channel or the channel's name is not a valid one, at run-time the monitor will display an error message.
Remember from the introduction that the term channel can refer to any record or any record's field in an EPICS database that is accessible via Channel Access. However, since Channel Access was untied from the EPICS database, DM can now monitor and control non-EPICS process variables. Therefore, how you specify a channel name depends on the context you are working in. The main thing to remember is that channel names are case sensitive. Also, remember that DM passes to Channel Access the entire name string, including spaces.
Below follows a description of EPICS record names. Though EPICS-specific, it should help even those working with non-EPICS process variables.
Basically, the format for a channel name is the record's name in the database and then the field name. These elements are separated by a period. In addition, the record name may consist of several elements usually separated by a colon, identifying which database or subsystem it belongs to, as well as the record's particular name within the database. An example of a channel name that you might enter in the text-entry line for the 'channel to control or monitor' property might resemble the following:
Demo:ao1 is a record's name in a database. Demo is a prefix used to identify the record as belonging to a particular system. Ao1 is the record's unique name within that system. SEVR refers to a field name in the record. Record names are specified when the database is configured. Field names are the same for each record type. Note that everything is case sensitive. Field names must always be upper case, while the record name must match whatever the case is of the database record.
Every channel name must consist of, at least, a record name. A field name is optional because DM will automatically connect to the VAL field of a channel when no field name is specified, though if you do specify the VAL field in a channel name, DM will still connect to the VAL field properly.
In EDD you can specify macros as part of the channel name and then expand the macro at run-time into a real channel name. This is so that the same object or objects in a display can connect to different channels without someone having to bring up the object's property sheet and change the channel name. The format for a macro is simple:
chan is the macro and
SEVR is a field name. The dollar sign and parentheses are characters that DM recognizes as containing a macro. The macro can be any character string
chan in the above example could be
channame1 or whatever.
Macros can also be nested; that is, a macro can be placed within another macro. So, for instance, you could use two macro strings, one within the other, in place of two elements in a record name. An example of nested macros would be:
Macros can be expanded from the command line when DM is started. When a display is specified on the command line, the macros can be replaced by a real channel name by using the following format:
macro = analog_out1
macro is the macro string and
analog_out1 is its expansion. Macros can also be expanded using the properties in a related display callup object which is classified as a controller object. This object is used to choose other displays to open. It has properties in which you can specify macro expansions in the above format.
1.2.2. Foreground and Background Colors
Unlike graphics objects, monitor objects have two color properties that they inherit from the Display Attributes window: 'foreground color' and 'background color.' You can override the inherited colors simply by changing these color properties. Simply hold down the right mouse button on the color property to bring up the color menu. Then choose the new color.
The background color is the static part of the monitor. All values and text are in the foreground color, so anything in the foreground color displays the information about the process variable. For instance, in Figure 6-3 the meter's background is white, while the information it displays is another color.
Keep in mind that the foreground color of an object may be overridden at run-time when the object's color modifier property is set to rule. When a color rule modifies an object, if the conditions in the expressions of the color rule exist, the foreground color of the monitor will turn the color specified in the expression. See Color Rules in Chapter 3 for more about color rules and how they affect objects.
1.2.3. Label Type
This property determines the amount of detail and information each monitor displays at run-time. It is not used for text update monitors.
It has four settings:
The section on each object will discuss exactly how these different settings affect the appearance of bars, indicators, and meters. For now, just note that none displays the bare essentials of a meter, bar, or indicator; that outline displays an outline around the meter, bar, or indicator; that limit displays an outline in addition to the high and low end values for the range of the meter, bar or indicator (see the next section on high and low display limits); and that channel displays an outline, the high and low end values, and the channel name that the bar, meter, or indicator monitors. Thus, the setting that displays the most information and is the most helpful to the operator at run-time is the channel setting, but sometimes, especially when monitors are grouped together within a display, you may want to reduce the amount of information each individual monitor displays.
- 1. none
- 2. outline
- 3. limits
- 4. channel
To change the setting of the label type property:
- 1. Hold down the right mouse button on the property, bringing up the menu with the four settings described above.
- 2. Choose the desired setting.
1.2.4. High and Low Display Limits
These properties have no significance for text update objects or byte widgets. Bars, meters and indicators all use the 'high and low display limit' properties, though you can configure the object not to display them.
At run-time, bars, meters, and indicators all represent the value of an analog channel in a graphical format as somewhere in a range of values. A meter, for instance, simulates a needle that moves up and down within a display range, as in Figure 6-3, where the display range is 0 and 100. This display range is determined by the 'high and low display limit' properties.
If you enter in values for the 'high and low display limit' properties, DM will use those values as the upper and lower limit for the display range. You can enter in any number, positive or negative, for the 'high and low display limit' properties, as long as the number in the 'high display limit' property is greater than the number in the 'low display limit' property. If you do not enter in a value, but leave the values for both properties at zero, then the monitor will retrieve the range limits from the database. Note that if you enter in a value for either property--'high display limit' or 'low display limit'--the other property ceases to retrieve its value from the database and gets its value from the property entry line.
A Meter with DIsplay Limits.
The 'precision' property is only available version 2.3 and later and, for monitors, applies only to indicators and text-update objects. Prior versions have this property, but it wasn't implemented. For versions 2.3 and later, when a number from 0 through 20 is entered in this field, the text-update objects or indicator will use this number to determine the decimal precision with which to display the value of the channel. If 0, only the integral part of the channel's value is displayed.
When a -1 is entered into this property, the precision is controlled by the database. Often, the precision is retrieved from the PREC field, or else a global record support routine returns the value for the precision. The precision may be different for different fields in the same record. For versions of EDD/DM prior to 2.3, this is always how the precision is determined. Be aware that the precision affects all numerical values that the object displays, even the display limits.
1.2.6. Specify New Units
1.2.7. Units Modifier
The 'units modifier' property has significance only for text update objects. It has no effect on bars, indicators, or meters. On text update objects this property appends the value for the EGU (engineering unit) field to the value of the channel that the object is monitoring. The EGU field is a string which is used to describe the quantity that the record measures, like VOLTS or Ohms.
The units modifier property is a choice button with the choices none and append. If the property is set to none, the text update object will display the value of the channel by itself at run-time. If the property is set to append, the text update object will append the string of the EGU field to the current value.
1.2.8. 3-D Border
This property is available as of EDD version 2.2. This property contains three options: none, outward, and inward. With the outward and inward options you can configure the monitor to appear with a border at run-time that gives the monitor a three-dimensional appearance. The outward option makes the monitor to appear as if it were raised up from the display while the inward option makes it appears as if it were sunken into the display. The none option makes the monitor to appear without any such border. Figure 6-4 shows three different monitors, one without a 3-D border and the other two with each type of 3-D border.
3-D Borders, Run-Time Appearance.
This property is available as of version 2.4. With it a monitor can specify a logical or mathematical conversion to be performed on the value of the monitor's channel at run-time. The monitor then displays the converted value. For example, a monitor can specify that the channel's value be divided by ten. When the channel's value is retrieved, DM will divide the value by ten and display it. So if the value retrieved is 200, for example, the monitor will display the channel's value as 20.
To perform a conversion, in the conversion property specify
dmCalcIn= and then the conversion expression. The value of the channel is specified as the operand 'A'. For example, to divide the channel's value by 10, the following should appear in the 'conversion' property:
dmCalcIn = A/10
The conversion property supports all the calculations and operators supported by the EPICS Calculation record, because they both use the same module. This module supports most of the operators available in the C programming language: the arithmetical operators *, /, -, +, and %, as well as the logical operators such as && and ||. Most of the functions in the ANSI C math library are also supported, such as the trigonometric functions, though the actual form of the function may differ, so consult the chapter on the Calculation record in the Record Reference Manual for more information. As a last example, here is how you would take the sine of the channel's value:
|NOTE: The expression that appears after the = sign cannot have any spaces in it. That is, there can be a space after the = sign or after the expression, but not in the expression itself, so the following would cause an error because there is a space between the operands and the operator:|
dmCalcIn = A * 50
1.2.10. Conversion Parameters
- 1.1. - Creating Monitors
- To create a monitor:
- 1.2. - Property Sheets
- 1.2.1. - Channel to Control or Monitor
- 1.2.2. - Foreground and Background Colors
- 1.2.3. - Label Type
- To change the setting of the label type property:
- 1.2.4. - High and Low Display Limits
- 1.2.5. - Precision
- 1.2.6. - Specify New Units
- 1.2.7. - Units Modifier
- 1.2.8. - 3-D Border
- 1.2.9. - Conversion
- 1.2.10. - Conversion Parameters
EDD/DM User's Manual, 2.4 - 27 MARCH 1997
[Next] [Previous] [Up] [Top] [Contents] [Index]