EPICS Home

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  2023  <20242025  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  <20242025 
<== Date ==> <== Thread ==>

Subject: Re: IOC with Normative Types
From: Michael Davidsaver via Tech-talk <tech-talk at aps.anl.gov>
To: Dave Bracey <dbracey at fnal.gov>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Thu, 25 Jul 2024 11:04:01 -0700
On 7/25/24 08:29, Dave Bracey via Tech-talk wrote:
If I generated an IOC with makeBaseApp.pl, how would I add a PV which is an NTScalar?  What record type would map to that?  How would I add device support to service the record?

I’m not finding any substantive documentation.  I feel I must not be understanding how this works.  Do the existing record types map to NT PV’s?

I suppose this is because "behaves like CA" assumes a knowledge of how CA conventionally behaves.

Additions

By default QSRV exposes all Process Variables (fields of process database records).
... This is all accessible record fields. So all data which is accessible via
Channel Access is also accessible via PVAccess.

https://urldefense.us/v3/__https://epics-base.github.io/pva2pva/qsrv_page.html__;!!G_uCfscf7eWS!er3VKkj8trnpZi-UMkCWoFMyDFtoe4TJCjXRA46Fb0qfYISzp6tZtByEKZJmkqcK_KIm-IAxD8HydEDZ8nhWNfQwTQ$
or

When QSRV is enabled, access to individual/single PVs in the global process database is automatic
and equivalent to the access provided by the Channel Access server in the IOC (aka. RSRV).

https://urldefense.us/v3/__https://mdavidsaver.github.io/pvxs/ioc.html*single-pv__;Iw!!G_uCfscf7eWS!er3VKkj8trnpZi-UMkCWoFMyDFtoe4TJCjXRA46Fb0qfYISzp6tZtByEKZJmkqcK_KIm-IAxD8HydEDZ8ngU_vw06A$

I’m expecting to see a new set of record types for the NT types, and to specify those in an IOC’s DB.  Is this not the case?

The automatic mapping between DBR and PVA types happens at
the level of database field.

Remember that "pvget record:name" is equivalent to
"pvget record:name.VAL".

eg. the VAL field of an aiRecord has type DBF_DOUBLE.
QSRV will map this to an NTScalar where 'value' is 'double'.

