Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017 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
<== Date ==> <== Thread ==>

Subject: Re: issue with either camonitor or pcaspy in 3.15?
From: Wang Xiaoqiang <xiaoqiang.wang@psi.ch>
To: Jameson Graef Rollins <jrollins@ligo.caltech.edu>, EPICS tech-talk <tech-talk@aps.anl.gov>
Date: Mon, 20 Nov 2017 11:02:56 +0100

Hi Jamie,

The UDF (UnDeFined) alarm and INVALID severity is to indicate the values are default values, have not got updated by the driver. This is the same behavior as the EPICS database gets initialized on start-up.

Calling setParamStatus to clear the alarm status is all correct. It is then necessary to call driver.updatePVs() to inform ca clients with a DBE_ALARM event update. Otherwise this update event will be delayed until the next driver.updatePVs() call. And in PCASpy 0.6+, every caput triggers a call to driver.updatePVs(). That explains seeing all four updates together, in which channel A gives a value update and B,C,D give an alarm update.

To conclude, it is an incompatible change introduced in PCASpy 0.6. I created an issue to track this.
https://github.com/paulscherrerinstitute/pcaspy/issues/48

In any case, it is best to explicitly call driver.updatePVs() after calling setParam, setParamStatus, setParamEnums, setParamInfo. I will add this the docs.

Best
Xiaoqiang

On 11/19/2017 03:47 AM, Jameson Graef Rollins wrote:
On Fri, Nov 03 2017, Wang Xiaoqiang <xiaoqiang.wang@psi.ch> wrote:
Here is my test on linux-x86_64 arch, using pcaspy 0.7.0 anaconda
package from https://anaconda.org/paulscherrerinstitute/pcaspy

It does not reproduce the problem. Any chance that you could test using
the same setup?

Hi, Xiaoqiang.  Thanks for confirming for me.  I finally figured out
what the issue was.  In my test pcaspy IOC, on init I am attempting to
clear the "UDF INVALID" flags with the following:

     for k in pvdb:
         driver.setParamStatus(k, pcaspy.Severity.NO_ALARM, pcaspy.Severity.NO_ALARM)

In earlier pcaspy versions this was sufficient to clear the flags
without causing any additional odd behavior.  I see now that with 0.6
and later the issue I need to additionally call updatePVs() after the
above:

     driver.updatePVs()

Is this the right thing to do?  Is there a cleaner way to clear the
initial "UDF INVALID" flags?  And why is the "UDF INVALID" set
initially anyway?

Thanks so much for the help.

jamie.


Replies:
Re: issue with either camonitor or pcaspy in 3.15? Jameson Graef Rollins
References:
issue with either camonitor or pcaspy in 3.15? Jameson Graef Rollins
Re: issue with either camonitor or pcaspy in 3.15? Wang Xiaoqiang
Re: issue with either camonitor or pcaspy in 3.15? Jameson Graef Rollins

Navigate by Date:
Prev: Illunis CMV-50 camera & Kaya Custom Fiber framegrabber neil.o'brien
Next: time stamp on vxWorks jumping to the future Dirk Zimoch
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
Navigate by Thread:
Prev: Re: issue with either camonitor or pcaspy in 3.15? Jameson Graef Rollins
Next: Re: issue with either camonitor or pcaspy in 3.15? Jameson Graef Rollins
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
ANJ, 20 Nov 2017 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·