Skip to content

Acquisition Start, Stop, and Abort#

The Acquisition Start, Stop, and Abort commands allow you to control image acquisition.

Info

  • These commands aren't available via the pylon Viewer feature tree. Instead, AcquisitionStart and AcquisitionStop commands are generated automatically when you use the Single Shot, Continuous Shot, and Stop buttons in the toolbar of the pylon Viewer.
  • The pylon C++ API and the pylon .NET API provide camera classes that handle these commands automatically. Basler recommends using these classes.
    For more information, see the "Grab" code samples in the C++ Programmer's Guide and Reference Documentation and the pylon .NET Programmer's Guide & Reference Documentation delivered with the Basler pylon Camera Software Suite.

Using the Feature#

Starting Image Acquisition#

To switch on image acquisition, execute the AcquisitionStart command.

After the command has been executed, the camera waits for trigger signals. Trigger signals can either be generated internally by the camera (free run) or applied externally (triggered image acquisition).

Info

To check whether the camera is currently waiting for a trigger signal, monitor the camera's Trigger Wait signals or use the Acquisition Status feature.

Stopping Image Acquisition#

To switch off image acquisition, execute the AcquisitionStop command.

After the command has been executed, the following occurs:

  • If the camera is not currently acquiring a frame, image acquisition is switched off immediately.
  • If the camera is currently reading out image data, the readout process will be allowed to finish. Afterwards, image acquisition is switched off.
  • If the camera is currently exposing a frame:
    • On some camera models, executing an AcquisitionStop command aborts exposure. In this case, the camera stops exposing immediately and starts reading out image data. The readout process will be allowed to finish. Afterwards, image acquisition is switched off.
    • On some camera models, you can configure whether executing an AcquisitionStop command aborts exposure or not. To do so, set the BslAcquisitionStopMode parameter to AbortExposure or CompleteExposure.

Aborting Image Acquisition#

To abort image acquisition, execute the AcquisitionAbort command (if available).

After the command has been executed, the following occurs:

  • If the camera is not currently acquiring a frame, image acquisition is switched off immediately.
  • If the camera is currently exposing a frame, the camera stops exposing immediately. The readout process, if already started, is aborted. The current frame will be incomplete. Afterwards, image acquisition is switched off.
  • If the camera is currently reading out image data, the camera stops the readout process immediately. The current frame will be incomplete. Afterwards, image acquisition is switched off.

Specifics#

Show all camera models

