Experimental Physics and
| |||||||||||||||||
|
thanks for sharing the code, using your code I have mange to read and write array a simple array. I am able to successfully enhance the code to read and write a double array of size 64k ( 65535) elements. in this case I am using EPICS_CA_MAX_ARRAY_BYTES configuration was 524280 ( i.e. 65535 * 8 bytes for double). this works successfully
I have declared a string Array of 65535 elements and this time I have setted EPICS_CA_MAX_ARRAY_BYTES to 2621400 (i.e. 40*65535 considering size of 40 bytes for string) at server and client side. running with this gives error
$ python2.6 ca-channel-v1.6-demo-waveform-string-64k.py ('total values are', 65535) The requested data transfer is greater than available memory or EPICS_CA_MAX_ARRAY_BYTES
$ but when I set EPICS_CA_MAX_ARRAY_BYTES to greater then 2621420 at client side. I get the correct data at client side. code is from CaChannel import * from random import * def main(): try: channel = CaChannel('Py:string64k') channel.searchw() newval=[]
for i in range(65535): newval.append("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-$#") channel.putw(newval) print('total values are',channel.element_count()) print(channel.getw())
del channel except CaChannelException, status: print ca.message(status) main() record is record(waveform, "Py:string64k")
{field(DESC, "string array") field(NELM, "65535") field(FTVL, "STRING") } ----------------------------------------------------------- On Wed, Apr 20, 2011 at 4:21 PM, Wang Xiaoqiang <[email protected]> wrote:
| ||||||||||||||||
ANJ, 18 Nov 2013 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |