Skip to content

Sequencer (USB Cameras)#

The Sequencer camera feature allows you to define up to 32 sets of parameter settings, called sequencer sets, and apply them to a sequence of image acquisitions.

As the camera acquires images, it applies one sequencer set after the other. This enables you to quickly change camera parameters without compromising the maximum frame rate.

For example, you can use the Sequencer feature to quickly change between preconfigured image ROIs or exposure times.

For a description of the Sequencer feature for GigE cameras, click here.

Using the Feature#

Sequencer Modes#

  • In sequencer mode, the sequencer controls image acquisition. It can't be configured in this state.
  • In sequencer configuration mode, the sequencer can be configured but is not controlling image acquisitions.

To enable the sequencer mode:

  1. Set all auto functions (e.g., Gain Auto, Exposure Auto) to Off.
  2. Set the SequencerMode parameter to On.

To enable the sequencer configuration mode:

  1. Set the SequencerMode parameter to Off.
  2. Set the SequencerConfigurationMode parameter to On.

What's in a Sequencer Set?#

Sequencer sets contain the following parameters, if available:

  • AcquisitionFrameRate
  • AcquisitionFrameRateEnable
  • BalanceRatio
  • BinningHorizontal
  • BinningVertical
  • BlackLevel
  • CenterX
  • CenterY
  • ChunkEnable
  • ChunkModeActive
  • ColorAdjustmentHue
  • ColorAdjustmentSaturation
  • ColorTransformationValue
  • CounterDuration (for Counter 2)
  • CounterEventSource
  • CounterResetSource
  • DigitalShift
  • ExposureTime
  • Gain
  • Height
  • LUTEnablea
  • OffsetX
  • OffsetY
  • PixelFormatb
  • ReverseX
  • ReverseYc
  • ScalingHorizontal
  • SequencerSetNext
  • SequencerSetPath
  • SequencerSetSelector
  • SequencerSetStart
  • SequencerTriggerActivation
  • SequencerTriggerSource
  • TestImageSelector
  • TimerDelay (for Timer 1)
  • TimerDuration (for Timer 1)
  • Width

  1. Only contained if the Gamma parameter is set to 1.0 and the LightSourcePreset parameter is set to Off.

  2. Only available for the following camera models: acA640-750um/uc, acA800-510um/uc, acA1300-200um/uc, acA1920-150um/uc, acA2500-60um/uc.

  3. Not available for the following camera models: acA3088-57um/uc, acA4024-29um/uc, acA5472-17um/uc.

All other camera parameters can't be controlled using the Sequencer feature.

Info

Loading or saving a sequencer set will always load or save all of the above parameters, even those you haven't changed. For example, if you only changed the exposure time and left all other parameters at their default values, the values of all other parameters will also be stored (and overwritten on load).

Configuring Sequencer Sets#

Info

  • To configure sequencer sets, the sequencer must be inconfiguration mode.
  • All changes made to sequencer sets are lost when the camera is disconnected from power. Also, sequencer settings can't be saved in a user set. In order to preserve your settings, Basler recommends that you write suitable program code using the pylon API to re-populate the sequence sets every time the camera is powered on.

Before you can use the Sequencer feature, you must populate the sequencer sets with your desired settings. Each sequencer set has a unique sequencer set index number, ranging from 0 to 31.

To populate the sequencer sets:

  1. Configure the sequencer set parameters that you want to store in sequencer set 0.
  2. Save sequencer set 0.
  3. Repeat steps 1 and 2 for all sequencer sets you want to use. Make sure to always use a continuous series of index numbers starting with index number 0, e.g., use sequencer sets 0, 1, 2, and 3.

Example: Assume you need two sequencer sets and want to populate them with different image ROI settings. To do so:

  1. Create the first image ROI by adjusting the Width, Height, OffsetX, and OffsetY parameter values.
  2. Save sequencer set 0.
  3. Create the second image ROI by choosing different values for the Width, Height, OffsetX, and OffsetY parameters.
  4. Save sequencer set 1.

You can now configure the sequencer to quickly change between the two image ROIs.

Saving a Sequencer Set#

To save a sequencer set:

  1. Set the SequencerSetSelector parameter to the desired sequencer set.
  2. Execute the SequencerSetSave command.

The values of all sequencer set parameters are stored in the selected sequencer set.

Loading a Sequencer Set#

Sequencer sets are loaded automatically during sequencer operation. However, loading a sequencer set manually can be useful for testing purposes or to set up the sequencer.

To manually load a sequencer set:

  1. Set the SequencerSetSelector parameter to the desired sequencer set.
  2. Execute the SequencerSetLoad command.

The values of all sequencer set parameters are overwritten and replaced by the values stored in the selected sequencer set.

Configuring the Sequencer#

After you have configured the sequencer sets, you must set up the sequencer.

Info

  • To configure the sequencer, the sequencer must be inconfiguration mode.
  • All changes made to the sequencer configuration are lost when the camera is disconnected from power. Also, sequencer settings can't be saved in a user set. Basler recommends that you write suitable program code using the pylon API to reconfigure the camera every time it is powered on.
  • You can use the SequencerSetActive chunk to keep track of the sequencer sets used. When enabled, each image contains chunk data including the index number of the sequencer set used for image acquisition.

Path 0 and Path 1#

To control the sequencer, you must set up two so-called "paths":

  • Path 1 allows you to cycle through available sequencer sets (sequencer set advance). Whenever the sequencer receives a "path 1" trigger signal, the sequencer advances to the next set.
    Example:
    Sample Sequence Cycle for Path 1: 0-1-2-3-4-0-1-...
  • Path 0 allows you to reset the cycle (sequencer set reset). Whenever the sequencer receives a "path 0" trigger signal, the sequencer restarts the cycle at sequencer set 0.
    Example:
    Sample Sequence Cycle for Path 0: 0-1-2-0-1-2-...

Setting Up Path 0#

To set up path 0, you must specify the source signal that you want to use as the "path 0" trigger signal, i.e., as a sequencer set reset signal.

You can select hardware signals or software signals as source signals for path 0. The source setting must be stored in sequencer set 0.

To specify the source signal for path 0:

  1. Load sequencer set 0.
  2. Set the SequencerPathSelector parameter to 0.
  3. Set the SequencerTriggerSource parameter to one of the following values:
    • Line1, Line3, or Line4: Sequencer set reset can be controlled via input line 1, GPIO line 3, or GPIO line 4.
    • SoftwareSignal1, SoftwareSignal2, or SoftwareSignal3: Sequencer set reset can be controlled using the Software Signal Pulse feature.
  4. Save sequencer set 0.

Info

  • For real-time applications, Basler strongly recommends not to control sequencer set reset via software commands. Due to signal processing and transmission, there is an unspecified delay between issuing the software command and sequencer set reset. Accordingly, the number of image acquisitions that may occur between sending the software command and it becoming effective can't be predicted.
  • Do not use the same trigger source for path 0 and path 1.

Setting Up Path 1#

Specifying the Trigger Source

First, you must specify the source signal that you want to use as the "path 1" trigger signal, i.e., as a sequencer set advance signal.

You can select the Frame Start trigger signal, hardware signals, software signals, or a counter as source signals for path 1. The source setting must be stored in sequencer set 0.