field(VAL,DBF_DOUBLE) {

https://urldefense.us/v3/__https://github.com/epics-base/epics-base/blob/91e1d0ab8022d610bb12b5536a7a6a21644d47f7/modules/database/src/std/rec/aiRecord.dbd.pod?plain=1*L247__;Iw!!G_uCfscf7eWS!er3VKkj8trnpZi-UMkCWoFMyDFtoe4TJCjXRA46Fb0qfYISzp6tZtByEKZJmkqcK_KIm-IAxD8HydEDZ8nig9FnJ1Q$

Beyond the automatic mappings, there are Groups

https://urldefense.us/v3/__https://mdavidsaver.github.io/pvxs/qgroup.html*understanding-groups__;Iw!!G_uCfscf7eWS!er3VKkj8trnpZi-UMkCWoFMyDFtoe4TJCjXRA46Fb0qfYISzp6tZtByEKZJmkqcK_KIm-IAxD8HydEDZ8ngZCgDKug$

And as a last resort custom handlers can be added directly to the PVA
server, bypassing the process database.


*From: *Kasemir, Kay <kasemirk at ornl.gov>
*Date: *Thursday, July 25, 2024 at 10:01 AM
*To: *Dave Bracey <dbracey at fnal.gov>, tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
*Subject: *Re: IOC with Normative Types

[EXTERNAL] – This message is from an external sender

 > How does one build an IOC that integrates the NT types?

In short, you do almost nothing.

Instead of “softIoc” you use “softIocPVA” to run your database.

Instead of “caget” you can then use “pvget”, and instead of the Channel Access DBR.. types you get NT.

 > I’m having a hard time finding any such material.

See PV Access intro on https://urldefense.us/v3/__https://controlssoftware.sns.ornl.gov/training/2022_USPAS/__;!!G_uCfscf7eWS!er3VKkj8trnpZi-UMkCWoFMyDFtoe4TJCjXRA46Fb0qfYISzp6tZtByEKZJmkqcK_KIm-IAxD8HydEDZ8nhc645zLA$  <https://urldefense.proofpoint.com/v2/url?u=https-3A__controlssoftware.sns.ornl.gov_training_2022-5FUSPAS_&d=DwMGaQ&c=gRgGjJ3BkIsb5y6s49QqsA&r=-F5ElEx0xTIzUkth_6VDnd86lqN2rUgF0GIN-S3DMY4&m=BQm-Z_UgRU-KdsXwN2brdV0aW1BbgMrdv2_i73F795QMPk1Bws_VuoJPKo-GX9bs&s=Xr2UjZe2bMU0IFCmp1o4z_Y9aXYf3mwSq1zTixe1fiI&e=>,

or watch the video from 2022 EPICS meeting,

https://urldefense.us/v3/__https://indico.cern.ch/event/1173788/page/25739-workshops-and-trainings__;!!G_uCfscf7eWS!er3VKkj8trnpZi-UMkCWoFMyDFtoe4TJCjXRA46Fb0qfYISzp6tZtByEKZJmkqcK_KIm-IAxD8HydEDZ8ngn4A6LFQ$  <https://urldefense.us/v3/__https://indico.cern.ch/event/1173788/page/25739-workshops-and-trainings__;!!G_uCfscf7eWS!aXvD7tHl8QPzmvCM1DDABTkYIf74rN1KF5j8eLKmTxHN9K129tT4uU9l87lKBpbsKy0AsmSKmfj57rgFzkOa_8M$>,

https://urldefense.us/v3/__https://indico.cern.ch/event/1173788/page/27020-video-material__;!!G_uCfscf7eWS!er3VKkj8trnpZi-UMkCWoFMyDFtoe4TJCjXRA46Fb0qfYISzp6tZtByEKZJmkqcK_KIm-IAxD8HydEDZ8nhA-BF71w$  <https://urldefense.us/v3/__https://indico.cern.ch/event/1173788/page/27020-video-material__;!!G_uCfscf7eWS!aXvD7tHl8QPzmvCM1DDABTkYIf74rN1KF5j8eLKmTxHN9K129tT4uU9l87lKBpbsKy0AsmSKmfj57rgFqwPhsN0$>

If you build your own IOC, check the output of “makeBaseApp.pl -t example” for the crucial Makefile section to add PVA, as shown around 28 minutes into the video.

Thanks,

Kay

*From: *Tech-talk <tech-talk-bounces at aps.anl.gov> on behalf of Dave Bracey via Tech-talk <tech-talk at aps.anl.gov>
*Date: *Thursday, July 25, 2024 at 10:50 AM
*To: *tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
*Subject: *[EXTERNAL] IOC with Normative Types

How does one build an IOC that integrates the NT types?

Are there any guides or examples -  i.e. a “Hello World” project anywhere?

I’m having a hard time finding any such material.

Dave Bracey – Fermilab Accel Dept Instrumentation



References:
IOC with Normative Types Dave Bracey via Tech-talk
Re: IOC with Normative Types Kasemir, Kay via Tech-talk
Re: IOC with Normative Types Dave Bracey via Tech-talk

Navigate by Date:
Prev: Re: how to inititial VAL field in motor record Peterson, Kevin M. via Tech-talk
Next: field(OUT, "Bdeta PP") worked only the first time Tran, Phi Dung 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  <20242025 
Navigate by Thread:
Prev: Re: IOC with Normative Types Pierrick M Hanlet via Tech-talk
Next: field(OUT, "Bdeta PP") worked only the first time Tran, Phi Dung 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  <20242025