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  2020  2021  2022  <20232024  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  <20232024 
<== Date ==> <== Thread ==>

Subject: Re: Difference in PV Structures Made Via QSRV and PVXS
From: Michael Davidsaver via Tech-talk <tech-talk at aps.anl.gov>
To: "Srinivas, Dhruv" <srinivas1 at llnl.gov>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Wed, 19 Jul 2023 09:30:29 -0700
On 7/19/23 08:30, Srinivas, Dhruv via Tech-talk wrote:
I was looking at PV structures and how to utilize them properly, and I’ve discovered that there are two ways to create them. The first is using  QSRV through .db files, and the other is using PVXS through C++ files. I was wondering what the differences between the two were in terms of functionality. From my rather limited experience with epics, the difference between the two seems like

QSRV is limited to built-in epics records, so wouldn’t be able to store a matrix of some kind.

This is the basic concept.  Although the idea of Group PV gives
more flexibility to compose complex Structures where the individual
members are mapped to record fields.  So one Group PV Structure can
map to storage in many records.

Two examples composing NTTable and NTNDArray.

NTNDArray example is more complex, but may be more relevant to you.  In it the
2D pixel array is stored in a 1D waveformRecord, while the width+height) are
stored in two longoutRecords.

https://github.com/epics-base/pva2pva/blob/master/iocBoot/iocimagedemo/table.db

https://github.com/epics-base/pva2pva/blob/master/iocBoot/iocimagedemo/image.db

https://mdavidsaver.github.io/pvxs/ioc.html#group-pv

https://epics-base.github.io/pva2pva/qsrv_page.html#qsrv_group_def

I am linking documentation for both pva2pva (aka. QSRV 1) and PVXS (aka. QSRV 2)
as the info() tag syntax for composing groups is the same.  If however, you
opt for c++ code the two APIs are different, and I would recommend PVXS alone.

However, I’m not sure if that’s actually the case. As such, I was hoping someone with more experience with PV structures could help explain the difference to me.

Sincerely,

Dhruv Srinivas

srinivas1 at llnl.gov <mailto:srinivas1 at llnl.gov>



References:
Difference in PV Structures Made Via QSRV and PVXS Srinivas, Dhruv via Tech-talk

Navigate by Date:
Prev: Difference in PV Structures Made Via QSRV and PVXS Srinivas, Dhruv via Tech-talk
Next: Re:Re: Re: Re: Xspress3 INP error lynn 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  <20232024 
Navigate by Thread:
Prev: Difference in PV Structures Made Via QSRV and PVXS Srinivas, Dhruv via Tech-talk
Next: New release of areaDetector modules ADGenICam, ADAravis, ADSpinnaker, and ADVimba Mark Rivers 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  <20232024 
ANJ, 20 Jul 2023 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·