EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Compression record returns double value for field "N" over channel access
From: Andrew Johnson via Core-talk <core-talk at aps.anl.gov>
To: core-talk at aps.anl.gov
Date: Fri, 25 Nov 2022 12:23:58 -0600
On 11/25/22 7:00 AM, Ralph Lange via Core-talk wrote:
On Fri, 25 Nov 2022 at 13:56, Ralph Lange <ralph.lange at gmx.de> wrote:
On Fri, 25 Nov 2022 at 12:25, Timo Korhonen <Timo.Korhonen at ess.eu> wrote:

I chime in here as we discussed this with Georg yesterday. Using cainfo, the original IOC reports both native and request data types as double (DBF_DOUBLE resp. DBR_DOUBLE).


True.
And wrong.

Btw. The compress_array() routine in compressRecord.c treats N and NSAM as signed.
Also wrong.
I'm not quite sure what your first "wrong" there was referring to, CA just can't express any data types outside its limited set, so what cainfo reports as the "Native data type" has to be the result of converting the internal type into some appropriate CA type.

I do agree that the compressRecord.c file seems to be incorrectly treating prec->nsam as signed in some places and unsigned in others; I didn't look at the usage of prec->n though.

I don't think cainfo could ever show a difference between the "Native data type" and "Request type" lines since it doesn't make any access requests at all with any data types, so the latter line isn't really very useful output from cainfo IMHO.

One interesting thing to me is that a field of dbAccess type DBF_USHORT doesn't get appear as a CA type DBF_LONG, and a dbAccess type DBF_UCHAR field doesn't appear as a CA type DBF_SHORT — those type conversions might be more appropriate if the intention was that the CA type has to be able to properly represent all the values that the dbAccess field type could hold.

- Andrew

-- 
Complexity comes for free, Simplicity you have to work for.

Replies:
Re: Compression record returns double value for field "N" over channel access Ralph Lange via Core-talk
References:
Compression record returns double value for field "N" over channel access Georg Weiss via Core-talk
Re: Compression record returns double value for field "N" over channel access Ralph Lange via Core-talk
Re: Compression record returns double value for field "N" over channel access Timo Korhonen via Core-talk
Re: Compression record returns double value for field "N" over channel access Ralph Lange via Core-talk
Re: Compression record returns double value for field "N" over channel access Ralph Lange via Core-talk

Navigate by Date:
Prev: Re: Compression record returns double value for field "N" over channel access Ralph Lange via Core-talk
Next: Re: Compression record returns double value for field "N" over channel access Ralph Lange via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024 
Navigate by Thread:
Prev: Re: Compression record returns double value for field "N" over channel access Ralph Lange via Core-talk
Next: Re: Compression record returns double value for field "N" over channel access Ralph Lange via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  <20222023  2024 
ANJ, 25 Nov 2022 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·