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 2025 | 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 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Hex constant as input to longin record? |
From: | Marty Kraimer <[email protected]> |
To: | Werner Portmann <[email protected]> |
Cc: | EPICS tech talk <[email protected]> |
Date: | Wed, 18 Jul 2001 08:48:36 -0500 |
Werner Portmann wrote: > > Hi all > this is not only true for the INP field of the longin record but for the > DOL field of the longout record either. (We have Epics 3.13.2). > Is it the true for all INP and DOL fields? The following code decides if the link should be a constant. (dbPutString in dbStaticLib.c) /* Check first to see if string is a constant*/ /*It is a double if strtod eats entire string*/ /*leading and trailing blanks have already been stripped*/ tempval = strtod(pstr,&end); if(*end == 0) { Thus it does not accept hex constants. Note also that recGblInitConstantLink uses sscanf to convert from a string to a numeric value. Thus just changing the above code will not fix the problem. A possible fix is to have the above code try both strtod and strtol and if either is successful then make the link a constant. If recGblInitConstantLink uses "%i" for sscanf it looks like it should work. Unless something unforseen arises I will make the changes for the next release of 3.13 and 3.14. Marty Kraimer