Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  <19992000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  Index 1994  1995  1996  1997  1998  <19992000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019 
<== Date ==> <== Thread ==>

Subject: EPICS Tcl/Tk widget set & GUI builder
From: Boris Keil <boris@delta.uni-dortmund.de>
To: tech-talk@aps.anl.gov (EPICS Techtalk)
Date: Wed, 29 Sep 99 19:48:26 +0200 (MESZ)
Hello all,

I have written a Tcl/Tk widget set for the EPICS control system,
called "EMW". It is public domain software that can be used to 
generate and edit operator panels e.g. for particle accelerators 
interactively (see below for online documentation and download).

EMW is based on the object-oriented Tcl/Tk extensions [Incr Tcl] 
and [Incr Tk] and uses the EPICS-Tcl interface Tcl-ET (support 
for CDEV-Tcl is also available). It was written for a company that 
had to develop control panels for a linear accelerator. They wanted 
to use Tcl/Tk (instead of MEDM or other existing EPICS GUI builders) 
because they were familiar with the language and wanted to be able 
to make their own custom modifications and extensions of the software 
in the future.

An EMW operator panel consists of a toplevel frame, called EMW master
widget, that typically contains several so-called EMW slave widgets 
(like buttons, sliders, graphs etc.). A master widget provides
menus that can perform generic actions on slave widgets (sub)sets, 
like switching checkbuttons, scaling analog output widgets (e.g. 
sliders), or save/restore. Master widgets have an "edit" mode in 
which you can generate new operator panels interactively. Slave
widgets can be placed on the master widget, edited interactively 
(size, color, position, EPICS I/O channel names, ...), and their
properties can be saved in a configuration file.

EMW Slave widgets provide integrated channel access connectivity. 
Since they inherit many methods and options from a common base 
class, new slave widgets can be developed without much effort. Due 
to the inheritance mechanism of [Incr Tcl], all slave widgets will 
have the same alarm colors, I/O error handling, etc. Furthermore,
the class tree structure of EMW simplifies code maintenance and
maximizes code re-use.

EMW obviously has many features already available in MEDM, without 
being that fast or powerful. However, it might be useful for people
who develop EPICS operator panels with Tcl/Tk, but who miss an 
object-oriented framework to do this, or who want to avoid the 
maintenance problems typical for larger programs or program 
collections using plain Tcl/Tk. EMW can also be used for fast 
prototyping of panels for development or testing purposes.

EMW is actually not meant to be a complete GUI builder, but a 
framework for people that want to (or have to) write their own 
special purpose widgets. It is quite easy to develop new EMW 
master or slave widgets (especially compared to C++/Motif), 
without becoming incompatible to the EMW base distribution.

At the DELTA accelerator, we are using EMW because we have a 
very small control group, so many people (mostly students with
temporary contracts) write their own special purpose GUIs. In 
the past they used plain Tcl/Tk, which caused severe maintenance 
problems after they had left. By using EMW they can continue to 
write their own GUIs, but maintenance will hopefully be much 
easier for us.

EMW can be downloaded at
http://www.delta.uni-dortmund.de/controls/pub/dist/emw

Online documentation is available at
http://www.delta.uni-dortmund.de/controls/pub/doc/emw/
(it is also included in the download package in "emw/help/base/html").

Section 2.3 contains some information about speed and resource
usage of EMW.

In case someone decides to use EMW and developes new EMW widgets, 
he/she can mail them to me so that I can include them in the EMW 
base distribution.

Best regards

Boris

--

Boris Keil
Institute for Accelerator Physics and Synchrotron Radiation
University of Dortmund
Maria-Goeppert-Mayer-Str. 2 (former Emil-Figge-Str. 74b)
D-44221 Dortmund 
Germany

phone +49 231 755-5378 
fax              -5383
mail  boris@prian.physik.uni-dortmund.de


Navigate by Date:
Prev: XYCOM XVME-085 module Chris Tierney
Next: Re: XYCOM XVME-085 module Allan Honey
Index: 1994  1995  1996  1997  1998  <19992000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019 
Navigate by Thread:
Prev: Re: XYCOM XVME-085 module Allan Honey
Next: Finding the record type of a PV J. Frederick Bartlett (bartlett@fnal.fnal.gov)
Index: 1994  1995  1996  1997  1998  <19992000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·