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: [EXTERNAL] phoebus Tank widget: Limits from PV? |
From: | "Kasemir, Kay via Tech-talk" <tech-talk at aps.anl.gov> |
To: | Paul Sichta <psichta at pppl.gov> |
Cc: | "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Wed, 5 Jul 2023 19:47:31 +0000 |
Channel Access has a problem with changing runtime limits. For a double-typed channel, a client could historically subscribe to DBR_TIME_DOUBLE to get timestamp, status, value, or to DBR_CTRL_DOUBLE which sends all the limits, units, precision, …, and the value, but NOT THE TIME STAMP??! So well-formed clients used to read the DBR_CTRL_DOUBLE once, then subscribe to the DBR_TIME_DOUBLE. That way the client fetched the large and rarely changing CTRL info once, then only got the more efficient time/status/value updates. That’s great for 99.76% of all use cases, but when you change the limits at runtime, you don’t see that in the client.
For a while there’s now a new DBE_PROPERTY modifier for the subscription that allows you do subscribe to the DBR_CTRL_DOUBLE data but only get updates when limits and units change. That’s the best of all
worlds: .. except: Older IOCs and older gateways don’t support DBE_PROPERTY, so you should only enable that if everybody in your system can handle it. See
https://control-system-studio.readthedocs.io/en/latest/preference_properties.html#pv-ca for the org.phoebus.pv.ca/dbe_property_supported setting to enable it. See also
https://epics.anl.gov/tech-talk/2016/msg01005.php and
https://epics.anl.gov/tech-talk/2021/msg00030.php -Kay |