Peter, Andrew:
I remember having serious trouble with breakpoint tables a couple years back.... until someone told me not to use numerals in the filename.
Sure enough, I fixed the problem by changing 'AC219DSBtoI' to 'ACDipoleBtoI' and everything was fine.
So try 'ThermTenkdegC and see what happens.
cheers -mathias
________________________________________
From: [email protected] [[email protected]] on behalf of Andrew Johnson [[email protected]]
Sent: Tuesday, September 27, 2016 5:16 PM
To: [email protected]
Subject: Re: Fwd: break table
Hi Pete,
On 09/27/2016 03:33 PM, D Peter Siddons wrote:
>
> I have a breakpoint table for converting thermistor resistance to
> temperature which I have used in various projects for many years. I
> tried to add it to a new IOC and this is what I get:
> breaktable("Therm10kdegC") {
> point(34.1115, 99)
Hmm, have you been experimenting with any Base-3.15 releases at all?
> The input table in the IOC src directory does not have all these
> point()s, just the bare numbers. The IOC sees these additions as a
> syntax error. Where did they come from? If I delete them in the dbd
> directory, the table loads fine. But every time I recompile they get
> replaced.
>
> This is on EPICS 3.14.12.5, compiling natively on Debian Arm.
Are you sure about that Base version number? What is the output from the
IOC's iocInit command?
The point() syntax was added to the Perl version of the DBD processing
chain in Base-3.15, and the new dbdExpand.pl script converts breakpoint
tables from the old-style list of numbers to a list of points like
you're seeing. In 3.14 though the DBD-file expansion was done using a C
program called dbExpand, so there's no way that a 3.14 build could be
running the dbdExpand.pl script even if you happened to have both
versions of Base in your PATH.
Actually it appears there is an unfortunate bug in Base-3.15 because the
IOC's DBD-file parser doesn't seem to understand that new point() syntax
at all. It's interesting that nobody else has reported this problem yet,
given that 3.15.1 was released in December 2014...
One workaround for this on 3.15-based IOCs is to *not* include the
breakpoint table file(s) when generating the IOC's DBD file, but to load
it/them separately from the IOC startup script, with either a
dbLoadDatabase or dbLoadRecords command. I would recommend loading the
breakpoint table(s) before the databases that make use of them.
Alternatively if you prefer to fix your Base-3.15 installation, you can
apply the following change:
> === modified file 'src/tools/DBD/Output.pm'
> --- src/tools/DBD/Output.pm 2014-10-03 19:23:04 +0000
> +++ src/tools/DBD/Output.pm 2016-09-27 21:10:00 +0000
> @@ -92,7 +92,7 @@
> my ($out, $breaktables) = @_;
> while (my ($name, $breaktable) = each %{$breaktables}) {
> printf $out "breaktable(\"%s\") {\n", $name;
> - printf $out " point(%s, %s)\n", @{$_}
> + printf $out " %s, %s\n", @{$_}
> foreach $breaktable->points;
> print $out "}\n";
> }
After making that change you only need to run 'make' once in the
Base/src/tools directory to apply the fix.
Sorry, my bug!
- Andrew
--
Arguing for surveillance because you have nothing to hide is no
different than making the claim, "I don't care about freedom of
speech because I have nothing to say." -- Edward Snowdon
- References:
- Fwd: break table D Peter Siddons
- Navigate by Date:
- Prev:
Re: Fwd: break table Andrew Johnson
- Next:
Re: Danfysik 8500 or 9100 power supply driver Jeong Han Lee
- 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: Fwd: break table Ralph Lange
- Next:
Re: Control system for Keithley Márcio Paduan Donadio
- 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
|