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 [email protected]
- Navigate by Date:
- Prev:
XYCOM XVME-085 module Chris Tierney
- Next:
Re: XYCOM XVME-085 module Allan Honey
- Index:
1994
1995
1996
1997
1998
<1999>
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: XYCOM XVME-085 module Allan Honey
- Next:
Finding the record type of a PV J. Frederick Bartlett ([email protected])
- Index:
1994
1995
1996
1997
1998
<1999>
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|