NDS3  1.0.0
API reference manual
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
nds::PVVariableOut< T > Class Template Reference

Detailed Description

template<typename T>
class nds::PVVariableOut< T >

An output PV object that also stores the value so it does not need to delegate the read and write functions.

The application can use PVVariableOut::getValue()to retrieve the PV's value; the control system will use the methods read() and write() to read and set the value.

Warning
for all the vector data types and for std::string remember to call setMaxElements() to specify the maximum size of the vector or string.
Template Parameters
Tthe PV data type. The following data types are supported:
  • std::int32_t
  • std::double
  • std::vector<std::int8_t>
  • std::vector<std::uint8_t>
  • std::vector<std::int32_t>
  • std::vector<double>
  • std::string
Examples:
oscilloscope/oscilloscope.cpp, and oscilloscopeMultiChannel/oscilloscopeMultiChannel.cpp.

#include <pvVariableOut.h>

Inheritance diagram for nds::PVVariableOut< T >:
nds::PVBaseOut nds::PVBase nds::Base

Public Member Functions

 PVVariableOut ()
 Initializes an empty PVVariableOut PV. More...
 
 PVVariableOut (const std::string &name)
 Construct the PVVariableOut object. More...
 
getValue () const
 Retrieve the value stored in the PV. More...
 
void getValue (timespec *pTime, T *pValue) const
 Retrieve the value and the timestamp stored in the PV. More...
 
- Public Member Functions inherited from nds::PVBaseOut
 PVBaseOut ()
 Construct an empty PVBaseOut. More...
 
template<typename T >
void read (timespec *pTimestamp, T *pValue) const
 Call to read the value of the PV. More...
 
template<typename T >
void write (const timespec &timestamp, const T &value)
 Call to write the value into the PV. More...
 
void subscribeTo (const std::string &inputPVName)
 Subscribe the PV to an input PV which may be located on any other device running in the same NDS process. More...
 
- Public Member Functions inherited from nds::PVBase
void setDescription (const std::string &description)
 Set a human readable description of the PV. More...
 
void setUnits (const std::string &units)
 Set the engineering units of the PV. More...
 
void setInterfaceName (const std::string &interfaceName)
 Set the name of the PV as seen by the control system. More...
 
void setScanType (const scanType_t scanType, const double periodSeconds=1)
 Set how the PV value is retrieved by the control system. More...
 
void setMaxElements (const size_t maxElements)
 If the data type of the PV is a vector then set the maximum number of elements that the vector will contain. More...
 
void setEnumeration (const enumerationStrings_t &enumerations)
 If the data type is an integer then assigns a list of strings that enumerate the values (starting from zero). More...
 
void processAtInit (const bool bProcessAtInit)
 Specifies if the read() function of the PV should be called during the device initialization. More...
 
- Public Member Functions inherited from nds::Base
 Base (const Base &right)
 Copy constructor. The copy will refer to the same implementation object referenced in the copied object. More...
 
Baseoperator= (const Base &right)
 Copy operator. The copy will refer to the same implementation object referenced in the copied object. More...
 
void setExternalName (const std::string &externalName)
 Set the string to pass to the naming rules in order to build the full node name as seen by the control system. More...
 
virtual Port getPort ()
 Get the Node that communicate with the device (ASYN port on EPICS, Device on Tango). Query the parent nodes if necessary. More...
 
const std::string & getComponentName () const
 Return the node's name. More...
 
const std::string & getFullName () const
 Return the full node's name, prepending the parents' names if necessary (e.g. "ROOT-CHANNEL1-THISNODE") More...
 
const std::string & getFullExternalName () const
 Return the full node's name as seen by the control system clients. More...
 
const std::string & getFullNameFromPort () const
 Return the node's name as seen by the parent Port node (the node that communicates with the device). More...
 
timespec getTimestamp () const
 Get the current time. More...
 
void setTimestampDelegate (getTimestampPlugin_t timestampDelegate)
 Specify the delegate function to call to get the timestamp. More...
 
std::ostream & getLogger (const logLevel_t logLevel)
 Retrieve a logging stream for the specified log level. More...
 
bool isLogLevelEnabled (const logLevel_t logLevel) const
 Returns true if the logging for a particular severity level has been enabled. More...
 
void setLogLevel (const logLevel_t logLevel)
 Enable the logging for a particular severity level. More...
 
void defineCommand (const std::string &command, const std::string &usage, const size_t numParameters, const command_t function)
 Define a command specific for the node. More...
 
Thread runInThread (const std::string &name, threadFunction_t function)
 Create and run a thread using the control system facilities. More...
 
Thread runInThread (threadFunction_t function)
 Create and run a thread using the control system facilities. The created thread will have the node's name. More...
 

Additional Inherited Members

- Protected Member Functions inherited from nds::Base
 Base ()
 Initializes an empty base class.
 

Constructor & Destructor Documentation

template<typename T >
nds::PVVariableOut< T >::PVVariableOut ( )

Initializes an empty PVVariableOut PV.

You must assign a valid PVVariableOut PV before calling Node::initialize() on the root node.

template<typename T >
nds::PVVariableOut< T >::PVVariableOut ( const std::string &  name)

Construct the PVVariableOut object.

Parameters
namename of the PV

The documentation for this class was generated from the following file: