EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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  <20202021  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  <20202021  2022  2023  2024 
<== 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]>
Sent: Tuesday, 24 December 2019 11:56 PM
To: STARRITT, Andrew <[email protected]>
Cc: EPICS Tech Talk ([email protected]) <[email protected]>
Subject: Re: subArray record [SEC=UNOFFICIAL]

 

Hi Andrew,



On Dec 23, 2019, at 7:13 PM, STARRITT, Andrew via Tech-talk <tech-[email protected]> wrote:

Using base-3-15-6, running cainfo SR07BM01FPM01:FILL_PATTERN_ELEMENT_030_EXTRACT
 
yields
 
SR07BM01FPM01:FILL_PATTERN_ELEMENT_030_EXTRACT
    State:            connected
    Host:             CR01GW17-CTL:5064
    Access:           read, no write
    Native data type: DBF_DOUBLE
    Request type:     DBR_DOUBLE
    Element count:    360
 
However, previously with an IOC using 3.14.8.4 this yielded a single valued PV.

 

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-----
From: Michael Davidsaver <[email protected]>
Sent: Tuesday, 24 December 2019 12:42 PM
To: STARRITT, Andrew <[email protected]>
Cc: EPICS Tech Talk ([email protected]) <[email protected]>
Subject: Re: subArray record [SEC=UNOFFICIAL]

 

On 12/23/19 5:13 PM, STARRITT, Andrew via Tech-talk wrote:

> ...

> My questions: Is this a bug or a feature?

 

https://github.com/epics-base/epics-base/commit/3edc4b5c18741d1c17fd93d63498c2fe2bf594da#diff-3aae14301cf71a07ec8d5a307a827f46L172

 

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

 


Replies:
Re: subArray record [SEC=UNOFFICIAL] Johnson, Andrew N. via Tech-talk

Navigate by Date:
Prev: Re: EPICS release series after 7.0: 7.1 or 8.0? Ralph Lange via Tech-talk
Next: Problems with first ADSimdetector implementation Matteo C. via Tech-talk
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  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: RE: Carriage Return in asyn record IEOS/OEOS fields Mark Rivers via Tech-talk
Next: Re: subArray record [SEC=UNOFFICIAL] Johnson, Andrew N. via Tech-talk
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  <20202021  2022  2023  2024 
ANJ, 13 Jan 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·