7 #ifndef __PVTRIGGERSELECTOR_H__
8 #define __PVTRIGGERSELECTOR_H__
11 #include <PvVirtualDeviceLib.h>
44 virtual void Start(
const uint32_t aHeight ) = 0;
70 virtual void SetMode(
bool aIsEnabled ) = 0;
135 , mState( State_Disabled )
150 void Start(
const uint32_t aHeight )
override { PVUNREFPARAM( aHeight ); }
172 void SetMode(
const bool aIsEnabled )
override { SetState( aIsEnabled ? State_Enabled : State_Disabled ); }
179 bool GetMode()
const override {
return IsEnabled(); }
186 void SetSource(
const uint32_t aSource)
override { mSource = aSource; }
207 bool IsEnabled()
const override {
return State_Disabled != mState; }
216 void SetState(
const State aState ) { mState = aState; }
229 volatile State mState;
262 void Start(
const uint32_t aHeight )
override
264 PVUNREFPARAM( aHeight );
266 if ( State_Enabled == GetState() )
268 SetState( State_Armed );
277 if ( State_Disabled != GetState() )
279 SetState( State_Enabled );
288 if ( State_Armed == GetState() )
290 SetState( State_OneShot );
325 if ( GetState() == State_Fired )
327 SetState( State_Armed );
336 if ( State_Armed == GetState() )
338 SetState( State_Fired );
376 void Start(
const uint32_t aHeight )
override
378 if ( State_Enabled == GetState() )
380 mTrigReload = aHeight;
381 mTrigCount = mTrigReload;
382 SetState( State_Armed );
390 if ( State_Armed == GetState() )
395 SetState( State_Fired );
405 if ( GetState() == State_Fired )
407 mTrigCount = mTrigReload;
408 SetState( State_Armed );
415 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 void SetMode(bool aIsEnabled)=0
Sets the trigger mode (enabled or disabled).
virtual bool GetMode() const =0
Gets the trigger mode.
virtual PvString GetName() const =0
Gets the selector name.
virtual bool IsEnabled() const =0
Checks if the trigger is enabled.
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:35
virtual void SetSource(uint32_t aSource)=0
Sets the trigger source.
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:241
virtual ~PvTriggerSelectorAcquisitionStart()
Virtual destructor.
Definition: PvTriggerSelector.h:255
void Stop() override
Unconditionally moves the state machine into the Enabled state.
Definition: PvTriggerSelector.h:275
PvTriggerSelectorAcquisitionStart(const char *const aName="AcquisitionStart")
Constructor.
Definition: PvTriggerSelector.h:249
void Start(const uint32_t aHeight) override
Signals the state machine to move from the Enabled state to the Armed state.
Definition: PvTriggerSelector.h:262
void FireTrigger() override
Moves the state from armed to one-shot.
Definition: PvTriggerSelector.h:286
A default implementation for the IPvTriggerSelector interface. This defines the typical base behavior...
Definition: PvTriggerSelector.h:125
void FireTrigger() override
Nothing to do for the default implementation.
Definition: PvTriggerSelector.h:160
void SetMode(const bool aIsEnabled) override
Sets the trigger mode (enabled or disabled).
Definition: PvTriggerSelector.h:172
void SetSource(const uint32_t aSource) override
Sets the trigger source.
Definition: PvTriggerSelector.h:186
virtual ~PvTriggerSelectorDefault()
Virtual destructor.
Definition: PvTriggerSelector.h:143
PvTriggerSelectorDefault(const char *const aName="N/A")
Constructor.
Definition: PvTriggerSelector.h:133
void Start(const uint32_t aHeight) override
Nothing to do for the default implementation.
Definition: PvTriggerSelector.h:150
void Stop() override
Nothing to do for the default implementation.
Definition: PvTriggerSelector.h:155
State GetState() const override
Gets the current selector state.
Definition: PvTriggerSelector.h:223
uint32_t GetSource() const override
Gets the trigger source.
Definition: PvTriggerSelector.h:193
bool IsEnabled() const override
Checks if the trigger is enabled.
Definition: PvTriggerSelector.h:207
void Rearm() override
Nothing to do for the default implementation.
Definition: PvTriggerSelector.h:165
bool GetMode() const override
Gets the trigger mode.
Definition: PvTriggerSelector.h:179
PvString GetName() const override
Gets the selector name.
Definition: PvTriggerSelector.h:200
void SetState(const State aState)
Sets the selector state.
Definition: PvTriggerSelector.h:216
Behaves just like AcquisitionStart, but is re-armed on a frame basis.
Definition: PvTriggerSelector.h:304
void Rearm() override
Moves the state from Fired to Armed.
Definition: PvTriggerSelector.h:323
void FireTrigger() override
Moves the state from Armed to Fired.
Definition: PvTriggerSelector.h:334
virtual ~PvTriggerSelectorFrameStart()
Virtual destructor.
Definition: PvTriggerSelector.h:318
PvTriggerSelectorFrameStart(const char *const aName="FrameStart")
Constructor.
Definition: PvTriggerSelector.h:312
Behaves like FrameStart, but moves to Fired state once all lines of a frame are received.
Definition: PvTriggerSelector.h:352
void FireTrigger() override
If Armed and all lines are received, moves to the Fired state.
Definition: PvTriggerSelector.h:388
~PvTriggerSelectorLineStart()
Virtual destructor.
Definition: PvTriggerSelector.h:369
void Start(const uint32_t aHeight) override
Signals the state machine to move from the Enabled state to the Armed state.
Definition: PvTriggerSelector.h:376
void Rearm() override
Moves the state from Fired to Armed.
Definition: PvTriggerSelector.h:403
PvTriggerSelectorLineStart(const char *const aName="LineStart")
Constructor.
Definition: PvTriggerSelector.h:360