Introduction

With the introduction of tools like EPICS and VSystem, the task of building complex distributed control systems has been greatly simplified. Furthermore, extending both the content and functionality of these systems is a trivial task. This is generally not the case for applications that have been built on top of these core components and in most cases this is acceptable. There is one class of applications, namely interactive graphical display tools, where the lack of user extensibility is a severe liability. This deficiency arrests the growth of the suite of common display elements and prevents the development and customization of site specific elements for special requirements. Just as EPICS record and device support is easily extended without in-depth knowledge of the core software, so also should the elements of a display tool be extensible, again without in-depth knowledge of either the core behavior of the display tool or the more esoteric details of window-based graphical user interface systems.

Edm is an attempt to fulfill this objective.

Figure 1 is a screenshot showing most of the display elements provided by the core object library.

Program Execution

Synopsis


edm [ option option ... ] [ filename filename ... ]


Options


-x

execute file on open


-nodeit

disallow edit mode


-m "<sym1>=<val1>,<sym2>=<val2>,..."

build macro substitution list


-ctl <string process variable name>

writing a file name to this pv instructs edm to open and execute the display file


-h, -?, -help

displays help information


-v, -version

displays current version information





Figure 1
edm core component examples

Environment Variables



EDMFILES

Location of fonts.list and colors.list, overrides /etc.


EDMOBJECTS

Location of edmObjects, the edm component object file, overrides /etc.


EDMDATAFILES

Location of display files and display scheme files, overrides ./. The variable takes two values as given below:



<project directory>:<user directory>


Bash example:



export EDMDATAFILES=/usr/project/screens:/home/me/myscreens


When a display is opened in execute mode, the user directory is searched first.


Program Operation

When edm executes, the small main window shown in figure 2 is created.



Figure 2

File Menu functions



Figure 3

Figure 3 illustrates the File menu items. Each is described below.


New

Create a new display file


Open

Open a display file, default directory is the project file directory


Open User File

Open a display file, default directory is the user file directory


Import Exchange File

Read and convert a display information exchange file


Refresh User Library

Experimental use


Exit

Exit edm


The behavior of each menu item is self evident.

View Menu Functions



Figure 4

Figure 4 illustrates the View menu items. Each is described below.


Messages

Open information message window


PV List

Open pv list dialog box


Screens

Open information message window and show names of display files that are currently open; total number of open files is also displayed



The behavior of each menu item is self evident with the exception of the PV List item.

When PV List is chosen, the dialog box shown in figure 5 opens:



Figure 5 & Figure 6

If a file name containing a list of pv names is entered in the File field and the enter key pressed, the list box will be filled with the contents of the file. At any time, a filter value may be entered (currently one of <string>*, *<string>, or <string>). When the enter key is pressed the list will be so qualified. In addition, a prefix string may be entered in the corresponding box and the enter key pressed. Later, when display elements are being created and the user selects a pv from the pv list box, a string consisting of the prefix concatenated with the selected pv will become the current selection and will appear in the text box at the bottom of the pv list dialog box. A fully populated example of this is shown in figure 6. This string may then be pasted into any other dialog box with the middle mouse button.

Creating New Displays


To create a new display, select new from the main window file menu. This creates a new, empty display window. The window may be sized as desired and various display attributes may be set by clicking the middle button in the new display window and selecting Display Properties from the popup menu. This opens a dialog box with which various display attributes may be set. There is one group of attributes that require special consideration. The following fields comprise the current display scheme:


Display Fg

Display window foreground color


Display Bg

Display window background color


Text Fg

Default text color


1st Control Fg

Default graphics foreground color #1


2nd Control Fg

Default graphics foreground color #2


1st Control Bg

Default graphics background color #1


2nd Control Bg

Default graphics background color #2


Top Shadow

Default top shadow color


Bottom Shadow

Default bottom shadow color


Default Text Font

Default font for text objects


Default Button Font

Default font for button objects


Default Control Font

Default font for text objects inside other display objects

