Impact Acquire SDK GUI Applications
|
Certain capture device (e.g. frame grabber) can process data from a wide range of imaging devices (e.g. cameras). However, in order to interpret the incoming data from an imaging device correctly, the capture device needs to be given a certain amount of information about the structure of the video signal.
The Impact Acquire interface addresses this necessity by the introduction of so called "camera descriptions". A "camera description" is a certain set of parameters that should enable the capture device to cope with the incoming image data to reconstruct a correct image from the imaging device in the memory of the host system. For instance, this information may contain information whether the image is transmitted as a whole or if it's transmitted as individual blocks (e.g. when dealing with interlaced cameras) that need to be reconstructed in a certain way to form the complete image.
Each capture device will support different sets of parameters. For example some capture devices will only be able to capture image data from standard video source such as a PAL or NTSC compliant camera, while others might only be capable to acquire data from digital image source such as CameraLink® compliant cameras. To reflect these device specific capabilities "camera descriptions" have been grouped into different base classes. See e.g. mvIMPACT::acquire::CameraDescriptionStandard (replace by the syntax matching your preferred language) to find out how the basic structure of these objects look. Which basic "camera description" classes are supported by an individual device can be seen directly after the device has been initialised by looking in the "camera description" list. By default this list will contain one description for each supported basic family:
To select a certain camera description to be used to prepare the capture device for the expected data the property "Type" under "Image Settings → Camera" can be modified. Here every available set of camera parameters will be listed:
Now, when a camera is connected, that differs in one or more parameters from the default offered by one of the available base classes and no special description for the imaging device in question is available a new matching description must be generated.
The recommended way of adapting an imaging source to a capture device is to create a new description for a imaging device that does not completely fall into one of the offered standard descriptions. The first thing to decide when creating a new camera description is to which existing description offers the closest match for the new description. Once this has been decided a copy of this description can be created with an arbitrary name (that must be unique within the family the description is created from). Under ImpactControlCenter this can be achieved by
ENTER
to commit the new name and then the "Copy" method can be invokedAfterwards, the newly created camera description will be added to the list of existing ones. Its parameters at this point will match the parent description (the one the "Copy" method was executed from) completely.
Now, the reason for creating a new camera description was that the parameters in the existing description didn't exactly match the connected imaging device. Therefore, the next step would probably be to modify some of the parameters. Once this has been done (or before) the newly created description can be selected via the property "Type" under "Image Settings → Camera":
To store a camera description permanently the "Export" method of the new camera description must be invoked. The method does not require any parameters so it can be executed directly by right-clicking on the name of the function and selecting "Execute" from the popup menu:
As a direct result the modified settings will become the new default values of this particular camera description. ImpactControlCenter indicates this by displaying all values belonging to the description in green now:
When exporting a camera description a file in XML format will be written to disk. On Windows® camera descriptions will be stored under "%PUBLIC%/Documents/Balluff/ImpactAcquire/CameraFiles"
or "%MVIMPACT_ACQUIRE_DATA_DIR%\CameraFiles"
which will point to the same folder. On Linux® this directory will be "/opt/ImpactAcquire/data/camerafiles"
while under other platforms these files will end up in the current working directory.
Now, when closing and re-opening a device only the default camera descriptions an the one selected before settings have been saved will appear in the list of camera descriptions. This is to save memory. However, all detected camera descriptions will be available via the property "Type" under "Image Settings → Camera":
Once a description is selected, that hasn't been in the list of camera descriptions before, it will be created and thus will become available for modifications again:
Again: For a different camera a new description should be generated, to operate complex cameras in different modes, a either a new description can be generated or an existing one can be modified.
After a camera has been modified the "Import" method can be used to fall back to the values stored in the camera description file:
This will restore the default settings for this description:
If you need a camera description of an unknown CameraLink or SDI camera, ImpactControlCenter supports you with three properties, which can be found in "Info → Camera":
For line scan cameras, the property DataCycleCounterLine0 is enough to know.
For area scan cameras, you will need all three properties.
You can take the information in "Info → Camera" to enter the values in "Camera Descriptions". (The figures 37 and 38 are showing CameraLink examples with default values in "Camera Descriptions". The values from "Info → Camera" are not entered yet.)
In this mode, there is no change in the "Digital I/O" interface necessary.
Now, please follow these steps to run Mode 1 with mvHYPERION:
In order to that the camera will send an image stream continuously and the next image after a trigger event will be acquired.
In this mode, there is no setup in "TriggerControls" necessary ("TriggerMode" = "Off").
Now, please follow these steps to run Mode 2 with mvHYPERION:
Now, after a external trigger signal on the trigger input of the frame grabber, a trigger signal is generated on the CameraLink connection ("CC1"
) and passed to the camera. In order to that, the camera acquires an image and sends it to the frame grabber. You do not need a trigger on the frame grabber for the image acquisition given that the frame grabber waits for the next image.
In this mode, there is no setup in "TriggerControls" necessary ("TriggerMode" = "Off").
Now, please follow these steps to run Mode 1 with mvHYPERION:
"TriggerControls" settings in this mode are optionally.
Following settings in "Digital I/O" are necessary:
Now, after a external trigger signal on the sync input of the frame grabber, a trigger signal is generated on the CameraLink connection ("CC1") and passed to the camera. In order to that, the camera acquires an image and sends it to the frame grabber. It is possible to trigger the image acquisition of the frame grabber externally. For this, please do following:
"Trigger-In"
). Per image and frame trigger, the number of lines will be acquired, which were defined in the camera description and the AOI setting before.
There are different camera acquisition techniques. How you can set them with ImpactControlCenter, which will be shown in the following section.
Directly after the trigger signal the acquisition starts. If you have, for example, a line scan camera and want to acquire 1000 lines, 1000 lines will be acquired. During this time, further trigger signals are ignored.
To use StartTrigger, in ImpactControlCenter you have to
In TriggerStartStop there are two trigger sources, one to start the acquisition and the second trigger event to stop it. Between start and stop, there is at least one line pause. The image height is affected by the stop event.
To use TriggerStartStop, in ImpactControlCenter you have to
With "TriggerStartStop - Restart" the first trigger starts the acquisition and following trigger signal stops the previous acquisition and starts the next one.
To use "TriggerStartStop - Restart", in ImpactControlCenter you have to
With TriggerDelay it is possible to specify a delay after the trigger start event.
To use TriggerDelay, in ImpactControlCenter you have to
Using line scan cameras, the "Y" position specifies the trigger acquisition delay in lines.
In this mode, there is no change in the "Digital I/O" interface necessary.
Now, please follow these steps to run Mode 1:
In order to that the camera will send an image stream continuously and the next image after a trigger event on input Trigger-In will be snapped.
In this mode, there is no setup in "Camera" necessary.
Now, please follow these steps to run Mode 2:
Now, after a external trigger signal on the trigger input "Trigger-In" of the frame grabber, a trigger signal is generated on the CameraLink connection ("CC1") and passed to the camera. In order to that, the camera snaps an image and sends it to the frame grabber. You do not need a trigger on the frame grabber for the image acquisition given that the frame grabber waits for the next image.
In this mode, there is no setup in "Camera" necessary.
Now, please follow these steps to run Mode 1:
In order to that the frame grabber will create a continuous signal with the defined period and it will be sent to the camera via CameraLink. With this signal, the camera acquires lines and sends them to the frame grabber. Per image, the number of lines will be acquired, which were defined in the camera description and the AOI setting before.
Following settings in "Digital I/O" are necessary:
Now, after a external trigger signal on the sync input of the frame grabber, a trigger signal is generated on the CameraLink connection ("CC1") and passed to the camera. In order to that, the camera acquires an image and sends it to the frame grabber. It is possible to trigger the image acquisition of the frame grabber externally. For this, please do following:
"TriggerSource"
input "Trigger-In"
. Per image and frame trigger, the number of lines will be acquired, which were defined in the camera description and the AOI setting before.