EDM Screen Display Using PYTHON Python and the CLS and me.

Slides:



Advertisements
Similar presentations
1 After completing this lesson, you will be able to: Check spelling in a document. Check for grammatical errors. Find specific text. Replace specific text.
Advertisements

CLS Process Variable Database By: Diony Medrano. CLS PV Database - Topics Background Design Constraints Design and Implementation Benefits and Future.
1 Human Computer Interaction Week 3 User Interface Design.
2-May-15 GUI Design. 2 HMI design There are entire college courses taught on HMI (Human-Machine Interface) design This is just a very brief presentation.
Next Generation MMI Requirements May 4, MMI - High Level Requirements run under UNIX and Windows NT (WNT) use a well defined ASCII definition for.
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.
HTML Introduction HTML
Quark QuarkXPress 4 Intermediate Level Course. Working with Master Pages The Document Layout Palette allows you to add, delete, and move document and.
Elder Matias CLS Control System Recent Upgrades. Major Changes Synchrotron Upgrade New Isotope Production Linac EPICS Software –Python EDM –Aquaman –ScienceStudio.
Review of last session Logon – username = l4luser02 – l4luser16 Logon – username = l4luser02 – l4luser16 Password = Startnow1 Password = Startnow1 Fill.
Python for S60 SmartPhones PostPC Workshop Fall 2006 Amnon Dekel.
Animated Charting Using the Alice Bar Chart Template World By Elizabeth Liang under the direction of Professor Susan Rodger Duke University December 2010.
John Sinclair Oak Ridge National Laboratory
Review of last Session Adding custom html Adding custom html HTML is the language that web servers understand, all web pages are created using HTML. HTML.
A Prezi presentation is like creating a mind map. It is created on a blank canvas and you decide where the information goes on this canvas.
Web Sites for amateur radio. So You want to make a Web Site? There are several things you need to know about web sites before you start to think about.
Creating Effective School and PTA Websites Sam Farnsworth Utah PTA Technology Specialist
If you have MS Office 2010, embedding a video only has a few steps, but if you have MS Office 2007 or earlier, it is a little bit more complicated. It.
HTML presentation Embedding Graphics in Web Pages n HTML uses an empty tag called the (image tag) n n n or n n n Note: all web production tools do insert.
1.1Why did you use a computer? What other systems / resources could you have used? I used a computer because my handwriting isn’t that neat it also looks.
Flash & JavaScript Mariela Hristova October 19, 2004 INF 385E – Fall 2004 – School of Information.
Dayle Kotturi EPICS Collaboration Meeting December 8-10,2004 Badlfish: an EDD/DM to EDM translator Outline Introduction EDD/DM.
Chapter One An Introduction to Visual Basic 2010 Programming with Microsoft Visual Basic th Edition.
1. 2 Introductions  Name?  What do you want to get out of this session?  To follow along with this presentation go to
Salt Suite User Guide (Copyright Salt ).
CSS Developments at Diamond Light Source Mark Heron, on behalf of Will Rogers, Matt Furseman, Tom Cobb, Giles Knap, Nick Battam, Ian Gillingham and Friederike.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
 HTML is hypertext markup language. It is a way for people to display their information with more complex pictures and text displays. Before HTML, messages.
