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: subArray record [SEC=UNOFFICIAL] |
From: | "STARRITT, Andrew via Tech-talk" <[email protected]> |
To: | "Johnson, Andrew N." <[email protected]>, Michael Davidsaver <[email protected]> |
Cc: | "EPICS Tech Talk \([email protected]\)" <[email protected]> |
Date: | Mon, 13 Jan 2020 05:38:17 +0000 |
Hi Andrew, Michael, Thank you for responses (now back from Xmas break, hence the delay). camonitor -# 0 SR07BM01FPM01:FILL_PATTERN_ELEMENT_030_EXTRACT shows 1 element which I want I want. However not sure if the Archive Appliance can be
configured to do the equivalent. Appending the filter, .[30:30], also works, although we haven’t tried it with the Archive Appliance yet. However the filter does work in EPICS Qt and in a database INP link with CA qualifier. How did I miss that little nugget of EPICS know how? Regards Andrew From: Johnson,
Andrew N. <[email protected]> Hi Andrew,
The code change that Michael pointed out was a correction to the original subArray record code – the maximum number of elements of a CA channel should be fixed since many clients rely on that to allocate local storage for channel data,
but as you saw unfortunately the subArray code was returning NELM or NORD, both of which can be changed at runtime. cainfo reports the maximum array size, not the current size. However from 3.15.1 onward you may be able to avoid having to use any subArray records at all since the IOC’s CA server supports channel filters, and specifically the array
filter. To fetch the item at index 30 you should be able to do this: $ caget 'SR07BM01FPM01:FILL_PATTERN_ABS_WAVEFORM.[30:30]' I believe cainfo with that channel name will also report a single element. HTH, - Andrew -----Original Message----- On 12/23/19 5:13 PM, STARRITT, Andrew via Tech-talk wrote: > ... > My questions: Is this a bug or a feature? While I haven't spent much time on subArrayRecord, the current code looks correct. no_elements should be set to the maximum element count here. Code which actually reads from this field should be calling rset::get_array_info() to find the actual length (from NORD). The previous code wouldn't work properly if the array size ever changed with clients connected. How many elements are are shown by: > camonitor -# 0 SR07BM01FPM01:FILL_PATTERN_ELEMENT_030_EXTRACT
|