On 10/15/19 8:06 PM, Mark Rivers wrote:
Hi Han,
I would like to raise few simple questions related with autosave.
These questions are related with predefined req files and the info tag in db or template files.
Since `autosaveBuild` is supported from base 3.15.0.2, or a patch to EPICS base 3.14, are there any specific reasons why areaDetector keeps using only req files instead of info tags in template files?
I think you are confusing two different features of autosave: autosaveBuild and makeAutosaveFiles.
> autosaveBuild does not parse db or template files for info tags to
define fields to be autosaved. What autosaveBuild does is it to
automatically search for a corresponding .req file for each db or
template file that is loaded. If it finds a corresponding .req file it
adds that .req file to built_settings.req. Thus the purpose of this
utility is to save the developer from having to manually create a
complete auto_settings.sav file for each IOC, based on the databases it
loads. autosaveBuild does require base 3.15.0.2 or a patch to EPICS
base 3.14.
makeAutosaveFiles is the command that reads the entire databases loaded into the IOC and searches for info nodes named autosaveFields or autosaveFields_pass0. It constructs a list of PV names to be saved and writes them to the info_settings.req and info_positions.req files. I think this is the command you are actually talking about. Note that it is supported in 3.14 and does not require any patches.
Thank you for your comment, your explanation gave me much more clear
view of how autosave works now. That part was unclear how two functions
act within existent documents for me. I am a bit difficult situation to
define them without real requirements and real systems.
My personal feeling is that using info nodes to autogenerate .req files may not be the best approach. The reason is that the choice of what records and fields to add to autosave can be a site-specific decision. For example, should the .PREC field of every record be in autosave or not? Some sites may want this, but some may not because they want those fields to revert to a "known state" when the IOC restarts, even if some user changed the PREC field for a specific experiment. I feel that customizing the .req file is much simpler and less error prone than customizing the .template file. For example in ADProsilica prosilica.template is 960 lines long (and currently does not contain any info nodes), while prosilica_settings.req is only 23 lines long. Sites can easily create a new version of prosilica_settings.req and put it in a location earlier in the autosave requestfile_path to use the new version. This is much easier to maintain than editing the prosilca.template file itself to change the info nodes.
While I build an IOC application I use whatever configuration which
we find in the community repository as the golden configuration first.
If nothing happens, I keep using that without actual thinking. I think
most of ordinary people may use the similar way which I use. While I am
doing this, I like more info tag than req file, because it reduces my
time to maintain two files consistently, and to dependent request files
in different location almost infinitely. Thus, my intention about this
email is to provide a golden autosave configuration for both methods
(info tags / request files) to end users. Then end users will select one
of methods which they think the best one without customization of the
upstream epics module repository template files.
In addition, ADSpinnaker module, it uses req files and info tag together. Do you have any specific reasons why both configurations are in that one module?
Actually spinnaker.template in the current version of ADSpinnaker does not contain any info nodes.
What does contain info nodes are the .template files in ADGenICam that are auto-generated using the camera XML file and a Python script. Those are there because that Python script was derived from the one in aravisGigE that put them in and I have not removed them. However, I really question how useful they are. Consider the file PGR_BlackflyS_50S5C.template for a FLIR/Point Grey camera. It contains 619 lines like this:
info(autosaveFields, "DESC LOLO LOW HIGH HIHI LLSV LSV HSV HHSV EGU TSE")
info(autosaveFields, "DESC LOLO LOW HIGH HIHI LLSV LSV HSV HHSV EGU TSE PINI VAL")
info(autosaveFields, "DESC LOLO LOW HIGH HIHI LLSV LSV HSV HHSV EGU TSE")
info(autosaveFields, "DESC LOLO LOW HIGH HIHI LLSV LSV HSV HHSV EGU TSE PINI VAL")
info(autosaveFields, "DESC LOLO LOW HIGH HIHI LLSV LSV HSV HHSV EGU TSE")
info(autosaveFields, "DESC LOLO LOW HIGH HIHI LLSV LSV HSV HHSV EGU TSE PINI VAL")
info(autosaveFields, "DESC LOLO LOW HIGH HIHI LLSV LSV HSV HHSV EGU TSE")
info(autosaveFields, "DESC LOLO LOW HIGH HIHI LLSV LSV HSV HHSV EGU TSE PINI VAL")
info(autosaveFields, "DESC ZRSV ONSV TWSV THSV FRSV FVSV SXSV SVSV EISV NISV TESV ELSV TVSV TTSV FTSV FFSV TSE")
info(autosaveFields, "DESC ZRSV ONSV TWSV THSV FRSV FVSV SXSV SVSV EISV NISV TESV ELSV TVSV TTSV FTSV FFSV TSE PINI VAL")
info(autosaveFields, "DESC LOLO LOW HIGH HIHI LLSV LSV HSV HHSV EGU TSE")
info(autosaveFields, "DESC LOLO LOW HIGH HIHI LLSV LSV HSV HHSV EGU TSE")
Altogether it defines over 8000 PVs to be autosaved, including such very important PVs as PINI, DESC, etc. Do you really want a user to be able to modify those fields and have those changes survive an IOC restart?
That is my question also, I looked at that template file, and and was
wondering about them either. Moreover, I will catch up few inconsistency
within that template, and its request files within ADSpinnakar, and some
additional issues to you soon.
Anyway, I understand now what you want to do. So, I will find the
site-specific solution to overcome this "customization" works.
Thank you, Mark.
Best,
Han
Mark
-----Original Message-----
From: Tech-talk <[email protected]> On Behalf Of Jeong Han Lee via Tech-talk
Sent: Thursday, October 10, 2019 5:49 AM
To: [email protected]
Subject: few questions on autosave
Hi All, and especially areaDetector Developers,
I would like to raise few simple questions related with autosave.
These questions are related with predefined req files and the info tag in db or template files.
Since `autosaveBuild` is supported from base 3.15.0.2, or a patch to EPICS base 3.14, are there any specific reasons why areaDetector keeps using only req files instead of info tags in template files?
In addition, ADSpinnaker module, it uses req files and info tag together. Do you have any specific reasons why both configurations are in that one module?
Best,
Han
- References:
- few questions on autosave Jeong Han Lee via Tech-talk
- RE: few questions on autosave Mark Rivers via Tech-talk
- Navigate by Date:
- Prev:
Streamdevice segmentation fault Brown, Garth via Tech-talk
- Next:
areaDetector module ADAravis Jörn Dreyer 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
- Navigate by Thread:
- Prev:
Re: few questions on autosave J. Lewis Muir via Tech-talk
- Next:
Re: few questions on autosave Cobb, Tom (DLSLtd,RAL,LSCI) 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
|