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: AsynPortDriver separate thread causes Segmentation fault with "dbGetLinkValue" error message |
From: | Abdalla Ahmad via Tech-talk <tech-talk at aps.anl.gov> |
To: | Michael Davidsaver <mdavidsaver at gmail.com>, Mark Rivers <rivers at cars.uchicago.edu>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Thu, 5 Nov 2020 15:46:14 +0000 |
Hi all.
Buffer size is 48 because the device sends waveform data in lines so I read each line separately by reading 48 bytes, If I request ADC 200 for example I receive 200 lines where each line is 48 bytes. I even did a test where I used a buffer size of 1M to receive
the full 20000 lines and still got the same error.
Regarding EPICS waveforms, what I meant is variable length from the client side; For example I set a buffer size in a PV and based on that PV value I read a specific length so that a plotter for example reads data with that specific length only. Does NORD achieve
this? If yes, how does asyn access individual record's fields?.
Best Regards,
Abdalla.
From: Michael Davidsaver <mdavidsaver at gmail.com>
Sent: Tuesday, November 3, 2020 7:18 PM To: Mark Rivers <rivers at cars.uchicago.edu>; Abdalla Ahmad <Abdalla.Ahmad at sesame.org.jo>; tech-talk at aps.anl.gov <tech-talk at aps.anl.gov> Subject: Re: AsynPortDriver separate thread causes Segmentation fault with "dbGetLinkValue" error message On 11/3/20 8:49 AM, Mark Rivers via Tech-talk wrote:
> - I don’t think EPICS supports variable length waveform records. You need to create the waveform record in dbLoadRecords with a size that is the largest you plan to use. That is what areaDetector does with NDPluginStdArrays. To clarify, waveform records have a _maximum_ size which is fixed on initialization (eg. NELM). Actually size (NORD) has long been changeable at runtime in the range [0, NELM]. Some caveats about NORD==0 apply wrt. CA specifically (works fine with PVA). |