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  <20202021  2022  2023  2024  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  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: CA output links not working with PINI=YES?
From: "Johnson, Andrew N. via Tech-talk" <tech-talk at aps.anl.gov>
To: Benjamin Franksen <benjamin.franksen at helmholtz-berlin.de>
Cc: EPICS tech-talk <tech-talk at aps.anl.gov>
Date: Thu, 5 Mar 2020 20:04:50 +0000
If writing C or C++ code that does the necessary string generation and calls ‘dbpf’ to write the links is easier than putting this logic into a sequence program using pvPut, then you might consider doing that link writing in an iocsh command that you call once after iocInit.

HTH,

- Andrew


On Mar 5, 2020, at 1:52 PM, Benjamin Franksen via Tech-talk <tech-talk at aps.anl.gov> wrote:

Hi Andrew

Am 05.03.20 um 19:58 schrieb Johnson, Andrew N.:
What we want to do here is write a string to an input link field once
at init time. Link fields can be written to only via CA, which is why
we have to use a CA link.

Do you have to wait until after iocInit to set the value of that
input link field? If you could do it beforehand you could load a
separate .db file that just sets the link field of that record. You
can also use the IOC’s ‘dbpf’ command to write to a link field in
your startup script, and the length of that string isn’t limited to
40 characters any more.

The only reason for the chosen design was to make the database more
modular. We have multiple instances of a template where each instance
corresponds to one device. It is not a priori clear how many will be
needed and perhaps even what the device names will be. But we also want
to calculate a summary status value for all devices together. The idea
was to let the device templates re-write the input links of the summary
calculation. In this way the summary status calculation does not need to
know how the devices are named and how many there are (up to a limit of
course).

Christoph’s original example doesn’t show him writing to a link
field, and I’m still a little confused exactly what you’re trying to
do.

I hope I made that clearer now.

Given the actual complexity of what you’re trying to do (as
against the apparent simplicity that you’re wanting) I suspect using
a sequence program might be simpler, but more detail of the actual
problem might allow us to find a simpler solution.

Link re-writing may be a complex thing when viewed from the inside of
what has to happen on the IOC to make it possible. From a user
perspective, i.e. one who makes databases, it is not complex at all, at
least not until you wonder about the limitations and things not working
as you expect, and then listen to the explanations from the experts...

This is not a matter of not being able to achieve some desired effect.
It is more about how to do that in an elegant and modular way. Christoph
had this idea and I said "fine, why not, let's try that", which is how
we stumbled over the PINI/CA link problem.

Cheers
Ben


-- 
Complexity comes for free, Simplicity you have to work for.


References:
CA output links not working with PINI=YES? Christoph Schroeder via Tech-talk
Re: CA output links not working with PINI=YES? J. Lewis Muir via Tech-talk
Re: CA output links not working with PINI=YES? Christoph Schroeder via Tech-talk
Re: CA output links not working with PINI=YES? J. Lewis Muir via Tech-talk
Re: CA output links not working with PINI=YES? Ralph Lange via Tech-talk
Re: CA output links not working with PINI=YES? Benjamin Franksen via Tech-talk
Re: CA output links not working with PINI=YES? Johnson, Andrew N. via Tech-talk
Re: CA output links not working with PINI=YES? Benjamin Franksen via Tech-talk

Navigate by Date:
Prev: Re: CA output links not working with PINI=YES? Benjamin Franksen via Tech-talk
Next: unable to parse json response when starting Eiger IOC Jong Woo Kim 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  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: Re: CA output links not working with PINI=YES? Benjamin Franksen via Tech-talk
Next: SIOL field buffer size? Daykin, Evan 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  <20202021  2022  2023  2024 
ANJ, 05 Mar 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·