|
NDS3
1.0.0
API reference manual
|
Base class for all the PVs.
#include <pvBaseInImpl.h>
Public Member Functions | |
| PVBaseInImpl (const std::string &name, const inputPvType_t pvType) | |
| Constructor. More... | |
| virtual void | initialize (FactoryBaseImpl &controlSystem) |
| Register the PV with the control system. More... | |
| virtual void | deinitialize () |
| Deregister the PV from the control system. | |
| virtual void | read (timespec *pTimestamp, std::int32_t *pValue) const |
| Called when the control system wants to read the value. More... | |
| template<typename T > | |
| void | push (const timespec ×tamp, const T &value) |
| Pushes data to the control system and to the subscribed PVs. More... | |
| void | subscribeReceiver (PVBaseOutImpl *pReceiver) |
| Subscribe an output PV to this PV. More... | |
| void | unsubscribeReceiver (PVBaseOutImpl *pReceiver) |
| Unsubscribe an output PV from this PV. More... | |
| void | replicateTo (PVBaseInImpl *pDestination) |
| Replicate the data written to this PV to another input PV. More... | |
| void | stopReplicationTo (PVBaseInImpl *pDestination) |
| Stop the replication of data to the specified destination PV. More... | |
| void | setDecimation (const std::uint32_t decimation) |
| Set the decimation factor. More... | |
| void | replicateFrom (const std::string &sourceInputPVName) |
| Specifies an input PV from which the data must be copied. More... | |
| virtual dataDirection_t | getDataDirection () const |
| Retrieve the data direction. More... | |
Public Member Functions inherited from nds::PVBaseImpl | |
| virtual void | write (const timespec ×tamp, const std::int32_t &value) |
| Called when the control system wants to write a value. More... | |
| virtual dataType_t | getDataType () const =0 |
| Return the PV's data type. More... | |
| void | setDescription (const std::string &description) |
| Set the PV description. More... | |
| void | setUnits (const std::string &units) |
| Set the engineering units associated with the PV. More... | |
| void | setScanType (const scanType_t scanType, const double periodSeconds) |
| Set the scan type. More... | |
| void | setMaxElements (const size_t maxElements) |
| Set the maximum number of elements if the data type is an array. More... | |
| void | setEnumeration (const enumerationStrings_t &enumerations) |
| Assign enumeration strings to the PV. More... | |
| void | processAtInit (const bool bProcessAtInit) |
| Specifies if the PV has to be processed during the initialization. More... | |
| const std::string & | getDescription () const |
| Return the PV's description. More... | |
| const std::string & | getUnits () const |
| Return the PV's engineering units. More... | |
| scanType_t | getScanType () const |
| Return the scan type. More... | |
| double | getScanPeriodSeconds () const |
| Return the scan period in seconds. More... | |
| size_t | getMaxElements () const |
| Return the maximum number of elements that can be stored in the array (if the PV data type is an array). More... | |
| const enumerationStrings_t & | getEnumerations () const |
| Return the list of string used to enumerate the integer values. More... | |
| bool | getProcessAtInit () const |
| Return true if the PV has to bve processed during the initialization of the device. More... | |
Protected Types | |
| typedef std::set< PVBaseOutImpl * > | subscribersList_t |
| List of subscribed PVs. | |
| typedef std::set< PVBaseInImpl * > | destinationList_t |
| List of destination input PVs. | |
Protected Attributes | |
| subscribersList_t | m_subscriberOutputPVs |
| List of subscribed PVs. | |
| destinationList_t | m_replicationDestinationPVs |
| List of PVs to which the data must be pushed or written. | |
| std::mutex | m_lockSubscribersList |
| Lock the access to m_subscriberOutputPVs. | |
| std::uint32_t | m_decimationFactor |
| Decimation factor. | |
| std::uint32_t | m_decimationCount |
| Keeps track of the received data/vs data pushed to the control system. | |
Protected Attributes inherited from nds::PVBaseImpl | |
| std::string | m_description |
| The PV's description. | |
| std::string | m_units |
| Engineering units. | |
| scanType_t | m_scanType |
| The PV's scan type. | |
| double | m_periodicScanSeconds |
| The interval between data polling (in seconds). | |
| size_t | m_maxElements |
| Maximum number of elements that can be stored in the PV. | |
| enumerationStrings_t | m_enumeration |
| List of strings used for enumeration. | |
| bool | m_bProcessAtInit |
| True if the PV has to be processed during the device initialization. | |
Additional Inherited Members | |
Static Public Member Functions inherited from nds::PVBaseImpl | |
| template<typename T > | |
| static dataType_t | getDataTypeForCPPType () |
| Return the data type enumerator for the type in the template. More... | |
| nds::PVBaseInImpl::PVBaseInImpl | ( | const std::string & | name, |
| const inputPvType_t | pvType | ||
| ) |
Constructor.
| name | the PV's name |
|
virtual |
|
virtual |
Register the PV with the control system.
| controlSystem | the control system on which the PV will be registered |
Reimplemented from nds::PVBaseImpl.
| void nds::PVBaseInImpl::push | ( | const timespec & | timestamp, |
| const T & | value | ||
| ) |
Pushes data to the control system and to the subscribed PVs.
| T | the data type |
| timestamp | the timestamp related to the data |
| value | the data to push |
|
virtual |
Called when the control system wants to read the value.
The default implementation throws an exception.
| pTimestamp | |
| pValue |
Reimplemented from nds::PVBaseImpl.
| void nds::PVBaseInImpl::replicateFrom | ( | const std::string & | sourceInputPVName | ) |
Specifies an input PV from which the data must be copied.
Any push operation made on the source input PV will be replicated to this PV.
| sourceInputPVName | the full name of the input PV from which the data must be copied |
| void nds::PVBaseInImpl::replicateTo | ( | PVBaseInImpl * | pDestination | ) |
Replicate the data written to this PV to another input PV.
| pDestination | the PV into which the data must be copied |
| void nds::PVBaseInImpl::setDecimation | ( | const std::uint32_t | decimation | ) |
Set the decimation factor.
The decimation factor is the ration pushed_data/data_passed_to_control_system.
| decimation | the decimation factor |
| void nds::PVBaseInImpl::stopReplicationTo | ( | PVBaseInImpl * | pDestination | ) |
Stop the replication of data to the specified destination PV.
| pDestination | the destination to unsubscribe from replication |
| void nds::PVBaseInImpl::subscribeReceiver | ( | PVBaseOutImpl * | pReceiver | ) |
Subscribe an output PV to this PV.
The subscribed PV will receive all the data pushed or written into this PV.
| pReceiver | the PV that will receive al the data |
| void nds::PVBaseInImpl::unsubscribeReceiver | ( | PVBaseOutImpl * | pReceiver | ) |
Unsubscribe an output PV from this PV.
| pReceiver | the output PV to unsubscribe |