Where did I go ?

21
Where did I go ? Where did I go ?

description

Where did I go ?. Where did I work ?. What did I do @ ANSTO ?. Choose a device bus Choose a programming language Propose and develop an architecture for the GUI Waltzing Mathilda i.e. see Australia !. Choosing a Device Bus. Compared XML-RPC and TANGO XML-RPC No standard API - PowerPoint PPT Presentation

Transcript of Where did I go ?

Page 1: Where did I go ?

Where did I go ?Where did I go ?

Page 2: Where did I go ?

Where did I work ?Where did I work ?

Page 3: Where did I go ?

What did I do @ ANSTO ?What did I do @ ANSTO ?

1. Choose a device bus

2. Choose a programming language

3. Propose and develop an architecture for the GUI

4. Waltzing Mathilda i.e. see Australia !

Page 4: Where did I go ?

Choosing a Device BusChoosing a Device Bus

• Compared XML-RPC and TANGO

1. XML-RPC1. No standard API2. 4 pages of documentation3. Slow

1. Java – 25 ms / kb (worst 432 ms)2. C – 91 ms / kb (worst 4477 ms)

4. Lack of functionality (no timeouts, events etc.)2. TANGO

1. The best object oriented control system there is ;-)!2. Fast (250 microsecs)3. Full set of functionalities

• The winner is – “TANGO” !

Page 5: Where did I go ?

TANGO in SydneyTANGO in Sydney

• TANGO will be used as device bus for detectors and hardware which are running on a separate computer and need to be interfaced with the control system e.g. Denex detectors, Brookhaven detector, Velocity selector, etc.

• TANGO will be used without the database (aka 99% fat free TANGO)

• TANGO is installed and currently one device server exists for one detector on the old reactor

• TANGO will be interfaced to SICS, the main control system sequencer

Page 6: Where did I go ?

TANGO architecture @ RRRTANGO architecture @ RRR

SICSserver

TANGO Device Servers

Histogrammemory

Velocityselector

SICS Motor controllersSICSclient

HistogramGUI

 

Page 7: Where did I go ?

TANGO seen from 15000 kmTANGO seen from 15000 km

• The source code distribution for Linux and the binary distribution for Windows WORK!

• TANGO is not easy to use and understand if you do not have previous experience with TANGO

• TANGO is great BUT … It is not easy to find what device servers exist and

download them “dbase=no” option is not supported for everything It does not have enough applications + howto’s Web site is not easy to navigate The TANGO collaboration does not look coherent from

the outside TANGO is not a complete solution for doing controls

(yet)

Page 8: Where did I go ?

Choosing a programming language for Choosing a programming language for the GUIthe GUI

• C++ is excluded because it the cross platform solutions are either not free or not well supported

• Compared Java vs. Python/Qt Python+Qt

Relatively easy to program, no type checking, few tools, popular at scientific institutes, not so portable

Java Supports type checking, is portable, lots of classes available, well

structured, good development tools, weak on data visualisation

• The winner is – “Java”

• BUT which widget library to use : Swing/AWT or JFace/SWT ?

Page 9: Where did I go ?

The Graphical User InterfaceThe Graphical User Interface

Andy GötzTony Lam

Ferdi FranceschiniNick Hauser

Page 10: Where did I go ?

Development TeamDevelopment Team

Main Architects

SICS Expert Visualisation ManGUI Developer

Nick HAUSER

Paul HATHAWAY

Andy GOTZ

Ferdi FRANCESCHINITony LAM

Page 11: Where did I go ?

Graphical User InterfaceGraphical User Interface

Main Components:1. Instrument Control and Status

• No prior knowledge of SICS commands2. Live Data Visualization

• Preview of the data acquired during experiment3. Online / Offline Data Analysis

• Data analysis package embedded with other GUI components

Motors Detectors Ancillaries

Control / StatusData Visualization

Data Analysis

GUI

SIC Server

Page 12: Where did I go ?

RRR Uses Novel Approach for GUIRRR Uses Novel Approach for GUI Old days Now @ RRR

• GUI is being built BEFORE the instruments

• Scientists can test-drive the GUI in simulation mode before getting neutrons

• Data can be simulated or real data

Page 13: Where did I go ?

Take a guess

What to call the GUI ?What to call the GUI ?

Kowari (Residual Stress)

Platypus (Reflectometer)Wombat (HIPD)

Echidna (HRPD)

Koala (QLD)Quokka (SANS)

Graphical User Interface for Multiple and Time Resolved Experiments

Page 14: Where did I go ?

The Gumtree Base TechnologyThe Gumtree Base Technology• GumTree is based on

Eclipse Technology

• What is Eclipse? The next best thing since sliced

bread ! Java based technology for

building applications

• Why Eclipse Plug-in architecture

Scalability, extensibility Modern application features Multi platform support Open Source + FREE!! IBM spent 40 million US$ on

developing Eclipse

Page 15: Where did I go ?

The Gumtree conceptThe Gumtree concept

• Fat client as opposed to thin client• The single workbench for doing all the scientist needs to

do take and analyse data• The various tools the scientist needs are written as Eclipse

plugins• The tools plug in to the workbench to form a coherent

integrated application• The standard tasks needed for doing beamline control are

provided by Gumtree• Gumtree abstracts the standard tasks as a set of

interfaces e.g. control system, device, motor, detector, sequencer etc.

• The system integrator implements the interfaces which access the underlying control system

• Gumtree discovers what is in the underlying control system by browsing

Page 16: Where did I go ?

What Eclipse offers?What Eclipse offers?• A development tool

• AND A Framework A framework can be up to 80% of an application

• ECLIPSE Framework SWT (based on native widgets) JFace (based on SWT) Views Perspectives Window management Preferences Properties Internationalisation Wizard classes to build your own wizards Online help to build your own context sensitive help Forms for html type views Cheatsheets XML editor Update manager …

Page 17: Where did I go ?

What is an Eclipse plugin?What is an Eclipse plugin?

• Is the smallest unit of code in Eclipse• It is written in Java• Contains an xml declaration file + jar + resources• The manifest file declares :

Extensions – what plugins your plugin extends Extension Points – how your plugin can be extended

• An extension point can have its own API• Eclipse reads all manifest files to discover all plugins• Plugins are only activated when needed

Page 18: Where did I go ?

GumTree ScreenshotsGumTree Screenshots

Page 19: Where did I go ?

The knife analogy to software The knife analogy to software developmentdevelopment

Page 20: Where did I go ?

ConclusionConclusion

• TANGO is great BUT it still needs improvements to: No database option to be improved Need more integrated applications Website face lift

• Python is great BUT Java is better• Gumtree is a great integrated application for doing experiments• Gumtree could be used at the ESRF beamlines BUT it is not

written in Python

• Eclipse in the TANGO collaboration ? It could be used to write applications for TANGO SWT and JFace could replace Swing BUT what to do with the

existing base already written in Swing ? At least try out Eclipse as development tool for Java + C/C++

• I think Eclipse could become the next major platform independent application framework and could have as much influence as Linux and Java for software developers

Page 21: Where did I go ?

Waltzing MathildaWaltzing Mathilda