Camera Model AcquisitionAbort Command Available AcquisitionStop Command Aborts Exposure
a2A1920-51gcBAS Yes Configurable via the BslAcquisitionStopMode parameter
a2A1920-51gcPRO Yes Configurable via the BslAcquisitionStopMode parameter
a2A1920-51gmBAS Yes Configurable via the BslAcquisitionStopMode parameter
a2A1920-51gmPRO Yes Configurable via the BslAcquisitionStopMode parameter
a2A1920-160ucBAS Yes Configurable via the BslAcquisitionStopMode parameter
a2A1920-160ucPRO Yes Configurable via the BslAcquisitionStopMode parameter
a2A1920-160umBAS Yes Configurable via the BslAcquisitionStopMode parameter
a2A1920-160umPRO Yes Configurable via the BslAcquisitionStopMode parameter
a2A3840-13gcBAS Yes Configurable via the BslAcquisitionStopMode parameter
a2A3840-13gmBAS Yes Configurable via the BslAcquisitionStopMode parameter
a2A3840-45ucBAS Yes Configurable via the BslAcquisitionStopMode parameter
a2A3840-45umBAS Yes Configurable via the BslAcquisitionStopMode parameter
acA640-90gc No Yes
acA640-90gc No Yes
acA640-90gm No Yes
acA640-90uc No Yes
acA640-90um No Yes
acA640-120gc No Yes
acA640-120gm No Yes
acA640-120uc No Yes
acA640-120um No Yes
acA640-121gm No Yes
acA640-300gc No Yes
acA640-300gm No Yes
acA640-750uc No Yes
acA640-750um No Yes
acA720-290gc No Yes
acA720-290gm No Yes
acA720-520uc No Yes
acA720-520um No Yes
acA780-75gc No Yes
acA780-75gm No Yes
acA800-200gc No Yes
acA800-200gm No Yes
acA800-510uc No Yes
acA800-510um No Yes
acA1280-60gc No Yes
acA1280-60gm No Yes
acA1300-22gc No Yes
acA1300-22gm No Yes
acA1300-30gc No Yes
acA1300-30gm No Yes
acA1300-30uc No Yes
acA1300-30um No Yes
acA1300-60gc No Yes
acA1300-60gm No Yes
acA1300-60gmNIR No Yes
acA1300-75gc No Yes
acA1300-75gm No Yes
acA1300-200uc No Yes
acA1300-200um No Yes
acA1440-73gc No Yes
acA1440-73gm No Yes
acA1440-220uc No Yes
acA1440-220um No Yes
acA1600-20gc No Yes
acA1600-20gm No Yes
acA1600-20uc No Yes
acA1600-20um No Yes
acA1600-60gc No Yes
acA1600-60gm No Yes
acA1920-25gc No Yes
acA1920-25gm No Yes
acA1920-25uc No Yes
acA1920-25um No Yes
acA1920-40gc No Yes
acA1920-40gm No Yes
acA1920-40uc No Yes
acA1920-40ucMED No Yes
acA1920-40um No Yes
acA1920-40umMED No Yes
acA1920-48gc No Yes
acA1920-48gm No Yes
acA1920-50gc No Yes
acA1920-50gm No Yes
acA1920-150uc No Yes
acA1920-150um No Yes
acA1920-155uc No Yes
acA1920-155ucMED No Yes
acA1920-155um No Yes
acA1920-155umMED No Yes
acA2000-50gc No Yes
acA2000-50gm No Yes
acA2000-50gmNIR No Yes
acA2000-165uc No Yes
acA2000-165um No Yes
acA2000-165umNIR No Yes
acA2040-25gc No Yes
acA2040-25gm No Yes
acA2040-25gmNIR No Yes
acA2040-35gc No Yes
acA2040-35gm No Yes
acA2040-55uc No Yes
acA2040-55um No Yes
acA2040-90uc No Yes
acA2040-90um No Yes
acA2040-90umNIR No Yes
acA2040-120uc No Yes
acA2040-120um No Yes
acA2440-20gc No Yes
acA2440-20gm No Yes
acA2440-35uc No Yes
acA2440-35ucMED No Yes
acA2440-35um No Yes
acA2440-35umMED No Yes
acA2440-75uc No Yes
acA2440-75ucMED No Yes
acA2440-75um No Yes
acA2440-75umMED No Yes
acA2500-14gc No Yes
acA2500-14gm No Yes
acA2500-14uc No Yes
acA2500-14um No Yes
acA2500-20gc No Yes
acA2500-20gcMED No Yes
acA2500-20gm No Yes
acA2500-20gmMED No Yes
acA2500-60uc No Yes
acA2500-60um No Yes
acA3088-16gc No Yes
acA3088-16gm No Yes
acA3088-57uc No Yes
acA3088-57um No Yes
acA3800-10gc No Yes
acA3800-10gm No Yes
acA3800-14uc No Yes
acA3800-14um No Yes
acA4024-8gc No Yes
acA4024-8gm No Yes
acA4024-29uc No Yes
acA4024-29um No Yes
acA4096-11gc No Yes
acA4096-11gm No Yes
acA4096-30uc No Yes
acA4096-30ucMED No Yes
acA4096-30um No Yes
acA4096-30umMED No Yes
acA4096-40uc No Yes
acA4096-40ucMED No Yes
acA4096-40um No Yes
acA4096-40umMED No Yes
acA4112-8gc No Yes
acA4112-8gm No Yes
acA4112-20uc No Yes
acA4112-20ucMED No Yes
acA4112-20um No Yes
acA4112-20umMED No Yes
acA4112-30uc No Yes
acA4112-30ucMED No Yes
acA4112-30um No Yes
acA4112-30umMED No Yes
acA4600-7gc No Yes
acA4600-10uc No Yes
acA5472-5gc No Yes
acA5472-5gm No Yes
acA5472-17uc No Yes
acA5472-17um No Yes
boA4096-93cc Yes Configurable via the BslAcquisitionStopMode parameter
boA4096-93cm Yes Configurable via the BslAcquisitionStopMode parameter
boA4112-68cc Yes Configurable via the BslAcquisitionStopMode parameter
boA4112-68cm Yes Configurable via the BslAcquisitionStopMode parameter
daA1280-54lc No Yes
daA1280-54lm No Yes
daA1280-54uc No Yes
daA1280-54um No Yes
daA1600-60lc No Yes
daA1600-60lm No Yes
daA1600-60uc No Yes
daA1600-60um No Yes
daA1920-15um No Yes
daA1920-30uc No Yes
daA1920-30um No Yes
daA2500-14lc No Yes
daA2500-14lm No Yes
daA2500-14uc No Yes
daA2500-14um No Yes
daA2500-60mc No Yes
daA2500-60mci No Yes
daA4200-30mci No Yes
puA1280-54uc No Yes
puA1280-54um No Yes
puA1600-60uc No Yes
puA1600-60um No Yes
puA1920-30uc No Yes
puA1920-30um No Yes
puA2500-14uc No Yes
puA2500-14um No Yes

