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  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024  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  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: StreamDevice "type punning" floating point conversion
From: "Johnson, Andrew N. via Tech-talk" <tech-talk at aps.anl.gov>
To: Eric Norum <wenorum at lbl.gov>
Cc: EPICS tech-talk <tech-talk at aps.anl.gov>
Date: Thu, 24 Sep 2020 17:19:15 +0000
Hi Eric,

On Sep 24, 2020, at 11:34 AM, Eric Norum <wenorum at lbl.gov> wrote:

I have a piece of equipment that returns an IEEE-754 floating point value expressed as a hexadecimal integer.  i.e. when the device returns the ASCII string
0xbff9d411
it is sending the value
-1.95178

So far the only way I can figure out how to handle this is to read the value into a ai record RVAL then use a subroutine record with a C union to do the conversion and then store the float value in the ai record VAL.  Is there a way to avoid the subroutine record?   I’m looking for sort of a combination of a %x and a %R StreamDevice format converter.

It sounds to me like you need another StreamDevice format converter, which would seem to be the logical place to put this functionality. It’s possible that some devices might need really obscure things like byte-swapping the value in between parsing the hex format integer and writing the 32-bit float value, but hopefully those kinds of devices are so rare that Dirk shouldn’t need to support them until asked.

- Andrew


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


Replies:
Re: StreamDevice "type punning" floating point conversion Brown, Garth via Tech-talk
Re: StreamDevice "type punning" floating point conversion Eric Norum via Tech-talk
References:
StreamDevice "type punning" floating point conversion Eric Norum via Tech-talk

Navigate by Date:
Prev: StreamDevice "type punning" floating point conversion Eric Norum via Tech-talk
Next: Re: StreamDevice "type punning" floating point conversion Brown, Garth via Tech-talk
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  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: StreamDevice "type punning" floating point conversion Eric Norum via Tech-talk
Next: Re: StreamDevice "type punning" floating point conversion Brown, Garth via Tech-talk
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  <20202021  2022  2023  2024 
ANJ, 28 Sep 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·