1 What to do before class starts??? Download the sample database from the k: drive to the u: drive or to your flash drive. The database is named “FormBelmont.accdb”
Support.ebsco.com Introduction to EBSCOhost Tutorial.
Mrs. Knopp Library Media Specialist.  The term wiki comes from the phrase Wiki- Wiki which is the Hawaiian word for quick.  A wiki is a website that.
Use CSS to Implement a Reusable Design Selecting a Dreamweaver CSS Starter Layout is the easiest way to create a page with a CSS layout You can access.
Model View Controller A Pattern that Many People Think They Understand, But Has A Couple Meanings.
What is Visual Basic.NET? 110 B-1 e.g. a word processor doesn’t do anything until the user clicks on a button, types text... A programming language that.
Graphical Enablement In this presentation… –What is graphical enablement? –Introduction to newlook dialogs and tools used to graphical enable System i.
EDM Update John Sinclair ORNL. EDM Update Minor feature additions Limits New env vars Optional widget attributes Modifications that support conversion.
Managed by UT-Battelle for the Department of Energy CSS Update Matthias Clausen, Helge Rickens, Jan Hatje and DESY Delphy Armstrong, Xihui Chen,
R. Keitel, TRIUMF, Vancouver Epics Collaboration Meeting, Argonne 16-June-2006 Converting from edd/dm to edm.
Forms Collecting Data CSS Class 5. Forms Create a form Add text box Add labels Add check boxes and radio buttons Build a drop-down list Group drop-down.
Programming for GCSE 1.0 Beginning with Python T eaching L ondon C omputing Margaret Derrington KCL Easter 2014.
Introduction to Python Lesson 1 First Program. Learning Outcomes In this lesson the student will: 1.Learn some important facts about PC’s 2.Learn how.
Copyright © 2015 Pearson Education, Inc. Publishing as Pearson Addison-Wesley C H A P T E R 13 GUI Programming.
Not Yet Another EPICS Display Manager!? Kay Kasemir, Xihui Chen Kobe EPICS Meeting October.
Creating visual interfaces in python
GUIs Basic Concepts. GUI GUI : Graphical User Interface Window/Frame : a window on the screen Controls/Widgets : GUI components.
Introduction to KE EMu Unit objectives: Introduction to Windows Use the keyboard and mouse Use the desktop Open, move and resize a.
Juanita Cano City of Sacramento Spring 2014 Geography 375.
INFORMATION SYSTEM – SOFTWARE TOPIC: GRAPHICAL USER INTERFACE.
Unit 3: Text, Fields & Tables DT2510: Advanced CAD Methods.
Giulio Eulisse, Northeastern University CHEP’04, Interlaken, 27th Sep - 1st Oct, 2004 CHEP’04 IGUANA Interactive Graphics Project:
05 | Integrating JavaScript and MVC 4 Jon Galloway | Tech Evangelist Christopher Harrison | Head Geek.
Introduction to: Python and OpenSesame FOR PROS. OpenSesame In OpenSesame you can add Python in-line codes which enables complex experiment. We will go.
BOY, A Modern Graphical Operator Interface Editor and Runtime Xihui Chen, Kay Kasemir RAD Control Group.
Illuminate Form Letters June 2016 Assessment & Evaluation, Illuminate Bootcamp Contact: Kate Arch,
Mind Mapping with Bubbl.us. The Bubbl.us Homepage Click to create a bubbl.us account Sign in or, To access, type
Introduction to EBSCOhost
JavaScript Part 1 Introduction to scripting The ‘alert’ function.
Chapter 3: I Need a Tour Guide (Introduction to Visual Basic 2012)
Qt GUI and IDE development in EPICS
GUI plans of work Revisit (reimplement) a new TreeViewer, possibly based on something like Viewpoints (see next slide) (
Topics Graphical User Interfaces Using the tkinter Module
GUI Design and Coding PPT By :Dr. R. Mall.
How to access your work from home or another computer
Aleph Beginning Circulation
Introduction to EBSCOhost
Display Builder Update
Presentation transcript:

EDM Screen Display Using PYTHON Python and the CLS and me

and me Python and And Now for Something Completely Different Python and the CLS and me

WHY? I was looking for an interpreted language that would work with the GUI currently used at the HXMA beamline (a C++/Qt 3.3 application) I didn’t want to invent my own language

So, What Happened? I tried learning Python (July, 2010) But, I needed a project as a learning tool I wanted to be able to do a few specific things:

So, What Happened? #2 1.Be able to program Python 2.Be able to embed Python in an existing application 3.Interface Python to EPICS 4.Interface Python to some existing CLS libraries (epicsConnect, epicsQt, acquisition)

My Python Project - pyEdm EDM is based on “Motif”, and (to my eye) doesn’t make the best use of object-oriented programming [open to debate] The.edl files are highly structured EDM widgets share a lot of methods and data fields

pyEdm #2 Success for this project was learning Python programming, NOT replacing EDM – and pyEdm does not replace EDM But, I learned how to use Python with EPICS (pyCa) AND I can display EDM files under MS- Windows

pyEdm #3 EDM 1-10f has ~44,000 lines of code pyEdm has ~5,000 lines of code – more common code, big gains from using Qt I’d be surprised if adding the missing functionality (editing screens, saving screens, missing unusual features) would add another 5000 lines.

What Did I Get? EDMPython – EDM as of June 2011Extra Box Around “Invisible” ButtonsMissing Words when Widget Not Long EnoughMissing GraphicsMissing Engineering UnitsIncorrect Display Precision

What’s There? EPICS\, LOC\, and CALC\ PV’s EDM Colors: –Color Rules –Alarm Sensitive –Invisible Widget Visibility Rules

What’s There? #2 Widgets: shapes, lines, text, images, sliders, groups, PIP, related displays, shell buttons, message buttons, symbols, XY graph. Path searching for.edl files.

What’s Missing? WYSIWYG editing Blinking Colors EDM Server Mode EDM Screen Display from String PV Complete set of operating and display modes for many widgets (e.g. all combinations of text display, all XY graph modes)

What’s Ugly? “Invisible” buttons. I use them lots, and the uninvisible box around them looks bad. Matching the Fonts. Word placement and alignment are noticeably different on many screens. Suspected race condition causes occasional missing widgets on display

What’s Ugly? #2 Python and QT “Ownership” rules aren’t matched up. Code to support dynamic loading of PV and object modules screams out “REWRITE ME!” Code to support CALC\ looks a lot like “C”

Python, Epics, EDM: Observations 33 edm object types Largest object implementation: 180 lines Performance OK, but hasn’t been stress tested

What’s Being Done Now? Updates to pyEdm only as required for specific EDM screens embedded in a Python/Qt4/EPICS application Near term: – Make available for “on-call” staff –Make available for tech staff with MS- Windows

Related Python “Stuff” Python access to CLS shared libraries done pyEdm can coexist with those libraries

pyEdm embedded Main Window: Qt UI file displayed using PyQt4 Embedded pyEdm display

My hovercraft is full of eels There are stumbling blocks. Some python support isn’t straightforward (CERN ROOT, Root QT, QT, and Python are causing me grief) A clean python re-implementation of a class is more work than a quick interface and extra python code to deal with the C-style approach to the class

How Not To Hide Edm 1-10f Python pyEpics 3 (cars.uchicago.edu) QT 4.5 Epics and