KAGRA VIS Operations Manual - MEDM Screens
See http://www.aps.anl.gov/epics/extensions/medm/
LIGO Version - Edit Me!!!
Information on MEDM screens for Suspensions
Back to Operation Manual main page
MEDM is a system for creating user interface screens that can display and set EPICS channels. It provides for many standard UI elements including read-only and read-write text fields, dials, sliders, buttons, etc. See the MEDM documentation for detailed info. Screens are defined by text files with extension .adl. The medm program allows screens to be edited in a GUI which is approximately WYSIWYG (what-you-see-is-what-you-get). (However due to limited support for cut and paste, some changes are more easily made with a plain text editor such as gedit.)
MEDM supports generic screens, which are customized on the fly by arguments passed in by the screen which invokes them. See [[#CallingConventions]|Calling Conventions] below for information on the recommended argument list for SUS screens. The medm main window has an Execute button which is meant to make a newly created/edited screen live and start it displaying EPICS data. However because of the extensive use of generic screens, it is rarely much use. Rather it is necessary to start at the so-called SITEMAP screen for a site in a separate, execute-only instance of medm and click through to the screen being edited. See below.
Screens of Importance
SITEMAP
The SITEMAP is the master MEDM screen for an entire site. It can be accessed with the sitemap command, or via various GUI shortcuts. It has a large number of buttons linking to screens for individual suspensions and other subsystems of interest.
The traditional location for the SITEMAP at /opt/rtcds/${site}/${ifo}/medm/SITEMAP.adl. The terminal command sitemap is defined to open the screen at that location. However it should not be edited directly because it is a symlink to a version-controlled file at /opt/rtcds/userapps/release/cds/${ifo}/medm/SITEMAP.adl.
The version-controlled copy should only be edited with extreme care and following consultation with CDS personnel. Most other screens cannot usefully be opened except directly or indirectly from the SITEMAP, because they rely on macro arguments passed in, so breaking the SITEMAP breaks MEDM for everyone.
As of 4/4/13 at LLO and 4/30/13 at LHO, most of the macro arguments for SUS screens were offloaded from the SITEMAP.adl file to separate per-suspension files (see below). (However the location of those files is still specified in the SITEMAP.)
For more, see HowToEditTheSitemapMedmScreen
Custom Screens
Most SUS MEDM screens are hand-made custom ones which are generic to all suspensions of the same type (QUAD/BSFM/etc) and are particularized to an individual suspension by macro arguments. The common screens for most suspension types live at /opt/rtcds/userapps/release/sus/common/medm/ in subdirectories quad, bsfm, hxts, omcs, tmts and haux.
Tip-Tilts (HTTS) are owned by ASC and files for them live at /opt/rtcds/userapps/release/asc/common/medm/asctt (note: asc).
HSTS and HLTS are similar enough to be handled by a single set of "HXTS" screens.
The macro files live in the top-level directory /opt/rtcds/userapps/trunk/sus/common/medm and have names of the form sus${susid}_overview_macro.txt, e.g., susetmx_overview_macro.txt.
Automatically Generated Screens (especially *_GDS_TP and *_IOP_TP)
When a model is compiled, a large number of MEDM screens are automatically generated by RCG and placed in directories /opt/rtcds/${site}/${ifo}/medm/${site}sus${susid} e.g., /opt/rtcds/lho/h1/medm/h1susmc2/
Most of the custom screens were created originally by cutting and pasting elements from the automatically generated screens into more convenient arrangements.
Of the automatically generated screens about the only one that is normally used as-is is the GDS_TP screen, which gives an overview of housekeeping info like the CPU ID of the computer running the model, the loop time, the GPS time (as reported by the model), the ADC, DAC and test point status, etc:
/opt/rtcds/${site}/${ifo}/medm/${site}sus${susid}/${SITE}SUS${SUSID}_GDS_TP.adl /opt/rtcds/lho/h1/medm/h1susmc2/H1SUSMC2_GDS_TP.adl
The IOP_TP screen gives similar information for the IOP process running on the same computer, and can be found in the automatically generated screens for the IOP model, e.g., /opt/rtcds/lho/h1/medm/h1iopsush34/H1IOPSUSH34_GDS_TP.adl for h1susmc2.
See the [Detailed Overview] link on the SITEMAP for info on which IOP model corresponds to which suspension model.
Calling Conventions
An MEDM screen can allow for the opening of a second one by having a "Related Display" button (or a popup menu of them). In the dialog that allows setting the properties of the button/popup, there are fields "Display File" and "Arguments". These show up in the underlying .adl file as a pair of lines that look like
name="$(USERAPPS)/sus/common/medm/hxts/SUS_CUST_HXTS_MONITOR_OVERVIEW.adl" args="%(read $(USERAPPS)/sus/common/medm/susmc1_overview_macro.txt),USERAPPS=$(USERAPPS),SITE=$(SITE),si te=$(site),IFO=$(IFO),ifo=$(ifo)"
Note:
- Here and in the sections below, we use the text-editor view.
- The $(macro) syntax represents substitution of the value of the macro variable macro.
- The macro=value syntax represents macro values being passed to a related screen.
- The related screen inherits no macros by default, and any that need to be passed unchanged need to be specified
explicitly with IFO=$(IFO) or the like.
- The macro names and values are case sensitive, and often come in pairs with different capitalization, e.g., IFO=H1
and ifo=h1.
- $(USERAPPS) is a macro defined as the path to the release section of the checkout of the cds_user_apps SVN,
/opt/rtcds/userapps/release.
- Most screens are suspension-type-specific and live in the following directories (some chamber-specific screens, e.g.,
- SUS_AUX_EX_OVERVIEW.adl live one level above):
- $(USERAPPS)/sus/common/medm/quad
- $(USERAPPS)/sus/common/medm/bsfm
- $(USERAPPS)/sus/common/medm/hxts
- $(USERAPPS)/sus/common/medm/omcs
- $(USERAPPS)/sus/common/medm/tmts
- $(USERAPPS)/sus/common/medm/haux
- $(USERAPPS)/asc/common/medm/asctt (note: asc)
- Most screens are generic to a whole suspension type and are particularized for individual suspensions via a
combination of macro text files and macros=value.
- The %(read ...) syntax in the args="..." line reads argument values from a text file.
- The macro files live at:
$(USERAPPS)/sus/common/medm/ for SUS except TipTilt
$(USERAPPS)/asc/common/medm/ for TipTilt
- The macro files have names like
sus*_overview_macro.txt for SUS except TipTilt, *=name of suspension, e.g., itmx
asc*_overview_macro.txt for TipTilt, *=name of suspension, e.g., rm1
- The macro files are site-independent and do not contain values for SITE/site/IFO/ifo. These need to be passed
in explicitly.
Currently USERAPPS is the only macro guaranteed to be defined in SITEMAP.adl (it is passed in with the -macro argument of medm by the sitemap alias). SITE/site/IFO/ifo have to be given explicit values (LHO/lho/H1/h1 or the like). There is a proposal afoot to add more macros to the standard set, but since the SITEMAPs are highly site-specific in any case, it's not a big deal. From the SITEMAP to a generic screen particularized for a single suspension SUS screens in the SITEMAP should be called per the following example (the main screen for ITMx): name="$(USERAPPS)/sus/common/medm/quad/SUS_CUST_QUAD_OVERVIEW.adl" args="%(read $(USERAPPS)/sus/common/medm/susitmx_overview_macro.txt),USERAPPS=$(USERAPPS),SITE=LHO,site= lho,IFO=H1,ifo=h1"
From the SITEMAP to a summary screen for all suspensions of the same type
Some suspension types like HAUX have summary screens showing an overview of all suspensions of that type. These have special macro text files with only the common information:
- name="$(USERAPPS)/sus/common/medm/haux/SUS_CUST_HAUX_OVERVIEW_all.adl"
- args="%(read
- $(USERAPPS)/sus/common/medm/susimall_overview_macro.txt),USERAPPS=$(USERAPPS),SITE=LHO,site
=lho,IFO=H1,ifo=h1"
From one generic suspension screen to another
Copy the following example (SUS_CUST_HSTS_OVERVIEW.adl, with say, optic=mc1, is calling SUS_CUST_HXTS_MONITOR_OVERVIEW.adl): name="SUS_CUST_HXTS_MONITOR_OVERVIEW.adl" args="%(read $(USERAPPS)/sus/common/medm/sus$(optic)_overview_macro.txt),USERAPPS=$(USERAPPS),SITE=$(SIT E),site=$(site),IFO=$(IFO),ifo=$(ifo)"
Note:
- Since the called screen lives in the same directory, the path information can be omitted.
- In addition to the suspension-specific macros in the macro file, USERAPPS and the four standard site-specific macros
need to be passed in unchanged.
- From a generic suspension screen to a summary screen
- Some suspension types like HAUX have summary screens showing an overview of all suspensions of that type. These have
special macro text files with only the common information:
- name="SUS_CUST_HAUX_OVERVIEW_all.adl"
- args="%(read$(USERAPPS)/sus/common/medm/susmc1_overview_macro.txt),USERAPPS=$(USERAPPS),SITE=$(SITE),site=$(site),IFO=$(IFO),ifo=$(ifo)"
Note:
- In the usual case that the called screen lives in the same directory, the path information can be omitted.
- In addition to the suspension-specific macros in the macro file, USERAPPS and the four standard site-specific macros
need to be passed in unchanged.