pvDatabaseCPP  4.7.0
controlSupport.h
Go to the documentation of this file.
1 
10 #ifndef CONTROLSUPPORT_H
11 #define CONTROLSUPPORT_H
12 
13 #include <pv/pvDatabase.h>
14 #include <pv/pvSupport.h>
15 #include <pv/pvStructureCopy.h>
16 
17 #include <shareLib.h>
18 
19 namespace epics { namespace pvDatabase {
20 
22 typedef std::tr1::shared_ptr<ControlSupport> ControlSupportPtr;
23 
28 class epicsShareClass ControlSupport :
29  PVSupport
30 {
31 public:
32  POINTER_DEFINITIONS(ControlSupport);
36  virtual ~ControlSupport();
44  virtual bool init(
45  epics::pvData::PVFieldPtr const & pvValue,
46  epics::pvData::PVFieldPtr const & pvSupport);
53  virtual bool process();
59  virtual void reset();
66  static ControlSupportPtr create(PVRecordPtr const & pvRecord);
73  static epics::pvData::StructureConstPtr controlField(epics::pvData::ScalarType scalarType);
74 private:
75  ControlSupport(PVRecordPtr const & pvRecord);
76  PVRecordPtr pvRecord;
77  epics::pvData::PVScalarPtr pvValue;
78  epics::pvData::PVStructurePtr pvControl;
79  epics::pvData::PVDoublePtr pvLimitLow;
80  epics::pvData::PVDoublePtr pvLimitHigh;
81  epics::pvData::PVDoublePtr pvMinStep;
82  epics::pvData::PVScalarPtr pvOutputValue;
83  double currentValue;
84  bool isMinStep;
85 };
86 
87 }}
88 
89 #endif /* CONTROLSUPPORT_H */
Base interface for a PVSupport.
Definition: pvSupport.h:32
std::tr1::shared_ptr< PVRecord > PVRecordPtr
Definition: pvDatabase.h:21
Base interface for a ControlSupport.
std::tr1::shared_ptr< ControlSupport > ControlSupportPtr