7#ifndef __PVTRIGGERSELECTOR_H__
8#define __PVTRIGGERSELECTOR_H__
11#include <PvSoftDeviceGEVLib.h>
49 virtual void Start(
const uint32_t aHeight ) = 0;
75 virtual void SetMode(
const bool aIsEnabled ) = 0;
89 virtual void SetSource(
const uint32_t aSource ) = 0;
140 , mState( State_Disabled )
155 void Start(
const uint32_t aHeight )
override { PVUNREFPARAM( aHeight ); }
177 void SetMode(
const bool aIsEnabled )
override { SetState( aIsEnabled ? State_Enabled : State_Disabled ); }
184 bool GetMode()
const override {
return IsEnabled(); }
191 void SetSource(
const uint32_t aSource)
override { mSource = aSource; }
212 bool IsEnabled()
const override {
return State_Disabled != mState; }
234 volatile State mState;
267 void Start(
const uint32_t aHeight )
override
269 PVUNREFPARAM( aHeight );
271 if ( State_Enabled == GetState() )
273 SetState( State_Armed );
282 if ( State_Disabled != GetState() )
284 SetState( State_Enabled );
293 if ( State_Armed == GetState() )
295 SetState( State_OneShot );
330 if ( GetState() == State_Fired )
332 SetState( State_Armed );
341 if ( State_Armed == GetState() )
343 SetState( State_Fired );
381 void Start(
const uint32_t aHeight )
override
383 if ( State_Enabled == GetState() )
385 mTrigReload = aHeight;
386 mTrigCount = mTrigReload;
387 SetState( State_Armed );
395 if ( State_Armed == GetState() )
400 SetState( State_Fired );
410 if ( GetState() == State_Fired )
412 mTrigCount = mTrigReload;
413 SetState( State_Armed );
420 uint32_t mTrigReload;
Interface used by PvStreamingChannelSourceTrigger to support a trigger mechanism.
Definition PvTriggerSelector.h:20
virtual void FireTrigger()=0
With all conditions met, fires a trigger signal to move to the Fired state.
virtual bool GetMode() const =0
Gets the trigger mode.
virtual PvString GetName() const =0
Gets the selector name.
virtual void SetMode(const bool aIsEnabled)=0
Sets the trigger mode (enabled or disabled).
virtual bool IsEnabled() const =0
Checks if the trigger is enabled.
virtual void SetSource(const uint32_t aSource)=0
Sets the trigger source.
State
Trigger selector state enum.
Definition PvTriggerSelector.h:24
@ State_Disabled
Trigger selector disabled.
Definition PvTriggerSelector.h:26
@ State_Fired
Trigger selector fired.
Definition PvTriggerSelector.h:32
@ State_Enabled
Trigger selector enabled.
Definition PvTriggerSelector.h:28
@ State_Armed
Trigger selector armed.
Definition PvTriggerSelector.h:30
virtual State GetState() const =0
Gets the current selector state.
virtual void Rearm()=0
Moves the state from Fired, to another state like Armed (in case of a per-frame TriggerSelector like ...
virtual ~IPvTriggerSelector()
Virtual destructor.
Definition PvTriggerSelector.h:40
virtual uint32_t GetSource() const =0
Gets the trigger source.
virtual void Start(const uint32_t aHeight)=0
Signals the state machine to move from the Enabled state to the Armed state.
virtual void Stop()=0
Unconditionally moves the state machine into the Enabled state.
String class.
Definition PvString.h:26
AcquisitionStart requires to be triggered once, and remains triggered until stopped.
Definition PvTriggerSelector.h:246
virtual ~PvTriggerSelectorAcquisitionStart()
Virtual destructor.
Definition PvTriggerSelector.h:260
void Stop() override
Unconditionally moves the state machine into the Enabled state.
Definition PvTriggerSelector.h:280
PvTriggerSelectorAcquisitionStart(const char *const aName="AcquisitionStart")
Constructor.
Definition PvTriggerSelector.h:254
void Start(const uint32_t aHeight) override
Signals the state machine to move from the Enabled state to the Armed state.
Definition PvTriggerSelector.h:267
void FireTrigger() override
Moves the state from armed to one-shot.
Definition PvTriggerSelector.h:291
A default implementation for the IPvTriggerSelector interface. This defines the typical base behavior...
Definition PvTriggerSelector.h:130
void FireTrigger() override
Nothing to do for the default implementation.
Definition PvTriggerSelector.h:165
void SetMode(const bool aIsEnabled) override
Sets the trigger mode (enabled or disabled).
Definition PvTriggerSelector.h:177
void SetSource(const uint32_t aSource) override
Sets the trigger source.
Definition PvTriggerSelector.h:191
virtual ~PvTriggerSelectorDefault()
Virtual destructor.
Definition PvTriggerSelector.h:148
PvTriggerSelectorDefault(const char *const aName="N/A")
Constructor.
Definition PvTriggerSelector.h:138
void Start(const uint32_t aHeight) override
Nothing to do for the default implementation.
Definition PvTriggerSelector.h:155
void Stop() override
Nothing to do for the default implementation.
Definition PvTriggerSelector.h:160
State GetState() const override
Gets the current selector state.
Definition PvTriggerSelector.h:228
uint32_t GetSource() const override
Gets the trigger source.
Definition PvTriggerSelector.h:198
bool IsEnabled() const override
Checks if the trigger is enabled.
Definition PvTriggerSelector.h:212
void Rearm() override
Nothing to do for the default implementation.
Definition PvTriggerSelector.h:170
bool GetMode() const override
Gets the trigger mode.
Definition PvTriggerSelector.h:184
PvString GetName() const override
Gets the selector name.
Definition PvTriggerSelector.h:205
void SetState(const State aState)
Sets the selector state.
Definition PvTriggerSelector.h:221
Behaves just like AcquisitionStart, but is re-armed on a frame basis.
Definition PvTriggerSelector.h:309
void Rearm() override
Moves the state from Fired to Armed.
Definition PvTriggerSelector.h:328
void FireTrigger() override
Moves the state from Armed to Fired.
Definition PvTriggerSelector.h:339
virtual ~PvTriggerSelectorFrameStart()
Virtual destructor.
Definition PvTriggerSelector.h:323
PvTriggerSelectorFrameStart(const char *const aName="FrameStart")
Constructor.
Definition PvTriggerSelector.h:317
Behaves like FrameStart, but moves to Fired state once all lines of a frame are received.
Definition PvTriggerSelector.h:357
void FireTrigger() override
If Armed and all lines are received, moves to the Fired state.
Definition PvTriggerSelector.h:393
~PvTriggerSelectorLineStart()
Virtual destructor.
Definition PvTriggerSelector.h:374
void Start(const uint32_t aHeight) override
Signals the state machine to move from the Enabled state to the Armed state.
Definition PvTriggerSelector.h:381
void Rearm() override
Moves the state from Fired to Armed.
Definition PvTriggerSelector.h:408
PvTriggerSelectorLineStart(const char *const aName="LineStart")
Constructor.
Definition PvTriggerSelector.h:365