EPICS ARCHIVER V4
|
Sample Mechanism that stores periodic samples using a 'monitor'. More...
#include <SampleMechanismMonitoredGetEA3.h>
Public Member Functions | |
SampleMechanismMonitoredGetEA3 (EngineConfig &config, ProcessVariableContext &ctx, ScanList &scan_list, const char *name, double period) | |
Construct mechanism for given sampling period. More... | |
virtual void | scan (const epicsTime &now) |
Invoked whenever a scan is due. More... | |
virtual std::string | getInfo (Guard &guard) |
virtual void | start (Guard &guard) |
Start the sample mechanism. More... | |
virtual void | stop (Guard &guard) |
Stop sampling. More... | |
virtual void | addToFUX (Guard &guard, FUX::Element *doc) |
Append this sample mechanism to a FUX document. More... | |
virtual void | pvConnected (ProcessVariable &pv, const epicsTime &when) |
ProcessVariableStateListener. More... | |
![]() | |
SampleMechanismEA3 (const EngineConfig &config, ProcessVariableContext &ctx, const char *name, double period, ProcessVariableListener *disable_filt_listener) | |
Constructor. | |
virtual | ~SampleMechanismEA3 () |
Destructor. | |
virtual unsigned long | write (Guard &guard, Index &index) |
Write current buffer to index. More... | |
virtual void | pvValue (ProcessVariable &pv, const RawValue::Data *data) |
ProcessVariableValueListener. More... | |
size_t | getSampleCount (Guard &guard) const |
![]() | |
SampleMechanism (const EngineConfig &config, ProcessVariableContext &ctx, const char *name, double period, ProcessVariableListener *disable_filt_listener) | |
Construct mechanism for given period. More... | |
void | pvDisconnected (ProcessVariable &pv, const epicsTime &when) |
ProcessVariableStateListener. More... | |
virtual OrderedMutex & | getMutex () |
virtual const std::string & | getName () const |
Gets the ProcessVariable name. More... | |
bool | isRunning (Guard &guard) |
ProcessVariable::State | getPVState () |
void | disable (const epicsTime &when) |
Temporarily disable sampling. More... | |
void | enable (const epicsTime &when) |
Re-enable sampling. More... | |
void | addStateListener (ProcessVariableStateListener *listener) |
Add a listener to the underlying PV. More... | |
void | removeStateListener (ProcessVariableStateListener *listener) |
Remove a listener from the underlying PV. More... | |
void | addValueListener (ProcessVariableValueListener *listener) |
Add a listener to the underlying PV. More... | |
void | removeValueListener (ProcessVariableValueListener *listener) |
Remove a listener from the underlying PV. More... | |
![]() | |
virtual | ~ProcessVariableStateListener () |
Constructor. | |
Sample Mechanism that stores periodic samples using a 'monitor'.
For each sample period, the first sample is stored. Samples that don't change are stored via a 'repeat count', up to a maximum repeat count specified in the EngineConfig.
The data flows as follows:
For PVs that acutally change, the monitors from the PV drive the value chain. But when the PV does not change, the lack of monitors would also never trigger the repeat filter to count repeated values. Therefore the scan list is used to periodically trigger the repeat filter, which can then add repeat counts if no new values have been received.
SampleMechanismMonitoredGetEA3::SampleMechanismMonitoredGetEA3 | ( | EngineConfig & | config, |
ProcessVariableContext & | ctx, | ||
ScanList & | scan_list, | ||
const char * | name, | ||
double | period | ||
) |
Construct mechanism for given sampling period.
|
virtual |
Append this sample mechanism to a FUX document.
Reimplemented from SampleMechanism.
|
virtual |
Reimplemented from SampleMechanism.
|
virtual |
Base implementation allocates circular buffer
Reimplemented from SampleMechanismEA3.
|
virtual |
Invoked whenever a scan is due.
The passed 'now' is the deadline time that was used to decide if this item is due 'now', so it should be very close to the current time, and might be cheaper to use than asking for the exact current time.
Implements Scannable.
|
virtual |
|
virtual |
Stop sampling.
Base implementation stops the PV and adds a 'STOPPED (OFF)' event.
Reimplemented from SampleMechanism.