Acquisition Start, Stop, and Abort#
Info
- These commands aren't accessible 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 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, executing an AcquisitionStop command doesn't abort exposure. In this case, the camera continues exposing the frame. The readout process will also be allowed to finish. Afterwards, image acquisition is switched off.
- If the camera is currently reading out image data, the readout process will be allowed to finish. Afterwards, image acquisition is switched off.
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#
Camera Model | AcquisitionAbort Command Available | AcquisitionStop Command Aborts Exposure |
---|---|---|
a2A1920-51gcBAS | Yes | Yes |
a2A1920-51gmBAS | Yes | Yes |
a2A1920-160ucBAS | Yes | No |
a2A1920-160umBAS | Yes | No |
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 | No |
boA4096-93cm | Yes | No |
boA4112-68cc | Yes | No |
boA4112-68cm | Yes | No |
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 |
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.