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 | 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 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: [EXTERNAL] phoebus Tank widget: Limits from PV? |
From: | Paul Sichta via Tech-talk <tech-talk at aps.anl.gov> |
To: | "Kasemir, Kay" <kasemirk at ornl.gov> |
Cc: | "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Wed, 5 Jul 2023 15:54:51 -0400 |
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:
Subscribe to property changes on DBR_CTRL_DOUBLE for the 0.24% use case, plus subscribe to the DBR_TIME_DOUBLE for the 99.76% use case... 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