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: question about pvAccess monitor |
From: | Marty Kraimer <[email protected]> |
To: | [email protected] |
Date: | Mon, 2 Apr 2018 06:29:35 -0400 |
On 04/01/2018 03:28 PM, renato sanhueza
wrote:
For most PVRecords a field named value provides the most important data. pvData (both pvDataCPP and pvDataJava) define the following special fields: enum, alarm, timeStamp, display, control, and alarmLimit. enum is just a special type of value field. The other special fields can be considered metadata, i.e. they provide additional information about the value field. A particular PVRecord can optionally support an arbitrary subset for the special fields. Most will support timeStamp and alarm. If you create a request like: PVStructure pvRequest(CreateRequest::createRequest("value,alarm,timeStamp,display,control,valueAlarm")); Then you are asking for the value data and all supported "metadata". Note that normative types support the special fields. I encourage You to read http://epics-pvdata.sourceforge.net/informative/developerGuide/developerGuide.html Especially http://epics-pvdata.sourceforge.net/informative/developerGuide/developerGuide.html#special_fields
From http://epics-pvdata.sourceforge.net/informative/developerGuide/developerGuide.html#overview:_pvdatabase It says: A framework for implementing a network accessible database of smart memory resident records. Network access is via pvAccess. The data in each record is a top level PVStructure as defined by pvData. A complete implementation of ChannelProvider is provided for accessing the records. The framework can be extended in order to create record instances that implement services. The minimum that an extension must provide is a top level PVStructure, a record name, and a process method. The important words are that it provides a compete implementation of ChannelProvider. This is not easy to do correctly. Mark Rivers referenced components of areaDetector that use both PVRecord and also client code. I also encourage You to download and look at https://github.com/epics-base/exampleCPP It has many examples of both client and server code. Look first at exampleCPP/database for server code that implements PVRecords. Look first at exampleCPP/exampleClient for client code examples. The other examples provide both client and server examples. Hope this helps. Marty Kramer
|