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: Long String support in phoebus |
From: | "Johnson, Andrew N. via Tech-talk" <tech-talk at aps.anl.gov> |
To: | "Rivers, Mark L." <rivers at cars.uchicago.edu> |
Cc: | EPICS tech-talk <tech-talk at aps.anl.gov> |
Date: | Fri, 10 Jul 2020 16:47:11 +0000 |
Hi Mark,
On Jul 10, 2020, at 10:41 AM, Mark Rivers via Tech-talk <tech-talk at aps.anl.gov> wrote:
The $ sign is called a field modifier, and they are briefly mentioned in the AppDevGuide but unfortunately not anywhere that users would be looking for them (the description of them in section 15.4.1 is also out of date anyway). The $ modifier has been
part of Base since R3.14.11, this talk introduced it starting at slide 5: https://epics.anl.gov/meetings/2009-05/SA1/BaseR3.14.11.pdf
We introduced additional field modifiers to the IOC in R3.15.1 and later; in most cases they use JSON syntax to provide parameters for a filter, but there is a short-hand for the array filter that uses square brackets
[start:increment:end] to select the array elements to be included. These filters are all detailed in the Channel Filters document which is also generated
as part of the Base build (look in Base/html/filters.html for the specific filters available in your release).
I have been very remiss though in not documenting the $ modifier properly. It’s not obvious where it should be described though, so I’ll probably add it to that filters document.
Field modifiers are implemented inside the IOC, below the level of Channel Access, which is how we were able to add them without having to modify the protocol at all, so older CA clients such as MEDM that already supported accessing strings as char arrays
can use them. That is also why you can use them with QSRV over PV Access, the network protocols just present the IOC with a PV name and the IOC handles parsing it and working out how to present it to the server.
HTH,
- Andrew
--
Complexity comes for free, simplicity you have to work for.
|