SlideShare a Scribd company logo
1 of 7
FEL-LA85-000-0
Projekt/Project
SwissFEL
Titel/Title Application development style guide for the
SwissFEL
Dokument Nummer/Document Identification
FEL-LA85-000-0
Autor/Author Andreas Lüdeke
Externe Referenz/External reference
Mitautor(en)
Co-Author(s)
Elke Zimoch
Application development style guide for the SwissFEL
Abstract: this guide for the application developers defines rules to ensure
a consistent behaviour of all applications and a common integration of
high level applications into the EPICS control system. It should ease the
task of the application developer and simplify the usage of the
applications for the accelerator operators.
Organi
sation
Verteilername
Name of distribution
Adresse
Address
Anzahl Kopien
Number of copies
Überprüft durch (Name):
Approved by (name):
Datum / Unterschrift
Date / Signature
Dokument Status
Status of document
Anzahl Seiten
Number of pages
7
Datum
Date
25.08.2009
FileS
erver
File
Nam
e
Unterschrift Autor
Signature of autor
PAUL SCHERRER INSTITUT Page 1
FEL-LA85-000-0
Version Updates
Revision Datum
Date
Autor
Author
Änderung
Modification
0 2-Jun-2009 Andreas Lüdeke Creation
Table of content
1 INTRODUCTION 3
2 BASIC APPLICATION REQUIREMENTS.......................................................................................3
2.1 Basic user interface layout.............................................................................................................3
2.1.1 General Displays 3
2.1.2 Main window title 3
2.1.3 Menu bar 3
2.2 Usage of fonts 4
2.3 Usage of colors 4
2.3.1 Reserved colors 4
2.3.2 Standard colors 4
2.4 Standard Labels 5
2.5 Standard widgets 5
2.6 Application start-up 5
2.7 Example panels 5
2.7.1 MEDM subsystem examples......................................................................................................6
2.7.2 MEDM subsystem templates......................................................................................................6
3 APPLICATION DATA EXPORT.......................................................................................................7
3.1 Export of calculated scalar data.....................................................................................................7
3.2 Export of calculated data to files....................................................................................................7
PAUL SCHERRER INSTITUT Page 2
1 INTRODUCTION
The learning curve for the proper usage of an application can be accelerated if different
applications follow the same user interface design rules. This document will define the basic design
rules for user interfaces of application used in the context of the SwissFEL project. In addition it
provides a basic guideline for the integration of high level applications into the EPICS control
system. It should therefore ease the task of the application developer and simplify the usage of
those applications for the accelerator operators.
The document is kept as brief as possible. In case of doubt, look at the MEDM example screens.
This is supposed to be a “living document”. The standards should be extended whenever a
consensus is found about additional guidelines. Please send your suggestions to the author.
2 BASIC APPLICATION REQUIREMENTS
We will distinguish two classes of applications: “expert applications” with the scope to be used by a
small number of people and “operation applications” that will eventually be used by a larger
number of different people. The specifications below should be used as a guideline for the creation
of user interfaces of expert applications. They should be considered as mandatory for all operation
applications.
2.1 Basic user interface layout
2.1.1 General Displays
Whenever feasible the user interface should be made as MEDM display. This ensures a de-
coupling of the display and the actual functionality of an application.
All MEDM displays should have a title line (see examples section 2.7). The height of the title-text
should be exactly 20 pixel. At the right end of the title line should be a “Help” menu button with a
height of 27 pixel (provides the same font than the title). For the content of the help menu see
section “Menu bar” below. There can be additional menus left of the “Help” menu, e.g. for related
panels (next section of the same subsystem, other subsystems for the same section, ...) or other
related functionality (save & restore, archive viewer, ...).
2.1.2 Main window title
The main window of each application should have a title that matches the entry name in the
launcher (See http://www.sls.psi.ch/controls/help/howto/launcher.html) to start that application.
For MEDM panels the program G_CS_medm allows to set a title of an MEDM window at startup.
2.1.3 Menu bar
For non-MEDM applications the main window should have menu bar, if feasible. Two menus are
mandatory: the leftmost menu named “File”, containing at minimum “Exit” as a last entry to exit the
application. The rightmost menu is called “Help” and must contain at least two entries: at least on
“Manual” entry and an “About” as the last entry. The later should open a window to tell the CVS
version and author of the application. From MEDM you can just call the script “G_CS_about” with
the argument string “&T $Header: $- &” to accomplish that. The “Manual” entry should open a Wiki
page with the default browser. Use the command “htmlview” to start the browser. The Wiki entry
should provide a general description of the application. At minimum the Wiki entry should contain
one sentence about the purpose of the display.
2.2 Usage of fonts
Text fonts should have 20 pixel height, if feasible. Smaller fonts should be avoided. Do not use
many different types of fonts in one panel. Sans-serif fonts should be preferred for readability.
2.3 Usage of colors
Since MEDM screens will be used for most
subsystems, they define the color standard that should
be followed in all other applications. Use color with
care, only if you need them. MEDM has a fixed color
palette (see Fig. 1). The colors named like “MEDM <n>”
in section 2.3.2 do refer to the color labeled <n> in Fig.
2.1.
2.3.1 Reserved colors
Three colors are reserved, do not use any of them for static text or graphics, only for conditional
text and graphics:
• white (#FFFFFF) signifies invalid states, like connection loss, division-by-zero, etc.
• red (#FF0000 and all colors close to it) is reserved to signify alarm states. It must
always show a condition bad for the current task, for the subsystem or the beam.
• yellow (#FBFB04) signifies a warning state, or being close to a bad condition.
• green (#00CD00) signifies good states, everything is fine.
2.3.2 Standard colors
Table 1: Standard foreground colors
Foreground color MEDM RGB hex. RGB decimal
Normal text (for good readability): black MEDM 14 #000000 0,0,0
• Curve graphs for horizontal properties MEDM 53 #2A63E4 42,99,228
• Curve graphs for vertical properties MEDM 38 #8B1A96 139,26,150
• Curve graphs for longitudinal properties MEDM 34 #CD6100 205,97,0
Table 2: Standard background colors
Background color MEDM RGB hex. RGB decimal
normal title background color MEDM 0 #FFFFFF 255,255,255
Title background color for simulation (no machine access) MEDM 38 #8B1A96 139,26,150
Main background color (for good contrast) MEDM 2 #ECECEC 236,236,236
Text that changes between the reserved colors MEDM 3 #DADADA 218,218,218
Controller of PV influences the beam directly or indirectly MEDM 56 #D4DB9D 212,219,157
Controller of PV has no influence on the beam MEDM 50 #99FFFF 153,255,255
Buttons to open a new window directly MEDM 46 #B79D5C 183,157,92
Menu buttons to open a pull down menu MEDM 40 #8088FF 128,136,255
Buttons to execute scripts that write to PVs are colored like control widgets writing to a PV.
Figure 1: MEDM color palette
2.4 Standard Labels
Labels of buttons should have standardized text to avoid confusion:
• “Close”: closes current window, all other windows of the same application remain open.
• “Exit”: closes all windows of the current application and ends the application.
• “Abort”: to cancel an active process that had been started by the application. E.g. halt
motors, stop magnet current modifications, etc. The button should be visible but disabled
while process is inactive.
• “Pause”: to pause an active process that had been started by the application. Use this
term only if the process can be continued afterwards.
• “Print”: send data to the printer.
• “Publish”: send data to the log-book.
• Append “..” at the end of a label if a new window will be opened. This applies to buttons to
open a window (MEDM 46 Background color) and to the entries in a menu button, if they
open a new window. Exception: entries in the “Help” menu don't need to append two dots.
The text of the button can be extended to signify the process or the type of data, e.g. “Stop
Measurement” or “Print Configuration..”. But the label should always start with the standard text.
2.5 Standard widgets
MEDM provides a “composite” feature that allows to include an ADL file within any panel. Macro
variables can be passed to the included file. This allows to simplify the creation of MEDM panels
and takes care that e.g. a valve is displayed exactly the same in all panels.
A set of composites will be provided for MEDM. All MEDM panels must use those composites
whenever feasible. Some composites will be generic, e.g. a widget to display a formatted value
next to it's unit with alarm colors. If you need one that does not exist, please report to the author of
this document. Some composites are related to a subsystem, e.g. the display of the state of an
valve. If one is missing here, the controls responsible for this subsystem should be contacted.
All non-MEDM applications should use widgets in accordance with the MEDM composites.
2.6 Application start-up
Applications should start up within less than a second, to provide immediate response to the
operator. Otherwise a startup screen must be displayed, telling the estimated time until the
application will be ready.
Generic applications should allow a preconfigured startup. E.g. a camera readout application that
allows different functions to be fitted to the picture should allow start-up options to select a specific
camera and perform a specific fit. This will allow to call the same application several times from the
launcher, to perform different specific measurements, e.g. “Measure beam profile at XXX”.
2.7 Example panels
The following MEDM examples should illustrate the basic user interface requirements. The file
names of those examples are provided with each screen-shot to allow the application programmer
to use those example screens as templates for new panels. We will provide two types of examples:
subsystem templates and subsystem examples. The templates will contain all available
composites for the given subsystem. The MEDM panel is not meant to be used for anything, just
as a canvas to copy composites from. The subsystem examples on the other hand should serve as
full scale examples for real panels. They do access a simulation database that runs on
softioc.psi.ch. To access the related channels you should type the command “cao” in a terminal in
the PSI office network before starting the MEDM panel.
2.7.1 MEDM subsystem examples
This version will contain only one subsystem examples for magnets. The example should give an
impression of the general layout of a standard MEDM panel (see Fig. 7 at the end of the section.)
2.7.2 MEDM subsystem templates
Each subsystem controls contact should provide one or more template screens that contain
composite examples for all available devices. We will present a first draft of those templates for the
subsystems magnets and vacuum. The name of such a template should always be according to
the subsystem project: <prefix>_template[-<n>].adl
The prefix is given by the CVS project. The MEDM panel F_CS_master_template.adl contain
buttons to launch the related displays of all subsystems <X> (“F_<X>_template.adl”) and those
panels should be linked to the existing sub project <Y> templates F_<X>_<Y>_template.adl by a
related panel button. Another button allows to edit the same template files.
Figure 3: F_CS_template.adl
Figure 4: F_MA_template.adl
Figure 5: F_CS_template_2.adlFigure 6: F_VCS_template.adl
Figure 2
: F_CS_master_template.adl
The channels accessed from those example composites should not be connected to any hardware.
Provide soft channels on softioc.psi.ch to be accessed by the tempate panels. (Currently those
template panels do access real OBLA 4MeV devices. Use “caobla” before starting those panels.)
3 APPLICATION DATA EXPORT
3.1 Export of calculated scalar data
If an application calculates relevant data for the operation of the accelerator, this data should be
written to EPICS channels directly whenever calculated. That will allow to use the EPICS standard
applications for those values: archiving, alarming, strip-charts, correlation plots, etc.
The channels for this data export should follow a common template: if the value has not been
written for a given time period, the EPICS database should raise an alarm. This allows to signal a
failure of the application to the operator. At startup the application can determine by the very same
alarm channel if another instance of the application is already writing to the specific channel.
A generic application should export data relevant to operation to different channels depending on
the type of measurement. E.g. a camera application should export the measured beam dimensions
to different EPICS channels depending on the selected camera and the fit method. A generic
channel may be used for many different scalar values of one application when those values have
no specific relevance for operation. This allows to use strip-charts or correlation plots for those
values.
3.2 Export of calculated data to files
Applications may generate non-scalar data that should be saved for post processing. The data
should be saved in the Nexus file format (See https://wiki.intranet.psi.ch/XFEL/NexusHDF5 or
http://www.nexusformat.org), wherever applicable. All files should be saved in an application
dependent sub-directory of $SETUPBASE.
Figure 7: Example magnet panel F_MA_mag-example.adl

More Related Content

What's hot (11)

Step by step abap_input help or lov
Step by step abap_input help or lovStep by step abap_input help or lov
Step by step abap_input help or lov
 
Zelio soft
Zelio softZelio soft
Zelio soft
 
Introduction to gui based operating system
Introduction to gui based operating systemIntroduction to gui based operating system
Introduction to gui based operating system
 
Visual basic 6.0
Visual basic 6.0Visual basic 6.0
Visual basic 6.0
 
Debug tool
Debug toolDebug tool
Debug tool
 
Common dialog control
Common dialog controlCommon dialog control
Common dialog control
 
Arabizing Windows NT 3.51
Arabizing Windows NT 3.51Arabizing Windows NT 3.51
Arabizing Windows NT 3.51
 
Visual basic
Visual basicVisual basic
Visual basic
 
Unit 1.1
Unit 1.1Unit 1.1
Unit 1.1
 
MSC Generator
MSC GeneratorMSC Generator
MSC Generator
 
ibuyer_Manual
ibuyer_Manualibuyer_Manual
ibuyer_Manual
 

Viewers also liked

Viewers also liked (14)

1H2015 Financial Results
1H2015 Financial Results1H2015 Financial Results
1H2015 Financial Results
 
Tarea 1
Tarea 1Tarea 1
Tarea 1
 
Образ "іншого українця" по дві сторони Дніпра
Образ "іншого українця" по дві сторони ДніпраОбраз "іншого українця" по дві сторони Дніпра
Образ "іншого українця" по дві сторони Дніпра
 
Marcelo malpighi
Marcelo malpighiMarcelo malpighi
Marcelo malpighi
 
Week thirteen
Week thirteenWeek thirteen
Week thirteen
 
2nd exercise
2nd exercise2nd exercise
2nd exercise
 
Reference Letter
Reference LetterReference Letter
Reference Letter
 
Marcelo malpighi
Marcelo malpighiMarcelo malpighi
Marcelo malpighi
 
Digital country index 16 executive summary
Digital country index 16  executive summaryDigital country index 16  executive summary
Digital country index 16 executive summary
 
Robotica actual
Robotica actualRobotica actual
Robotica actual
 
Team viwer
Team viwerTeam viwer
Team viwer
 
Леся Українка в Гадячі
Леся Українка в ГадячіЛеся Українка в Гадячі
Леся Українка в Гадячі
 
Transforming End of Life Care in Acute Hospitals PM Workshop 3: Vital Signs ‘...
Transforming End of Life Care in Acute Hospitals PM Workshop 3: Vital Signs ‘...Transforming End of Life Care in Acute Hospitals PM Workshop 3: Vital Signs ‘...
Transforming End of Life Care in Acute Hospitals PM Workshop 3: Vital Signs ‘...
 
비디오 코덱
비디오 코덱비디오 코덱
비디오 코덱
 

Similar to Sample GUI Style Guide

Problem Solving Techniques
Problem Solving TechniquesProblem Solving Techniques
Problem Solving TechniquesAshesh R
 
INTRODUCTION CHAP. 1 complete access to all the hardware and can.docx
INTRODUCTION CHAP. 1 complete access to all the hardware and can.docxINTRODUCTION CHAP. 1 complete access to all the hardware and can.docx
INTRODUCTION CHAP. 1 complete access to all the hardware and can.docxvrickens
 
object oriented fundamentals in vb.net
object oriented fundamentals in vb.netobject oriented fundamentals in vb.net
object oriented fundamentals in vb.netbantamlak dejene
 
Ec tlistener
Ec tlistenerEc tlistener
Ec tlistenerferelrew
 
Vb ch 3-object-oriented_fundamentals_in_vb.net
Vb ch 3-object-oriented_fundamentals_in_vb.netVb ch 3-object-oriented_fundamentals_in_vb.net
Vb ch 3-object-oriented_fundamentals_in_vb.netbantamlak dejene
 
Export option (copy codes from your original RC)
Export option (copy codes from your original RC)Export option (copy codes from your original RC)
Export option (copy codes from your original RC)Lidiia Nesterenko
 
COM 211 PRESENTATION.pptx
COM 211 PRESENTATION.pptxCOM 211 PRESENTATION.pptx
COM 211 PRESENTATION.pptxAnasYunusa
 
SSD Mod 2 -18CS61_Notes.pdf
SSD Mod 2 -18CS61_Notes.pdfSSD Mod 2 -18CS61_Notes.pdf
SSD Mod 2 -18CS61_Notes.pdfJacobDragonette
 
Visual Studio commands
Visual Studio commandsVisual Studio commands
Visual Studio commandsPVS-Studio
 
Magazine awr-ims-3
Magazine awr-ims-3Magazine awr-ims-3
Magazine awr-ims-3Sam Sambala
 
Parallel port programming
Parallel port programmingParallel port programming
Parallel port programmingmangal das
 

Similar to Sample GUI Style Guide (20)

Scmad Chapter04
Scmad Chapter04Scmad Chapter04
Scmad Chapter04
 
Vb%20 tutorial
Vb%20 tutorialVb%20 tutorial
Vb%20 tutorial
 
ArduinoWorkshop2.pdf
ArduinoWorkshop2.pdfArduinoWorkshop2.pdf
ArduinoWorkshop2.pdf
 
Mp lab manual
Mp lab manualMp lab manual
Mp lab manual
 
AV system and lighting controls integration
AV system and lighting controls integrationAV system and lighting controls integration
AV system and lighting controls integration
 
Problem Solving Techniques
Problem Solving TechniquesProblem Solving Techniques
Problem Solving Techniques
 
INTRODUCTION CHAP. 1 complete access to all the hardware and can.docx
INTRODUCTION CHAP. 1 complete access to all the hardware and can.docxINTRODUCTION CHAP. 1 complete access to all the hardware and can.docx
INTRODUCTION CHAP. 1 complete access to all the hardware and can.docx
 
Srs
SrsSrs
Srs
 
object oriented fundamentals in vb.net
object oriented fundamentals in vb.netobject oriented fundamentals in vb.net
object oriented fundamentals in vb.net
 
MultiSim.pptx
MultiSim.pptxMultiSim.pptx
MultiSim.pptx
 
Ide overview
Ide overviewIde overview
Ide overview
 
Fepc truss tut
Fepc truss tutFepc truss tut
Fepc truss tut
 
Ec tlistener
Ec tlistenerEc tlistener
Ec tlistener
 
Vb ch 3-object-oriented_fundamentals_in_vb.net
Vb ch 3-object-oriented_fundamentals_in_vb.netVb ch 3-object-oriented_fundamentals_in_vb.net
Vb ch 3-object-oriented_fundamentals_in_vb.net
 
Export option (copy codes from your original RC)
Export option (copy codes from your original RC)Export option (copy codes from your original RC)
Export option (copy codes from your original RC)
 
COM 211 PRESENTATION.pptx
COM 211 PRESENTATION.pptxCOM 211 PRESENTATION.pptx
COM 211 PRESENTATION.pptx
 
SSD Mod 2 -18CS61_Notes.pdf
SSD Mod 2 -18CS61_Notes.pdfSSD Mod 2 -18CS61_Notes.pdf
SSD Mod 2 -18CS61_Notes.pdf
 
Visual Studio commands
Visual Studio commandsVisual Studio commands
Visual Studio commands
 
Magazine awr-ims-3
Magazine awr-ims-3Magazine awr-ims-3
Magazine awr-ims-3
 
Parallel port programming
Parallel port programmingParallel port programming
Parallel port programming
 

More from Robert-Emmanuel Mayssat

CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010
CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010
CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010Robert-Emmanuel Mayssat
 
Honeywell - Alarm management standards taken seriously
Honeywell - Alarm management standards taken seriouslyHoneywell - Alarm management standards taken seriously
Honeywell - Alarm management standards taken seriouslyRobert-Emmanuel Mayssat
 
Sample Beamline Scientist Job Description
Sample Beamline Scientist Job DescriptionSample Beamline Scientist Job Description
Sample Beamline Scientist Job DescriptionRobert-Emmanuel Mayssat
 
The New Soft-IOC Based alarm handler at the SNS
The New Soft-IOC Based alarm handler at the SNSThe New Soft-IOC Based alarm handler at the SNS
The New Soft-IOC Based alarm handler at the SNSRobert-Emmanuel Mayssat
 
BEST, the CSS Alarm Handler - Performance Testing
BEST, the CSS Alarm Handler - Performance TestingBEST, the CSS Alarm Handler - Performance Testing
BEST, the CSS Alarm Handler - Performance TestingRobert-Emmanuel Mayssat
 
BEAST - CSS Alarm Handler Performance Tests
BEAST - CSS Alarm Handler Performance TestsBEAST - CSS Alarm Handler Performance Tests
BEAST - CSS Alarm Handler Performance TestsRobert-Emmanuel Mayssat
 

More from Robert-Emmanuel Mayssat (20)

Alarm management at DeltaV
Alarm management at DeltaVAlarm management at DeltaV
Alarm management at DeltaV
 
Beast alarm guideline_2013
Beast alarm guideline_2013Beast alarm guideline_2013
Beast alarm guideline_2013
 
CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010
CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010
CSS alarm Handler (BEAST) at the EPICS Collaboration meeting 2010
 
CSS - Alarm Management System (AMS)
CSS - Alarm Management System (AMS)CSS - Alarm Management System (AMS)
CSS - Alarm Management System (AMS)
 
Honeywell - Alarm management standards taken seriously
Honeywell - Alarm management standards taken seriouslyHoneywell - Alarm management standards taken seriously
Honeywell - Alarm management standards taken seriously
 
Sample Beamline Scientist Job Description
Sample Beamline Scientist Job DescriptionSample Beamline Scientist Job Description
Sample Beamline Scientist Job Description
 
ALH user guide 1.2.33 (May 2013)
ALH user guide 1.2.33 (May 2013)ALH user guide 1.2.33 (May 2013)
ALH user guide 1.2.33 (May 2013)
 
CSS Alarm Handler (BEAST) 2009
CSS Alarm Handler (BEAST) 2009CSS Alarm Handler (BEAST) 2009
CSS Alarm Handler (BEAST) 2009
 
Storytelling for startups
Storytelling for startupsStorytelling for startups
Storytelling for startups
 
The New Soft-IOC Based alarm handler at the SNS
The New Soft-IOC Based alarm handler at the SNSThe New Soft-IOC Based alarm handler at the SNS
The New Soft-IOC Based alarm handler at the SNS
 
Manual of the CSS Alarm Handler (Beast)
Manual of the CSS Alarm Handler (Beast)Manual of the CSS Alarm Handler (Beast)
Manual of the CSS Alarm Handler (Beast)
 
BEST, the CSS Alarm Handler - Performance Testing
BEST, the CSS Alarm Handler - Performance TestingBEST, the CSS Alarm Handler - Performance Testing
BEST, the CSS Alarm Handler - Performance Testing
 
CSS Alarm Handling
CSS Alarm HandlingCSS Alarm Handling
CSS Alarm Handling
 
BEAST - CSS Alarm Handler Performance Tests
BEAST - CSS Alarm Handler Performance TestsBEAST - CSS Alarm Handler Performance Tests
BEAST - CSS Alarm Handler Performance Tests
 
Web browser design template
Web browser design templateWeb browser design template
Web browser design template
 
Ipad design template
Ipad design templateIpad design template
Ipad design template
 
Iphone 5 design template
Iphone 5 design templateIphone 5 design template
Iphone 5 design template
 
Epics Qt design specification
Epics Qt design specificationEpics Qt design specification
Epics Qt design specification
 
Epics Qt requirements specification
Epics Qt requirements specificationEpics Qt requirements specification
Epics Qt requirements specification
 
Pitch anything webinar
Pitch anything webinarPitch anything webinar
Pitch anything webinar
 

Recently uploaded

DragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptxDragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptxmirandajeremy200221
 
Peaches App development presentation deck
Peaches App development presentation deckPeaches App development presentation deck
Peaches App development presentation decktbatkhuu1
 
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...Call Girls in Nagpur High Profile
 
VIP Call Girl Amravati Aashi 8250192130 Independent Escort Service Amravati
VIP Call Girl Amravati Aashi 8250192130 Independent Escort Service AmravatiVIP Call Girl Amravati Aashi 8250192130 Independent Escort Service Amravati
VIP Call Girl Amravati Aashi 8250192130 Independent Escort Service AmravatiSuhani Kapoor
 
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...ranjana rawat
 
Cheap Rate Call girls Malviya Nagar 9205541914 shot 1500 night
Cheap Rate Call girls Malviya Nagar 9205541914 shot 1500 nightCheap Rate Call girls Malviya Nagar 9205541914 shot 1500 night
Cheap Rate Call girls Malviya Nagar 9205541914 shot 1500 nightDelhi Call girls
 
VIP Kolkata Call Girl Gariahat 👉 8250192130 Available With Room
VIP Kolkata Call Girl Gariahat 👉 8250192130  Available With RoomVIP Kolkata Call Girl Gariahat 👉 8250192130  Available With Room
VIP Kolkata Call Girl Gariahat 👉 8250192130 Available With Roomdivyansh0kumar0
 
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...Yantram Animation Studio Corporation
 
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130Suhani Kapoor
 
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130Suhani Kapoor
 
Cosumer Willingness to Pay for Sustainable Bricks
Cosumer Willingness to Pay for Sustainable BricksCosumer Willingness to Pay for Sustainable Bricks
Cosumer Willingness to Pay for Sustainable Bricksabhishekparmar618
 
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...BarusRa
 
Best VIP Call Girls Noida Sector 47 Call Me: 8448380779
Best VIP Call Girls Noida Sector 47 Call Me: 8448380779Best VIP Call Girls Noida Sector 47 Call Me: 8448380779
Best VIP Call Girls Noida Sector 47 Call Me: 8448380779Delhi Call girls
 
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅ Vashi Call Service Available Nea...
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅  Vashi Call Service Available Nea...Kurla Call Girls Pooja Nehwal📞 9892124323 ✅  Vashi Call Service Available Nea...
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅ Vashi Call Service Available Nea...Pooja Nehwal
 
Presentation.pptx about blender what is blender
Presentation.pptx about blender what is blenderPresentation.pptx about blender what is blender
Presentation.pptx about blender what is blenderUbaidurrehman997675
 
The history of music videos a level presentation
The history of music videos a level presentationThe history of music videos a level presentation
The history of music videos a level presentationamedia6
 
Editorial design Magazine design project.pdf
Editorial design Magazine design project.pdfEditorial design Magazine design project.pdf
Editorial design Magazine design project.pdftbatkhuu1
 
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...Call Girls in Nagpur High Profile
 
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779Delhi Call girls
 

Recently uploaded (20)

DragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptxDragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptx
 
Peaches App development presentation deck
Peaches App development presentation deckPeaches App development presentation deck
Peaches App development presentation deck
 
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
 
VIP Call Girl Amravati Aashi 8250192130 Independent Escort Service Amravati
VIP Call Girl Amravati Aashi 8250192130 Independent Escort Service AmravatiVIP Call Girl Amravati Aashi 8250192130 Independent Escort Service Amravati
VIP Call Girl Amravati Aashi 8250192130 Independent Escort Service Amravati
 
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...
(AISHA) Ambegaon Khurd Call Girls Just Call 7001035870 [ Cash on Delivery ] P...
 
Cheap Rate Call girls Malviya Nagar 9205541914 shot 1500 night
Cheap Rate Call girls Malviya Nagar 9205541914 shot 1500 nightCheap Rate Call girls Malviya Nagar 9205541914 shot 1500 night
Cheap Rate Call girls Malviya Nagar 9205541914 shot 1500 night
 
VIP Kolkata Call Girl Gariahat 👉 8250192130 Available With Room
VIP Kolkata Call Girl Gariahat 👉 8250192130  Available With RoomVIP Kolkata Call Girl Gariahat 👉 8250192130  Available With Room
VIP Kolkata Call Girl Gariahat 👉 8250192130 Available With Room
 
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...
 
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
 
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130
 
Cosumer Willingness to Pay for Sustainable Bricks
Cosumer Willingness to Pay for Sustainable BricksCosumer Willingness to Pay for Sustainable Bricks
Cosumer Willingness to Pay for Sustainable Bricks
 
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
 
Best VIP Call Girls Noida Sector 47 Call Me: 8448380779
Best VIP Call Girls Noida Sector 47 Call Me: 8448380779Best VIP Call Girls Noida Sector 47 Call Me: 8448380779
Best VIP Call Girls Noida Sector 47 Call Me: 8448380779
 
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅ Vashi Call Service Available Nea...
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅  Vashi Call Service Available Nea...Kurla Call Girls Pooja Nehwal📞 9892124323 ✅  Vashi Call Service Available Nea...
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅ Vashi Call Service Available Nea...
 
Call Girls Service Mukherjee Nagar @9999965857 Delhi 🫦 No Advance VVIP 🍎 SER...
Call Girls Service Mukherjee Nagar @9999965857 Delhi 🫦 No Advance  VVIP 🍎 SER...Call Girls Service Mukherjee Nagar @9999965857 Delhi 🫦 No Advance  VVIP 🍎 SER...
Call Girls Service Mukherjee Nagar @9999965857 Delhi 🫦 No Advance VVIP 🍎 SER...
 
Presentation.pptx about blender what is blender
Presentation.pptx about blender what is blenderPresentation.pptx about blender what is blender
Presentation.pptx about blender what is blender
 
The history of music videos a level presentation
The history of music videos a level presentationThe history of music videos a level presentation
The history of music videos a level presentation
 
Editorial design Magazine design project.pdf
Editorial design Magazine design project.pdfEditorial design Magazine design project.pdf
Editorial design Magazine design project.pdf
 
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
 
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
 

Sample GUI Style Guide

  • 1. FEL-LA85-000-0 Projekt/Project SwissFEL Titel/Title Application development style guide for the SwissFEL Dokument Nummer/Document Identification FEL-LA85-000-0 Autor/Author Andreas Lüdeke Externe Referenz/External reference Mitautor(en) Co-Author(s) Elke Zimoch Application development style guide for the SwissFEL Abstract: this guide for the application developers defines rules to ensure a consistent behaviour of all applications and a common integration of high level applications into the EPICS control system. It should ease the task of the application developer and simplify the usage of the applications for the accelerator operators. Organi sation Verteilername Name of distribution Adresse Address Anzahl Kopien Number of copies Überprüft durch (Name): Approved by (name): Datum / Unterschrift Date / Signature Dokument Status Status of document Anzahl Seiten Number of pages 7 Datum Date 25.08.2009 FileS erver File Nam e Unterschrift Autor Signature of autor PAUL SCHERRER INSTITUT Page 1
  • 2. FEL-LA85-000-0 Version Updates Revision Datum Date Autor Author Änderung Modification 0 2-Jun-2009 Andreas Lüdeke Creation Table of content 1 INTRODUCTION 3 2 BASIC APPLICATION REQUIREMENTS.......................................................................................3 2.1 Basic user interface layout.............................................................................................................3 2.1.1 General Displays 3 2.1.2 Main window title 3 2.1.3 Menu bar 3 2.2 Usage of fonts 4 2.3 Usage of colors 4 2.3.1 Reserved colors 4 2.3.2 Standard colors 4 2.4 Standard Labels 5 2.5 Standard widgets 5 2.6 Application start-up 5 2.7 Example panels 5 2.7.1 MEDM subsystem examples......................................................................................................6 2.7.2 MEDM subsystem templates......................................................................................................6 3 APPLICATION DATA EXPORT.......................................................................................................7 3.1 Export of calculated scalar data.....................................................................................................7 3.2 Export of calculated data to files....................................................................................................7 PAUL SCHERRER INSTITUT Page 2
  • 3. 1 INTRODUCTION The learning curve for the proper usage of an application can be accelerated if different applications follow the same user interface design rules. This document will define the basic design rules for user interfaces of application used in the context of the SwissFEL project. In addition it provides a basic guideline for the integration of high level applications into the EPICS control system. It should therefore ease the task of the application developer and simplify the usage of those applications for the accelerator operators. The document is kept as brief as possible. In case of doubt, look at the MEDM example screens. This is supposed to be a “living document”. The standards should be extended whenever a consensus is found about additional guidelines. Please send your suggestions to the author. 2 BASIC APPLICATION REQUIREMENTS We will distinguish two classes of applications: “expert applications” with the scope to be used by a small number of people and “operation applications” that will eventually be used by a larger number of different people. The specifications below should be used as a guideline for the creation of user interfaces of expert applications. They should be considered as mandatory for all operation applications. 2.1 Basic user interface layout 2.1.1 General Displays Whenever feasible the user interface should be made as MEDM display. This ensures a de- coupling of the display and the actual functionality of an application. All MEDM displays should have a title line (see examples section 2.7). The height of the title-text should be exactly 20 pixel. At the right end of the title line should be a “Help” menu button with a height of 27 pixel (provides the same font than the title). For the content of the help menu see section “Menu bar” below. There can be additional menus left of the “Help” menu, e.g. for related panels (next section of the same subsystem, other subsystems for the same section, ...) or other related functionality (save & restore, archive viewer, ...). 2.1.2 Main window title The main window of each application should have a title that matches the entry name in the launcher (See http://www.sls.psi.ch/controls/help/howto/launcher.html) to start that application. For MEDM panels the program G_CS_medm allows to set a title of an MEDM window at startup. 2.1.3 Menu bar For non-MEDM applications the main window should have menu bar, if feasible. Two menus are mandatory: the leftmost menu named “File”, containing at minimum “Exit” as a last entry to exit the application. The rightmost menu is called “Help” and must contain at least two entries: at least on “Manual” entry and an “About” as the last entry. The later should open a window to tell the CVS version and author of the application. From MEDM you can just call the script “G_CS_about” with the argument string “&T $Header: $- &” to accomplish that. The “Manual” entry should open a Wiki page with the default browser. Use the command “htmlview” to start the browser. The Wiki entry should provide a general description of the application. At minimum the Wiki entry should contain one sentence about the purpose of the display.
  • 4. 2.2 Usage of fonts Text fonts should have 20 pixel height, if feasible. Smaller fonts should be avoided. Do not use many different types of fonts in one panel. Sans-serif fonts should be preferred for readability. 2.3 Usage of colors Since MEDM screens will be used for most subsystems, they define the color standard that should be followed in all other applications. Use color with care, only if you need them. MEDM has a fixed color palette (see Fig. 1). The colors named like “MEDM <n>” in section 2.3.2 do refer to the color labeled <n> in Fig. 2.1. 2.3.1 Reserved colors Three colors are reserved, do not use any of them for static text or graphics, only for conditional text and graphics: • white (#FFFFFF) signifies invalid states, like connection loss, division-by-zero, etc. • red (#FF0000 and all colors close to it) is reserved to signify alarm states. It must always show a condition bad for the current task, for the subsystem or the beam. • yellow (#FBFB04) signifies a warning state, or being close to a bad condition. • green (#00CD00) signifies good states, everything is fine. 2.3.2 Standard colors Table 1: Standard foreground colors Foreground color MEDM RGB hex. RGB decimal Normal text (for good readability): black MEDM 14 #000000 0,0,0 • Curve graphs for horizontal properties MEDM 53 #2A63E4 42,99,228 • Curve graphs for vertical properties MEDM 38 #8B1A96 139,26,150 • Curve graphs for longitudinal properties MEDM 34 #CD6100 205,97,0 Table 2: Standard background colors Background color MEDM RGB hex. RGB decimal normal title background color MEDM 0 #FFFFFF 255,255,255 Title background color for simulation (no machine access) MEDM 38 #8B1A96 139,26,150 Main background color (for good contrast) MEDM 2 #ECECEC 236,236,236 Text that changes between the reserved colors MEDM 3 #DADADA 218,218,218 Controller of PV influences the beam directly or indirectly MEDM 56 #D4DB9D 212,219,157 Controller of PV has no influence on the beam MEDM 50 #99FFFF 153,255,255 Buttons to open a new window directly MEDM 46 #B79D5C 183,157,92 Menu buttons to open a pull down menu MEDM 40 #8088FF 128,136,255 Buttons to execute scripts that write to PVs are colored like control widgets writing to a PV. Figure 1: MEDM color palette
  • 5. 2.4 Standard Labels Labels of buttons should have standardized text to avoid confusion: • “Close”: closes current window, all other windows of the same application remain open. • “Exit”: closes all windows of the current application and ends the application. • “Abort”: to cancel an active process that had been started by the application. E.g. halt motors, stop magnet current modifications, etc. The button should be visible but disabled while process is inactive. • “Pause”: to pause an active process that had been started by the application. Use this term only if the process can be continued afterwards. • “Print”: send data to the printer. • “Publish”: send data to the log-book. • Append “..” at the end of a label if a new window will be opened. This applies to buttons to open a window (MEDM 46 Background color) and to the entries in a menu button, if they open a new window. Exception: entries in the “Help” menu don't need to append two dots. The text of the button can be extended to signify the process or the type of data, e.g. “Stop Measurement” or “Print Configuration..”. But the label should always start with the standard text. 2.5 Standard widgets MEDM provides a “composite” feature that allows to include an ADL file within any panel. Macro variables can be passed to the included file. This allows to simplify the creation of MEDM panels and takes care that e.g. a valve is displayed exactly the same in all panels. A set of composites will be provided for MEDM. All MEDM panels must use those composites whenever feasible. Some composites will be generic, e.g. a widget to display a formatted value next to it's unit with alarm colors. If you need one that does not exist, please report to the author of this document. Some composites are related to a subsystem, e.g. the display of the state of an valve. If one is missing here, the controls responsible for this subsystem should be contacted. All non-MEDM applications should use widgets in accordance with the MEDM composites. 2.6 Application start-up Applications should start up within less than a second, to provide immediate response to the operator. Otherwise a startup screen must be displayed, telling the estimated time until the application will be ready. Generic applications should allow a preconfigured startup. E.g. a camera readout application that allows different functions to be fitted to the picture should allow start-up options to select a specific camera and perform a specific fit. This will allow to call the same application several times from the launcher, to perform different specific measurements, e.g. “Measure beam profile at XXX”. 2.7 Example panels The following MEDM examples should illustrate the basic user interface requirements. The file names of those examples are provided with each screen-shot to allow the application programmer to use those example screens as templates for new panels. We will provide two types of examples: subsystem templates and subsystem examples. The templates will contain all available composites for the given subsystem. The MEDM panel is not meant to be used for anything, just as a canvas to copy composites from. The subsystem examples on the other hand should serve as full scale examples for real panels. They do access a simulation database that runs on softioc.psi.ch. To access the related channels you should type the command “cao” in a terminal in the PSI office network before starting the MEDM panel.
  • 6. 2.7.1 MEDM subsystem examples This version will contain only one subsystem examples for magnets. The example should give an impression of the general layout of a standard MEDM panel (see Fig. 7 at the end of the section.) 2.7.2 MEDM subsystem templates Each subsystem controls contact should provide one or more template screens that contain composite examples for all available devices. We will present a first draft of those templates for the subsystems magnets and vacuum. The name of such a template should always be according to the subsystem project: <prefix>_template[-<n>].adl The prefix is given by the CVS project. The MEDM panel F_CS_master_template.adl contain buttons to launch the related displays of all subsystems <X> (“F_<X>_template.adl”) and those panels should be linked to the existing sub project <Y> templates F_<X>_<Y>_template.adl by a related panel button. Another button allows to edit the same template files. Figure 3: F_CS_template.adl Figure 4: F_MA_template.adl Figure 5: F_CS_template_2.adlFigure 6: F_VCS_template.adl Figure 2 : F_CS_master_template.adl
  • 7. The channels accessed from those example composites should not be connected to any hardware. Provide soft channels on softioc.psi.ch to be accessed by the tempate panels. (Currently those template panels do access real OBLA 4MeV devices. Use “caobla” before starting those panels.) 3 APPLICATION DATA EXPORT 3.1 Export of calculated scalar data If an application calculates relevant data for the operation of the accelerator, this data should be written to EPICS channels directly whenever calculated. That will allow to use the EPICS standard applications for those values: archiving, alarming, strip-charts, correlation plots, etc. The channels for this data export should follow a common template: if the value has not been written for a given time period, the EPICS database should raise an alarm. This allows to signal a failure of the application to the operator. At startup the application can determine by the very same alarm channel if another instance of the application is already writing to the specific channel. A generic application should export data relevant to operation to different channels depending on the type of measurement. E.g. a camera application should export the measured beam dimensions to different EPICS channels depending on the selected camera and the fit method. A generic channel may be used for many different scalar values of one application when those values have no specific relevance for operation. This allows to use strip-charts or correlation plots for those values. 3.2 Export of calculated data to files Applications may generate non-scalar data that should be saved for post processing. The data should be saved in the Nexus file format (See https://wiki.intranet.psi.ch/XFEL/NexusHDF5 or http://www.nexusformat.org), wherever applicable. All files should be saved in an application dependent sub-directory of $SETUPBASE. Figure 7: Example magnet panel F_MA_mag-example.adl