When edm starts, the file default.scheme in the current project directory defines the display scheme for all new displays. Alternatively, display schemes may be interactively loaded by name. The display scheme attributes are used as color and font defaults in the creation of the various control element objects. When a new project is initiated, edm may be used to create a new display scheme by opening a new window, setting the color and font display properties, and saving the scheme as default.scheme in the project file directory. A display scheme is saved by clicking the middle button in the display window and selecting Save Display Scheme from the popup menu.

After the display attributes have been properly set, display element objects may be created as desired and the display file saved by clicking the middle button in the display window and selecting Save As from the popup menu. This opens a dialog box in which the file name may be entered. Note that it is not necessary to enter the file extension (.edl).

Note that the display title may contain symbols that will be expanded in execute mode (see the section entitled Editing Object Properties for more information on symbol expansion).

Comments in Edm Display Files

Comment lines and blank lines may be inserted into the front of edm data files. These lines will be read in and wrtten out again when the file is edited. Therefore, edm data files may contain RCS markers and other comment information.


Edit Mode Operations

Creating Display Objects

Display objects are created by dragging a rectangle with the left mouse button and releasing the button. In most cases, the size of the rectangle will correspond to the initial size of the display object being created. After the button is released, a popup menu will be displayed from which an object category may be selected. Selecting a category opens an additional menu from which the display object may be selected. When an object name is chosen, a property dialog box opens in which the display object properties are specified. This dialog box contains the standard OK, Apply, and Cancel buttons. The functions provided by these buttons may also be invoked by double-clicking the left, center, or right mouse button. The left button corresponds to OK, the center to Apply, and the right to Cancel. This is especially useful during an edit operation, where perhaps only one attribute is being changed. The double-click operation can be used to minimize mouse motion.

Display object properties will be discussed for each individual object in a later section.


Selecting Objects

Objects may be selected as follows:


Left click selects one object


Left clicking on a selected object performs an edit operation.


Left clicking on the display background deselects all objects.


Shift-left click adds an unselected object to the set of selected objects or removes a selected object from the set of selected objects.


Middle dragging a box from top-left to bottom-right adds an object to the set of selected objects if the box encloses the entire extent of the object.


Middle dragging a box from bottom-right to top-left adds an object to the set of selected objects if the box encloses at least one corner of the object.


Control-left click Is used to cycle through a number of objects of similar size that lie on top of each other. One and only one object must be selected for this to have any effect.


Objects may be deselected by left clicking on the display background or by clicking the middle button in the display window and selecting Deselect from the popup menu.

Moving and Resizing Objects

When objects are selected, eight control points appear on the boundary of the object. Objects are moved by placing the mouse cursor inside the boundary of an object, clicking the left mouse button, and dragging the object to a new location. Objects are resized by placing the mouse cursor over one of the eight control points and left-click dragging the control point to a new location. Once the motion has begun, an arrow key may be pressed to disengage the mouse and engage an arrow keypress pixel-by-pixel motion instead. As before, the operation completes when the mouse button is released. If several objects are selected, they will be moved or resized together. Alternatively, the display object position and size may be specified in the object property dialog box during a create or edit operation.

It is difficult to move very small objects because the control points overlap one another. As a result, a move operation may be forced by control-clicking the left button anywhere on an object and dragging the object to a new location.

If the display window property Snap to Grid has been turned on, the position and size of an object will be constrained accordingly.

Editing Object Properties

Left-clicking on a selected object opens the object property dialog box. If more that one object is selected, pressing the OK button (or double-clicking the left mouse button) will complete the edit of the current object and open the property box for the next one. This continues until each object has been edited or the cancel button is pressed. Editing a group of objects (that have been explicitly grouped) proceeds in a similar manner. Each individual object is edited in succession until all edits have completed or until the cancel button is pressed.

Symbol Substitution

When edm is started, a list of symbol=value pairs may be entered from the command line. These symbols may be referenced in the specification of certain object properties by embedding the form


$(symbol)

with a string. A simple example will illustrate this.

Suppose edm was started as


edm -m "1=one"

This associates the value one with symbol 1. Now if an object property is specified as


$(1)_two_three

then, in execute mode, the property value would be expanded to one_two_three. Multiplexor objects can also affect the value of symbols in execute mode.

