Subject: |
[Bug 1844537] Re: OMSL="closed_loop" doesn't work with constant DOL |
From: |
Ben Franksen via Core-talk <[email protected]> |
To: |
[email protected] |
Date: |
Thu, 24 Oct 2019 13:10:30 -0000 |
Below is a diff against commit f3204d8afad49b6f3aa375f7efe705e3b2f68229
for the doc fix.
We just checked that the behavior in 3.15. and 7.0 is the same for all
records that have DOL and OMSL: if DOL is constant, OMSL="closed_loop"
is ignored and the behavior is as if OMSL="supervisory". And modifying a
constant link with a CA put has no effect other than that the value of
the DOL field changes.
Your comment regarding the many changes to link support prompted me to
look at the new dbLink.h. It looks as if the existing anomalous behavior
of constant links is now hard-coded into the design of the LSET
interface. This makes it indeed more difficult to implement the change I
sketched above.
diff --git a/modules/database/src/std/rec/boRecord.dbd.pod b/modules/database/src/std/rec/boRecord.dbd.pod
index 8df8d7f..6b6d180 100644
--- a/modules/database/src/std/rec/boRecord.dbd.pod
+++ b/modules/database/src/std/rec/boRecord.dbd.pod
@@ -65,9 +65,9 @@ C<losed_loop> or C<supervisory>. If C<supervisory> is specified, the value
in the VAL field can be set externally via dbPuts at run-time. If
C<closed_loop> is specified, the VAL field's value is obtained from the
address specified in the desired output location (DOL) field which can be a
-database link, a channel access link, or a constant. To achieve continuous
-control, a database link to a control algorithm record should be entered in
-the DOL field.
+database link or a channel access link, but not a constant. To achieve
+continuous control, a database link to a control algorithm record should be
+entered in the DOL field.
L<Address Specification> presents more information on database addresses
and links. L<Scanning Specification> explaines the effect of database
--
You received this bug notification because you are a member of EPICS
Core Developers, which is subscribed to EPICS Base.
Matching subscriptions: epics-core-list-subscription
https://bugs.launchpad.net/bugs/1844537
Title:
OMSL="closed_loop" doesn't work with constant DOL
Status in EPICS Base:
New
Bug description:
This was incorrectly documented for the boRecord. I just fixed that in
the wiki.
However, I see this as yet another arbitrary limitation.
To lift that we need a small generalisation to how we treat constant
links. A constant link just has to remember whether it has been
processed before. The flag gets set by dbGetLink and the like and it
gets reset after link initialisation (so we can change the "constant"
using a CA put to the link field). If dbGetLink finds that the link is
constant, then it converts the value from the string stored in the
link, but only if it hasn't been processed before. This also means
that we can deprecate recGblInitConstantLink because it is now
subsumed by dbGetLink.
To manage notifications about this bug go to:
https://bugs.launchpad.net/epics-base/+bug/1844537/+subscriptions
- References:
- [Bug 1844537] [NEW] OMSL doesn't work with constant DOL Ben Franksen via Core-talk
- Navigate by Date:
- Prev:
[Bug 1844537] Re: OMSL="closed_loop" doesn't work with constant DOL Ben Franksen via Core-talk
- Next:
Build failed in Jenkins: EPICS-3.15 #212 Jenkins EPICS PSI via Core-talk
- Index:
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:
[Bug 1844537] Re: OMSL="closed_loop" doesn't work with constant DOL Ben Franksen via Core-talk
- Next:
[Bug 1844537] Re: OMSL="closed_loop" doesn't work with constant DOL Andrew Johnson via Core-talk
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
<2019>
2020
2021
2022
2023
2024
|