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  2020  2021  2022  2023  2024  <20252026  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  <20252026 
<== Date ==> <== Thread ==>

Subject: CPP output link change from 3.14 to 7.0
From: "Pearson, Matthew via Tech-talk" <[email protected]>
To: EPICS Tech Talk <[email protected]>
Date: Fri, 25 Jul 2025 21:52:48 +0000

Hi,

 

We came across an oddity in our upgrade from base 3.14 to 7.0. We had a few IOCs using database logic similar to:

 

record(seq, "matt:seq") {

  field(SCAN, "1 second")

  field(DLY1, "1")

  field(DOL1, "0")

  field(LNK1, "matt:bo CPP")

  field(DLY2, "1")

  field(DOL2, "1")

  field(LNK2, "matt:bo CPP")

}

record(bo, "matt:bo") {

  field(ZNAM, "Zero")

  field(ONAM, "One")

}

 

We know this to be an invalid use of CPP on an output link, and it should be PP instead. We’re in the process of fixing a few database template files.

 

However, in 3.14 when this database is loaded the CPP is automatically changed to PP, and ‘matt:bo’ is processed as expected:

 

caget matt:seq.LNK1

matt:seq.LNK1                  matt:bo PP NMS

caget matt:seq.LNK2

matt:seq.LNK2                  matt:bo PP NMS

 

So, we never noticed the error until the upgrade. However, in 7.0, it seems to default to NPP instead:

 

caget matt:seq.LNK1

matt:seq.LNK1                  matt:bo NPP NMS

caget matt:seq.LNK2

matt:seq.LNK2                  matt:bo NPP NMS

 

I think the 7.0 version is more correct, forcing the user to fix the database logic. Is the change expected?

 

I think I see where the changes are in dbStaticLib.c, and it seems like the section dealing with link attributes are re-written at some point in about 2014. In 3.14 it didn’t test for CPP output links, and it was caught by the PP check instead. In 7.0 it explicitly rejects CPP for output links.

 

I was testing with 3.14.12.8 and 7.0.9.

 

Cheers,

Matt

 

 

 

 


Replies:
Re: CPP output link change from 3.14 to 7.0 Michael Davidsaver via Tech-talk

Navigate by Date:
Prev: Support for Ketek DPP3 detectors Mark Rivers via Tech-talk
Next: Re: CPP output link change from 3.14 to 7.0 Michael Davidsaver 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  2020  2021  2022  2023  2024  <20252026 
Navigate by Thread:
Prev: Support for Ketek DPP3 detectors Mark Rivers via Tech-talk
Next: Re: CPP output link change from 3.14 to 7.0 Michael Davidsaver 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  2020  2021  2022  2023  2024  <20252026 
ANJ, 19 Mar 2026 · Home · News · About · Talk · Base · Modules · Extensions ·
· Distributions · Download · Documents · Links · Licensing ·