BOY, A Modern Graphical Operator Interface Editor and...

25
BOY, A Modern Graphical Operator Interface Editor and Runtime Xihui Chen, Kay Kasemir [email protected] PAC’11

Transcript of BOY, A Modern Graphical Operator Interface Editor and...

Page 1: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

BOY, A Modern Graphical Operator Interface Editor and Runtime

Xihui Chen, Kay [email protected]’11

Page 2: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

2 Managed by UT-Battellefor the U.S. Department of Energy

What is BOY?

Page 3: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

3 Managed by UT-Battellefor the U.S. Department of Energy

What is BOY?• BOY (Best OPI, Yet) – An Operator Interface (OPI) development

and runtime environment• OPI – Graphical Interface to view or operate the accelerator

locally or remotely

Page 4: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

4 Managed by UT-Battellefor the U.S. Department of Energy

What is BOY?• Best of SDS (Synoptic Display Studio: DESY) Java portability CSS integration Every property can be dynamic Modern Graphical Editor based on GEF

(BOY reused some GEF-related SDS code)

• Best of EDM (Extensible Display Manager: John Sinclair) Simple things (Label, Textupdate, …) are simple Macros

• Combined with New Ideas Dynamic via PV-triggered scripts or rules Web browser like Runtime (tab, CTRL, SHIFT click) Comprehensive types of Widgets Good ideas from EPICS community

Thanks to the creators of SDS and EDM for their great efforts!

Page 5: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

5 Managed by UT-Battellefor the U.S. Department of Energy

OPI Editor

• All-In-One workbench for OPI editing

Page 6: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

6 Managed by UT-Battellefor the U.S. Department of Energy

OPI Editor

• All-In-One workbench for OPI editing

NavigatorEditor Palette

Properties

OutlineConsole

Toolbar

Page 7: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

7 Managed by UT-Battellefor the U.S. Department of Energy

OPI Editor

• What You See Is What You Get (WYSIWYG)• Comprehensive editing functions on toolbar and

context menu– Copy/Paste/Delete– Drag & Drop– Undo/Redo– Alignment & Distributing – Snap to G (Grid/Geometry/Guide)– Zoom In/Out– Copy Properties– Changing Orders– …

Page 8: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

8 Managed by UT-Battellefor the U.S. Department of Energy

A simple OPI• Create a functional OPI in a breeze

1. Create a new OPI file2. Drag a widget (Knob for example) from palette to editor3. Enter the PV name in Properties view4. Click the “Run ” button to execute it!

• What you will get PV value as text and via knob position PV severity reflected in border color PV name and value shown in tool-tip PV’s display limits set the knob’s default range PV’s HiHi, High, Low, LoLo limits displayed in ramp Indicate ‘disconnected’ state via a pink border Widget will be greyed-out if write not allowed (read-only)

Page 9: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

9 Managed by UT-Battellefor the U.S. Department of Energy

OPI Runtime

• Behaves like a Web Browser– OPIs display in Tabs. Tabs can

be rearranged.– Open related OPI in a new Tab

via Ctrl+click , or in a new Window via Shift+click.

– Navigate Backward/Forward– Zoom In/Out– Full Screen/Compact Mode– Screenshot to printer, Email,

Logbook

Navigation

Zoom In/Out

Top OPIs

Page 10: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

10 Managed by UT-Battellefor the U.S. Department of Energy

Rules- Easily make widget properties dynamic

• Directly send PV’s value to a property• Condition dependent property value• Multiple rules per widget

Page 11: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

11 Managed by UT-Battellefor the U.S. Department of Energy

Scripts- Intelligentize your OPI

Page 12: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

12 Managed by UT-Battellefor the U.S. Department of Energy

Scripts- Intelligentize your OPI

Call Java code

Page 13: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

13 Managed by UT-Battellefor the U.S. Department of Energy

Macros• Format: $(macro_name) or ${macro_name}

• Embedded in text-base properties– PV Name, tooltip, rules …

• Replaced at runtime• Powerful way for duplicating

duplicate

Page 14: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

14 Managed by UT-Battellefor the U.S. Department of Energy

Drag & Drop

• Drag Source could be text or PV• Drop to OPI editor to create widgets

Page 15: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

15 Managed by UT-Battellefor the U.S. Department of Energy

Widgets• Support various data types

– Double, Integer, String, Enum, Boolean, Waveform…– Allow plugging in customized widgets

• Data Browser Widget – browsing history and live data in BOY

Page 16: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

16 Managed by UT-Battellefor the U.S. Department of Energy

Technical View

• Coding in Java, based on Eclipse, GEF and CSS platform

• Portable to Windows, Mac OS and Linux• BOY is a set of Eclipse Plugins • Integrated with CSS natively, also possible

to integrate it with other RCP applications

Page 17: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

17 Managed by UT-Battellefor the U.S. Department of Energy

BOY At SNS

• SNS still primarily on EDM• BOY is used for special

displays

Page 18: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

18 Managed by UT-Battellefor the U.S. Department of Energy

BOY At SNS

• Top-level displays created by operators

Tim Southern, Nick Luciano

Page 19: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

19 Managed by UT-Battellefor the U.S. Department of Energy

BOY at SNS• Special OPIs

– BLM– Save & Restore

Page 20: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

20 Managed by UT-Battellefor the U.S. Department of Energy

BOY At SNS

• Used in laboratories for hardware and IOC test

Page 21: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

21 Managed by UT-Battellefor the U.S. Department of Energy

Collaborators• John Hammonds (APS)

– MEDM to BOY Converter– Byte Monitor

• Ralph Lange (BNL): Many good suggestions• ITER CODAC Group: Many good suggestions• EPICS community

Page 22: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

22 Managed by UT-Battellefor the U.S. Department of Energy

People using BOY

The data is based on my email records

Page 23: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

23 Managed by UT-Battellefor the U.S. Department of Energy

Summary

• BOY is an integrated OPI Editor and Runtime– Technically, Java/Eclipse RCP plugins

• Modern graphical editor with comprehensive functions to support your OPI creation

• OPI Runtime behaves like a web browser• Rules and JavaScripts can add logic to your OPI• Your feedback is important!

Page 24: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

24 Managed by UT-Battellefor the U.S. Department of Energy

Thank you!

• BOY Home Page– http://sourceforge.net/apps/trac/cs-studio/wiki/BOY

• Download– SNS CSS Home Page:

http://ics-web.sns.ornl.gov/css– Unpack and Run CSS, no installation needed.

• Tutorials– Online Help– BOY Examples

Based onhttp://buzzynews.com/wp-content/uploads/2008/01/steve-jobs-presente-le-mac-book-air-lordinateur-portable-le-plus-fin-du-monde.jpg

Page 25: BOY, A Modern Graphical Operator Interface Editor and …accelconf.web.cern.ch/AccelConf/PAC2011/talks/weobn3_talk.pdf · BOY, A Modern Graphical Operator Interface Editor and Runtime

25 Managed by UT-Battellefor the U.S. Department of Energy

Planning

• EDM2BOY Converter – Basic widgets are convertible now– More widgets will be added

• WebOPI– Run BOY OPI in web browser– Under investigation

• Continually improving BOY by listening to users’ feedback