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 2025 | 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 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | RE: Stream device - general concept how to use |
From: | Mark Rivers via Tech-talk <tech-talk at aps.anl.gov> |
To: | 'Ralph Lange' <ralph.lange at gmx.de> |
Cc: | "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Thu, 16 Jul 2020 17:07:38 +0000 |
Ø
Or just set all SCAN fields to the same value. Why do you need this to be linked? In my experience the advantage of linking is that then you can expose the SCAN field of a single record in the OPI and the scan rate of all records is changed. Ø
I am still wondering why there is nothing foreseen to get prompt execution of a record (and its protocol) once its read via caget (prior
caget does not cause a record to process, it just reads the current value of the record. That is by design. If you want to process the record you can write to the .PROC field, and then do a caget. Note that there are alternative ways of talking to devices besides StreamDevice. If you write a driver (for example using the asynPortDriver class) then it can be polling very fast. You can set your record to have SCAN=I/O Intr and it
will process “immediately” when the readback changes, even if that readback change was not due to a “set” operation. Mark From: Tech-talk <tech-talk-bounces at aps.anl.gov>
On Behalf Of Ralph Lange via Tech-talk On Thu, 16 Jul 2020 at 17:56, Christian Pauly via Tech-talk <tech-talk at aps.anl.gov> wrote:
Soft event scanning is your friend for such cases. No fanouts needed. Or just set all SCAN fields to the same value. Why do you need this to be linked?
Your record processes asynchronously. The PP mechanism on input links does the same thing as Channel Access: return the current value. Your input link causes the record to process, but always returns the old value. Asynchronous processing can take any time between pretty fast and never to complete. Waiting that long is not acceptable in database processing (and not nice for a CA client). Cheers, |