Edit Mode Display Window Menu Operations

The following menus may be opened by clicking the middle button on the display window background. Three menus are available and depend on the number of objects currently selected.




Most operations function in a self evident manner. Operations which require additional information are discussed below.

Operation Explanation

Edit Outlier Searches for objects that have become positioned off the visible portion of the display and, if any are found, opens the property dialog box for the first one found.


Center

Centers a group of objects relative to the center position of a reference object. The operation works as follows: if no objects are selected and then all objects are selected at once, the leftmost or topmost object is taken as the reference for horizontal or vertical centering operations respectively; if, one the other hand, one object is selected and then the remaining objects are selected, the first selected object is taken as the reference object.


Size

Sizes a group of objects relative to the size of a reference object. The operation works as follows: if no objects are selected and then all objects are selected at once, the topmost object is taken as the reference for all resizing operations; if, one the other hand, one object is selected and then the remaining objects are selected, the first selected object is taken as the reference object.


Edit

Edits either the display attributes (fonts & colors) or the PV names for a selected group of objects.


Execute Mode Operations

Execute Mode Display Window Menu Operations

The following menu may be opened by clicking the middle button on the display window background.




Most operations function in a self evident manner. Operations which require additional information are discussed below.

Operation Explanation


Toggle Title

Toggles the title contents between the display title string and the display file name. This is useful when edm is executing with the noedit option and the display file name needs to be discovered.

Drag and Drop Operations

It is often useful to be able to drag-and-drop a PV name from a display object into another application (e.g. StripTool). Core components which contain PVs support this operation via the middle mouse button. Several components contain multiple PVs and it is therefore necessary to select the drag-and-drop source is these cases. This is accomplished by shift-clicking the middle button over the object and selecting the source PV from a menu of choices.

Control Object Stacking

Objects that have not been implemented as motif widgets may be stacked on top of each other to produce multiple actions per pointer click, i.e. clicking on a point lying within the boundaries of N objects will affect all N objects. The following core objects may be used in this manner:


Button


Message Button


Related Display


Shell Command



Core Display Objects

Objects will be listed by category. Categories include Graphics, Monitors, and Controls. Note that several control objects may also be used as monitors.


Graphics

Circle

Attributes and behavior are self evident.

Alarm PV and Visibility PV may contain symbols.

Arc

Attributes and behavior are self evident.

Alarm PV and Visibility PV may contain symbols.

Dynamic Symbol

Dynamic symbols exist primarily to build symbol catalogs with a minimum amount of screen real estate. They may also be used to achieve simple animation. For more information on building symbols, see the section entitled Symbol below. A description of some attributes follows.

Attribute Description


DynSymbol File

Symbol file name. This is nothing more than a normal edm display file that has been created according to certain specified rules. These will be described in the section entitled Symbol below.


Use Gate

If this box is checked, The Gate Up PV and Gate Down PV fields should contain valid names. When the Gate Up PV contains a value equal to the Gate Up Value, the symbol will cycle upward through its states at a rate give by Rate (in seconds). The Gate Down properties work in a similar manner, causing the symbol to cycle downward through its states.


Continuous

Checking this box makes the symbol cycle upward through its states at a rate given by Rate (in seconds).


Initial

Sets the initial display state of the symbol

Note that state zero is never displayed, not even if the Initial field is set to 0.

Other attributes are self evident.

Gate Up PV and Gate Down PV may contain symbols.

GIF Image

Attributes and behavior are self evident.

Lines

Attributes and behavior are self evident, but lines are created and edited unlike most other objects. The procedure for creating lines begins like any other object, i.e. a box is drawn with the left mouse button and a property box opens. After the OK button is pressed, however, the behavior changes. At this point, the mouse becomes dedicated to creating and editing line segments. Button action versus function is listed below.


Action

Operation


Left Click

Create a line end point


Shift-Middle-Click

Delete most recently created end point


Middle-Drag

Move a line end point; the mouse cursor must be touching the end point to be moved at the initiation of the drag operation


Shift-Left-Click

Exit line create mode