To specify the source signal for path 1:

  1. Load sequencer set 0.
  2. Set the SequencerPathSelector parameter to 1.
  3. Set the SequencerTriggerSource parameter to one of the following values:
    • FrameStart: Sequencer set advance occurs automatically as Frame Start trigger signals are received.
    • Line1, Line3, or Line4: Sequencer set advance can be controlled via input line 1, GPIO line 3, or GPIO line 4. To use one of the GPIO lines, the line must be configured for input. If the specified line is low (0) while a frame start trigger signal is received, the sequencer does not advance, and the current set is used again for image acquisition. If the line is high (1) while a Frame Start trigger signal is received, the sequencer advances, and the next sequencer set in the cycle is used for image acquisition.
    • SoftwareSignal1, SoftwareSignal2, or SoftwareSignal3: Sequencer set advance can be controlled using the Software Signal Pulse feature.
    • Counter2End: Sequencer set advance can be controlled using a counter.
  4. Save sequencer set 0.
Specifying the Sequencer Sets Used

Second, you must specify which sequencer sets are to be used during sequencer operation.

By default, all 32 sequencer sets are used. As "path 1" trigger signals are received, the sequencer advances in ascending sequencer set index numbers from 0 to 31. After that, the cycle restarts at 0.

To use a lower number of sequencer sets:

  1. Load the sequencer set with the highest index number to be used.
    Example: Assume you have configured five sequencer sets, and you want to set up the following cycle:
    Sample Sequence Cycle for Path 1: 0-1-2-3-4-0-1-...
    In this cycle, the highest sequencer set index number is 4. Therefore, load sequencer set 4.
  2. Set the SequencerPathSelector parameter to 1.
  3. Set the SequencerSetNext parameter to 0.
  4. Save the sequencer set.

During operation, the sequencer will now switch to sequencer set 0 after the set with the highest index number. This "closes the circle".

Info

  • For real-time applications, Basler strongly recommends not to control sequencer set advance via software commands. Due to signal processing and transmission, there is an unspecified delay between issuing the software command and sequencer set advance. Accordingly, the number of image acquisitions that may occur between sending the software command and it becoming effective can't be predicted.
  • Do not use the same trigger source for path 0 and path 1.

Using a Counter to Control the Sequencer#

If you set the source signal for path 1 to Counter2End, you can use a counter to control sequencer set advance.

This is useful if you want to set up a fixed sequence that uses sequencer sets multiple times in a row.

For each sequencer set, you can set the CounterDuration parameter to specify how many times the set is to be used in a row. By default, the parameter is set to 1 for all sets, and each sequence set is used once per cycle.

Example: Assume you want to set up the following sequencer set cycle:

Sample Sequencer Cycle: 0-1-1-1-2-3-4-5-5-0-1-...

To set up the above sequencer set cycle:

  1. Load sequencer set 0.
  2. Set the SequencerPathSelector parameter to 1.
  3. Set the SequencerTriggerSource parameter to Counter2End.
  4. Save sequencer set 0.
  5. Set the CounterSelector parameter to Counter2.
  6. Set the CounterDuration parameter for each sequencer set:
    • Sequencer sets 0, 2, 3, and 4 are to be used only once per cycle. Therefore, you can skip these sets and leave the CounterDuration parameter at the default value of 1.
    • Sequencer set 1 is to be used three times in a row. Load sequencer set 1, set the CounterDuration parameter to 3, and save sequencer set 1.
    • Sequencer set 5 is to be used two times in a row. Load sequencer set 5, set the CounterDuration parameter to 2, and save sequencer set 5.

Additional Parameters#

The SequencerSetStart and SequencerTriggerActivation parameters also control the operation of the sequencer. However, these parameters are preset and can't be changed.

Specifics#

Show all camera models

