EPICS ARCHIVER V4
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups
SampleMechanismMonitoredGetEA3.h
1 #ifndef SAMPLEMECHANISMMONITOREDGET_EA3_H_
2 #define SAMPLEMECHANISMMONITOREDGET_EA3_H_
3 
4 // engine
5 #include "engine/SampleMechanismEA3.h"
6 #include "engine/ScanList.h"
7 #include "engine/TimeSlotFilter.h"
8 #include "engine/RepeatFilter.h"
9 #include "engine/TimeFilter.h"
10 
37  public SampleMechanismEA3 {
38 
39  public:
40 
44  ScanList& scan_list,
45  const char* name,
46  double period);
47 
49 
50  public:
51 
52  // Scannable API
53 
54  virtual void scan(const epicsTime& now);
55 
56  public:
57 
58  // SampleMechanism API
59 
60  virtual std::string getInfo(Guard& guard);
61 
62  virtual void start(Guard& guard);
63 
64  virtual void stop(Guard& guard);
65 
66  virtual void addToFUX(Guard& guard, FUX::Element* doc);
67 
68  public:
69 
70  // ProcessVariableListener API
71 
72  virtual void pvConnected(ProcessVariable& pv, const epicsTime& when);
73 
74 private:
75 
76  ScanList& scan_list;
77 
78  TimeSlotFilter time_slot_filter;
79  RepeatFilter repeat_filter;
80  TimeFilter time_filter;
81 };
82 
83 #endif /*SAMPLEMECHANISMMONITOREDGET_EA3_H_*/
virtual void pvConnected(ProcessVariable &pv, const epicsTime &when)
ProcessVariableStateListener.
virtual void start(Guard &guard)
Start the sample mechanism.
A filter to combine successive matching samples into a 'repeat count'.
Definition: RepeatFilter.h:18
virtual void scan(const epicsTime &now)
Invoked whenever a scan is due.
One process variable.
Definition: ProcessVariable.h:39
Filter that passes one sample per time slot.
Definition: TimeSlotFilter.h:11
virtual void stop(Guard &guard)
Stop sampling.
A filter to remove samples that go back in time or are too futuristic.
Definition: TimeFilter.h:17
Global engine configuration parameters.
Definition: EngineConfig.h:14
SampleMechanismMonitoredGetEA3(EngineConfig &config, ProcessVariableContext &ctx, ScanList &scan_list, const char *name, double period)
Construct mechanism for given sampling period.
Automatically takes and releases an epicsMutex.
Definition: Guard.h:63
virtual void addToFUX(Guard &guard, FUX::Element *doc)
Append this sample mechanism to a FUX document.
Context for ProcessVariable instances.
Definition: ProcessVariableContext.h:18
Definition: SampleMechanismEA3.h:8
Interface for something that can be placed on a ScanList.
Definition: ScanList.h:22
virtual std::string getInfo(Guard &guard)
A ScanList keeps track of Scannable items.
Definition: ScanList.h:43
One element in the FUX tree.
Definition: FUX.h:51
Sample Mechanism that stores periodic samples using a 'monitor'.
Definition: SampleMechanismMonitoredGetEA3.h:36