When the left mouse button is clicked on a selected line object, the menu shown in the figure below is displayed:




The user may then choose to edit line properties via the dialog box or line segments via the line segment create/edit mouse operations.

Alarm PV and Visibility PV may contain symbols.

Rectangle

Rectangle attributes and behavior are self evident with the exception of the invisible flag. This flag is only used in conjuction with symbols and will be discussed in a following section.

Alarm PV and Visibility PV may contain symbols.

Static Text

Attributes and behavior are self evident.

Alarm PV, Visibility PV, and Value may contain symbols.


Monitors

Bar

The bar object maps the value of a pv to a bar length.When the initial box is drawn to create a bar object, the aspect ration of the box determines the orientation of the created bar object.


Attribute

Description


Readback PV

Primary pv; if Null PV is blank, bar length represents the value of this pv


Null PV

If non-blank, then the bar length represents the difference between the value of the Readback PV and the value of this pv


Label

Literal value used when Label Type is Literal


Scale Format

f maps precision to the number of decimal places



g maps precision to the number of significant digits



e maps precision to the number of decimal places but value always includes exponent

Other attributes are self evident.

Readback PV and Null PV may contain symbols.

Message Box

The message box objects provides a simple scrollable message log window that may be associated with a log file. Values written to the string pv Readback PV are logged to the window and optionally logged to the associated file. The value may end with "\n" which causes the message log window to advance to a newline and puts a newline into the log file. When the log file fills up (as determined by Max File Size) it is renamed to <name>_2. Any existing file of this name is deleted.

All attributes are self evident.

Readback PV may contain symbols.

Symbol

The symbol object maps the value of a pv or a group of pvs into 1 of N images contained in another edm display file.


Attribute

Description


Symbol File

Symbol file name. This is nothing more than a normal edm display file that has been created according to certain specified rules.


Binary Truth Table

If checked, all pv names listed are mapped into a single bit of the final value that determines the image to be displayed. The first pv in the list corresponds to bit 0, the second to bit 1, and so on. Each pv is considered to have a value of 0 if the actual numerical value is also 0. Otherwise, the value is considered to be 1. This value, 0 or 1, is then mapped into the associated bit position and all bits are considered to determine the final numerical value.



If not checked, only the first pv in the list is used in determining the displayed image.


Number of Items

Total number of images in the symbol. This must be less than or equal to the actual number of images in the symbol file.


Item Number

This field is special in that in selects one element of a group of array fields labeled <= and <.


>= and <

These fields are used to determine a value match against the value of one or a group of pvs. The first match determines the image that will be displayed.

Note that image (and item) number 1 is reserved for the out-of-band condition and the value range should reflect this fact. If not, image 1 will be displayed for the specified range of values and also for the case in which the value of the pv matches none of the specified ranges.

Note also, in edit mode, image number 2 is displayed.

All other attributes are self evident.

All PV Names may contain symbols.

Creating a Symbol File

A legal symbol file is one which contains N non-nested groups of objects. The image number corresponds to the stacking level of the grouped object, i.e. The lowest object is image 1 and the highest object is image N. So a symbol file may be created by the following steps.

This is, at best, a tedious procedure. As a result, a method of automating this process is included. This procedure is outlined below and relies on the use of the invisible rectangle. Here are the steps.


Controls

Text

The text control displays the value of a pv as text. This control is commonly used as a monitor.


Attribute

Description


Fg Color

Notice the text field to the right of this attribute. The name of a pv may be entered here. If so, the integer value of the pv is mapped to the corresponding color in the edm color pallatte. This color is then used for the text foreground color in execute mode.


Use Display Bg

Ignore Bg Color attribute, use display background color instead.


Display Format

Natural - depends on pv type, self evident except for floating point pvs where precision is mapped to number of significant digits.



Float - Precision is mapped to number of decimal places.



Exponential - Precision is mapped to number of decimal places and exponent is included in display.



All other format values are self evident.


Null PV Name

If non-blank, the value of this pv is compared to the value of the pv given by PV Name. If these values are equal, the Null Color is used for the text foreground color in execute mode. We use this feature to indicate that the current value of a pv is the same as the corresponding saved value.


