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: PVXS IOC Philosophy |
From: | "Kasemir, Kay via Tech-talk" <tech-talk at aps.anl.gov> |
To: | Timo Korhonen <Timo.Korhonen at ess.eu>, "Johnson, Andrew N." <anj at anl.gov>, Dave Bracey <dbracey at fnal.gov>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Thu, 21 Mar 2024 14:14:45 +0000 |
Looks like we gave several reasons to encourage continuing with IOCs, records, using PVAccess just like Channel Access. Just like when you get a new car, you use the steering wheel, brake, and accelerator. We’re technically minded, there might be an urge to start hacking the CAN bus, but that’s not necessary if what you want
to do is simply drive the car, and shouldn’t be your highest priority. What we might be missing is some good examples for going beyond IOCs and records. As Timo wrote, ‘the main way to take advantage of them is to use the “group PV” capability’. With “makeBaseApp.pl -t example” you now get a “circle.db” example. It creates a PVA structure that combines data from several records. Clients can receive ‘atomic’ updates from several records by reading
that structure. But those clients then typically are custom clients. EPICS meetings could be a good way to present some real-world examples for using “groups” in production. For fully custom servers and clients, SNS presented an example at the 2015 ICALEPCS. Hesitant to post web links since tech talk might garble them, but search JACOW or ICALEPCS web sites for “EPICS V4 Evaluation
for SNS Neutron Data“. In short, we used PVAccess because the server and client libraries existed, performance was very good, we could use “pvget” to check if the server generates something useful, and to some extend you can even use a generic client to show
“neutrons/protonCharge”. So instead of using some completely different protocol, we took PVAccess, but it’s mostly between a custom server and clients, and it’s pretty much the only example we have for custom data, since we generally prefer interoperable
clients and servers. |