Xihui Chen, Kay Kasemir April, 2013 IHEP

Slides:



Advertisements
Similar presentations
Cairo Modern School Computer for Grade
Advertisements

Web Center Certification Sitemap / Formatting Content Web Center Certification Training Intuit Financial Services University.
Module 1: BLOCK 1 / MAIN MENU
1 Application Software Course Simulink By: Mahdi Akbari 2010.
Project 2: Adding a New Web Page to a Web Site Presentation by: Joseph H. Schuessler, B.B.A., M.B.A., M.S., Ph.D. (ABD) Agenda Video Last Class Front Page.
Zhongxing Telecom Pakistan (Pvt.) Ltd
1 WORKING WITH 2007 WORD Part 1 Developed October 2007 with lots of help from.
Chapter 16 Graphical User Interfaces
Copyright © 2003 Pearson Education, Inc. Slide 7-1 Created by Cheryl M. Hughes The Web Wizards Guide to XML by Cheryl M. Hughes.
McGraw-Hill/Irwin Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved. Extended Learning Module D (Office 2007 Version) Decision Analysis.
BASIC SKILLS AND TOOLS USING ACCESS
David Burdett May 11, 2004 Package Binding for WS CDL.
XP New Perspectives on Microsoft Office Word 2003 Tutorial 7 1 Microsoft Office Word 2003 Tutorial 7 – Collaborating With Others and Creating Web Pages.
Microsoft Access 2007 Advanced Level. © Cheltenham Courseware Pty. Ltd. Slide No 2 Forms Customisation.
Local Customization Chapter 2. Local Customization 2-2 Objectives Customization Considerations Types of Data Elements Location for Locally Defined Data.
Welcome PC-ACE Pro32 Training
Mike Scott University of Texas at Austin
1 Advanced Tools for Account Searches and Portfolios Dawn Gamache Cindy Bylander.
Microsoft®.
Office 2003 Introductory Concepts and Techniques M i c r o s o f t Windows XP Project An Introduction to Microsoft Windows XP and Office 2003.
Creating a Dreamweaver Web Page and Local Site
Photo Slideshow Instructions (delete before presenting or this page will show when slideshow loops) 1.Set PowerPoint to work in Outline. View/Normal click.
Welcome. © 2008 ADP, Inc. 2 Overview A Look at the Web Site Question and Answer Session Agenda.
1 School Administrators Guide Standards-based Report Card (SBRC) Special Access/Privileges for School Administrators Interim Reporting Interim Reporting.
Break Time Remaining 10:00.
Anything But Typical Learning to Love JavaScript Prototypes Page 1 © 2010 Razorfish. All rights reserved. Dan Nichols March 14, 2010.
PP Test Review Sections 6-1 to 6-6
User Friendly Price Book Maintenance A Family of Enhancements For iSeries 400 DMAS from Copyright I/O International, 2006, 2007, 2008, 2010 Skip Intro.
Microsoft Access.
Vanderbilt Business Objects Users Group 1 Reporting Techniques & Formatting Beginning & Advanced.
Microsoft Office 2007 Integration Integrating Office 2007 Applications and the World Wide Web.
Access Tables 1. Creating a Table Design View Define each field and its properties Data Sheet View Essentially spreadsheet Enter fields You must go to.
Lesson 2 Navigating LabVIEW
INTRODUCTION Lesson 1 – Microsoft Word Word Basics
Office 2003 Introductory Concepts and Techniques M i c r o s o f t Office 2003 Integration Integrating Office 2003 Applications and the World Wide Web.
Benchmark Series Microsoft Excel 2013 Level 2
Copyright © 2012, Elsevier Inc. All rights Reserved. 1 Chapter 7 Modeling Structure with Blocks.
 Copyright I/O International, 2013 Visit us at: A Feature Within from Item Class User Friendly Maintenance  Copyright.
