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  <20112012  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  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Python EPICS interface (pyepics 3.1.1) double waveform record (NLEM = 65535 ) record handling exception
From: Ritesh Sugandhi <[email protected]>
To: Andrew Johnson <[email protected]>, [email protected], Mark Rivers <[email protected]>, Matt Newville <[email protected]>
Date: Wed, 13 Apr 2011 10:06:38 +0200

Dear Matthew and Andrew,

 

Thanks for your quick reply,

 

Now I am able to read and write to double waveform record of 65535 elements.

 

The PATH configuration setting I used is

 

$ export EPICS_CA_MAX_ARRAY_BYTES=524280

            (considering 8 bytes for double; 64k*8=52480)

 

I have following feedback during testing of pyepics library


1. I also realise pyepics documentation (chapter 5, pg 41) should have EPICS_CA_MAX_ARRAY_BYTES instead of EPICS_CA_MAX_ARRAY_SIZE.


2. my plateform is RHEL 5.5 65 bit, python3.2 


3. during running test , I have changed 

 >> print x

 to 

>> print (x) 

inline with python3.


4. I have tested funcations [ caget, caput,camonitor,cainfo); camodule and PV object which I found running perfectly fine for me on above plateform.


thanks to developer for the nice interface library and documentation.


I am also interested to know how far we can go with the array size in EPICS and PyEPICS interface.

 

Thanks again ,

 

Best Regards,

 

Ritesh Sugandhi


---------------------------------------------------------------------------------------------------------------------------------------------



On Tue, Apr 12, 2011 at 6:06 PM, Andrew Johnson <[email protected]> wrote:
Also, is your IOC running EPICS Base version R3.14.12 and if so have you
installed the patch from the item dated 2011-01-13 on the Known Problems page
at http://www.aps.anl.gov/epics/base/R3-14/12-docs/KnownProblems.html

Without the patch an R3.14.12 IOC should be able to transfer up to 65534
elements but not 65535 or larger.

- Andrew

On Tuesday 12 April 2011 10:55:38 Mark Rivers wrote:
> It's actually EPICS_CA_MAX_ARRAY_BYTES, not EPICS_CA_MAX_ARRAY_SIZE.  That
>  must be set on both the IOC machine and the Python client machine.
>
> Mark
>
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]]
>  On Behalf Of Matt Newville Sent: Tuesday, April 12, 2011 10:52 AM
> To: Ritesh Sugandhi
> Cc: [email protected]
> Subject: Re: Python EPICS interface (pyepics 3.1.1) double waveform record
>  (NLEM = 65535 ) record handling exception
>
> Hi Ritesh,
>
> What is EPICS_CA_MAX_ARRAY_SIZE set to?  If left unset, I believe you
> would see exactly this behavior (arrays using up to 16384 bytes would
> work, while larger arrays would fail.
>
> I haven't tested with python 3.2 on 64-bit linux (yet?), so it's
> possible there are issues, but I'd expect that if short arrays of
> doubles work that longer ones would too.
>
> --Matt Newville
>
> On Tue, Apr 12, 2011 at 10:29 AM, Ritesh Sugandhi
>
> <[email protected]> wrote:
> > Dear sir,
> >
> > My Enviorment is
> > ----------------------
> > pyepics-3.1.1,
> > python 3.2
> > Linux kernal  2.6.18-194 ; 64 bit
> > Context: Testing pyepics library
> > Problem:
> > I am using supplied database (test/pydebug.db) and I am not able to use
> > the double wave form record of 64k elements. while double wave form
> > record of 2k elements works fine.
> > Any suggestion are welcome.
> > Best regards
> > ---- EPICS shell------------------
> > epics> dbpr Py:double64k 2
> > ACKS: NO_ALARM      ACKT: YES           APST: Always        ASG:
> >
> > BKPT: 00            BUSY: 0             DESC: long double waveform
> >
> > DISA: 0             DISP: 0             DISS: NO_ALARM      DISV: 1
> >
> > DTYP: Soft Channel  EGU:                EVNT: 0             FLNK:CONSTANT
> > 0
> >
> > FTVL: DOUBLE        HOPR: 0             INP:CONSTANT        LCNT: 0
> >
> > LOPR: 0             MPST: Always        NAME: Py:double64k  NELM: 65536
> >
> > NORD: 0             NSEV: NO_ALARM      NSTA: NO_ALARM      PACT: 0
> >
> > PHAS: 0             PINI: NO            PREC: 0             PRIO: LOW
> >
> > PUTF: 0             RARM: 0             RPRO: 0             SCAN: Passive
> >
> > SDIS:CONSTANT       SEVR: INVALID       SIML:CONSTANT       SIMM: NO
> >
> > SIMS: NO_ALARM      SIOL:CONSTANT       STAT: UDF           TIME:
> > <undefined>
> > TPRO: 0             TSE: 0              TSEL:CONSTANT       UDF: 1
> >
> > VAL: (nil)
> > ------------- Python shell -----------------------------
> >
> >>>> pv1=PV('Py:double64k')
> >
> > Traceback (most recent call last):
> >   File "_ctypes/callbacks.c", line 259, in 'calling callback function'
> >   File
> > "/home/ITER/sugandr/Desktop/epics-python/Python-3.2/lib/python3.2/site-pa
> >ckages/epics/ca.py", line 391, in _onGetEvent
> >
> >>>>     value = dbr.cast_args(args).contents
> >
> > ValueError: NULL pointer access
>

--
An error is only a mistake if you don't learn from it.
When you learn something from it, it becomes a lesson.


Replies:
Re: Python EPICS interface (pyepics 3.1.1) double waveform record (NLEM = 65535 ) record handling exception Matt Newville
References:
Python EPICS interface (pyepics 3.1.1) double waveform record ( NLEM = 65535 ) record handling exception Ritesh Sugandhi
Re: Python EPICS interface (pyepics 3.1.1) double waveform record ( NLEM = 65535 ) record handling exception Matt Newville
RE: Python EPICS interface (pyepics 3.1.1) double waveform record (NLEM = 65535 ) record handling exception Mark Rivers
Re: Python EPICS interface (pyepics 3.1.1) double waveform record (NLEM = 65535 ) record handling exception Andrew Johnson

Navigate by Date:
Prev: RE: 24-bit digitizer ICS-710 EPICS driver is available Hu, Yong
Next: Re: Python EPICS interface (pyepics 3.1.1) double waveform record (NLEM = 65535 ) record handling exception Matt Newville
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  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Python EPICS interface (pyepics 3.1.1) double waveform record (NLEM = 65535 ) record handling exception Andrew Johnson
Next: Re: Python EPICS interface (pyepics 3.1.1) double waveform record (NLEM = 65535 ) record handling exception Matt Newville
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  2020  2021  2022  2023  2024 
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 ·