EPICS Controls 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  <20172018  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  <20172018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: same value updates after initialization in pcaspy 0.7.0
From: Jameson Graef Rollins <[email protected]>
To: Wang Xiaoqiang <[email protected]>, EPICS tech-talk <[email protected]>
Date: Wed, 27 Dec 2017 19:25:57 -0800
Hi, Xiaoqiang et. al.  I'm seeing some behavior in pcaspy 0.7.0 that I'm
not understanding, and I'm hoping you can help me figure out what's
going on.

I have a trivial test pcaspy IOC (code attached) serving a single
channel "TEST:A".  After starting the IOC I run camonitor on the
channel:

$ camonitor TEST:A
TEST:A                         2017-12-27 19:15:42.991145 0

If I then put the *same* initial value into the channel...

$ caput TEST:A 0
Old : TEST:A                         0
New : TEST:A                         0
$

...I see an update:

guard-test> camonitor TEST:A
TEST:A                         2017-12-27 19:15:42.991145 0  
TEST:A                         2017-12-27 19:15:50.661466 0  

Additional puts with the same value show no more spurious updates.  So
this only happens immediately after initialization.

This is contrary to the behavior that I now expect, whereby there would
never be external updates if the value was not changing.  Can you help
me understand what's going on?

Basically I'm looking for the best way to get consistent behavior out of
the pcaspy driver, either where puts always show updates even if the
value is the same, or that puts of the current value do not ever show
updates.  How can I achieve this?

Thanks in advance for any help.

jamie.


#!/usr/bin/env python

import sys
import pcaspy

prefix = 'TEST:'
pvdb = {
    'A': {
        'prec': 0
    },
}

class DummyDriver(pcaspy.Driver):
    pass

server = pcaspy.SimpleServer()
server.createPV(prefix, pvdb)
driver = DummyDriver()

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

while True:
    server.process(0.1)

Attachment: signature.asc
Description: PGP signature


Replies:
Re: same value updates after initialization in pcaspy 0.7.0 Jameson Graef Rollins
Re: same value updates after initialization in pcaspy 0.7.0 Jameson Graef Rollins

Navigate by Date:
Prev: New full-text RSS feeds now available Andrew Johnson
Next: Re: same value updates after initialization in pcaspy 0.7.0 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  <20172018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: New full-text RSS feeds now available Andrew Johnson
Next: Re: same value updates after initialization in pcaspy 0.7.0 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  <20172018  2019  2020  2021  2022  2023  2024 
ANJ, 29 Dec 2017 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·