For example, you can determine whether the camera is waiting for trigger signals. This is useful if you want to optimize triggered image acquisition and avoid overtriggering.
Basler strongly recommends using the Acquisition Status feature only when the camera is configured for software triggering. When the camera is configured for hardware triggering, Basler recommends monitoring the camera's Trigger Wait signals instead.
To determine whether the camera is performing a specific image acquisition task:
If the AcquisitionStatus parameter is true, the camera is performing the selected acquisition task.
If the AcquisitionStatus parameter is false, the camera is not performing the selected acquisition task.
Camera Model | Available Acquisition States |
---|---|
All ace 2 GigE camera models |
|
All ace 2 USB 3.0 camera models |
|
acA640-90gm |
|
acA640-90gc |
|
acA640-120gm |
|
acA640-120gc |
|
acA640-121gm |
|
acA640-300gm |
|
acA640-300gc |
|
acA720-290gm |
|
acA720-290gc |
|
acA780-75gm |
|
acA780-75gc |
|
acA800-200gm |
|
acA800-200gc |
|
acA1280-60gm |
|
acA1280-60gc |
|
acA1300-22gm |
|
acA1300-22gc |
|
acA1300-30gm |
|
acA1300-30gc |
|
acA1300-60gm |
|
acA1300-60gmNIR |
|
acA1300-60gc |
|
acA1300-75gm |
|
acA1300-75gc |
|
acA1440-73gm |
|
acA1440-73gc |
|
acA1600-20gm |
|
acA1600-20gc |
|
acA1600-60gm |
|
acA1600-60gc |
|
acA1920-25gm |
|
acA1920-25gc |
|
acA1920-40gm |
|
acA1920-40gc |
|
acA1920-48gm |
|
acA1920-48gc |
|
acA1920-50gm |
|
acA1920-50gc |
|
acA2000-50gm |
|
acA2000-50gmNIR |
|
acA2000-50gc |
|
acA2040-25gm |
|
acA2040-25gmNIR |
|
acA2040-25gc |
|
acA2040-35gm |
|
acA2040-35gc |
|
acA2440-20gm |
|
acA2440-20gc |
|
acA2500-14gm |
|
acA2500-14gc |
|
acA2500-20gm |
|
acA2500-20gc |
|
acA2500-20gmMED |
|
acA2500-20gcMED |
|
acA3088-16gm |
|
acA3088-16gc |
|
acA3800-10gm |
|
acA3800-10gc |
|
acA4024-8gm |
|
acA4024-8gc |
|
acA4096-11gm |
|
acA4096-11gc |
|
acA4112-8gm |
|
acA4112-8gc |
|
acA4600-7gc |
|
acA5472-5gm |
|
acA5472-5gc |
|
acA640-750um |
|
acA640-750uc |
|
acA640-90um |
|
acA640-90uc |
|
acA640-120um |
|
acA640-120uc |
|
acA720-520um |
|
acA720-520uc |
|
acA800-510um |
|
acA800-510uc |
|
acA1300-200um |
|
acA1300-200uc |
|
acA1300-30um |
|
acA1300-30uc |
|
acA1440-220um |
|
acA1440-220uc |
|
acA1600-20um |
|
acA1600-20uc |
|
acA1920-25um |
|
acA1920-25uc |
|
acA1920-40um |
|
acA1920-40uc |
|
acA1920-40umMED |
|
acA1920-40ucMED |
|
acA1920-150um |
|
acA1920-150uc |
|
acA1920-155um |
|
acA1920-155uc |
|
acA1920-155umMED |
|
acA1920-155ucMED |
|
acA2040-90um |
|
acA2040-90umNIR |
|
acA2040-90uc |
|
acA2000-165um |
|
acA2000-165umNIR |
|
acA2000-165uc |
|
acA2040-55um |
|
acA2040-55uc |
|
acA2040-120um |
|
acA2040-120uc |
|
acA2440-35um |
|
acA2440-35uc |
|
acA2440-35umMED |
|
acA2440-35ucMED |
|
acA2440-75um |
|
acA2440-75uc |
|
acA2440-75umMED |
|
acA2440-75ucMED |
|
acA2500-14um |
|
acA2500-14uc |
|
acA2500-60um |
|
acA2500-60uc |
|
acA3088-57um |
|
acA3088-57uc |
|
acA3800-14um |
|
acA3800-14uc |
|
acA4024-29um |
|
acA4024-29uc |
|
acA4096-30um |
|
acA4096-30uc |
|
acA4096-30umMED |
|
acA4096-30ucMED |
|
acA4096-40um |
|
acA4096-40uc |
|
acA4096-40umMED |
|
acA4096-40ucMED |
|
acA4112-20um |
|
acA4112-20uc |
|
acA4112-20umMED |
|
acA4112-20ucMED |
|
acA4112-30um |
|
acA4112-30uc |
|
acA4112-30umMED |
|
acA4112-30ucMED |
|
acA4600-10uc |
|
acA5472-17um |
|
acA5472-17uc |
|
All boost CXP-12 camera models |
|
All dart BCON for LVDS camera models | Acquisition Status feature not supported |
All dart BCON for MIPI cameras models | Acquisition Status feature not supported |
All dart USB 3.0 camera models | Acquisition Status feature not supported |
All pulse USB 3.0 camera models | Acquisition Status feature not supported |
// Specify that you want to determine if the camera is waiting for Frame Start trigger signals
camera.AcquisitionStatusSelector.SetValue(AcquisitionStatusSelector_FrameTriggerWait);
// Get the acquisition status
bool isWaitingForFrameStart = camera.AcquisitionStatus.GetValue();
if (isWaitingForFrameStart) {
// It is now safe to apply Frame Start trigger signals
}
INodeMap& nodemap = camera.GetNodeMap();
// Specify that you want to determine if the camera is waiting for Frame Start trigger signals
CEnumerationPtr(nodemap.GetNode("AcquisitionStatusSelector"))->FromString("FrameTriggerWait");
// Get the acquisition status
bool isWaitingForFrameStart = CBooleanPtr(nodemap.GetNode("AcquisitionStatus"))->GetValue();
if(isWaitingForFrameStart){
// It is now safe to apply Frame Start trigger signals
}
// Specify that you want to determine if the camera is waiting for Frame Start trigger signals
camera.Parameters[PLCamera.AcquisitionStatusSelector].SetValue(PLCamera.AcquisitionStatusSelector.FrameTriggerWait);
// Get the acquisition status
bool isWaitingForFrameStart = camera.Parameters[PLCamera.AcquisitionStatus].GetValue();
if(isWaitingForFrameStart){
// It is now safe to apply Frame Start trigger signals
}
// Specify that you want to determine if the camera is waiting for Frame Start trigger signals
Pylon.DeviceFeatureFromString(hdev, "AcquisitionStatusSelector", "FrameTriggerWait");
// Get the acquisition status
bool isWaitingForFrameStart = Pylon.DeviceGetBooleanFeature(hdev, "AcquisitionStatus");
if(isWaitingForFrameStart){
// It is now safe to apply Frame Start trigger signals
}
/* 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 */
_Bool isWaitingForFrameStart = false;
/* Specify that you want to determine if the camera is waiting for Frame Start trigger signals */
errRes = PylonDeviceFeatureFromString(hdev, "AcquisitionStatusSelector", "FrameTriggerWait");
CHECK(errRes);
/* Get the acquisition status */
errRes = PylonDeviceGetBooleanFeature(hdev, "AcquisitionStatus", &isWaitingForFrameStart);
CHECK(errRes);
if(isWaitingForFrameStart){
/* It is now safe to apply Frame Start trigger signals */
}
You can also use the pylon Viewer to easily set the parameters.