Smart Refresh

This box must be checked if the text will be on top of a graphics object.

All other attributes are self evident.

The pv associated with Fg Color, PV Name, and Null PV Name may contain symbols.


Slider

The slider object controls the value of a numeric pv and may optionally monitory the value of another numeric readback pv.


Attribute

Description


Display Format

f maps precision to the number of decimal places



g maps precision to the number of significant digits



e maps precision to the number of decimal places but value always includes exponent


Other attributes are self evident.

Control PV, Control Label PV, Readback PV, Readback label PV and Saved Value PV may contain symbols.

The figure below shows an example of a slider in execute mode.



The black arrow is the control lever, the white
arrow is the readback indicator, the vertical mark to the right of the control lever is the current saved value, and the value 0.1 in the upper-middle is the current increment value. Dragging the control lever changes the control value continuously. Clicking to the left of the control lever decrements the value by the amount given by the current increment (clicking and holding invokes an auto-repeat decrement). Clicking to the right of the control lever increments the value by the amount given by the current increment (clicking and holding invokes an auto-repeat increment). Clicking on the save box saves the current value of the control pv and clicking on the restore box restores the saved value.

Finally, clicking above the control lever opens a dialog box like the one show below. The control value and the current increment may be changed here.



Button

The button object is used to control or monitor a two state enumerated type pv. Optionally, a readback pv may also be specified.

If Control PV and Readback PV are both non-blank and their values are not equal, then the button background color is given by the Inconsistent color button.

All other attributes are self evident.

Control PV and Readback PV may contain symbols.

Menu Button

The menu button object is used to control or monitor any enumerated type pv. This object employs a motif widget and does not align with other objects well.

All attributes are self evident.

Control PV and Readback PV may contain symbols.

Message Button

The message button object can send a value to any type pv. A value is sent on press, on release, or in both cases. If Button Type is Toggle, then the Press Value is sent on the toggle-on action and the Release Value is sent on the toggle-off action. A null entry for either Press Value or Release Value implies that no value should be sent for the respective operation.

Destination is the name of the pv to which the value is sent.

All other attributes are self evident.

Destination may contain symbols.

Exit Button

The exit button object is used to close an active display. Optionally it may only iconize the display. It may also be employed to exit edm.

Menu Mux

The menu mux object is a multiplexor object which can dynamically change the value of up to four symbols and then deactivate/reactive a display. In this manner, connections to pvs from various controls may be dynamically changed by selecting a new multiplexor state.


Attribute

Description


PV Name

An optional numeric control pv which works in conjunction with the multiplexor. The integer value of this pv is changed when the user changes the multiplexor menu. Conversely, changing the value of the pv will also change the multiplexor state. Note that a value of 0 corresponds to the first menu entry.


Number of Items

Sets the number of multiplexor menu items and the number of values for the set of symbols


Item Number

This field is special in that in selects one element of a group of array fields labeled Tag, Symbol, Value, ...


Tag

The string displayed in the menu for this set of symbol,value pairs


Symbol

Symbol string that gets expanded to Value


Value

Expansion value corresponding to previous Symbol string


Initital State

Initial multiplexor state (starting at 0); effective only if PV Name is null

PV Name and Initital State may contain symbols, but these symbols are not affected by the multiplexor.

Related Display

The related display object is used to open another display in execute mode. The values of up to four pvs may optionally be set.


Attribute

Description


Display File Name

Name of display file to open. Explicit directory paths are honored; if no directory is specified, the user directory is searched before the project directory.


On Focus

Opens the display file without window decorations when the pointer moves inside the button rather than on a button click. When the pointer moves outside the button to some other region on the parent window not occupied by a Motif widget, the display file closes. Note that the Close Current Display option has no effect when this option is selected.


Set Display Position

Opens new display file near related display button


Duplicates Allowed

Allows multiple instances of the display to be opened at the same time. A display file is uniquely identified by its name and by its list of symbols,value pairs, so a duplicate is one which has the same name as another and also contains the same list of symbols and values.


Cascade

