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  <20112012  2013  2014  2015  2016  2017  2018  2019  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019 
<== Date ==> <== Thread ==>

Subject: Re: Handling of a character waveform of 64k elements
From: Matt Newville <newville@cars.uchicago.edu>
To: Ritesh Sugandhi <ritesh.sugandhi@gmail.com>
Cc: Di Maio Franck <Franck.DiMaio@iter.org>, tech-talk@aps.anl.gov
Date: Thu, 28 Apr 2011 09:38:23 -0500
Hi Ritesh,

In the best approximation of trying to reproduce this problem, I see
different behavior.

On 64-bit linux (fedora core 14, x86_64) with Epics Base 3.14.12.1, I
see from the command line:

   ~> export EPICS_CA_MAX_ARRAY_BYTES-65536 ; caget Py:char64k

works (Py:char64k having native_type=DBF_CHAR, element_count=65336).
In fact, I see

   ~> export EPICS_CA_MAX_ARRAY_BYTES=65528 ; caget Py:char64k

works, while

   ~> export EPICS_CA_MAX_ARRAY_BYTES=65527 ; caget Py:char64k

gives the message that EPICS_CA_MAX_ARRAY_BYTES is too small.  I get
the same results on 32-bit linux and 32-bit windows.

With Python (testing with Python 3.1 and 2.6), I see similar behavior,
though oddly EPICS_CA_MAX_ARRAY_BYTES works down to 65313 (on 64-bit
linux, 32-bit linux, and 32-bit windows), perhaps due to some details
of memory allocation that should not be relied upon.

I'm sure that working below or right at this threshold is not
recommended, and that setting EPICS_CA_MAX_ARRAY_BYTES somewhat higher
than you think you really need is the safer option.  On the client end
(especially a 64 bit linux machine), I would think that setting
EPICS_CA_MAX_ARRAY_BYTES to twice what you think you need is
reasonable.

It does seem that you're working hard at pushing on these and other
limits of Channel Access libraries (especially python) and reporting
problems without giving very full reports of what does work.  For
example, what value of EPICS_CA_MAX_ARRAY_BYTES does work for you?
Did you test the basic command line caget as well as your python
script -- this would help very much in isolating the issue.

Finally, it seems you're putting a lot of effort into testing the CA
python libraries. Would you be willing to work on these libraries?

Cheers,

--Matt

Replies:
Re: Handling of a character waveform of 64k elements Ritesh Sugandhi
References:
Handling of a character waveform of 64k elements Ritesh Sugandhi

Navigate by Date:
Prev: Re: regarding CaChannel v1.6 handling of dynamic subarrays Ritesh Sugandhi
Next: Re: regarding CaChannel v1.6 handling of dynamic subarrays Burkhard Kolb
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019 
Navigate by Thread:
Prev: Handling of a character waveform of 64k elements Ritesh Sugandhi
Next: Re: Handling of a character waveform of 64k elements Ritesh Sugandhi
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·