Sample Code#

// Configure continuous image acquisition on the cameras
camera.AcquisitionMode.SetValue(AcquisitionMode_Continuous);
// Switch on image acquisition
camera.AcquisitionStart.Execute();
// The camera waits for trigger signals
// (...)
// Switch off image acquisition
camera.AcquisitionStop.Execute();
// Switch image acquisition back on
camera.AcquisitionStart.Execute();
// The camera waits for trigger signals
// (...)
// Abort image acquisition
camera.AcquisitionAbort.Execute();
INodeMap& nodemap = camera.GetNodeMap();
// Configure continuous image acquisition on the cameras
CEnumerationPtr(nodemap.GetNode("AcquisitionMode"))->FromString("Continuous");
// Switch on image acquisition
CCommandPtr(nodemap.GetNode("AcquisitionStart"))->Execute();
// The camera waits for trigger signals
// (...)
// Switch off image acquisition
CCommandPtr(nodemap.GetNode("AcquisitionStop"))->Execute();
// Switch image acquisition back on
CCommandPtr(nodemap.GetNode("AcquisitionStart"))->Execute();
// The camera waits for trigger signals
// (...)
// Abort image acquisition
CCommandPtr(nodemap.GetNode("AcquisitionAbort"))->Execute();
INodeMap& nodemap = camera.GetNodeMap();
// Configure continuous image acquisition on the cameras
CEnumParameter(nodemap, "AcquisitionMode").SetValue("Continuous");
// Switch on image acquisition
CCommandParameter(nodemap, "AcquisitionStart").Execute();
// The camera waits for trigger signals
// (...)
// Switch off image acquisition
CCommandParameter(nodemap, "AcquisitionStop").Execute();
// Switch image acquisition back on
CCommandParameter(nodemap, "AcquisitionStart").Execute();
// The camera waits for trigger signals
// (...)
// Abort image acquisition
CCommandParameter(nodemap, "AcquisitionAbort").Execute();
// Configure continuous image acquisition on the cameras
camera.Parameters[PLCamera.AcquisitionMode].SetValue(PLCamera.AcquisitionMode.Continuous);
// Switch on image acquisition
camera.Parameters[PLCamera.AcquisitionStart].Execute();
// The camera waits for trigger signals
// (...)
// Switch off image acquisition
camera.Parameters[PLCamera.AcquisitionStop].Execute();
// Switch image acquisition back on
camera.Parameters[PLCamera.AcquisitionStart].Execute();
// The camera waits for trigger signals
// (...)
// Abort image acquisition
camera.Parameters[PLCamera.AcquisitionAbort].Execute();
// Configure continuous image acquisition on the cameras
Pylon.DeviceFeatureFromString(hdev, "AcquisitionMode", "Continuous");
// Switch on image acquisition
Pylon.DeviceExecuteCommandFeature(hdev, "AcquisitionStart");
// The camera waits for trigger signals
// (...)
// Switch off image acquisition
Pylon.DeviceExecuteCommandFeature(hdev, "AcquisitionStop");
// Switch image acquisition back on
Pylon.DeviceExecuteCommandFeature(hdev, "AcquisitionStart");
// The camera waits for trigger signals
// (...)
// Abort image acquisition
Pylon.DeviceExecuteCommandFeature(hdev, "AcquisitionAbort");
/* 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 */
/* Configure continuous image acquisition on the cameras */
errRes = PylonDeviceFeatureFromString(hdev, "AcquisitionMode", "Continuous");
CHECK(errRes);
/* Switch on image acquisition */
errRes = PylonDeviceExecuteCommandFeature(hdev, "AcquisitionStart");
CHECK(errRes);
/* The camera waits for trigger signals */
/* (...) */
/* Switch off image acquisition */
errRes = PylonDeviceExecuteCommandFeature(hdev, "AcquisitionStop");
CHECK(errRes);
/* Switch image acquisition back on */
errRes = PylonDeviceExecuteCommandFeature(hdev, "AcquisitionStart");
CHECK(errRes);
/* The camera waits for trigger signals */
/* (...) */
/* Abort image acquisition */
errRes = PylonDeviceExecuteCommandFeature(hdev, "AcquisitionAbort");
CHECK(errRes);

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