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 | 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 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: pyepics problem with PV.put(wait=True) |
From: | Matt Newville <[email protected]> |
To: | Jameson Graef Rollins <[email protected]> |
Cc: | EPICS tech-talk <[email protected]> |
Date: | Thu, 14 Aug 2014 21:07:20 -0500 |
Hi, folks. I'm seeing what might be a bug in the behavior of PVs in the
pyepics interface, or at the very least something inconsistent with
advertised behavior.
I'm trying to use the wait=True option to PV.put() to wait for process
completion, after which I want to log the put action. Here's a basic
example:
#!/usr/bin/env python
>From epics import PV
pv = PV('T1:TEST-SYS_B')
for i in range(10):
pv.put(i, wait=True)
print pv.get()
However, what I'm consistently getting as output from the above is
something like the following:
0.0
0.0
2.0
3.0
3.0
4.0
6.0
6.0
8.0
9.0
Note that the output is not at all what is expected: on three out of ten
writes a pv.get() immediately following a pv.put(wait=True) fails to
return the newly updated value. I see the same failures if I instead
set use_complete=True and check for put_complete==True before issuing
pv.get().
If the put() has actually completed, why is the get() still seeing the
old value?
Thanks in advance for any help or suggestions.
jamie.