Opens additional instances of a display in a cascading manner. This does not currently work with all window managers.


Macros

New list of symbol,value pairs as sym1=val1,sym2=val2,... that will be passed to the new display depending on the value of Mode and Propagate



The special strings <WINID>, <TITLE>, <PROJDIR>, and <USERDIR> may be used as symbol values and will be translated to the window id, the display title, the project display directory, and the user display directory.



Mode & Propagate Mode=Append,Propagate not checked - append specified list of macros to the list at the time edm was executed and pass the result to the new display.



Mode=Replace,Propagate not checked - pass only the specified list of macros to the new display.



Mode=Append,Propagate checked - append specified list of macros to the list in the current display file.



Mode=Replace,Propagate checked - pass only the specified list of macros to the new display (same as above).

Other attributes are self evident.

All PV fields may contain symbols.

Shell Command

The shell command object is used to invoke a system shell command by pressing a button.


Attribute

Description


Allow Multiple Instances

Allow another shell command to be invoked before a previous one has completed


Auto Exec Interval

Execute shell command periodically at this rate (seconds)

Other attributes are self evident.

Shell Command may contain symbols.

The special strings <WINID>, <TITLE>, <PROJDIR>, and <USERDIR> may be supplied in the command argument list and will be translated to the window id, the display title, the project display directory, and the user display directory. We use these to print displays and to export displays to GIF format for dynamic web publishing.


Administrator's Guide

Site Font and Color Files

Presently, fonts and colors are specified in two files, fonts.list and colors.list respectively. The default location is /etc but may be overridden with the environment variable EDMFILES.

Colors

The color file structure is shown below, where r, g, and b are integers ranging from 0 to 65535:


<Major version number> <Minor version number> <Release number>


<Number of non-blinking colors> <Number of blinking colors> <Number of color palette columns>


<r> <g> <b>


<r> <g> <b>


<r> <g> <b>

and so on for the total number of non-blinking colors


<r> <g> <b> (blink color 1 on)


<r> <g> <b> (blink color 1 off)


<r> <g> <b> (blink color 2 on)


<r> <g> <b> (blink color 2 off)

and so on for the total number of blinking colors


<r> <g> <b> (disconnected color)


<r> <g> <b> (invalid color)


<r> <g> <b> (major alarm color)


<r> <g> <b> (minor alarm color)


<r> <g> <b> (no alarm color)

The specification for the no alarm state may either be a valid r, g, b combination or may be -1 -1 -1. In the former case, for object colors which are alarm sensitive, the specified r, g, b values determine the non-alarm color. In the later case, the object takes on the user specified color when no alarms are present.

Fonts

The font file structure contains three lines of header information and a list of X font specifications such that for a given font family and set of sizes, each family-size pair contains a normal regular font, a normal italic font, a bold regular font, and a bold italic font. Furthermore, the font weight must be "bold" or "medium" and the slant must be "o" or "i".

The header information follows:


<Major version number> <Minor version number> <Release number>


Default display element font tag given as family-weight-slant-pointsize (e.g. helvetica-medium-r-10.0)


Default text font tag given as family-weight-slant-pointsize (e.g. helvetica-medium-r-18.0)

These default fonts are used if all other attempts to resolve a given font specification fail. This can occur, for example, if a display file is copied from one site to another where the two sites have been configured with different sets of available fonts.

Bitmap fonts are specified as shown in the followings example for the courier family:


-adobe-courier-bold-o-normal--10-100-75-75-m-60-iso8859-1


-adobe-courier-bold-o-normal--12-120-75-75-m-70-iso8859-1


-adobe-courier-bold-o-normal--14-140-75-75-m-90-iso8859-1


-adobe-courier-bold-r-normal--10-100-75-75-m-60-iso8859-1


-adobe-courier-bold-r-normal--12-120-75-75-m-70-iso8859-1


-adobe-courier-bold-r-normal--14-140-75-75-m-90-iso8859-1


-adobe-courier-medium-o-normal--10-100-75-75-m-60-iso8859-1


-adobe-courier-medium-o-normal--12-120-75-75-m-70-iso8859-1


