150 likes | 354 Views
Tau: PyQT GUI for Tango TANGO Collaboration Meeting April 18, 2008. Tiago Coutinho - ALBA. Agenda. Concept core widget model Demo Current applications Requirements Future Conclusions. Tau. widget. core. PyTango. Tango. CORBA. Concept.
E N D
TANGO Collaboration Meeting 2008, April 17th and 18th 2008, Elettra Tau: PyQT GUI for Tango Tau: PyQT GUI for TangoTANGO Collaboration MeetingApril 18, 2008 Tiago Coutinho - ALBA
TANGO Collaboration Meeting 2008, April 17th and 18th 2008, Elettra Tau: PyQT GUI for Tango Agenda • Concept • core • widget • model • Demo • Current applications • Requirements • Future • Conclusions
TANGO Collaboration Meeting 2008, April 17th and 18th 2008, Elettra Tau: PyQT GUI for Tango Tau widget core PyTango Tango CORBA Concept • A framework for both CLI and GUI Tango applications • Built on top of PyTango • Originally known as PyTauico & PyTauiwi • Two major libraries: • core • widget
TANGO Collaboration Meeting 2008, April 17th and 18th 2008, Elettra Tau: PyQT GUI for Tango Concept (cont.)core • the “model” part of a MVC oriented arquitecture • Completely QT independent • the heart: TangoFactory • old AttributeFactory and DeviceFactory • ensures single object for single identity • model discovery • implements naming validation • polling engine • logging framework • the models: • Hierarquichal • Implement TauModel interface • automatic event subscription ( change & configuration ) • must obey the naming convention
TANGO Collaboration Meeting 2008, April 17th and 18th 2008, Elettra Tau: PyQT GUI for Tango Concept (cont.)model • Database • (tango://)?<host>:<port> Ex: tango://controls01:10000 or controls01:10000 • Device • (<database>/)?(<devicename>|<devicealias>) Ex: controls01:10000/motor/icepapctrl/1 • Attribute • <device>/<attrname> Ex: motor/icepapctrl/1/velocity
TANGO Collaboration Meeting 2008, April 17th and 18th 2008, Elettra Tau: PyQT GUI for Tango Concept (cont.)model Configuration • <attribute>?configuration=<confname> Ex: motor/icepapctrl/1/velocity?configuration=label • Property • <class>?property=<propname> • <device>?property=<propname> • <attribute>?property=<propname> Ex: motor/icepapctrl/1?property=channel_id • Command • <device>?command=<cmdname> Ex: motor/icepapctrl/1?command=DefinePosition
TANGO Collaboration Meeting 2008, April 17th and 18th 2008, Elettra Tau: PyQT GUI for Tango Concept (cont.)widget • built on top of tau.core and PyQt • tango widget behavior rules: • colors on state and/or quality, writability on attribute type, etc • look & feel • exception handling • hierarquical widgets that match model hierarchy • automatic event registration (CHANGE & ATTR_CONF) • QT Designer ‘friendly’ • Basic widgets are done • Easy to write your own custom widgets. • python widgetgen.py <classname> <superclass> <outputfile> [<qtfile>]
TANGO Collaboration Meeting 2008, April 17th and 18th 2008, Elettra Tau: PyQT GUI for Tango
TANGO Collaboration Meeting 2008, April 17th and 18th 2008, Elettra Tau: PyQT GUI for Tango
TANGO Collaboration Meeting 2008, April 17th and 18th 2008, Elettra Tau: PyQT GUI for Tango
TANGO Collaboration Meeting 2008, April 17th and 18th 2008, Elettra Tau: PyQT GUI for Tango Requirements • Core • Python 2.4 • PyTango 3.0.4* • Widget • Qt & PyQT 4.2 • 4.3 if you want synoptics • Qwt & PyQwt 5.0.1 • If you want plotting widgets • numpy *It’s not out yet!
TANGO Collaboration Meeting 2008, April 17th and 18th 2008, Elettra Tau: PyQT GUI for Tango Future • core: • missing objects: command, property • widgets: • missing basic widgets: list, combo, spinner, table • migration of non basic widgets: Image, OpenGL widgets • Complete set of JDraw synoptics features • test framework • Developers manual • Tango idependency • Part of a larger plan • tango://motor/ctrl/slit to spec://slit • Dam! maybe we will have to rename Tau. Again!
TANGO Collaboration Meeting 2008, April 17th and 18th 2008, Elettra Tau: PyQT GUI for Tango Conclusions • Users (developers) are happy • They are developing GUIs: • Rich • Small development effort • Good logging support • Most of the time is spent in QT designer and JDraw • Still a lot of work to be done to reach an ATK level of maturity and stability
TANGO Collaboration Meeting 2008, April 17th and 18th 2008, Elettra Tau: PyQT GUI for Tango Questions ? ? ? ? ? ?