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: Change PVA structure dynamically during IOC operation |
From: | "Alnajjar, Dawood via Tech-talk" <tech-talk at aps.anl.gov> |
To: | "Kasemir, Kay" <kasemirk at ornl.gov>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Wed, 28 Sep 2022 18:29:04 +0000 |
Hi Kay,
Thank you for the prompt reply.
Would it make sense to you to dynamically remove the PV (rpvxs::server::Server::emovePV) and then add it again (pvxs::server::Server::addPV)? Would that produce unpredictable results?
Dawood
From: Kasemir, Kay <kasemirk at ornl.gov>
Sent: Wednesday, September 28, 2022 11:25 AM To: tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>; Alnajjar, Dawood <dnajjar at slac.stanford.edu> Subject: Re: Change PVA structure dynamically during IOC operation > I need to change a PVA structure dynamically during IOC operation. Looking at pvxs::ioc::server, I do not see an update function that allows that. Does anyone know
if this is possible?
If you check the protocol documentation,
https://github.com/epics-base/pvAccessCPP/wiki/protocol, you'll find that the overall structure information is exchanged once when a client connects. From then on, only a compact bitmap that indicates what changed is sent, plus the modified values.
To change the structure, the protocol would have to send the complete new structure.
Arrays can change the number of elements, but the overall structure stays the same because the protocol was optimized for this.
|