The BLISS Framework 4.

Slides:



Advertisements
Similar presentations
Module 1: Introduction to SQL Server Reporting Services.
Advertisements

Lab 03 Windows Operating Systems (Cont.). PYP002 Preparatory Computer ScienceWindows Operating System2 Objectives Develop a good understanding of 1. The.
Design Patterns academy.zariba.com 1. Lecture Content 1.What are Design Patterns? 2.Creational 3.Structural 4.Behavioral 5.Architectural 6.Design Patterns.
1 Agenda Overview Review Roles Lists Libraries Columns.
An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying.
UNIT-V The MVC architecture and Struts Framework.
Creational Patterns Making Objects The Smart Way Brent Ramerth Abstract Factory, Builder.
Chapter 3 Navigating a Project Goals & Objectives 1.Get familiar with the navigation of the project. How is everything structured? What settings can you.
SCRAM Software Configuration, Release And Management Background SCRAM has been developed to enable large, geographically dispersed and autonomous groups.
Java Beans.
Configuration Management and Server Administration Mohan Bang Endeca Server.
Exploring Real-time apps with ColdFusion and Blaze DS / Live Cycle Data Services ES Dan Blackman
Building a UI with Zen Pat McGibbon –Sales Engineer.
© 2005 by IBM; made available under the EPL v1.0 | March 1, 2005 Tim deBoer Gorkem Ercan Extend WTP Server Tools for your.
Program Guide v25Q3. Overview » Concepts » Workflow  Press sheet  Linking product  Program guide  Publishing a program guide day » Layout configuration.
Deutsches Elektronen-Synchrotron DESY Helmholtz Association of German Research Centres Hamburg, Germany The European X-Ray Laser Project.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
LiveCycle Data Services Introduction Part 2. Part 2? This is the second in our series on LiveCycle Data Services. If you missed our first presentation,
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
Client – Server Application Can you create a client server application: The server will be running as a service: does not have a GUI The server will run.
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
Ch 2 – Application Assembly and Deployment COSC 617 Jeff Schmitt September 14, 2006.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Java Web Development with NetBeans IDE -- Kai Qian Chapter 5 JavaServer Faces (JSF) Technology.
GUI Design With The Appx Client Presented By: Gary Rogers.
Petra III Status Teresa Núñez Hasylab-DESY Tango Meeting DESY,
What is Programming? Computer programming is about telling the computer what it is we want it to do We tell the computer what we want it to do by sending.
Creating a Qt Widget Based Application From Qt Creator Manual.
GUIs Basic Concepts. GUI GUI : Graphical User Interface Window/Frame : a window on the screen Controls/Widgets : GUI components.
Oracle Forms Oracle Forms Builder provides various tools, which have powerful Graphical User Interfaces (GUI's) to design such forms. All objects, properties,
INFSO-RI Enabling Grids for E-sciencE Using of GANGA interface for Athena applications A. Zalite / PNPI.
Interstage BPM v11.2 1Copyright © 2010 FUJITSU LIMITED INTERSTAGE BPM ARCHITECTURE BPMS.
Thomas Burleson. Using MVC with Flex & Coldfusion Projects June 27, 2007 See how Coldfusion MVC is similar to Flex MVC…
What type of project? I tried three type of project and the only one I managed to obtain the results I wanted was this one. It is more flexible and much.
Chapter 2 – Introduction to Windows Operating System II Manipulating Windows GUI 1CMPF112 Computing Skills for Engineers.
Building GUI applications with Python, GTK and Glade
Progress Apama Fundamentals
Section 2.1 Section 2.2 Identify hardware
Business System Development
Support for the Development of Interactive Systems
Athanasios Topaloudis 3rd Forum 15/02/2017
Working in the Forms Developer Environment
Developer 2000 CSE 4504/6504 Lab.
Event Loops and GUI Intro2CS – weeks
Chapter 2 Database System Concepts and Architecture
Module Overview Installing and Configuring a Network Policy Server
RSA Client and Executor B-Spec
How to Integrate LabVIEW Applications into a Tango Control System
Tango Administrative Tools
Tau developers aproach
Lecture on Oracle Forms
WORKSHOP 2 TEMPLATES VERSUS SUBSYSTEMS
The BLISS Framework 4.
Windows Operating Systems (Cont.)
Presented By - Avinash Pawar
JavaServer Faces: The Fundamentals
Ms Munawar Khatoon IV Year I Sem Computer Science Engineering
The Basic Usage and The Event Handling in Glade.
CPAN 260 Relational Database Design and SQL
HCI Project.
Java IDE Dwight Deugo Nesa Matic Portions of the notes for this lecture include excerpts from.
Overview of My Experience With C++
February 16th, 2004 Class Meeting 5
Windows Operating System
Struts BY: Tejashri Udavant..
Message Passing Systems
Presentation transcript:

The BLISS Framework 4

The Framework Is used to build complex GUI to control beamlines By assembling complex widgets known as bricks Each brick is connected to beamline components through “hardware objects” A “hardware object” is an interface to our control systems (spec, Taco, Tango) … but over time it got adapted to abstract other kind of things

Current limitations 100% based on Qt3 Each GUI creates its own instances of Hardware Objects, multiplying accesses to the underlying control systems Stored state is not shared amongst these instances Configuration (XML files) of hardware objects is neither standardized nor assisted Clumsy way to do connections between Bricks, and between Bricks and Hardware Objects

FWK4 to the rescue! Hardware Objects are renamed Control Objects Uses Qt4, only for the GUI part New client/server model for Control Objects New tools to ease Control Objects configuration New system to connect bricks together, and bricks between control objects New GUI Builder

An overview of the new architecture

Client Server Super Event Receiver Control Object Event Receiver GUI Hardware GUI (bricks)

Events facility: signals Signals work like in Qt Control Objects emit them It let them tell the world something happened They are connected to one or several slots

How they work Using PYRO (Python Remote Objects) Control Objects talk to the app’s super event receiver … which dispatch the signal to event receivers … which is just a cute name for a handler

Accessing Control Objects from the GUI Also use PYRO Bricks access Control Objects through proxies Concurrency is handled by Pyro

Why is the new architecture better Objects proxys in GUI apps Real Control Objects stay on the server Less connections to hardware Objects signal changes to their state

Beacon, the BEAmline CONfigurator Comes with the Framework Allows to manage configuration files (XML) for Control Objects Later on, could be used to configure other beamline systems

How it works

Beacon: Quick demo

Beacon: template and result <channel name="status"/> <channel name="state"/> <command name="open"/> <command name="close"/> </template> <object class="Shutter"  username="Safety Shutter">        <channel name="status"  uri="//basil/id23/bsh/1"  type="taco" call="DevStatus" />        <channel name="state"  uri="//basil/id23/bsh/1"  type="taco" call="DevState" />        <command name="open"  uri="//basil/id23/bsh/1"  type="taco" call="DevOpen" />        <command name="close"  uri="//basil/id23/bsh/1"  type="taco" call="DevClose" /> </object>

GUI Builder Tree-based GUI editor New “Application” item : to set properties for the Application level, e.g where is my Control Objects server, splash screen image, Expert Mode password… New Connection items* : attached to the Application or to particular items in the tree Other new features : Undo/Redo, sole item preview, integration with Beacon (to be done)

GUI Builder

GUI Builder: loading/saving No more single .gui file : now a whole directory is used for each GUI application layout is completely separated from properties, connections everything is stored in a human-readable XML format “ressources” (images, icons) can be copied into the directory to stay with the GUI application

Loading/saving, cont.

GUI Builder: properties Property Groups : several properties can be grouped, they are displayed in a sub-tree in the Property Editor New Image property : any image file can be selected, otherwise provides access to the icons library

Properties, cont.

GUI Builder: connections New Service module, independent from the Framework itself “Connectable” class : allow to create objects that can be connected ; each connectable object contains “connection definitions” A “connection definition” specifies a Role, some expected Signals and some expected Slots ; any Connectable object matching the requirements can be bound Bricks and Control Objects are Connectable by default ; any other object can be a Connectable Connectable items are shown in the tree in the Editor ; clicking on an item opens the Connections Editor

GUI Builder: Quick demo