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> 2025 | 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> 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: [EXTERNAL] Re: Creating SNL in loadable library |
From: | Simon Rose via Tech-talk <tech-talk at aps.anl.gov> |
To: | "Johnson, Andrew N." <anj at anl.gov>, "Barrett (US), Patrick E" <patrick.e.barrett at boeing.com>, "'jure.varlec at cosylab.com'" <jure.varlec at cosylab.com>, "'tech-talk at aps.anl.gov'" <tech-talk at aps.anl.gov> |
Date: | Tue, 2 Apr 2024 14:20:14 +0000 |
Hi Patrick – The method that we use at ESS (based on the one at PSI) does handle the necessary build and load steps to deal with the situation that you describe. In short, we build
and package EPICS modules (including sequencer-based applications) in a special way that allows you to have an IOC run using nothing more than a text file as a startup script, something like: require my_snl_program # other configuration seq my_snl_program iocInit Since this simply a text file, it would of course be very simple to modify it based on whatever configuration needs you have. For more documentation, please checkout our documentation here:
http://e3.pages.esss.lu.se/ If you have any questions, feel free to ask. Cheers, Simon From:
Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of "Johnson, Andrew N. via Tech-talk" <tech-talk at aps.anl.gov> Hi Patrick, It is possible to build and load SNL programs as loadable plugins, we made that possible using the IOC's dlload command back in 3.15. I believe the PSI and ESS methods
of building and booting IOCs use that, but I haven't tried it for a while and I forget what you have to do to create and load the DBD file that tells the IOC where the SNL code is. Someone from one of those EPICS sites may be able to help. One other possibility you can consider is to build your SNL into a stand-alone program, so that code runs in a completely separate process from the IOC. That decouples
the two and allows you to start and stop them independently, although you do have to ensure that the SNL code is properly written to handle waiting for all its CA connections at startup, and for the PVs going away and coming back when the IOC comes online
again. - Andrew -- Complexity comes for free, Simplicity you have to work for. |