Camera Model Notes
a2A1920-51gcBAS Sequencer feature not supported
a2A1920-51gcPRO Sequencer feature not supported
a2A1920-51gmBAS Sequencer feature not supported
a2A1920-51gmPRO Sequencer feature not supported
a2A1920-160ucBAS Sequencer feature not supported
a2A1920-160ucPRO Sequencer feature not supported
a2A1920-160umBAS Sequencer feature not supported
a2A1920-160umPRO Sequencer feature not supported
a2A3840-13gcBAS Sequencer feature not supported
a2A3840-13gmBAS Sequencer feature not supported
a2A3840-45ucBAS Sequencer feature not supported
a2A3840-45umBAS Sequencer feature not supported
acA640-90gc See Sequencer (GigE Cameras).
acA640-90gm See Sequencer (GigE Cameras).
acA640-90uc No specific information for your camera model.
acA640-90um No specific information for your camera model.
acA640-120gc See Sequencer (GigE Cameras).
acA640-120gm See Sequencer (GigE Cameras).
acA640-120uc No specific information for your camera model.
acA640-120um No specific information for your camera model.
acA640-121gm See Sequencer (GigE Cameras).
acA640-300gc See Sequencer (GigE Cameras).
acA640-300gm See Sequencer (GigE Cameras).
acA640-750uc No specific information for your camera model.
acA640-750um No specific information for your camera model.
acA720-290gc See Sequencer (GigE Cameras).
acA720-290gm See Sequencer (GigE Cameras).
acA720-520uc No specific information for your camera model.
acA720-520um No specific information for your camera model.
acA780-75gc See Sequencer (GigE Cameras).
acA780-75gm See Sequencer (GigE Cameras).
acA800-200gc See Sequencer (GigE Cameras).
acA800-200gm See Sequencer (GigE Cameras).
acA800-510uc No specific information for your camera model.
acA800-510um No specific information for your camera model.
acA1280-60gc See Sequencer (GigE Cameras).
acA1280-60gm See Sequencer (GigE Cameras).
acA1300-22gc See Sequencer (GigE Cameras).
acA1300-22gm See Sequencer (GigE Cameras).
acA1300-30gc See Sequencer (GigE Cameras).
acA1300-30gm See Sequencer (GigE Cameras).
acA1300-30uc No specific information for your camera model.
acA1300-30um No specific information for your camera model.
acA1300-60gc See Sequencer (GigE Cameras).
acA1300-60gm See Sequencer (GigE Cameras).
acA1300-60gmNIR See Sequencer (GigE Cameras).
acA1300-75gc See Sequencer (GigE Cameras).
acA1300-75gm See Sequencer (GigE Cameras).
acA1300-200uc No specific information for your camera model.
acA1300-200um No specific information for your camera model.
acA1440-73gc See Sequencer (GigE Cameras).
acA1440-73gm See Sequencer (GigE Cameras).
acA1440-220uc No specific information for your camera model.
acA1440-220um No specific information for your camera model.
acA1600-20gc See Sequencer (GigE Cameras).
acA1600-20gm See Sequencer (GigE Cameras).
acA1600-20uc No specific information for your camera model.
acA1600-20um No specific information for your camera model.
acA1600-60gc See Sequencer (GigE Cameras).
acA1600-60gm See Sequencer (GigE Cameras).
acA1920-25gc See Sequencer (GigE Cameras).
acA1920-25gm See Sequencer (GigE Cameras).
acA1920-25uc If you use the camera with overlapping image acquisition, enabling the sequencer may affect the frame rate.
When acquiring multiple images using the same sequencer set, overlapping image acquisition is possible and the Sequencer feature has no effect on the camera's frame rate.
When acquiring multiple images using different sequencer sets, overlapping image acquisition is not possible. The camera must complete the entire exposure/readout process before a new sequence set can be loaded. As a consequence, the frame rate can be significantly reduced.
acA1920-25um If you use the camera with overlapping image acquisition, enabling the sequencer may affect the frame rate.
When acquiring multiple images using the same sequencer set, overlapping image acquisition is possible and the Sequencer feature has no effect on the camera's frame rate.
When acquiring multiple images using different sequencer sets, overlapping image acquisition is not possible. The camera must complete the entire exposure/readout process before a new sequence set can be loaded. As a consequence, the frame rate can be significantly reduced.
acA1920-40gc See Sequencer (GigE Cameras).
acA1920-40gm See Sequencer (GigE Cameras).
acA1920-40uc No specific information for your camera model.
acA1920-40ucMED No specific information for your camera model.
acA1920-40um No specific information for your camera model.
acA1920-40umMED No specific information for your camera model.
acA1920-48gc See Sequencer (GigE Cameras).
acA1920-48gm See Sequencer (GigE Cameras).
acA1920-50gc See Sequencer (GigE Cameras).
acA1920-50gm See Sequencer (GigE Cameras).
acA1920-150uc No specific information for your camera model.
acA1920-150um No specific information for your camera model.
acA1920-155uc No specific information for your camera model.
acA1920-155ucMED No specific information for your camera model.
acA1920-155um No specific information for your camera model.
acA1920-155umMED No specific information for your camera model.
acA2000-50gc See Sequencer (GigE Cameras).
acA2000-50gm See Sequencer (GigE Cameras).
acA2000-50gmNIR See Sequencer (GigE Cameras).
acA2000-165uc No specific information for your camera model.
acA2000-165um No specific information for your camera model.
acA2000-165umNIR No specific information for your camera model.
acA2040-25gc See Sequencer (GigE Cameras).
acA2040-25gm See Sequencer (GigE Cameras).
acA2040-25gmNIR See Sequencer (GigE Cameras).
acA2040-35gc See Sequencer (GigE Cameras).
acA2040-35gm See Sequencer (GigE Cameras).
acA2040-55uc No specific information for your camera model.
acA2040-55um No specific information for your camera model.
acA2040-90uc No specific information for your camera model.
acA2040-90um No specific information for your camera model.
acA2040-90umNIR No specific information for your camera model.
acA2040-120uc No specific information for your camera model.
acA2040-120um No specific information for your camera model.
acA2440-20gc See Sequencer (GigE Cameras).
acA2440-20gm See Sequencer (GigE Cameras).
acA2440-35uc No specific information for your camera model.
acA2440-35ucMED No specific information for your camera model.
acA2440-35um No specific information for your camera model.
acA2440-35umMED No specific information for your camera model.
acA2440-75uc No specific information for your camera model.
acA2440-75ucMED No specific information for your camera model.
acA2440-75um No specific information for your camera model.
acA2440-75umMED No specific information for your camera model.
acA2500-14gc See Sequencer (GigE Cameras)
acA2500-14gm See Sequencer (GigE Cameras).
acA2500-14uc If you use the camera with overlapping image acquisition, enabling the sequencer may affect the frame rate.
When acquiring multiple images using the same sequencer set, overlapping image acquisition is possible and the Sequencer feature has no effect on the camera's frame rate.
When acquiring multiple images using different sequencer sets, overlapping image acquisition is not possible. The camera must complete the entire exposure/readout process before a new sequence set can be loaded. As a consequence, the frame rate can be significantly reduced.
acA2500-14um If you use the camera with overlapping image acquisition, enabling the sequencer may affect the frame rate.
When acquiring multiple images using the same sequencer set, overlapping image acquisition is possible and the Sequencer feature has no effect on the camera's frame rate.
When acquiring multiple images using different sequencer sets, overlapping image acquisition is not possible. The camera must complete the entire exposure/readout process before a new sequence set can be loaded. As a consequence, the frame rate can be significantly reduced.
acA2500-20gc See Sequencer (GigE Cameras).
acA2500-20gcMED See Sequencer (GigE Cameras).
acA2500-20gm See Sequencer (GigE Cameras).
acA2500-20gmMED See Sequencer (GigE Cameras).
acA2500-60uc No specific information for your camera model.
acA2500-60um No specific information for your camera model.
acA3088-16gc See Sequencer (GigE Cameras).
acA3088-16gm See Sequencer (GigE Cameras).
acA3088-57uc No specific information for your camera model.
acA3088-57um No specific information for your camera model.
acA3800-10gc See Sequencer (GigE Cameras).
acA3800-10gm See Sequencer (GigE Cameras).
acA3800-14uc No specific information for your camera model.
acA3800-14um No specific information for your camera model.
acA4024-8gc See Sequencer (GigE Cameras).
acA4024-8gm See Sequencer (GigE Cameras).
acA4024-29uc No specific information for your camera model.
acA4024-29um No specific information for your camera model.
acA4096-11gc See Sequencer (GigE Cameras).
acA4096-11gm See Sequencer (GigE Cameras).
acA4096-30uc No specific information for your camera model.
acA4096-30ucMED No specific information for your camera model.
acA4096-30um No specific information for your camera model.
acA4096-30umMED No specific information for your camera model.
acA4096-40uc No specific information for your camera model.
acA4096-40ucMED No specific information for your camera model.
acA4096-40um No specific information for your camera model.
acA4096-40umMED No specific information for your camera model.
acA4112-8gc See Sequencer (GigE Cameras).
acA4112-8gm See Sequencer (GigE Cameras).
acA4112-20uc No specific information for your camera model.
acA4112-20ucMED No specific information for your camera model.
acA4112-20um No specific information for your camera model.
acA4112-20umMED No specific information for your camera model.
acA4112-30uc No specific information for your camera model.
acA4112-30ucMED No specific information for your camera model.
acA4112-30um No specific information for your camera model.
acA4112-30umMED No specific information for your camera model.
acA4600-7gc See Sequencer (GigE Cameras).
acA4600-10uc No specific information for your camera model.
acA5472-5gc See Sequencer (GigE Cameras).
acA5472-5gm See Sequencer (GigE Cameras).
acA5472-17uc No specific information for your camera model.
acA5472-17um No specific information for your camera model.
boA4096-93cc Sequencer feature not supported
boA4096-93cm Sequencer feature not supported
boA4112-68cc Sequencer feature not supported
boA4112-68cm Sequencer feature not supported
daA1280-54lc Sequencer feature not supported
daA1280-54lm Sequencer feature not supported
daA1280-54uc Sequencer feature not supported
daA1280-54um Sequencer feature not supported
daA1600-60lc Sequencer feature not supported
daA1600-60lm Sequencer feature not supported
daA1600-60uc Sequencer feature not supported
daA1600-60um Sequencer feature not supported
daA1920-15um Sequencer feature not supported
daA1920-30uc Sequencer feature not supported
daA1920-30um Sequencer feature not supported
daA2500-14lc Sequencer feature not supported
daA2500-14lm Sequencer feature not supported
daA2500-14uc Sequencer feature not supported
daA2500-14um Sequencer feature not supported
daA2500-60mc Sequencer feature not supported
daA2500-60mci Sequencer feature not supported
daA4200-30mci Sequencer feature not supported
puA1280-54uc Sequencer feature not supported
puA1280-54um Sequencer feature not supported
puA1600-60uc Sequencer feature not supported
puA1600-60um Sequencer feature not supported
puA1920-30uc Sequencer feature not supported
puA1920-30um Sequencer feature not supported
puA2500-14uc Sequencer feature not supported
puA2500-14um Sequencer feature not supported

