EPICS Home

Experimental Physics and Industrial Control System


 
1994  <19951996  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  Index 1994  <19951996  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 
<== Date ==> <== Thread ==>

Subject: Bugs eventTask error message storm - BURT Unsigned values > 9
From: [email protected] (Marty Kraimer)
Date: Fri, 30 Jun 1995 15:48:22 -0500
Two bugs new bugs have come to our attention.

1) eventTask ring buffer overflow

   If post_event(event_number) causes a ring buffer overflow then it
   always calls errMessage. Thus if the eventTask fails for some reason,
   an error message storm occurs. If many events are being posted, messages
   are printed at such a rapid rate that the vxWorks shell becomes unusable.

2) BURT for DBF_USHORT and DBF_ULONG fields.

    If burt is used to save USHORT or ULONG fields then the value restored
    will be  a value between 0 and 9.

    Here is the long-winded explaination of what happened.


   BURT requests floats with DBR_FLOAT and doubles with DBR_DOUBLE.
   and saves them in exponential format, i.e. x.xxxxxe+xx.
   It restores them, however with DBR_STRING.

    Because old database access doesnt know about unsigned quantities
    the interface between old and new database access tells the user that
    the native field type for USHORT is float and for ULONG is double.
    Thus BURT asks for USHORTS with DBR_FLOAT and ULONGs with DBR_DOUBLE (this w
as
    done to prevent large positive numbers from appearing as negative numbers)
    It then saves them in exp notation. When the restore is done as a DBR_STRING
    dbPutField uses integer type conversions which means that everything startin
g
     with "." is ignored.


    Here is an example. Lets say that the MRES field of the steppermotor record
    has the value 2000. BURT asks for it with DBR_FLOAT and saves it as "2.00000
e+3".
    When it is restored with DBR_STRING the format used for conversion is "%hu".
    This results in a restored value of 2.


I will be on vacation next week. When I get back I will start placing known 3.12
bugs on the APS/EPICS WWW documentation.

Marty Kraimer

Navigate by Date:
Prev: Re: ansi? Jeff Hill
Next: MV147 Bob Dalesio
Index: 1994  <19951996  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: ansi? Jeff Hill
Next: MV147 Bob Dalesio
Index: 1994  <19951996  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