EPICS Home

Experimental Physics and Industrial Control System


 
1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  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  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: monitors received out of order
From: Till Straumann <[email protected]>
To: [email protected]
Date: Tue, 02 Nov 2010 17:54:00 -0600
That's an idea but requires a lot of bookkeeping by the application
for supporting something that could be of broader interest.

I could imagine EPICS' subscription mechanism being enhanced with
a feature that lets you subscribe to a set of PVs and then
be notified when all members of the set have updated.

FWIW
-- Till



On 11/02/2010 04:39 PM, Ben Franksen wrote:
On Dienstag, 2. November 2010, [email protected] wrote:
I am not sure what to do about it now, but I definitely have a
frequent requirement to get a coherent set of data from a server. Up
till now, I have monitored everything and then taken a snapshot
whenever I got a monitor from the last item in a processing chain
(which I have ensured always updates whenever the chain processes).
This has seemed to work with VxWorks servers. I would like to still
be able to achieve the same effect. How else can I do this?

I think there is one reliable way that should work, although I have not tested it. Please correct me if I am making wrong assumptions.

The idea is that all the records in your set use TSEL to point to
the 'start' record of your processing 'queue'. If the records in your
set are linked via FLNK, they now should all exactly agree on their
timestamp for one processing run. Then, in your client, you can group
events according to timestamp, i.e. you first wait for an event with a
new timestamp, remember it, and then wait until all the other slots in
your set have been filled by subsequent events with the same timestamp.

If your event groups are not clearly separated in time, i.e. different
event groups may overlap, you can add a small queue (2 or 3 elements)
of PV sets to be filled. Then the event handler can put values into the
right bucket (queue element) according to timestamp.

Cheers
Ben


Replies:
RE: monitors received out of order nick.rees
Re: monitors received out of order Ralph Lange
References:
monitors received out of order Tim Mooney
RE: monitors received out of order Jeff Hill
RE: monitors received out of order nick.rees
Re: monitors received out of order Ben Franksen

Navigate by Date:
Prev: RE: write failure occuring in writeScanRecInProgress function (after writing header) in saveData.c (sscan-2-6-6 module) Jay Steele
Next: Re: FW: write failure occuring in writeScanRecInProgress function (after writing header) in saveData.c (sscan-2-6-6 module) Tim Mooney
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: monitors received out of order Ben Franksen
Next: RE: monitors received out of order nick.rees
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024