Sample Code#

// ** Configuring the sequencer sets **
// Enable sequencer configuration mode
camera.SequencerMode.SetValue(SequencerMode_Off);
camera.SequencerConfigurationMode.SetValue(SequencerConfigurationMode_On);
// Configure parameters to be stored in the first sequencer set
camera.Width.SetValue(600);
camera.Height.SetValue(300);
// Select sequencer set 0 and save the parameter values
camera.SequencerSetSelector.SetValue(0);
camera.SequencerSetSave.Execute();
// Configure parameters to be stored in the second sequencer set
camera.Width.SetValue(800);
camera.Height.SetValue(600);
// Select sequencer set 1 and save the parameter values
camera.SequencerSetSelector.SetValue(1);
camera.SequencerSetSave.Execute();
// Enable sequencer mode to operate the sequencer
camera.SequencerMode.SetValue(SequencerMode_On);
// ** Setting up path 0 **
// Enable sequencer configuration mode
camera.SequencerMode.SetValue(SequencerMode_Off);
camera.SequencerConfigurationMode.SetValue(SequencerConfigurationMode_On);
// Load sequencer set 0 and select path 0
camera.SequencerSetSelector.SetValue(0);
camera.SequencerSetLoad.Execute();
camera.SequencerPathSelector.SetValue(0);
// Set software signal 1 as "path 0" trigger signal
camera.SequencerTriggerSource.SetValue(SequencerTriggerSource_SoftwareSignal1);
// Save the changes
camera.SequencerSetSave.Execute();
// Enable sequencer mode to operate the sequencer
camera.SequencerMode.SetValue(SequencerMode_On);
// * Setting up path 1 **
// Enable sequencer configuration mode
camera.SequencerMode.SetValue(SequencerMode_Off);
camera.SequencerConfigurationMode.SetValue(SequencerConfigurationMode_On);
// Load sequencer set 0 and select path 1
camera.SequencerSetSelector.SetValue(0);
camera.SequencerSetLoad.Execute();
camera.SequencerPathSelector.SetValue(1);
// Set software signal 2 as "path 1" trigger signal
camera.SequencerTriggerSource.SetValue(SequencerTriggerSource_SoftwareSignal2);
// Save the changes
camera.SequencerSetSave.Execute();
// Assume you want to set up the following sequencer set cycle:
// 0 - 1 - 2 - 3 (- 0 - 1 - ...)
// Load the sequencer set with the highest index number to be used (here: 3)
camera.SequencerSetSelector.SetValue(3);
camera.SequencerSetLoad.Execute();
// Set the next sequencer set to 0 to "close the circle"
camera.SequencerPathSelector.SetValue(1);
camera.SequencerSetNext.SetValue(0);
// Save the changes
camera.SequencerSetSave.Execute();
// Enable sequencer mode to operate the sequencer
camera.SequencerMode.SetValue(SequencerMode_On);
// ** Advanced: Using a counter to control the sequencer **
// Enable sequencer configuration mode
camera.SequencerMode.SetValue(SequencerMode_Off);
camera.SequencerConfigurationMode.SetValue(SequencerConfigurationMode_On);
// Load sequencer set 0 and select path 1
camera.SequencerSetSelector.SetValue(0);
camera.SequencerSetLoad.Execute();
camera.SequencerPathSelector.SetValue(1);
// Set the Counter2 end event as "path 1" trigger signal
camera.SequencerTriggerSource.SetValue(SequencerTriggerSource_Counter2End);
// Save the changes
camera.SequencerSetSave.Execute();
// Select counter 2 to configure this counter
camera.CounterSelector.SetValue(CounterSelector_Counter2);
// Assume you want to set up the following sequencer set cycle:
// 0 - 0 - 1 - 1 - 1 (- 0 - 0 - ...)
// Load sequencer set 0 and specify that this set is to be used
// two times in a row
camera.SequencerSetSelector.SetValue(0);
camera.SequencerSetLoad.Execute();
camera.CounterDuration.SetValue(2);
camera.SequencerSetSave.Execute();
// Load sequencer set 1 and specify that this set is to be used
// three times in a row
camera.SequencerSetSelector.SetValue(1);
camera.SequencerSetLoad.Execute();
camera.CounterDuration.SetValue(3);
camera.SequencerSetSave.Execute();
// Enable sequencer mode to operate the sequencer
camera.SequencerMode.SetValue(SequencerMode_On);
INodeMap& nodemap = camera.GetNodeMap();
// ** Configuring the sequencer sets **
// Enable sequencer configuration mode
CEnumerationPtr(nodemap.GetNode("SequencerMode"))->FromString("Off");
CEnumerationPtr(nodemap.GetNode("SequencerConfigurationMode"))->FromString("On");
// Configure parameters to be stored in the first sequencer set
CIntegerPtr(nodemap.GetNode("Width"))->SetValue(600);
CIntegerPtr(nodemap.GetNode("Height"))->SetValue(300);
// Select sequencer set 0 and save the parameter values
CIntegerPtr(nodemap.GetNode("SequencerSetSelector"))->SetValue(0);
CCommandPtr(nodemap.GetNode("SequencerSetSave"))->Execute();
// Configure parameters to be stored in the second sequencer set
CIntegerPtr(nodemap.GetNode("Width"))->SetValue(800);
CIntegerPtr(nodemap.GetNode("Height"))->SetValue(600);
// Select sequencer set 1 and save the parameter values
CIntegerPtr(nodemap.GetNode("SequencerSetSelector"))->SetValue(1);
CCommandPtr(nodemap.GetNode("SequencerSetSave"))->Execute();
// Enable sequencer mode to operate the sequencer
CEnumerationPtr(nodemap.GetNode("SequencerMode"))->FromString("On");
// ** Setting up path 0 **
// Enable sequencer configuration mode
CEnumerationPtr(nodemap.GetNode("SequencerMode"))->FromString("Off");
CEnumerationPtr(nodemap.GetNode("SequencerConfigurationMode"))->FromString("On");
// Load sequencer set 0 and select path 0
CIntegerPtr(nodemap.GetNode("SequencerSetSelector"))->SetValue(0);
CCommandPtr(nodemap.GetNode("SequencerSetLoad"))->Execute();
CIntegerPtr(nodemap.GetNode("SequencerPathSelector"))->SetValue(0);
// Set software signal 1 as "path 0" trigger signal
CEnumerationPtr(nodemap.GetNode("SequencerTriggerSource"))->FromString("SoftwareSignal1");
// Save the changes
CCommandPtr(nodemap.GetNode("SequencerSetSave"))->Execute();
// Enable sequencer mode to operate the sequencer
CEnumerationPtr(nodemap.GetNode("SequencerMode"))->FromString("On");
// * Setting up path 1 **
// Enable sequencer configuration mode
CEnumerationPtr(nodemap.GetNode("SequencerMode"))->FromString("Off");
CEnumerationPtr(nodemap.GetNode("SequencerConfigurationMode"))->FromString("On");
// Load sequencer set 0 and select path 1
CIntegerPtr(nodemap.GetNode("SequencerSetSelector"))->SetValue(0);
CCommandPtr(nodemap.GetNode("SequencerSetLoad"))->Execute();
CIntegerPtr(nodemap.GetNode("SequencerPathSelector"))->SetValue(1);
// Set software signal 2 as "path 1" trigger signal
CEnumerationPtr(nodemap.GetNode("SequencerTriggerSource"))->FromString("SoftwareSignal2");
// Save the changes
CCommandPtr(nodemap.GetNode("SequencerSetSave"))->Execute();
// Assume you want to set up the following sequencer set cycle:
// 0 - 1 - 2 - 3 (- 0 - 1 - ...)
// Load the sequencer set with the highest index number to be used (here: 3)
CIntegerPtr(nodemap.GetNode("SequencerSetSelector"))->SetValue(3);
CCommandPtr(nodemap.GetNode("SequencerSetLoad"))->Execute();
// Set the next sequencer set to 0 to "close the circle"
CIntegerPtr(nodemap.GetNode("SequencerPathSelector"))->SetValue(1);
CIntegerPtr(nodemap.GetNode("SequencerSetNext"))->SetValue(0);
// Save the changes
CCommandPtr(nodemap.GetNode("SequencerSetSave"))->Execute();
// Enable sequencer mode to operate the sequencer
CEnumerationPtr(nodemap.GetNode("SequencerMode"))->FromString("On");
// ** Advanced: Using a counter to control the sequencer **
// Enable sequencer configuration mode
CEnumerationPtr(nodemap.GetNode("SequencerMode"))->FromString("Off");
CEnumerationPtr(nodemap.GetNode("SequencerConfigurationMode"))->FromString("On");
// Load sequencer set 0 and select path 1
CIntegerPtr(nodemap.GetNode("SequencerSetSelector"))->SetValue(0);
CCommandPtr(nodemap.GetNode("SequencerSetLoad"))->Execute();
CIntegerPtr(nodemap.GetNode("SequencerPathSelector"))->SetValue(1);
// Set the Counter2 end event as "path 1" trigger signal
CEnumerationPtr(nodemap.GetNode("SequencerTriggerSource"))->FromString("Counter2End");
// Save the changes
CCommandPtr(nodemap.GetNode("SequencerSetSave"))->Execute();
// Select counter 2 to configure this counter
CEnumerationPtr(nodemap.GetNode("CounterSelector"))->FromString("Counter2");
// Assume you want to set up the following sequencer set cycle:
// 0 - 0 - 1 - 1 - 1 (- 0 - 0 - ...)
// Load sequencer set 0 and specify that this set is to be used
// two times in a row
CIntegerPtr(nodemap.GetNode("SequencerSetSelector"))->SetValue(0);
CCommandPtr(nodemap.GetNode("SequencerSetLoad"))->Execute();
CIntegerPtr(nodemap.GetNode("CounterDuration"))->SetValue(2);
CCommandPtr(nodemap.GetNode("SequencerSetSave"))->Execute();
// Load sequencer set 1 and specify that this set is to be used
// three times in a row
CIntegerPtr(nodemap.GetNode("SequencerSetSelector"))->SetValue(1);
CCommandPtr(nodemap.GetNode("SequencerSetLoad"))->Execute();
CIntegerPtr(nodemap.GetNode("CounterDuration"))->SetValue(3);
CCommandPtr(nodemap.GetNode("SequencerSetSave"))->Execute();
// Enable sequencer mode to operate the sequencer
CEnumerationPtr(nodemap.GetNode("SequencerMode"))->FromString("On");
INodeMap& nodemap = camera.GetNodeMap();
// ** Configuring the sequencer sets **
// Enable sequencer configuration mode
CEnumParameter(nodemap, "SequencerMode").SetValue("Off");
CEnumParameter(nodemap, "SequencerConfigurationMode").SetValue("On");
// Configure parameters to be stored in the first sequencer set
CIntegerParameter(nodemap, "Width").SetValue(600);
CIntegerParameter(nodemap, "Height").SetValue(300);
// Select sequencer set 0 and save the parameter values
CIntegerParameter(nodemap, "SequencerSetSelector").SetValue(0);
CCommandParameter(nodemap, "SequencerSetSave").Execute();
// Configure parameters to be stored in the second sequencer set
CIntegerParameter(nodemap, "Width").SetValue(800);
CIntegerParameter(nodemap, "Height").SetValue(600);
// Select sequencer set 1 and save the parameter values
CIntegerParameter(nodemap, "SequencerSetSelector").SetValue(1);
CCommandParameter(nodemap, "SequencerSetSave").Execute();
// Enable sequencer mode to operate the sequencer
CEnumParameter(nodemap, "SequencerMode").SetValue("On");
// ** Setting up path 0 **
// Enable sequencer configuration mode
CEnumParameter(nodemap, "SequencerMode").SetValue("Off");
CEnumParameter(nodemap, "SequencerConfigurationMode").SetValue("On");
// Load sequencer set 0 and select path 0
CIntegerParameter(nodemap, "SequencerSetSelector").SetValue(0);
CCommandParameter(nodemap, "SequencerSetLoad").Execute();
CIntegerParameter(nodemap, "SequencerPathSelector").SetValue(0);
// Set software signal 1 as "path 0" trigger signal
CEnumParameter(nodemap, "SequencerTriggerSource").SetValue("SoftwareSignal1");
// Save the changes
CCommandParameter(nodemap, "SequencerSetSave").Execute();
// Enable sequencer mode to operate the sequencer
CEnumParameter(nodemap, "SequencerMode").SetValue("On");
// * Setting up path 1 **
// Enable sequencer configuration mode
CEnumParameter(nodemap, "SequencerMode").SetValue("Off");
CEnumParameter(nodemap, "SequencerConfigurationMode").SetValue("On");
// Load sequencer set 0 and select path 1
CIntegerParameter(nodemap, "SequencerSetSelector").SetValue(0);
CCommandParameter(nodemap, "SequencerSetLoad").Execute();
CIntegerParameter(nodemap, "SequencerPathSelector").SetValue(1);
// Set software signal 2 as "path 1" trigger signal
CEnumParameter(nodemap, "SequencerTriggerSource").SetValue("SoftwareSignal2");
// Save the changes
CCommandParameter(nodemap, "SequencerSetSave").Execute();
// Assume you want to set up the following sequencer set cycle:
// 0 - 1 - 2 - 3 (- 0 - 1 - ...)
// Load the sequencer set with the highest index number to be used (here: 3)
CIntegerParameter(nodemap, "SequencerSetSelector").SetValue(3);
CCommandParameter(nodemap, "SequencerSetLoad").Execute();
// Set the next sequencer set to 0 to "close the circle"
CIntegerParameter(nodemap, "SequencerPathSelector").SetValue(1);
CIntegerParameter(nodemap, "SequencerSetNext").SetValue(0);
// Save the changes
CCommandParameter(nodemap, "SequencerSetSave").Execute();
// Enable sequencer mode to operate the sequencer
CEnumParameter(nodemap, "SequencerMode").SetValue("On");
// ** Advanced: Using a counter to control the sequencer **
// Enable sequencer configuration mode
CEnumParameter(nodemap, "SequencerMode").SetValue("Off");
CEnumParameter(nodemap, "SequencerConfigurationMode").SetValue("On");
// Load sequencer set 0 and select path 1
CIntegerParameter(nodemap, "SequencerSetSelector").SetValue(0);
CCommandParameter(nodemap, "SequencerSetLoad").Execute();
CIntegerParameter(nodemap, "SequencerPathSelector").SetValue(1);
// Set the Counter2 end event as "path 1" trigger signal
CEnumParameter(nodemap, "SequencerTriggerSource").SetValue("Counter2End");
// Save the changes
CCommandParameter(nodemap, "SequencerSetSave").Execute();
// Select counter 2 to configure this counter
CEnumParameter(nodemap, "CounterSelector").SetValue("Counter2");
// Assume you want to set up the following sequencer set cycle:
// 0 - 0 - 1 - 1 - 1 (- 0 - 0 - ...)
// Load sequencer set 0 and specify that this set is to be used
// two times in a row
CIntegerParameter(nodemap, "SequencerSetSelector").SetValue(0);
CCommandParameter(nodemap, "SequencerSetLoad").Execute();
CIntegerParameter(nodemap, "CounterDuration").SetValue(2);
CCommandParameter(nodemap, "SequencerSetSave").Execute();
// Load sequencer set 1 and specify that this set is to be used
// three times in a row
CIntegerParameter(nodemap, "SequencerSetSelector").SetValue(1);
CCommandParameter(nodemap, "SequencerSetLoad").Execute();
CIntegerParameter(nodemap, "CounterDuration").SetValue(3);
CCommandParameter(nodemap, "SequencerSetSave").Execute();
// Enable sequencer mode to operate the sequencer
CEnumParameter(nodemap, "SequencerMode").SetValue("On");
// ** Configuring the sequencer sets **
// Enable sequencer configuration mode
camera.Parameters[PLCamera.SequencerMode].SetValue(PLCamera.SequencerMode.Off);
camera.Parameters[PLCamera.SequencerConfigurationMode].SetValue(PLCamera.SequencerConfigurationMode.On);
// Configure parameters to be stored in the first sequencer set
camera.Parameters[PLCamera.Width].SetValue(600);
camera.Parameters[PLCamera.Height].SetValue(300);
// Select sequencer set 0 and save the parameter values
camera.Parameters[PLCamera.SequencerSetSelector].SetValue(0);
camera.Parameters[PLCamera.SequencerSetSave].Execute();
// Configure parameters to be stored in the second sequencer set
camera.Parameters[PLCamera.Width].SetValue(800);
camera.Parameters[PLCamera.Height].SetValue(600);
// Select sequencer set 1 and save the parameter values
camera.Parameters[PLCamera.SequencerSetSelector].SetValue(1);
camera.Parameters[PLCamera.SequencerSetSave].Execute();
// Enable sequencer mode to operate the sequencer
camera.Parameters[PLCamera.SequencerMode].SetValue(PLCamera.SequencerMode.On);
// ** Setting up path 0 **
// Enable sequencer configuration mode
camera.Parameters[PLCamera.SequencerMode].SetValue(PLCamera.SequencerMode.Off);
camera.Parameters[PLCamera.SequencerConfigurationMode].SetValue(PLCamera.SequencerConfigurationMode.On);
// Load sequencer set 0 and select path 0
camera.Parameters[PLCamera.SequencerSetSelector].SetValue(0);
camera.Parameters[PLCamera.SequencerSetLoad].Execute();
camera.Parameters[PLCamera.SequencerPathSelector].SetValue(0);
// Set software signal 1 as "path 0" trigger signal
camera.Parameters[PLCamera.SequencerTriggerSource].SetValue(PLCamera.SequencerTriggerSource.SoftwareSignal1);
// Save the changes
camera.Parameters[PLCamera.SequencerSetSave].Execute();
// Enable sequencer mode to operate the sequencer
camera.Parameters[PLCamera.SequencerMode].SetValue(PLCamera.SequencerMode.On);
// * Setting up path 1 **
// Enable sequencer configuration mode
camera.Parameters[PLCamera.SequencerMode].SetValue(PLCamera.SequencerMode.Off);
camera.Parameters[PLCamera.SequencerConfigurationMode].SetValue(PLCamera.SequencerConfigurationMode.On);
// Load sequencer set 0 and select path 1
camera.Parameters[PLCamera.SequencerSetSelector].SetValue(0);
camera.Parameters[PLCamera.SequencerSetLoad].Execute();
camera.Parameters[PLCamera.SequencerPathSelector].SetValue(1);
// Set software signal 2 as "path 1" trigger signal
camera.Parameters[PLCamera.SequencerTriggerSource].SetValue(PLCamera.SequencerTriggerSource.SoftwareSignal2);
// Save the changes
camera.Parameters[PLCamera.SequencerSetSave].Execute();
// Assume you want to set up the following sequencer set cycle:
// 0 - 1 - 2 - 3 (- 0 - 1 - ...)
// Load the sequencer set with the highest index number to be used (here: 3)
camera.Parameters[PLCamera.SequencerSetSelector].SetValue(3);
camera.Parameters[PLCamera.SequencerSetLoad].Execute();
// Set the next sequencer set to 0 to "close the circle"
camera.Parameters[PLCamera.SequencerPathSelector].SetValue(1);
camera.Parameters[PLCamera.SequencerSetNext].SetValue(0);
// Save the changes
camera.Parameters[PLCamera.SequencerSetSave].Execute();
// Enable sequencer mode to operate the sequencer
camera.Parameters[PLCamera.SequencerMode].SetValue(PLCamera.SequencerMode.On);
// ** Advanced: Using a counter to control the sequencer **
// Enable sequencer configuration mode
camera.Parameters[PLCamera.SequencerMode].SetValue(PLCamera.SequencerMode.Off);
camera.Parameters[PLCamera.SequencerConfigurationMode].SetValue(PLCamera.SequencerConfigurationMode.On);
// Load sequencer set 0 and select path 1
camera.Parameters[PLCamera.SequencerSetSelector].SetValue(0);
camera.Parameters[PLCamera.SequencerSetLoad].Execute();
camera.Parameters[PLCamera.SequencerPathSelector].SetValue(1);
// Set the Counter2 end event as "path 1" trigger signal
camera.Parameters[PLCamera.SequencerTriggerSource].SetValue(PLCamera.SequencerTriggerSource.Counter2End);
// Save the changes
camera.Parameters[PLCamera.SequencerSetSave].Execute();
// Select counter 2 to configure this counter
camera.Parameters[PLCamera.CounterSelector].SetValue(PLCamera.CounterSelector.Counter2);
// Assume you want to set up the following sequencer set cycle:
// 0 - 0 - 1 - 1 - 1 (- 0 - 0 - ...)
// Load sequencer set 0 and specify that this set is to be used
// two times in a row
camera.Parameters[PLCamera.SequencerSetSelector].SetValue(0);
camera.Parameters[PLCamera.SequencerSetLoad].Execute();
camera.Parameters[PLCamera.CounterDuration].SetValue(2);
camera.Parameters[PLCamera.SequencerSetSave].Execute();
// Load sequencer set 1 and specify that this set is to be used
// three times in a row
camera.Parameters[PLCamera.SequencerSetSelector].SetValue(1);
camera.Parameters[PLCamera.SequencerSetLoad].Execute();
camera.Parameters[PLCamera.CounterDuration].SetValue(3);
camera.Parameters[PLCamera.SequencerSetSave].Execute();
// Enable sequencer mode to operate the sequencer
camera.Parameters[PLCamera.SequencerMode].SetValue(PLCamera.SequencerMode.On);
// ** Configuring the sequencer sets **
// Enable sequencer configuration mode
Pylon.DeviceFeatureFromString(hdev, "SequencerMode", "Off");
Pylon.DeviceFeatureFromString(hdev, "SequencerConfigurationMode", "On");
// Configure parameters to be stored in the first sequencer set
Pylon.DeviceSetIntegerFeature(hdev, "Width", 600);
Pylon.DeviceSetIntegerFeature(hdev, "Height", 300);
// Select sequencer set 0 and save the parameter values
Pylon.DeviceSetIntegerFeature(hdev, "SequencerSetSelector", 0);
Pylon.DeviceExecuteCommandFeature(hdev, "SequencerSetSave");
// Configure parameters to be stored in the second sequencer set
Pylon.DeviceSetIntegerFeature(hdev, "Width", 800);
Pylon.DeviceSetIntegerFeature(hdev, "Height", 600);
// Select sequencer set 1 and save the parameter values
Pylon.DeviceSetIntegerFeature(hdev, "SequencerSetSelector", 1);
Pylon.DeviceExecuteCommandFeature(hdev, "SequencerSetSave");
// Enable sequencer mode to operate the sequencer
Pylon.DeviceFeatureFromString(hdev, "SequencerMode", "On");
// ** Setting up path 0 **
// Enable sequencer configuration mode
Pylon.DeviceFeatureFromString(hdev, "SequencerMode", "Off");
Pylon.DeviceFeatureFromString(hdev, "SequencerConfigurationMode", "On");
// Load sequencer set 0 and select path 0
Pylon.DeviceSetIntegerFeature(hdev, "SequencerSetSelector", 0);
Pylon.DeviceExecuteCommandFeature(hdev, "SequencerSetLoad");
Pylon.DeviceSetIntegerFeature(hdev, "SequencerPathSelector", 0);
// Set software signal 1 as "path 0" trigger signal
Pylon.DeviceFeatureFromString(hdev, "SequencerTriggerSource", "SoftwareSignal1");
// Save the changes
Pylon.DeviceExecuteCommandFeature(hdev, "SequencerSetSave");
// Enable sequencer mode to operate the sequencer
Pylon.DeviceFeatureFromString(hdev, "SequencerMode", "On");
// * Setting up path 1 **
// Enable sequencer configuration mode
Pylon.DeviceFeatureFromString(hdev, "SequencerMode", "Off");
Pylon.DeviceFeatureFromString(hdev, "SequencerConfigurationMode", "On");
// Load sequencer set 0 and select path 1
Pylon.DeviceSetIntegerFeature(hdev, "SequencerSetSelector", 0);
Pylon.DeviceExecuteCommandFeature(hdev, "SequencerSetLoad");
Pylon.DeviceSetIntegerFeature(hdev, "SequencerPathSelector", 1);
// Set software signal 2 as "path 1" trigger signal
Pylon.DeviceFeatureFromString(hdev, "SequencerTriggerSource", "SoftwareSignal2");
// Save the changes
Pylon.DeviceExecuteCommandFeature(hdev, "SequencerSetSave");
// Assume you want to set up the following sequencer set cycle:
// 0 - 1 - 2 - 3 (- 0 - 1 - ...)
// Load the sequencer set with the highest index number to be used (here: 3)
Pylon.DeviceSetIntegerFeature(hdev, "SequencerSetSelector", 3);
Pylon.DeviceExecuteCommandFeature(hdev, "SequencerSetLoad");
// Set the next sequencer set to 0 to "close the circle"
Pylon.DeviceSetIntegerFeature(hdev, "SequencerPathSelector", 1);
Pylon.DeviceSetIntegerFeature(hdev, "SequencerSetNext", 0);
// Save the changes
Pylon.DeviceExecuteCommandFeature(hdev, "SequencerSetSave");
// Enable sequencer mode to operate the sequencer
Pylon.DeviceFeatureFromString(hdev, "SequencerMode", "On");
// ** Advanced: Using a counter to control the sequencer **
// Enable sequencer configuration mode
Pylon.DeviceFeatureFromString(hdev, "SequencerMode", "Off");
Pylon.DeviceFeatureFromString(hdev, "SequencerConfigurationMode", "On");
// Load sequencer set 0 and select path 1
Pylon.DeviceSetIntegerFeature(hdev, "SequencerSetSelector", 0);
Pylon.DeviceExecuteCommandFeature(hdev, "SequencerSetLoad");
Pylon.DeviceSetIntegerFeature(hdev, "SequencerPathSelector", 1);
// Set the Counter2 end event as "path 1" trigger signal
Pylon.DeviceFeatureFromString(hdev, "SequencerTriggerSource", "Counter2End");
// Save the changes
Pylon.DeviceExecuteCommandFeature(hdev, "SequencerSetSave");
// Select counter 2 to configure this counter
Pylon.DeviceFeatureFromString(hdev, "CounterSelector", "Counter2");
// Assume you want to set up the following sequencer set cycle:
// 0 - 0 - 1 - 1 - 1 (- 0 - 0 - ...)
// Load sequencer set 0 and specify that this set is to be used
// two times in a row
Pylon.DeviceSetIntegerFeature(hdev, "SequencerSetSelector", 0);
Pylon.DeviceExecuteCommandFeature(hdev, "SequencerSetLoad");
Pylon.DeviceSetIntegerFeature(hdev, "CounterDuration", 2);
Pylon.DeviceExecuteCommandFeature(hdev, "SequencerSetSave");
// Load sequencer set 1 and specify that this set is to be used
// three times in a row
Pylon.DeviceSetIntegerFeature(hdev, "SequencerSetSelector", 1);
Pylon.DeviceExecuteCommandFeature(hdev, "SequencerSetLoad");
Pylon.DeviceSetIntegerFeature(hdev, "CounterDuration", 3);
Pylon.DeviceExecuteCommandFeature(hdev, "SequencerSetSave");
// Enable sequencer mode to operate the sequencer
Pylon.DeviceFeatureFromString(hdev, "SequencerMode", "On");
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK;  /* Return value of pylon methods */
/* ** Configuring the sequencer sets ** */
/* Enable sequencer configuration mode */
errRes = PylonDeviceFeatureFromString(hdev, "SequencerMode", "Off");
CHECK(errRes);
errRes = PylonDeviceFeatureFromString(hdev, "SequencerConfigurationMode", "On");
CHECK(errRes);
/* Configure parameters to be stored in the first sequencer set */
errRes = PylonDeviceSetIntegerFeature(hdev, "Width", 600);
CHECK(errRes);
errRes = PylonDeviceSetIntegerFeature(hdev, "Height", 300);
CHECK(errRes);
/* Select sequencer set 0 and save the parameter values */
errRes = PylonDeviceSetIntegerFeature(hdev, "SequencerSetSelector", 0);
CHECK(errRes);
errRes = PylonDeviceExecuteCommandFeature(hdev, "SequencerSetSave");
CHECK(errRes);
/* Configure parameters to be stored in the second sequencer set */
errRes = PylonDeviceSetIntegerFeature(hdev, "Width", 800);
CHECK(errRes);
errRes = PylonDeviceSetIntegerFeature(hdev, "Height", 600);
CHECK(errRes);
/* Select sequencer set 1 and save the parameter values */
errRes = PylonDeviceSetIntegerFeature(hdev, "SequencerSetSelector", 1);
CHECK(errRes);
errRes = PylonDeviceExecuteCommandFeature(hdev, "SequencerSetSave");
CHECK(errRes);
/* Enable sequencer mode to operate the sequencer */
errRes = PylonDeviceFeatureFromString(hdev, "SequencerMode", "On");
CHECK(errRes);
/* ** Setting up path 0 ** */
/* Enable sequencer configuration mode */
errRes = PylonDeviceFeatureFromString(hdev, "SequencerMode", "Off");
CHECK(errRes);
errRes = PylonDeviceFeatureFromString(hdev, "SequencerConfigurationMode", "On");
CHECK(errRes);
/* Load sequencer set 0 and select path 0 */
errRes = PylonDeviceSetIntegerFeature(hdev, "SequencerSetSelector", 0);
CHECK(errRes);
errRes = PylonDeviceExecuteCommandFeature(hdev, "SequencerSetLoad");
CHECK(errRes);
errRes = PylonDeviceSetIntegerFeature(hdev, "SequencerPathSelector", 0);
CHECK(errRes);
/* Set software signal 1 as "path 0" trigger signal */
errRes = PylonDeviceFeatureFromString(hdev, "SequencerTriggerSource", "SoftwareSignal1");
CHECK(errRes);
/* Save the changes */
errRes = PylonDeviceExecuteCommandFeature(hdev, "SequencerSetSave");
CHECK(errRes);
/* Enable sequencer mode to operate the sequencer */
errRes = PylonDeviceFeatureFromString(hdev, "SequencerMode", "On");
CHECK(errRes);
/* * Setting up path 1 ** */
/* Enable sequencer configuration mode */
errRes = PylonDeviceFeatureFromString(hdev, "SequencerMode", "Off");
CHECK(errRes);
errRes = PylonDeviceFeatureFromString(hdev, "SequencerConfigurationMode", "On");
CHECK(errRes);
/* Load sequencer set 0 and select path 1 */
errRes = PylonDeviceSetIntegerFeature(hdev, "SequencerSetSelector", 0);
CHECK(errRes);
errRes = PylonDeviceExecuteCommandFeature(hdev, "SequencerSetLoad");
CHECK(errRes);
errRes = PylonDeviceSetIntegerFeature(hdev, "SequencerPathSelector", 1);
CHECK(errRes);
/* Set software signal 2 as "path 1" trigger signal */
errRes = PylonDeviceFeatureFromString(hdev, "SequencerTriggerSource", "SoftwareSignal2");
CHECK(errRes);
/* Save the changes */
errRes = PylonDeviceExecuteCommandFeature(hdev, "SequencerSetSave");
CHECK(errRes);
/* Assume you want to set up the following sequencer set cycle: */
/* 0 - 1 - 2 - 3 (- 0 - 1 - ...) */
/* Load the sequencer set with the highest index number to be used (here: 3) */
errRes = PylonDeviceSetIntegerFeature(hdev, "SequencerSetSelector", 3);
CHECK(errRes);
errRes = PylonDeviceExecuteCommandFeature(hdev, "SequencerSetLoad");
CHECK(errRes);
/* Set the next sequencer set to 0 to "close the circle" */
errRes = PylonDeviceSetIntegerFeature(hdev, "SequencerPathSelector", 1);
CHECK(errRes);
errRes = PylonDeviceSetIntegerFeature(hdev, "SequencerSetNext", 0);
CHECK(errRes);
/* Save the changes */
errRes = PylonDeviceExecuteCommandFeature(hdev, "SequencerSetSave");
CHECK(errRes);
/* Enable sequencer mode to operate the sequencer */
errRes = PylonDeviceFeatureFromString(hdev, "SequencerMode", "On");
CHECK(errRes);
/* ** Advanced: Using a counter to control the sequencer ** */
/* Enable sequencer configuration mode */
errRes = PylonDeviceFeatureFromString(hdev, "SequencerMode", "Off");
CHECK(errRes);
errRes = PylonDeviceFeatureFromString(hdev, "SequencerConfigurationMode", "On");
CHECK(errRes);
/* Load sequencer set 0 and select path 1 */
errRes = PylonDeviceSetIntegerFeature(hdev, "SequencerSetSelector", 0);
CHECK(errRes);
errRes = PylonDeviceExecuteCommandFeature(hdev, "SequencerSetLoad");
CHECK(errRes);
errRes = PylonDeviceSetIntegerFeature(hdev, "SequencerPathSelector", 1);
CHECK(errRes);
/* Set the Counter2 end event as "path 1" trigger signal */
errRes = PylonDeviceFeatureFromString(hdev, "SequencerTriggerSource", "Counter2End");
CHECK(errRes);
/* Save the changes */
errRes = PylonDeviceExecuteCommandFeature(hdev, "SequencerSetSave");
CHECK(errRes);
/* Select counter 2 to configure this counter */
errRes = PylonDeviceFeatureFromString(hdev, "CounterSelector", "Counter2");
CHECK(errRes);
/* Assume you want to set up the following sequencer set cycle: */
/* 0 - 0 - 1 - 1 - 1 (- 0 - 0 - ...) */
/* Load sequencer set 0 and specify that this set is to be used */
/* two times in a row */
errRes = PylonDeviceSetIntegerFeature(hdev, "SequencerSetSelector", 0);
CHECK(errRes);
errRes = PylonDeviceExecuteCommandFeature(hdev, "SequencerSetLoad");
CHECK(errRes);
errRes = PylonDeviceSetIntegerFeature(hdev, "CounterDuration", 2);
CHECK(errRes);
errRes = PylonDeviceExecuteCommandFeature(hdev, "SequencerSetSave");
CHECK(errRes);
/* Load sequencer set 1 and specify that this set is to be used */
/* three times in a row */
errRes = PylonDeviceSetIntegerFeature(hdev, "SequencerSetSelector", 1);
CHECK(errRes);
errRes = PylonDeviceExecuteCommandFeature(hdev, "SequencerSetLoad");
CHECK(errRes);
errRes = PylonDeviceSetIntegerFeature(hdev, "CounterDuration", 3);
CHECK(errRes);
errRes = PylonDeviceExecuteCommandFeature(hdev, "SequencerSetSave");
CHECK(errRes);
/* Enable sequencer mode to operate the sequencer */
errRes = PylonDeviceFeatureFromString(hdev, "SequencerMode", "On");
CHECK(errRes);

You can also use the pylon Viewer to easily set the parameters.