SLAC ESD Software Engineering Group
Stanford Linear Accelerator Center
EPICS Displays

PEPII EPICS displays: translation from edd/dm to edm, and testing

SLAC Detailed
SLAC Computing
Software Home
Software Detailed

We have a (hopefully complete!) set of PEPII edm displays ready for review and testing. The displays were converted from edd/dm using a set of perl scripts, the core of which were developed by Rolf Keitel at TRIUMF and Dayle Kotturi in the LCLS group.  Many many thanks to these two!!!

See below for color rule translation.

New edm version

In order to accommodate color rule translations, the new displays require the latest version of edm, 1-11-0m, with one minor code tweak.  This version of edm and its supporting config files are used in the test environment, and will be put into production at the same time as (or before) the new displays. 


Testing the edm displays, and manual tweaks needed

To run the displays:

In the SCP click USER DEV PANELS, RJ&RM TEST PANEL (lower middle), TEST P2 EDM.

This will run the displays on GTW00 (production)


* Verify functionality. Do the controls cause the right effects? Are the displayed values and their color rules correct? Are all the displays and color rules there? And also, do existing edm displays still work with the new color and calc files?


* Identify errors or aesthetic things that can be corrected en masse across many displays. Examples of this might be choice of fonts and colors, behavior of common buttons, etc. I can modify or add perl scripts to correct these items, and generate a new set of displays from the original edd/dm versions. Obviously it's important to do the mass changes first, otherwise any manual detailed changes as listed below will get overwrittten.



Once the global changes have all been taken care of, some manual tweaks will be needed, things that will not be possible to automate efficiently. Here is a list of known tweaks that will need to be done. I'm sure there are others!


numeric precision adjustment

Description: Some fields (especially exponential ones) have "Precision from DB" checked and shouldn't.

Example: "Beam Current" in rf_station_4CVHER.edl

How to fix: Uncheck "Precision from DB"; supply Precision number.


scattered color rule parameters need adjusting ( see color rule translation below)

Description: in edm, color rule parameters are name/value pairs; in the edm translation, they show up as positional calc arguments. The translation has done a pretty good job of matching parameters with calc arguments, but in some cases the positions of the arguments are flipped, or there are a few extra arguments. These stand out as white borders that should be colored.

Example: rf_station_4CVHER.edl, "Stn Online/Offline" rectangle

How to fix: Rearrange the parameters of the Color PV CALC statement to match the expected parameters as seen in calc.list (see color rule translation  below for more on colors.list and calc.list)


dm "indicator" monitors need redesign

Description: dm indicators translate to edm horizontal or vertical bars. These bar monitors require quite a bit more display real estate than the dm indicators. Hence the overall layout will need to be tweaked to accommodate the new monitors. edm monitor parameters may also need adjusting. note: there are not very many of these.

Example: rf_station_4CVHER.edl, horizontal bars in the lower right corner

How to fix: redesign the display region to allow more space for the bar monitors. Adjust their parameters.


close all

Description: When the top level display is closed in dm, you can specify the closure of all related displays

Example: pepii_main.edl Exit button

How to fix: In the Exit button edit window, check Exit Program


adjust sliders

Description: Motif sliders replace the dm sliders - unclear to me whether these are ok or not

Example: rf_tuners_4CVHER.edl "Tuner Position Control"

How to fix: tweak their settings


adjust some colors

Description: A few color schemes didn't translate well

Example: rf_modules_iqa.edl Status fields (blue-on-blue)

How to fix: change Fg Color and/or Bg Color 


Color rule translation

Edd/dm color rules were translated into edm by using items in calc.list and colors.list.

First, calc.list and colors.list were manually updated to include the edd/dm color rules. There is both a calc expression and a color rule for each edd/dm color rule, with the same names as the edd/dm color rule. Each value the calc can return maps into a color in the corresponding rule in colors.list.

(note: I didn't reproduce ALL the color rules in edd/dm, just the ones that are in the pepii displays and I hope I got them all)


For the dm/edd color rule rectangles, the translation scripts do this:

1. Take the name of the edd/dm color rule and set Color PV to the corresponding calc expression, getting the calc parameters from the edd/dm color rule parameters. example: "CALC\rf_ilck($(STN),KLYS:SUMY,KLYS:SUMY:SEVR,KLYS:SUMY)"


2. Set the Line Color to the edd/dm color rule name = calc name = rule name (this would be rf_ilck for the above example)


3. Unclick Alarm Sensitive for the Line (if this is clicked, then the color PV will use the basic EPICS alarm color scheme found at the bottom of colors.list instead of its specific color rule)


For color rules in text monitors, the translation sets the Fg Color to the edm color rule name (text monitors don't have Line Color)

Author: jrock, 12-Oct-2006