On 12/17/20 9:15 PM, Paduan Donadio, Marcio via Tech-talk wrote:
> Hi, Michael.
>
>
>
> Thank you for the tip about using PVA link support. I’ve created a group with some PVs and the result looks like what I was trying to achieve with NTMultiChannel.
>
>
>
> Two questions:
>
> 1 – Is there a way to call a function every time a group processes? I’d like to create a device-support-like thing to read the fields and values of each channel and calculate things.
At present, no. The "group" doesn't really exist as a concept in the database.
I have some pending work which would provide a way to do this by adding the
ability to have complex types as record fields (record in the dbCommon sense).
I think this work is to the point where a motivated developer could try it out.
Though at this stage familiarity with record support code is a must.
eg. A record type where VAL is an NTTable structure.
https://github.com/mdavidsaver/pva2pva/blob/vfield/pdbApp/columnarinRecord.cpp
There are prerequisite changes needed in Base.
https://github.com/mdavidsaver/epics-base/pull/1
> 2 – Is there a way to pvget individual fields of a group? Something like pvget grp:name.X.
No. When accessing through the group name, clients will always see the group structure.
> Thank you,
>
>
>
> Márcio Paduan Donadio
>
> Control Systems Engineer - SLAC
>
>
>
> *From: *Michael Davidsaver <mdavidsaver at gmail.com>
> *Date: *Thursday, December 17, 2020 at 7:28 AM
> *To: *Paduan Donadio, Marcio <marcio at slac.stanford.edu>, tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
> *Subject: *Re: Intended use of NTMultiChannel
>
> On 12/16/20 9:11 PM, Paduan Donadio, Marcio via Tech-talk wrote:
>> I have a NTMultiChannel created using the C++ API.
>
> Which c++ API specifically?
>
>> I pvput to channelName passing a valid PV name. I placed a printf inside the process() method just to check if the record is processing and I can confirm it does.
>>
>>
>>
>> When I pvget I expected to see the other fields of the record populated with values from the PV in channelName. Is it intended that inside process() I write the commands to bring the data for each channel and write to the fields of the NTMultiChannel? Is there a default “record support” that has it already implemented and I can use?
>
> If you are referring to pvDatabaseCPP, then probably not. It is more analogous to PCAS.
>
> You might look at the PVA link support as a way of having an IOC act as a PVA client.
>
> https://epics-base.github.io/pva2pva/qsrv_page.html#qsrv_link <https://epics-base.github.io/pva2pva/qsrv_page.html#qsrv_link>
>
>
>> Some data:
>>
>>
>>
>> Epics base 7.0.3
>>
>>
>>
>> $ pvget GMDTest:NTScalar
>>
>> GMDTest:NTScalar 0
>>
>>
>>
>> $ pvput GMDTest:NTMultiChannel 'channelName=["GMDTest:NTScalar"]'
>>
>> Old : epics:nt/NTMultiChannel:1.0
>>
>> any[] value
>>
>> string[] channelName []
>>
>> int[] severity []
>>
>> int[] status []
>>
>> string[] message []
>>
>> boolean[] isConnected []
>>
>> New : epics:nt/NTMultiChannel:1.0
>>
>> any[] value
>>
>> string[] channelName ["GMDTest:NTScalar"]
>>
>> int[] severity []
>>
>> int[] status []
>>
>> string[] message []
>>
>> boolean[] isConnected []
>>
>>
>>
>> $ pvget GMDTest:NTMultiChannel
>>
>> GMDTest:NTMultiChannel epics:nt/NTMultiChannel:1.0
>>
>> any[] value
>>
>> string[] channelName ["GMDTest:NTScalar"]
>>
>> int[] severity []
>>
>> int[] status []
>>
>> string[] message []
>>
>> boolean[] isConnected []
>>
>
- References:
- Intended use of NTMultiChannel Paduan Donadio, Marcio via Tech-talk
- Re: Intended use of NTMultiChannel Michael Davidsaver via Tech-talk
- Re: Intended use of NTMultiChannel Paduan Donadio, Marcio via Tech-talk
- Navigate by Date:
- Prev:
RE: [EXTERNAL] Re: lakeshore336 msi: Can't open file 'ioc_sns.db' Pearson, Matthew R. via Tech-talk
- Next:
Re: [EXTERNAL] Re: lakeshore336 msi: Can't open file 'ioc_sns.db' Jeong Han Lee 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: Intended use of NTMultiChannel Paduan Donadio, Marcio via Tech-talk
- Next:
synApps_6_1 build error on windows-x64 with EPICS 7 Markus Huber 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
|