[Next] [Previous] [Up] [Top] [Contents] [Index] Chapter 7 Controllers 1. General Characteristics and PropertiesThe property sheets of controller objects are not quite as uniform as those of monitors. Therefore, there are only a few characteristics and properties general enough to be discussed in this section. For characteristics and properties common to all objects, see Property Sheets in Chapter 4 . 1.1. Creating ControllersAll controllers are found in the same submenu of the Create menu. Figure 7-1 shows this submenu with options for the eleven types of controllers:
To create a controller:
Controller objects inherit the following defaults from the Display Attributes window:
1.2. Property SheetsEach controller 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 controllers. The section on each controller discusses any properties unique to it.There are nine properties we will discuss here:
Figure 7-3 shows the property sheet for a valuator. 1.2.1. Channel To Control or MonitorSome controllers that don't actually connect to channels such as execute script and kill display objects lack this property. The other controllers (valuators, text entry objects, choice and message buttons, and menus) all have this property, and a channel name must be specified in it.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. 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, identifying which database or subsystem it belongs to, as well as the record's particular name within that subsystem or database. However, record naming conventions vary from project to project and from site to site. An example of a channel name might resemble the following:
demo:ao1.SEVRDemo:ao1 is a record's name in a database. Demo is an element of a record name that identifies it as a record in a certain database, in this case the demo database. Ao1 is the record's unique name. Record names must be unique for the same TCP/IP subnet. SEVR, on the other hand, refers to a field name in an EPICS record. Any 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 as part of the channel name. This goes for channel names with macros. If you do specify the VAL field in a channel name, DM will still connect to the VAL field. In EDD you can use macros that you can replace at run-time by a real channel name when you run DM. You would do this when you want to use one or more objects in a display to connect to different channels. Instead of specifying specific names of records in specific databases, you can use macros. Thus, the following channel name in the 'channel to control or monitor' property,
$(chan).SEVRcould be used to monitor or control the SEVR field for any EPICS record that contains such a field. All you have to do is expand the macro into a real channel name. The dollar sign and parentheses are characters that DM recognizes as containing a macro, the macro string being any string of characters. For example, chan in the above example could be channel or name or 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 macros, one within the other, in place of two elements in a record name. An example of nested macros would be:
$(system_name$(subsystem_name).OMSLSee Chapter 9, DM: Run-time Operation, for information about replacing macros at run-time. 1.2.2. Foreground and Background ColorsLike monitors, controllers have two color properties that they inherit from the Display Attributes window: 'foreground color and background color.' You can override these inherited colors simply by changing them in the controller's property sheet. Simply hold down the right mouse button on the color property to bring up the color menu. Then choose the color you want.The background color is the static part of the monitor; that is, it is the color of the object's background. All values and text are in the foreground color, so anything in the foreground color displays the actual values and text that are meaningful at run-time. Keep in mind that the colors of these properties may be overridden at run-time when the object's 'color modifier' property is set to rule. When a color rule modifies an controller's color, if the conditions in the expressions of the color rule exist, the foreground color of the controller will turn to the color specified by the color rule. See Color Rules in Chapter 3 for more about color rules and how they affect objects. When a dynamic object fails to connect to a channel at run-time, for whatever reason, the object will be white and will show an error message. 1.2.3. PrecisionThe 'precision' property is only available as of EDD/DM version 2.3 and only applies to valuators. Prior versions have this property, but it has no effect on the run-time behavior of the object. For versions 2.3 and later, when a number from 0 through 20 is entered in this field, the valuator will use this number at run-time 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 number less than zero is entered into this property, the precision will be determined 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.4. Specify New UnitsNot yet implemented.1.2.5. Units ModifierThis property applies to text update monitor objects, not to text entry objects or any other controller objects.1.2.6. 3-D BordersThis property is available as of EDD version 2.2. It contains three options: none, outward, and inward. With the outward and inward options you can configure the controller to appear with a border at run-time that gives the it a three-dimensional appearance. The outward option makes the controller to appear as if it were raised up from the display while the inward option makes it appear as if it were sunken into the display. The none object makes the it appear without any 3-D border.Note that related display callup objects, execute script objects, and kill display objects do not have a '3-D Borders' property. Figure 7-2 shows three different objects, one without a 3-D border and the other two with each type of 3-D border. 3-D Borders, Run-Time Appearance. 1.2.7. Conversion and Conversion ParametersNot implemented for controllers.
EDD/DM User's Manual, 2.4 - 27 MARCH 1997 [Next] [Previous] [Up] [Top] [Contents] [Index]
|
L O S A L A M O S N A T I O N A L
L A B O R A T O R Y Copyright � 1996 UC Disclaimer
|