EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: EPICS Python??
From: "Matt Newville" <[email protected]>
To: [email protected]
Date: Wed, 5 Sep 2007 23:39:11 -0500
Hi Zhong,

> I use both Newville's EpicsCA and the KEK version.  EpicsCA
> used to have a problem that a crash happens every time the
> application exits.  Please let me know if this is fixed.
>
> Zhong

Yes, I think crashes-on-exit are fixed (using Python's atexit
mechanism to disconnect all PVs).
It's also important to call pend_event()  often enough.

For what it's worth, I just recently fixed a couple problems, and am
at version 2.0.6.
The source kit  is at
     http://cars9.uchicago.edu/~newville/Epics/Python/
I'll post a Windows installer in the next couple days.  The subversion
repository is at
     http://cars9.uchicago.edu/svn/epicsca/
If anyone is interested in working on this, let me know -- this is
definitely a side project for me!

For what it's worth, this implementation aims to be more Python than
Channel Access.   A few
features are:
  - installs with python setup.py install (assuming EPICS_BASE is
defined) on Linux/Mac OS X
    and binary installs for Windows.

  - simple caget() / caput() functions are supported:

  - the main interfaces is a PV class, that automatically connects to
a channel, uses callbacks
    internally to know the most recent PV value, and allows
user-defined Python function callbacks.
    String representations of values are kept,  Enum PVs keep their
Enum Strings, put() takes an
    optional 'wait' argument, and PVs can be created as the 'Control'
variants to get access to all the
    DBR_CTRL_XXX fields.

  -  some wxPython controls that are 'PV aware' (controls that
auto-update when the PV value
    changes,  Controls that enforce limits from PV limits,  wx.Choice
auto-built with enum strings,
    etc) and manage to call pend_event() for you.

Right now, this implementation does not support threads.  To be
honest, I don't think I have a need for this -- the non-threaded
version works fine for me with Tk, wxPython, and web apps.  But if
someone else does, I'd happily take suggestions on how to best do
this.

Cheers,

--Matt Newville <newville at cars.uchicago.edu>

Navigate by Date:
Prev: Re: EPICS Python?? Noboru Yamamoto
Next: modbus R1-2 released Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: EPICS Python?? Noboru Yamamoto
Next: cmlog compile problems Heinrich du Toit
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Nov 2011 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·