-adobe-courier-medium-o-normal--14-140-75-75-m-90-iso8859-1


-adobe-courier-medium-r-normal--10-100-75-75-m-60-iso8859-1


-adobe-courier-medium-r-normal--12-120-75-75-m-70-iso8859-1


-adobe-courier-medium-r-normal--14-140-75-75-m-90-iso8859-1

Note that only 10, 12, and 14 point fonts have been specified. All available fonts will normally be included in the list.

Scalable fonts are specified as shown in the followings example for the utopia family:


-adobe-utopia-bold-i-normal--*-90-75-75-p-*-iso8859-1


-adobe-utopia-bold-i-normal--*-100-75-75-p-*-iso8859-1


-adobe-utopia-bold-i-normal--*-110-75-75-p-*-iso8859-1


-adobe-utopia-bold-i-normal--*-2880-75-75-p-*-iso8859-1


-adobe-utopia-bold-r-normal--*-90-75-75-p-*-iso8859-1


-adobe-utopia-bold-r-normal--*-100-75-75-p-*-iso8859-1


-adobe-utopia-bold-r-normal--*-110-75-75-p-*-iso8859-1


-adobe-utopia-bold-r-normal--*-2880-75-75-p-*-iso8859-1


-adobe-utopia-medium-i-normal--*-90-75-75-p-*-iso8859-1


-adobe-utopia-medium-i-normal--*-100-75-75-p-*-iso8859-1


-adobe-utopia-medium-i-normal--*-110-75-75-p-*-iso8859-1


-adobe-utopia-medium-i-normal--*-2880-75-75-p-*-iso8859-1


-adobe-utopia-medium-r-normal--*-90-75-75-p-*-iso8859-1


-adobe-utopia-medium-r-normal--*-100-75-75-p-*-iso8859-1


-adobe-utopia-medium-r-normal--*-110-75-75-p-*-iso8859-1


-adobe-utopia-medium-r-normal--*-2880-75-75-p-*-iso8859-1

Again, note that only a few fonts sizes have been specified.


Site Component Object Files

Display Objects


Display element components are specified in the file edmObjects. This file is included in the distribution and is updated only when additional components are installed. The default location is /etc but may be overridden with the environment variable EDMOBJECTS. The file contains a single line header and one line of information per component as shown below.


<Number of components>


<component 1 id> <sharable library file> <type> <name>


<component 2 id> <sharable library file> <type> <name>

and so on, until all components have been enumerated

The component id must be unique and may be a uuid.

Each sharable library file may contain multiple components.

The values for type are Graphics, Monitors, and Controls.

Name is the name seen by the user in the object creation menu and should be unique but may be changed by the user in the case of namespace collision.

Independently developed components intended to be shared among members of a larger community should include object ids and library file names which are derived from uuids.

In general, the edm object file need not be manually manipulated. If the component developer has done things correctly, new components are added to the system as follows:


edm -add <edm component library file with full directory path>

For example, the command:


edm -add /usr/edm/components/newstuff.so

will add all components in newstuff.o to the edm object file. Note that to add new components, you must have read and write permission to the edm object file.

Library file components may be listed with the command:


edm -show <edm component library file with full directory path>

Therefore, to examine the components in the library file from the previous example, the command becomes:


edm -show /usr/edm/components/newstuff.so

PV Objects

PV components are used only by the generic PV version of edm. The EPICS specific version does not make use of PV components but the PV component file must be installed nevertheless.

PV components are specified in the file edmPvObjects. This file is included in the distribution and is updated only when additional components are installed. The default location is /etc but may be overridden with the environment variable EDMPVOBJECTS. The file contains a single line header and one line of information per component as shown below.


<Number of components>


<component 1 id> <sharable library file> <PV name>


<component 2 id> <sharable library file> <PV name>

and so on, until all components have been enumerated.
There are currently no edm commands to manage these components.

Utility Library and Include Files

Edm requires the following library and include files which provides various services, including a number of platform dependent functions.

Library:


lib114135a4-6f6c-11d3-95bc-00104b8742df.so

Include Files:


avl.h


crc.h


sys_types.h


thread.h