MaK_Full ahead loaded 1 Alarm Page Directory (F11)
Dreamweaver CS3 Concepts and Techniques Chapter 6 Layers, Image Maps, and Navigation Bars.
Creating a Dreamweaver Web Page and Local Site
1 How Do I Order From.decimal? Rev 05/04/09 This instructional training document may be updated at anytime. Please visit and check the.
2004 EBSCO Publishing Presentation on EBSCOadmin.
Types of selection structures
Chapter 12 Working with Forms Principles of Web Design, 4 th Edition.
Clock will move after 1 minute
Chapter 11 Creating Framed Layouts Principles of Web Design, 4 th Edition.
Chapter 13 Web Page Design Studio
Select a time to count down from the clock above
Import Tracking and Landed Cost Processing An Enhancement For AS/400 DMAS from  Copyright I/O International, 2001, 2005, 2008, 2012 Skip Intro Version.
Copyright Tim Morris/St Stephen's School
1.step PMIT start + initial project data input Concept Concept.
© Paradigm Publishing, Inc Excel 2013 Level 2 Unit 2Managing and Integrating Data and the Excel Environment Chapter 6Protecting and Sharing Workbooks.
Managed by UT-Battelle for the Department of Energy Xihui Chen, Kay Kasemir ORNL/SNS April 2013 at IHEP Control System Studio Setup - Hierarchical.
Outlook 2013 Web App (OWA) User Guide Durham Technical Community College.
Chapter 16 Graphical User Interfaces John Keyser’s Modifications of Slides by Bjarne Stroustrup
Benchmark Series Microsoft Excel 2013 Level 2
ORNL is managed by UT-Battelle for the US Department of Energy Control System Studio: BOY Details Kay Kasemir ORNL/SNS A lot of material.
Managed by UT-Battelle for the Department of Energy Kay Kasemir ORNL/SNS A lot of material from Nadine Utzel, ITER and BOY online help.
Control System Studio (CSS)‏ Kunal Shroff EPICS Training Meeting 07/10/2010.
ORNL is managed by UT-Battelle for the US Department of Energy Control System Studio: BOY Kay Kasemir ORNL/SNS A lot of material from.
BOY Training Xihui Chen, Kay Kasemir, David Purcell
Prachi Chitnis.  The CSS feel  SDS – Synoptic Display Studio  ADL Converter  PV table, Probe…
WebOPI -Bring BOY OPI to the Web and Mobile Xihui Chen, Kay Kasemir Spring 2012 EPICS Meeting.
Not Yet Another EPICS Display Manager!? Kay Kasemir, Xihui Chen Kobe EPICS Meeting October.
Managed by UT-Battelle for the Department of Energy Kay Kasemir ORNL/SNS A lot of material from Nadine Utzel, ITER and BOY online help.
BOY, A Modern Graphical Operator Interface Editor and Runtime Xihui Chen, Kay Kasemir RAD Control Group.
Display Builder Update
Presentation transcript:

Xihui Chen, Kay Kasemir chenx1@ornl.gov April, 2013 IHEP Best OPI, Yet (BOY) Xihui Chen, Kay Kasemir chenx1@ornl.gov April, 2013 IHEP

What is BOY? BOY (Best OPI, Yet) – An Operator Interface (OPI) development and runtime environment OPI is the Graphical User Interface for control systems OPI Editor Runtime

Relationship between CSS and BOY Infrastructure for hosting control system tools (the house) RCP product BOY One of the tools integrated in CSS (furniture in the house) Plugins BOY Data Browser Probe PyDev CSS

Examples-Virtual Linac

Examples-SNS SNS top-level displays created by operators Tim Southern, Nick Luciano

Examples-ITER

BOY OPI Examples-ITER

BOY OPI Examples-ITER

Let’s Start! Open OPI Editor Perspective: Menu CSS, Display, OPI Editor Perspective

Exercise: Edit First OPI Right click CSS Project in navigator: New, OPI File, call it “first.opi” Or Menu File, New, BOY, OPI File Drag widget Knob from palette to editor Input sim://noise as the PV name in Properties view Click the “Run” button (or Ctrl+G) to execute! sim://noise is a simulated PV inside CSS (See CSS help->CSS Core->Process Variables), so you don’t need to run an IOC to try this example. In reality, you can replace it with a real EPICS PV

Exercise: Run First OPI 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 Indicate ‘disconnected’ state via a pink border Widget will be grayed-out if read-only Main Point: Simple Things are Simple

Exercise: Extend First OPI to Use EPICS PV Set Knob’s PV Name property to css:setpoint Add an XY Graph widget Set PV Name to css:tank Run

OPI Editor Perspective Your All-in-One workbench for OPI editing Toolbar Navigator Editor Palette Properties Outline Console

Demo: Customize OPI Editor Perspective Every part in the workbench can be dragged around, detached, minimized, maximized or closed. Recover the default perspective by resetting it. A Customized Perspective

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/Paste Properties Changing Orders … As easy as editing PowerPoint

Properties View Widgets are configured by setting Properties in the Properties view Common Properties: Name Background/Foreground color Border Font Position Widgets that read/write PVs: Basic: PV Name Border: Alarm Sensitive Behavior: Limits from PV Display: Background/Foreground color alarm sensitive

Outline Tree View Outline Overview Outline Click here to switch to overview outline Tree View Outline Click on widgets on the tree will select widgets in editor Change widgets order by drag & drop Overview Outline An overview of the whole OPI Click here to switch to tree view outline

