10 #ifndef NDSPVBASEIMPL_H
11 #define NDSPVBASEIMPL_H
15 #include "nds3/impl/baseImpl.h"
40 virtual void deinitialize();
50 virtual void read(timespec* pTimestamp, std::int32_t* pValue)
const;
51 virtual void read(timespec* pTimestamp,
double* pValue)
const;
52 virtual void read(timespec* pTimestamp, std::vector<std::int8_t>* pValue)
const;
53 virtual void read(timespec* pTimestamp, std::vector<std::uint8_t>* pValue)
const;
54 virtual void read(timespec* pTimestamp, std::vector<std::int32_t>* pValue)
const;
55 virtual void read(timespec* pTimestamp, std::vector<double>* pValue)
const;
56 virtual void read(timespec* pTimestamp, std::string* pValue)
const;
66 virtual void write(
const timespec& timestamp,
const std::int32_t& value);
67 virtual void write(
const timespec& timestamp,
const double& value);
68 virtual void write(
const timespec& timestamp,
const std::vector<std::int8_t>& value);
69 virtual void write(
const timespec& timestamp,
const std::vector<std::uint8_t>& value);
70 virtual void write(
const timespec& timestamp,
const std::vector<std::int32_t>& value);
71 virtual void write(
const timespec& timestamp,
const std::vector<double>& value);
72 virtual void write(
const timespec& timestamp,
const std::string& value);
93 void setDescription(
const std::string& description);
100 void setUnits(
const std::string& units);
108 void setScanType(
const scanType_t scanType,
const double periodSeconds);
115 void setMaxElements(
const size_t maxElements);
130 void processAtInit(
const bool bProcessAtInit);
137 const std::string& getDescription()
const;
144 const std::string& getUnits()
const;
158 double getScanPeriodSeconds()
const;
166 size_t getMaxElements()
const;
182 bool getProcessAtInit()
const;
202 static_assert(type != 0,
"Undefined data type");
217 #endif // NDSPVBASEIMPL_H
scanType_t
Specify how to get the PV value.
Definition: definitions.h:68
std::string m_description
The PV's description.
Definition: pvBaseImpl.h:207
bool m_bProcessAtInit
True if the PV has to be processed during the device initialization.
Definition: pvBaseImpl.h:213
size_t m_maxElements
Maximum number of elements that can be stored in the PV.
Definition: pvBaseImpl.h:211
Array of signed 32 bit integers.
Array of unsigned 8 bit integers.
This is the base class for objects that interact with specific control systems and has to be allocate...
Definition: factoryBaseImpl.h:51
std::string m_units
Engineering units.
Definition: pvBaseImpl.h:208
Base class for all the PVs.
Definition: pvBaseImpl.h:25
Defines all the enumeration and common types used across the NDS library.
double m_periodicScanSeconds
The interval between data polling (in seconds).
Definition: pvBaseImpl.h:210
std::list< std::string > enumerationStrings_t
List of strings used for enumeration in PVs that support the enumeration field.
Definition: definitions.h:288
dataDirection_t
Defines in which direction the data is being transferred.
Definition: definitions.h:92
scanType_t m_scanType
The PV's scan type.
Definition: pvBaseImpl.h:209
dataType_t
PV data types.
Definition: definitions.h:53
static dataType_t getDataTypeForCPPType()
Return the data type enumerator for the type in the template.
Definition: pvBaseImpl.h:191
Array of signed 8 bit integers.
enumerationStrings_t m_enumeration
List of strings used for enumeration.
Definition: pvBaseImpl.h:212