One simple way to do this, depending on the client, is to put the size in another PV. Then the client can do a ca_get, requesting only that size. That is what I am doing with the areaDetector software and an IDL client. But generic clients like medm won't be able to handle that.
________________________________
From: [email protected] on behalf of Bruno Coudoin
Sent: Wed 3/4/2009 2:23 PM
To: Jeff Hill
Cc: [email protected]
Subject: RE: Variable size frame
Le mercredi 04 mars 2009 à 11:03 -0700, Jeff Hill a écrit :
> Hello Bruno,
>
> The maximum array size transmitted is determined by what you service snap in
> returns from casPV :: maxBound ( 0 ). We will call that NS.
I see this but how to pass the payload size (lets call it PS) which
maybe <= NS
> With the current state of the CA protocol the client can request a number of
> elements NE constrained by 0 < NE <= NS. The number of elements NE can be
> specified when making a get, put, or subscription request. As I recall, if
> the number of elements provided by the service snap in is less than what the
> client has requested then the client does not receive status indicating an
> error, and instead it will receive the number of elements it has requested
> with the undefined elements (at the end of the array) being set to zero.
> Note also that if the client subscribes specifying an element count NE then
> that number of elements will not change, but the client always has an option
> of canceling the subscription and starting a new one specifying a different
> NE.
The client can request NE but how does it know PS? I can't see it.
> That's the current state of things. We will certainly need to consider the
> need for improved flexibility in the future.
I am probably missing a point here because my need sounds pretty common.
I have a CAS server in which I have a PV with a variable data size of
the form (char*, size). I also know its maximum capacity. I expect the
client to be able to read the data an know its size.
I tried first to use a DBR_STRING but I found out it was truncated to 40
chars. Then I tried an array of DBR_CHAR but found no way to pass PS to
the client.
What is the best way to do this currently ?
Bruno.
- Replies:
- RE: Variable size frame Bruno Coudoin
- References:
- Variable size frame Bruno Coudoin
- RE: Variable size frame Jeff Hill
- RE: Variable size frame Bruno Coudoin
- Navigate by Date:
- Prev:
RE: Variable size frame Bruno Coudoin
- Next:
RE: Variable size frame Bruno Coudoin
- 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
- Navigate by Thread:
- Prev:
RE: Variable size frame Bruno Coudoin
- Next:
RE: Variable size frame Bruno Coudoin
- 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
|