Exercise: OPI Editing Skills Create a new OPI editor.opi Add three rectangle widgets to editor Select widgets and move them around Select all widgets using Ctrl+A Arrange widgets

Demo : OPI Editing Skills Moving widgets with key board Press “.” dot key several times until the cursor switches to the direction you want Use arrow keys on key board to move it one pixel a time Duplicate widgets by dragging widgets with holding Ctrl key (alt key for Mac). Or use Ctrl+C and Ctrl+V to copy and paste

Demo : OPI Editing Skills Group widgets Select multiple widgets Select “Create Group” from context menu Lock/Unlock Children Set Group border Ungroup widgets Select group widget Select “Remove Group” from context menu

Demo : OPI Editing Skills Edit common properties for multiple widgets Select multiple widgets Properties sheet will automatically update to show the common properties Edit properties as usual Copy/Paste Properties

Demo: OPI Editing Skills Add widgets by dragging text to editor

Exercise: Context Help In OPI editor, press “F1” to open the Help View (or from menu Window->Show View->Help) Right click the view tab header and select “Detached” to detach it. Help content will automatically update along with the selected widget Help view can be detached

Exercise: send PV name to other CSS tools Right click a PV widget, select Process Variable->Probe

Actions Every widget can have actions Click on widget to execute the action Actions will also appear on widget’s context menu during runtime Can also be executed from script widget.executeAction(index);

Exercise: Open OPI Action Create a new OPI named action.opi Add an Action Button widget Click on Actions property Add an Open OPI action, set File Path to first.opi Run

Exercise: OPI navigation Zoom in/out Go Back/Forward Similar to hyperlinks in a Web Browser Open in new tab by Ctrl+click Open in new Window by Shift+click Or use context menu

Macro Embedded in string based properties, such as PV Name, Tooltip Replaced by its value at runtime Format: $(macro_name) or $ {macro_name} All properties can be accessed via macro: $(name), $(pv_name), $(height) In Editor In Runtime

Where to define Macros BOY Runtime Preferences Open OPI Actions It includes open OPI from actions, open OPI from command line and open OPI from top OPIs button. Macros property of Display Macros property of container widgets such as Grouping Container, Linking Container and Tabbed Container. - Override Order +

Exercise: Macro Create macro.opi Add a label widget, set text to “User is $(user)” Add a Knob widget, set PV Name to $(user):setpoint Save (Ctrl+S) Add an action button in action.opi Add an Open OPI action File Path: macro.opi Macros: user=css Run

Color & Font Name - make consistent look to your OPIs Predefined name for colors or fonts in text files Using predefined color and font name will help you Achieve consistent look Reuse some particular color or fonts Input once and change everywhere

Exercise: Use Color & Font Name Add a label widget to editor, set: Background Color : Header_Background Foreground Color: Header_Foreground Font: Header1

BOY Advanced

Rules - Easily make widget properties dynamic Condition depended property value Directly output PV value to a property Allows multiple rules on a widget

Exercise: Rules Create a new OPI rules.opi Add a Knob with PV Name loc://test Add a Label Text: “Heater is on” Foreground color: Red Click on Rules property and add a rule as below

Scripts - Intelligentize your OPI For more complex logic that Rules cannot achieved Support both JavaScript and Python(Jython) Script Triggered by PV value change or executed from actions Can do “anything” access widgets and PVs attach data to widget call Java code Call your custom Java library Option: Embedding script text in OPI or using a separate script file

ScriptUtil Generally useful functions BOY Online help->Script or http://htmlpreview.github.com/?https://raw.github.com/ControlSystemStudio/cs- studio/master/applications/plugins/org.csstudio.opibuilder/html/script/ScriptUtil/index.html You can create your own custom ScriptUtil

Demo: Scripts Access Widget Access PV Call Java code

PyDev for python script editing Syntax highlight, code auto-completion, error check See BOY Help->Script->Python Script for installation instruction

How powerful a script can be? Submit a table scan and monitor scan progress. General GUI applications /BOY Examples/Miscellaneous/CalculatorExample/Calculator.opi /BOY Examples/Miscellaneous/Timer.opi

Exercise: Script Add a label widget with name myLabel Create a new python script myScript.py Add a button to widget and add “Execute Python Script” in Actions property as the dialog on right Run

Widgets Support various type of data Double, Integer, String, Enum, Boolean, Waveform… Allow plugging in customized widgets to BOY

Exercise: Enum widgets Add Controls/Choice button PV Name: css:sensor Items From PV: Yes Add Controls/Combo Box Add Monitors/LED Off Color: green On Color: red record(bi, "$(user):sensor") { field(DESC, "Sensor Simulation") field(ZNAM, "OK") field(ONAM, "Broken") field(OSV, "MAJOR") field(PINI, "YES") field(FLNK, "$(user):tank") } Ignorable Similar for bo, mbbi, mbbo records

Demo: Linking Container and Macro Create a new OPI: embedded.opi Add a label widget with text PV Name: $(pv) Add an XY Graph widget PV Name: $(pv) Save

Demo: Linking Container and Macro (cont’d) Create a new OPI: linkingContainer.opi Add an Others/Linking Container widget Macros: pv=sim://noise OPI File: embedded.opi Duplicate extra two linking container widget Set Macros to pv=sim://sine and pv=sim://ramp repectively Run

Exercise: XY Graph Widget Open first.opi in editor Select XY Graph widget and set: Trace Count: 2 Primary X Axis (0) Time Format: Auto Trace 1 Y PV: css:setpoint Point style: Point By default: It only updates on value change New value is appended in a buffer

Exercise: XY Graph Widget Cont. Update trace periodically even there is no value change Select XY Graph widget Set properties: Trigger PV: sim://ramp(0,1,1,1) Trace 0 and Trace 1: Update Mode: Trigger

Exercise: XY Graph Widget Plot Waveform Add Monitors/XY Graph widget Trace Count: 2 Trace 0 Buffer Size: 200 Concatenate Data: no Y PV: css:sineWave Trace 1 Y PV: css:cosWave Try toolbar buttons to zoom in/out

Widget – Intensity Graph Display image-like data Can be used for video display Generate Profile data Supports Region of Interest (ROI) Zoom In/Out

Exercise: Intensity Graph Widget Add Monitors/Intensity Graph widget PV Name: css:imageWaveform Data Height: 200 Data Width: 200 Maximum: 100 Minimum: 100 Some properties can be changed at Runtime: Right click widget, select Configure Runtime Properties… Set Color Map to Gray Scale

Golden rules Simple things are simple Add widget Enter PV Name Run Use Rules or Scripts only if very necessary Too many rules or scripts may hurt maintainability

Tip Display Property: Auto Zoom To Fit All vs Auto Scale Widgets Zoom whole opi as a picture, including font size. Good for graphics rich OPI. Auto Zoom To Fit All Auto Scale Widgets Elastically scale widgets’ size based on “Scale Options” property of widgets. Font size keeps unchanged.

Learn by yourself Install BOY Examples Read The Friendly Manual Menu CSS, Display, Install OPI Examples Double click BOY Examples/main.opi (or right click it and select Open With > OPI Runtime). Read The Friendly Manual

Examples Showtime Heater Virtual Linac Widgets Use Thread BOY Examples\Heater\heater.opi Virtual Linac BOY Examples\Miscellaneous\Virtual Linac\Virtual_Linac.opi Widgets Use Thread BOY Examples\5_6_UseThreadInScript.opi Dynamically Loading Widgets BOY Examples\Miscellaneous\DynamicLoadWidgets\LoadWidgetsExample.opi

WebOPI BOY OPI in Chrome and iPod Touch

SNS control room screens in Web Browser

Compatible With… Mobile devices No Flash No Java Applets Safari 3+ IE 6+ Opera 9+ Chrome 3+ Firefox 2+ Mobile devices iPhone, iPod, iPad Andriod Phone (Opera 9+ or Firefox 2+ browser is required) Maybe more… No Flash No Java Applets No browser add-on/plugin

3 steps to setup Step 1. Copy webopi.war to Tomcat webapps/ Step 2. Configure css_rap.ini Step 3. Copy opi files to opi_repository org.csstudio.opibuilder/opi_repository=C:/path/BOY Examples/ org.csstudio.opibuilder/startup_opi=main.opi org.csstudio.opibuilder/mobile_startup_opi=mobile.opi org.csstudio.opibuilder/color_file=color.def org.csstudio.opibuilder/font_file=font.def

Desktop: Mobile: http://ics-web.sns.ornl.gov/webopi Try it yourself Desktop: http://ics-web.sns.ornl.gov/webopi Mobile: http://ics-web.sns.ornl.gov/webopi/ms

Summary BOY is a set of plugins built on Eclipse CSS integration Modern Graphical Editor Simple things are simple Dynamic via rules or scripts (JavaScript or Python script) Modern web browser style Runtime (Tab, CTRL, SHIFT click) Comprehensive types of widgets and extensible Sitewide deployment friendly (macro, color, font, schema, http) BOY OPI is instantly visible on web via WebOPI

Thank you! BOY Home Page What’s new http://sourceforge.net/apps/trac/cs-studio/wiki/BOY Or Google “CSS BOY” What’s new http://htmlpreview.github.com/?https://github.com/ControlSystemStudio/cs- studio/blob/master/applications/plugins/org.csstudio.opibuilder/html/ChangeLog.html