Impact Acquire SDK .NET
FunctionInterface Class Referencesealed

The function interface to devices supported by this interface. More...

Inheritance diagram for FunctionInterface:
[legend]

Public Member Functions

int acquisitionStart ()
 Manually starts the acquisition engine of this device driver instance.
 
int acquisitionStop ()
 Manually stops the acquisition engine of this device driver instance.
 
int createImageRequestControl (String name)
 Creates a new mv.impact.acquire.ImageRequestControl object.
 
int createImageRequestControl (String name, String parent)
 Creates a new mv.impact.acquire.ImageRequestControl object.
 
int createImageRequestControl (String name, String parent, out ComponentList newRequestControl)
 Creates a new mv.impact.acquire.ImageRequestControl object.
 
int createSetting (String name)
 Creates a new setting.
 
int createSetting (String name, out ComponentList newSetting)
 Creates a new setting.
 
int createSetting (String name, String parent, out ComponentList newSetting)
 Creates a new setting.
 
int deleteSetting (String name)
 Deletes a setting from the specified location.
 
int deleteSetting (String name, TStorageLocation storageLocation)
 Deletes a setting from the specified location.
 
int deleteSetting (String name, TStorageLocation storageLocation, TScope scope)
 Deletes a setting from the specified location.
 
int deleteSettingFromStack ()
 Deletes the last setting from the setting stack.
 
void Dispose ()
 Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
 
 FunctionInterface (Device device)
 Constructs a new function interface for the device pointed to by pDev.
 
 FunctionInterface (Device device, IRequestFactory requestFactory)
 Constructs a new function interface for the device pointed to by pDev.
 
int getCurrentCaptureBufferLayout (ImageRequestControl imageRequestControl, out int size, out int alignment)
 Returns information about the current capture buffer requirements.
 
int getCurrentCaptureBufferLayout (ImageRequestControl imageRequestControl, out Request request, out int alignment)
 Returns information about the current capture buffer requirements.
 
Request getRequest (int nr)
 Returns a const pointer to the desired mv.impact.acquire.Request.
 
ComponentList getSetting (String name)
 Returns a mv.impact.acquire.ComponentList object to a setting with a specified name.
 
int imageRequestConfigure (Request request)
 Sets a request into configuration mode.
 
int imageRequestReset (int requestCtrlNr)
 Deletes all requests currently queued for the specified mv.impact.acquire.ImageRequestControl.
 
int imageRequestReset (int requestCtrlNr, int mode)
 Deletes all requests currently queued for the specified mv.impact.acquire.ImageRequestControl.
 
int imageRequestResultQueueElementCount ()
 Returns the number of mv.impact.acquire.Request objects in the result queue.
 
int imageRequestResultQueueElementCount (int queueNr)
 Returns the number of mv.impact.acquire.Request objects in the result queue.
 
int imageRequestSingle ()
 Sends an image request to the mv.impact.acquire.Device driver.
 
int imageRequestSingle (ImageRequestControl imageRequestControl)
 Sends an image request to the mv.impact.acquire.Device driver.
 
int imageRequestSingle (ImageRequestControl imageRequestControl, out int requestUsed)
 Sends an image request to the mv.impact.acquire.Device driver.
 
int imageRequestSingle (out int requestUsed)
 Sends an image request to the mv.impact.acquire.Device driver.
 
int imageRequestUnlock (int nr)
 Unlocks the request for the driver again.
 
int imageRequestWaitFor (int timeout_ms)
 Waits for a request object to become ready.
 
int imageRequestWaitFor (int timeout_ms, int queueNr)
 Waits for a request object to become ready.
 
bool isRequestNrValid (int nr)
 Check if nr specifies a valid mv.impact.acquire.Request.
 
int isSettingAvailable (String name)
 Checks if a certain setting is available under the specified location.
 
int isSettingAvailable (String name, TStorageLocation storageLocation)
 Checks if a certain setting is available under the specified location.
 
int isSettingAvailable (String name, TStorageLocation storageLocation, TScope scope)
 Checks if a certain setting is available under the specified location.
 
int loadAndDeleteSettingFromStack ()
 loads the last setting from the setting stack and then removes this setting from the stack.
 
int loadSetting (String name)
 Loads a previously stored setting.
 
int loadSetting (String name, TStorageFlag storageFlags)
 Loads a previously stored setting.
 
int loadSetting (String name, TStorageFlag storageFlags, TScope scope)
 Loads a previously stored setting.
 
int loadSettingFromDefault ()
 Loads the default settings.
 
int loadSettingFromDefault (TScope scope)
 Loads the default settings.
 
int loadSettingFromStack ()
 loads the last setting from the setting stack.
 
int saveCurrentSettingOnStack ()
 Saves the current setting on the setting stack.
 
int saveCurrentSettingOnStack (TStorageFlag storageFlags)
 Saves the current setting on the setting stack.
 
int saveSetting (String name)
 Stores the current settings.
 
int saveSetting (String name, TStorageFlag storageFlags)
 Stores the current settings.
 
int saveSetting (String name, TStorageFlag storageFlags, TScope scope)
 Stores the current settings.
 
int saveSettingToDefault ()
 Stores the current settings under a default location.
 
int saveSettingToDefault (TScope scope)
 Stores the current settings under a default location.
 
void updateRequests ()
 Updates the internal cache for request objects.
 

Properties

ReadOnlyCollection< StringavailableImageRequestControls [get]
 Returns the names of the image request controls available for this mv.impact.acquire.Device.
 
ReadOnlyCollection< StringavailableSettings [get]
 Returns the names of the settings available for this mv.impact.acquire.Device.
 
int requestCount [get]
 Returns the number of available request objects.
 

Detailed Description

The function interface to devices supported by this interface.

This class contains all the basic functions needed when working with a device. There are not too many functions as most data will be represented by 'properties' in other classes of this module, keeping the set of functions to remember rather small. To construct a new function interface, a pointer to a mv.impact.acquire.Device object must be passed to the constructor of mv.impact.acquire.FunctionInterface. In order to work with the mv.impact.acquire.FunctionInterface object the device needs to be initialized, so if the mv.impact.acquire.Device object pointed to by pDev in the constructors parameter list hasn't been opened already the constructor will try to do that.

Examples
CaptureToUserMemory.cs, ContinuousCapture.cs, ContinuousCaptureAllDevices.cs, ContinuousSaveImage.cs, GenICamCallbackOnEvent.cs, GenICamCommonSettingsUsage.cs, GenICamInterfaceLayout.cs, Properties.cs, SingleCapture.cs, and SingleCaptureStorage.cs.

Constructor & Destructor Documentation

◆ FunctionInterface() [1/2]

FunctionInterface ( Device device)
inline

Constructs a new function interface for the device pointed to by pDev.

In order to work with the mv.impact.acquire.FunctionInterface object the device needs to be initialized, so if the mv.impact.acquire.Device object pointed to by pDev in the constructors parameter list hasn't been opened already the constructor will try to do that. Thus internally a call to mv.impact.acquire.Device.open might be preformed with all consequences following from this call.

See also
mv.impact.acquire.Device.open
Parameters
[in]deviceA pointer to a mv.impact.acquire.Device object obtained from a mv.impact.acquire.DeviceManager object.

◆ FunctionInterface() [2/2]

FunctionInterface ( Device device,
IRequestFactory requestFactory )
inline

Constructs a new function interface for the device pointed to by pDev.

In order to work with the mv.impact.acquire.FunctionInterface object the device needs to be initialized, so if the mv.impact.acquire.Device object pointed to by pDev in the constructors parameter list hasn't been opened already the constructor will try to do that. Thus internally a call to mv.impact.acquire.Device.open might be preformed with all consequences following from this call.

See also
Device.open
Parameters
[in]deviceA pointer to a mv.impact.acquire.Device object obtained from a mv.impact.acquire.DeviceManager object.
[in]requestFactoryA pointer to a request factory. By supplying a custom request factory the user can control the type of request objects that will be created by the function interface.
Since
1.12.56

Member Function Documentation

◆ acquisitionStart()

int acquisitionStart ( )
inline

Manually starts the acquisition engine of this device driver instance.

Calling this function will manually start this device driver's acquisition engine. This will only have an effect on the overall behaviour if mv.impact.acquire.Device.acquisitionStartStopBehaviour is set to mv.impact.acquire.TAcquisitionStartStopBehaviour.assbUser.

If supported by the device driver, starting and stopping the acquisition engine manually can sometimes help to overcome capture queue underruns or certain restrictions in the underlying device driver technology.

See also
mv.impact.acquire.FunctionInterface.acquisitionStop,
mv.impact.acquire.FunctionInterface.imageRequestSingle,
mv.impact.acquire.Request.unlock,
mv.impact.acquire.FunctionInterface.imageRequestUnlock,
mv.impact.acquire.FunctionInterface.imageRequestWaitFor,
mv.impact.acquire.Request.configure,
mv.impact.acquire.FunctionInterface.imageRequestConfigure
Since
1.12.11
Returns

◆ acquisitionStop()

int acquisitionStop ( )
inline

Manually stops the acquisition engine of this device driver instance.

Calling this function will manually stop this device drivers acquisition engine. This will only have effect on the overall behaviour, if mv.impact.acquire.Device.acquisitionStartStopBehaviour is set to mv.impact.acquire.TAcquisitionStartStopBehaviour.assbUser.

See also
mv.impact.acquire.FunctionInterface.acquisitionStart,
mv.impact.acquire.FunctionInterface.imageRequestSingle,
mv.impact.acquire.Request.unlock,
mv.impact.acquire.FunctionInterface.imageRequestUnlock,
mv.impact.acquire.FunctionInterface.imageRequestWaitFor,
mv.impact.acquire.Request.configure,
mv.impact.acquire.FunctionInterface.imageRequestConfigure
Since
1.12.11
Returns

◆ createImageRequestControl() [1/3]

int createImageRequestControl ( String name)
inline

Creates a new mv.impact.acquire.ImageRequestControl object.

This function creates a new mv.impact.acquire.ImageRequestControl based on an existing one. New mv.impact.acquire.ImageRequestControl instances can only be derived from mv.impact.acquire.ImageRequestControl instances that already exist. When the driver has been initialised there will be at least one base mv.impact.acquire.ImageRequestControl called 'Base', which acts as the base for all other request controls.

All mv.impact.acquire.ImageRequestControl constructed by the application must be derived either from this base or any of its children using this function.

When this function succeeds, the mv.impact.acquire.ImageRequestControl constructor can be called with the name parameter passed to this function to get access to this newly registered mv.impact.acquire.ImageRequestControl.

Note
See all comments made under mv.impact.acquire.FunctionInterface.createSetting for understanding the relationship between base and derived mv.impact.acquire.ImageRequestControl objects.
Returns
Parameters
[in]nameThe name of the new mv.impact.acquire.ImageRequestControl object.

◆ createImageRequestControl() [2/3]

int createImageRequestControl ( String name,
String parent )
inline

Creates a new mv.impact.acquire.ImageRequestControl object.

This function creates a new mv.impact.acquire.ImageRequestControl based on an existing one. New mv.impact.acquire.ImageRequestControl instances can only be derived from mv.impact.acquire.ImageRequestControl instances that already exist. When the driver has been initialised there will be at least one base mv.impact.acquire.ImageRequestControl called 'Base', which acts as the base for all other request controls.

All mv.impact.acquire.ImageRequestControl constructed by the application must be derived either from this base or any of its children using this function.

When this function succeeds, the mv.impact.acquire.ImageRequestControl constructor can be called with the name parameter passed to this function to get access to this newly registered mv.impact.acquire.ImageRequestControl.

Note
See all comments made under mv.impact.acquire.FunctionInterface.createSetting for understanding the relationship between base and derived mv.impact.acquire.ImageRequestControl objects.
Returns
Parameters
[in]nameThe name of the new mv.impact.acquire.ImageRequestControl object.
[in]parentThe name of the mv.impact.acquire.ImageRequestControl the new object shall be derived from.

◆ createImageRequestControl() [3/3]

int createImageRequestControl ( String name,
String parent,
out ComponentList newRequestControl )
inline

Creates a new mv.impact.acquire.ImageRequestControl object.

This function creates a new mv.impact.acquire.ImageRequestControl based on an existing one. New mv.impact.acquire.ImageRequestControl instances can only be derived from mv.impact.acquire.ImageRequestControl instances that already exist. When the driver has been initialised there will be at least one base mv.impact.acquire.ImageRequestControl called 'Base', which acts as the base for all other request controls.

All mv.impact.acquire.ImageRequestControl constructed by the application must be derived either from this base or any of its children using this function.

When this function succeeds, the mv.impact.acquire.ImageRequestControl constructor can be called with the name parameter passed to this function to get access to this newly registered mv.impact.acquire.ImageRequestControl.

Note
See all comments made under mv.impact.acquire.FunctionInterface.createSetting for understanding the relationship between base and derived mv.impact.acquire.ImageRequestControl objects.
Returns
Parameters
[in]nameThe name of the new mv.impact.acquire.ImageRequestControl object.
[in]parentThe name of the mv.impact.acquire.ImageRequestControl the new object shall be derived from.
[out]newRequestControlA pointer to a mv.impact.acquire.ComponentList object that will receive the ID of the newly created request control. This parameter can be 0 if the application is not interested in that parameter.

◆ createSetting() [1/3]

int createSetting ( String name)
inline

Creates a new setting.

This function creates a new setting base on an existing one. New settings can only be derived from settings that already exist. When the driver has been initialised there will be at least one base setting called 'Base', which acts as the base for all other settings.

When a new setting is created it derives all the properties from the parent setting. That means initially the new setting will contain the very same data as the parent setting. As long as a component hasn't been modified in the new setting it will depend on the parent settings data. That means if e.g. a property in the parent list is modified, the newly created setting will also benefit from the updated value.

To release a certain component from this dependency it must be assigned a new value. The function mv.impact.acquire.Component.isDefault will return false afterwards indicating that the component no longer depends on the parent.

To restore this parent <-> child dependency the user can call the function mv.impact.acquire.Component.restoreDefault. Afterwards settings applied to the parent component will also be visible in the child component again.

When a new setting has been created successfully the name used to create the setting can be passed to any of the constructors of the setting related classes (mv.impact.acquire.CameraSettingsBase, mv.impact.acquire.ImageProcessing, ...) to access the new components.

Returns
Parameters
[in]nameThe name of the setting to be created.

◆ createSetting() [2/3]

int createSetting ( String name,
out ComponentList newSetting )
inline

Creates a new setting.

This function creates a new setting base on an existing one. New settings can only be derived from settings that already exist. When the driver has been initialised there will be at least one base setting called 'Base', which acts as the base for all other settings.

When a new setting is created it derives all the properties from the parent setting. That means initially the new setting will contain the very same data as the parent setting. As long as a component hasn't been modified in the new setting it will depend on the parent settings data. That means if e.g. a property in the parent list is modified, the newly created setting will also benefit from the updated value.

To release a certain component from this dependency it must be assigned a new value. The function mv.impact.acquire.Component.isDefault will return false afterwards indicating that the component no longer depends on the parent.

To restore this parent <-> child dependency the user can call the function mv.impact.acquire.Component.restoreDefault. Afterwards settings applied to the parent component will also be visible in the child component again.

When a new setting has been created successfully the name used to create the setting can be passed to any of the constructors of the setting related classes (mv.impact.acquire.CameraSettingsBase, mv.impact.acquire.ImageProcessing, ...) to access the new components.

Returns
Parameters
[in]nameThe name of the setting to be created.
[in]newSettingThe name of the setting to derive the new setting from.

◆ createSetting() [3/3]

int createSetting ( String name,
String parent,
out ComponentList newSetting )
inline

Creates a new setting.

This function creates a new setting base on an existing one. New settings can only be derived from settings that already exist. When the driver has been initialised there will be at least one base setting called 'Base', which acts as the base for all other settings.

When a new setting is created it derives all the properties from the parent setting. That means initially the new setting will contain the very same data as the parent setting. As long as a component hasn't been modified in the new setting it will depend on the parent settings data. That means if e.g. a property in the parent list is modified, the newly created setting will also benefit from the updated value.

To release a certain component from this dependency it must be assigned a new value. The function mv.impact.acquire.Component.isDefault will return false afterwards indicating that the component no longer depends on the parent.

To restore this parent <-> child dependency the user can call the function mv.impact.acquire.Component.restoreDefault. Afterwards settings applied to the parent component will also be visible in the child component again.

When a new setting has been created successfully the name used to create the setting can be passed to any of the constructors of the setting related classes (mv.impact.acquire.CameraSettingsBase, mv.impact.acquire.ImageProcessing, ...) to access the new components.

Returns
Parameters
[in]nameThe name of the setting to be created.
[in]parentThe name of the setting to derive the new setting from.
[in]newSettingA pointer to a mv.impact.acquire.ComponentList object that will receive the ID of the newly created setting. This parameter can be 0 if the application is not interested in that parameter.

◆ deleteSetting() [1/3]

int deleteSetting ( String name)
inline

Deletes a setting from the specified location.

This function deletes a setting from the specified location.

Since
2.19.0
Returns
Parameters
[in]nameThe name or the full path under where the setting is located.

◆ deleteSetting() [2/3]

int deleteSetting ( String name,
TStorageLocation storageLocation )
inline

Deletes a setting from the specified location.

This function deletes a setting from the specified location.

Since
2.19.0
Returns
Parameters
[in]nameThe name or the full path under where the setting is located.
[in]storageLocationThe location of the setting.

◆ deleteSetting() [3/3]

int deleteSetting ( String name,
TStorageLocation storageLocation,
TScope scope )
inline

Deletes a setting from the specified location.

This function deletes a setting from the specified location.

Since
2.19.0
Returns
Parameters
[in]nameThe name or the full path under where the setting is located.
[in]storageLocationThe location of the setting.
[in]scopeSpecifies the scope of this operation.

◆ deleteSettingFromStack()

int deleteSettingFromStack ( )
inline

Deletes the last setting from the setting stack.

This function deletes the last setting from the setting stack.

See mv.impact.acquire.FunctionInterface.saveCurrentSettingOnStack for an example how to use this feature.

See also
mv.impact.acquire.FunctionInterface.saveCurrentSettingOnStack
mv.impact.acquire.FunctionInterface.loadSettingFromStack
mv.impact.acquire.FunctionInterface.loadAndDeleteSettingFromStack
Since
2.19.0
Returns

◆ Dispose()

void Dispose ( )
inline

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

See the frameworks documentation about the System.IDisposable interface for more information.

◆ getCurrentCaptureBufferLayout() [1/2]

int getCurrentCaptureBufferLayout ( ImageRequestControl imageRequestControl,
out int size,
out int alignment )
inline

Returns information about the current capture buffer requirements.

When an application wants to provide capture buffers, this function will be needed in order to get information on how the capture buffers must be constructed.

To find out more about capturing to user memory please refer to the application CaptureToUserMemory.cs

See also
mv.impact.acquire.Request.configure
Since
1.12.68
Returns
Parameters
[in]imageRequestControlA reference to the mv.impact.acquire.ImageRequestControl object containing the setting for which the current capture buffer layout shall be queried. The setting can be defined via the property mv.impact.acquire.ImageRequestControl.setting.
[out]sizeOn a successful call this variable will receive the size needed for capturing into user supplied buffers that use the current settings.
[out]alignmentOn a successful call this variable will receive the alignment needed for capturing into user supplied buffers that use the current settings.

◆ getCurrentCaptureBufferLayout() [2/2]

int getCurrentCaptureBufferLayout ( ImageRequestControl imageRequestControl,
out Request request,
out int alignment )
inline

Returns information about the current capture buffer requirements.

When an application wants to provide capture buffers, this function will be needed in order to get information on how the capture buffers must be constructed. The most important parameters will probably be alignment and size, thus for most application calling the other overload of this function will probably be enough.

To find out more about capturing to user memory please refer to the application CaptureToUserMemory.cs

See also
mv.impact.acquire.Request.configure
Since
1.12.68
Returns
Parameters
[in]imageRequestControlA reference to the mv.impact.acquire.ImageRequestControl object containing the setting for which the current capture buffer layout shall be queried. The setting can be defined via the property mv.impact.acquire.ImageRequestControl.setting.
[out]requestOn a successful call this variable will receive a pointer to a mv.impact.acquire.Request object reflecting the current capture buffer layout.
[out]alignmentOn a successful call this variable will receive the alignment needed for capturing into user supplied buffers that use the current settings.

◆ getRequest()

Request getRequest ( int nr)
inline

Returns a const pointer to the desired mv.impact.acquire.Request.

This function returns a pointer to the mv.impact.acquire.Request stored at nr in the internal array of requests.

Returns
A pointer to a mv.impact.acquire.Request object.
Parameters
[in]nrThe number of the request to return
Examples
ContinuousCapture.cs, ContinuousCaptureAllDevices.cs, ContinuousSaveImage.cs, GenICamCallbackOnEvent.cs, GenICamCommonSettingsUsage.cs, GenICamInterfaceLayout.cs, Properties.cs, SingleCapture.cs, and SingleCaptureStorage.cs.

◆ getSetting()

ComponentList getSetting ( String name)
inline

Returns a mv.impact.acquire.ComponentList object to a setting with a specified name.

This function returns a mv.impact.acquire.ComponentList object to a setting with a specified name or will raise an exception if no such setting exists.

Since
1.12.58
Returns
A mv.impact.acquire.ComponentList object to a setting with a specified name
Parameters
[in]nameThe name of the setting to locate

◆ imageRequestConfigure()

int imageRequestConfigure ( Request request)
inline

Sets a request into configuration mode.

Note
Another version of this function is available that might be nicer to use depending on personal preferences and use case: mv.impact.acquire.Request.configure.

In configuration mode certain properties like mv.impact.acquire.Request.imageData, mv.impact.acquire.Request.imageSize, mv.impact.acquire.Request.imageMemoryMode of a request object can be modified. This can be used to configure one or more requests to use a user supplied memory. To use only a subset of the mv.impact.acquire.Request objects available the mv.impact.acquire.ImageRequestControl.requestToUse feature can be used.

Only requests that are currently not used by the driver and are not locked because they contain image data that hasn't been processed can be set into configuration mode.

Note
Instead of calling this function directly for most cases it is much more convenient to use the functions mv.impact.acquire.Request.attachUserBuffer and mv.impact.acquire.Request.detachUserBuffer instead.

User supplied buffers must follow the alignment and size requirements reported by versions of the function mv.impact.acquire.FunctionInterface.getCurrentCaptureBufferLayout. Calling a version of this function will return all the information required to allocate buffers that can be used to capture data for the specified settings.

When allocating memory on the heap, the complete buffer size is needed which is calculated like this:

size + alignment

Note
The address passed to the request object must be aligned already!

Example

Request pRequest = fi.getRequest( 0 );
// the buffer assigned to the request object must be aligned accordingly
// the size of the user supplied buffer MUST NOT include the additional size
// caused by the alignment
if( (TDMR_ERROR)pRequest.attachUserBuffer( getAlignedMemoryPtr(), getAlignedMemorySize() ) ) == TDMR_ERROR.DMR_NO_ERROR )
{
irc.requestToUse.write( 0 ); // use the buffer just configured for the next image request
// now the next image will be captured into the user supplied memory
fi.imageRequestSingle( irc ); // this will send request '0' to the driver
// wait for the buffer. Once it has been returned by the driver AND the user buffer shall no
// longer be used call
if( (TDMR_ERROR)pRequest->detachUserBuffer() != TDMR_ERROR.DMR_NO_ERROR )
{
// handle error
}
// now this request will use internal memory again.
}
else
{
// handle error
}
This class and its functions represent an actual device detected by this interface in the current sys...
Definition Device.cs:91
A template class to represent 32 bit integer properties and 32 bit enumerated integer properties.
Definition EnumPropertyI.cs:61
EnumPropertyI< T > write(T value)
Writes one value to the property.
Definition EnumPropertyI.cs:449
The function interface to devices supported by this interface.
Definition FunctionInterface.cs:21
A helper class to control the way an image request will be processed.
Definition ImageRequestControl.cs:8
Contains information about a captured buffer.
Definition Request.cs:77
TDMR_ERROR
Errors reported by the device manager.
Definition mvDriverBaseEnums.cs:2374
Note
A request that is in configuration mode can't be sent to the driver for acquisition until mv.impact.acquire.Request.unlock or mv.impact.acquire.FunctionInterface.imageRequestUnlock has been called again. By using mv.impact.acquire.Request.attachUserBuffer and mv.impact.acquire.Request.detachUserBuffer this locking and unlocking is done internally thus the application does not need to worry about this.
See also
mv.impact.acquire.Request.configure,
mv.impact.acquire.FunctionInterface.imageRequestSingle,
mv.impact.acquire.Request.attachUserBuffer,
mv.impact.acquire.Request.detachUserBuffer,
mv.impact.acquire.Request.unlock,
mv.impact.acquire.FunctionInterface.imageRequestResultQueueElementCount,
mv.impact.acquire.FunctionInterface.imageRequestUnlock,
mv.impact.acquire.FunctionInterface.imageRequestWaitFor,
mv.impact.acquire.FunctionInterface.imageRequestReset
Since
1.10.31
Returns
Parameters
[in]requestA pointer to the request object to configure

◆ imageRequestReset() [1/2]

int imageRequestReset ( int requestCtrlNr)
inline

Deletes all requests currently queued for the specified mv.impact.acquire.ImageRequestControl.

This function will terminate all running image acquisitions associated with the queue bound to the specified image request control and in addition to that will empty the queue of pending image requests for that queue. Also all requests that reside in the result queue and have not been picked up by the application will be unlocked and removed from the result queue. So after this function returns only the requests currently in possession of the application (so requests that have been picked up by successful calls to mv.impact.acquire.FunctionInterface.imageRequestWaitFor that have NOT been unlocked) need to be handled. All other requests are in a state where they can be queued for an acquisition again.

See also
mv.impact.acquire.FunctionInterface.imageRequestSingle,
mv.impact.acquire.Request.unlock,
mv.impact.acquire.FunctionInterface.imageRequestUnlock,
mv.impact.acquire.FunctionInterface.imageRequestWaitFor,
mv.impact.acquire.Request.configure,
mv.impact.acquire.FunctionInterface.imageRequestConfigure
Returns
Parameters
[in]requestCtrlNrThe mv.impact.acquire.ImageRequestControl for which all the requests shall be cancelled.
Examples
ContinuousCapture.cs, ContinuousCaptureAllDevices.cs, ContinuousSaveImage.cs, GenICamCallbackOnEvent.cs, GenICamCommonSettingsUsage.cs, and GenICamInterfaceLayout.cs.

◆ imageRequestReset() [2/2]

int imageRequestReset ( int requestCtrlNr,
int mode )
inline

Deletes all requests currently queued for the specified mv.impact.acquire.ImageRequestControl.

This function will terminate all running image acquisitions associated with the queue bound to the specified image request control and in addition to that will empty the queue of pending image requests for that queue. Also all requests that reside in the result queue and have not been picked up by the application will be unlocked and removed from the result queue. So after this function returns only the requests currently in possession of the application (so requests that have been picked up by successful calls to mv.impact.acquire.FunctionInterface.imageRequestWaitFor that have NOT been unlocked) need to be handled. All other requests are in a state where they can be queued for an acquisition again.

See also
mv.impact.acquire.FunctionInterface.imageRequestSingle,
mv.impact.acquire.Request.unlock,
mv.impact.acquire.FunctionInterface.imageRequestResultQueueElementCount,
mv.impact.acquire.FunctionInterface.imageRequestUnlock,
mv.impact.acquire.FunctionInterface.imageRequestWaitFor,
mv.impact.acquire.Request.configure,
mv.impact.acquire.FunctionInterface.imageRequestConfigure
Returns
Parameters
[in]requestCtrlNrThe mv.impact.acquire.ImageRequestControl for which all the requests shall be cancelled.
[in]modeCurrently unsupported. MUST be set 0.

◆ imageRequestResultQueueElementCount() [1/2]

int imageRequestResultQueueElementCount ( )
inline

Returns the number of mv.impact.acquire.Request objects in the result queue.

This functions queries the number of mv.impact.acquire.Request objects currently in the result queue that are available for pickup. This number reflects the number of mv.impact.acquire.FunctionInterface.imageRequestWaitFor calls that could be executed afterwards the would return with a valid mv.impact.acquire.Request object immediately without waiting!

See also
mv.impact.acquire.Request.configure,
mv.impact.acquire.FunctionInterface.imageRequestSingle,
mv.impact.acquire.Request.attachUserBuffer,
mv.impact.acquire.Request.detachUserBuffer,
mv.impact.acquire.Request.unlock,
mv.impact.acquire.FunctionInterface.imageRequestUnlock,
mv.impact.acquire.FunctionInterface.imageRequestResultQueueElementCount,
mv.impact.acquire.FunctionInterface.imageRequestWaitFor,
mv.impact.acquire.FunctionInterface.imageRequestReset
Since
2.9.0
Returns

◆ imageRequestResultQueueElementCount() [2/2]

int imageRequestResultQueueElementCount ( int queueNr)
inline

Returns the number of mv.impact.acquire.Request objects in the result queue.

This functions queries the number of mv.impact.acquire.Request objects currently in the result queue that are available for pickup. This number reflects the number of mv.impact.acquire.FunctionInterface.imageRequestWaitFor calls that could be executed afterwards the would return with a valid mv.impact.acquire.Request object immediately without waiting!

See also
mv.impact.acquire.Request.configure,
mv.impact.acquire.FunctionInterface.imageRequestSingle,
mv.impact.acquire.Request.attachUserBuffer,
mv.impact.acquire.Request.detachUserBuffer,
mv.impact.acquire.Request.unlock,
mv.impact.acquire.FunctionInterface.imageRequestUnlock,
mv.impact.acquire.FunctionInterface.imageRequestResultQueueElementCount,
mv.impact.acquire.FunctionInterface.imageRequestWaitFor,
mv.impact.acquire.FunctionInterface.imageRequestReset
Returns
Parameters
[in]queueNrThe result queue to be queried.

◆ imageRequestSingle() [1/4]

int imageRequestSingle ( )
inline

Sends an image request to the mv.impact.acquire.Device driver.

This functions sends a single image request to the capture device. To wait for the image to become ready call the function mv.impact.acquire.FunctionInterface.imageRequestWaitFor.

Attention
In order to make sure that no image data is lost, it is important to understand how the request mechanism works. The driver works with a fixed number of mv.impact.acquire.Request objects. The number of mv.impact.acquire.Request objects available to the driver can be set by modifying the property mv.impact.acquire.SystemSettings.requestCount. Each mv.impact.acquire.Request will consume a certain amount of memory. Once an image has been captured by the mv.impact.acquire.Request, this amount will be slightly more than the image itself needs in memory, so modify this parameter gently. On the other hand, it's necessary to have more than a single request in order to ensure a lossless acquisition. E.g. when working with free running cameras an image might be lost because while an image has been captured and is being processed, the next vertical sync. pulse is already missed before the mv.impact.acquire.Request is unlocked again.
Note
When mv.impact.acquire.Device.acquisitionStartStopBehaviour is set to mv.impact.acquire.TAcquisitionStartStopBehaviour.assbUser several calls to mv.impact.acquire.FunctionInterface.imageRequestSingle will NOT start the data acquisition! After requests have been send down to the driver, mv.impact.acquire.FunctionInterface.acquisitionStart must be called. For performance reasons some device drivers will NOT allow to request data into buffers which have not been known to the driver when mv.impact.acquire.FunctionInterface.acquisitionStart was called, thus before starting the acquisition, mv.impact.acquire.FunctionInterface.imageRequestSingle should be called as many times as there are request objects.
See also
mv.impact.acquire.FunctionInterface.acquisitionStart,
mv.impact.acquire.FunctionInterface.acquisitionStop,
mv.impact.acquire.FunctionInterface.imageRequestReset,
mv.impact.acquire.Request.unlock,
mv.impact.acquire.FunctionInterface.imageRequestResultQueueElementCount,
mv.impact.acquire.FunctionInterface.imageRequestUnlock,
mv.impact.acquire.FunctionInterface.imageRequestWaitFor
mv.impact.acquire.Request.configure,
mv.impact.acquire.FunctionInterface.imageRequestConfigure
Returns
Examples
ContinuousCapture.cs, ContinuousCaptureAllDevices.cs, ContinuousSaveImage.cs, GenICamCallbackOnEvent.cs, GenICamCommonSettingsUsage.cs, GenICamInterfaceLayout.cs, Properties.cs, SingleCapture.cs, and SingleCaptureStorage.cs.

◆ imageRequestSingle() [2/4]

int imageRequestSingle ( ImageRequestControl imageRequestControl)
inline

Sends an image request to the mv.impact.acquire.Device driver.

This functions sends a single image request to the capture device. To wait for the image to become ready call the function mv.impact.acquire.FunctionInterface.imageRequestWaitFor.

Attention
In order to make sure that no image data is lost, it is important to understand how the request mechanism works. The driver works with a fixed number of mv.impact.acquire.Request objects. The number of mv.impact.acquire.Request objects available to the driver can be set by modifying the property mv.impact.acquire.SystemSettings.requestCount. Each mv.impact.acquire.Request will consume a certain amount of memory. Once an image has been captured by the mv.impact.acquire.Request, this amount will be slightly more than the image itself needs in memory, so modify this parameter gently. On the other hand, it's necessary to have more than a single request in order to ensure a lossless acquisition. E.g. when working with free running cameras an image might be lost because while an image has been captured and is being processed, the next vertical sync. pulse is already missed before the mv.impact.acquire.Request is unlocked again.
See also
mv.impact.acquire.FunctionInterface.imageRequestReset,
mv.impact.acquire.Request.unlock,
mv.impact.acquire.FunctionInterface.imageRequestUnlock,
mv.impact.acquire.FunctionInterface.imageRequestResultQueueElementCount,
mv.impact.acquire.FunctionInterface.imageRequestWaitFor
mv.impact.acquire.Request.configure,
mv.impact.acquire.FunctionInterface.imageRequestConfigure
Returns
Parameters
[in]imageRequestControlA pointer to the mv.impact.acquire.ImageRequestControl object to be used for this request. mv.impact.acquire.ImageRequestControl objects define (among other things), which setting will be used for this image acquisition (via the property mv.impact.acquire.ImageRequestControl.setting).

◆ imageRequestSingle() [3/4]

int imageRequestSingle ( ImageRequestControl imageRequestControl,
out int requestUsed )
inline

Sends an image request to the mv.impact.acquire.Device driver.

This functions sends a single image request to the capture device. To wait for the image to become ready call the function mv.impact.acquire.FunctionInterface.imageRequestWaitFor.

Attention
In order to make sure that no image data is lost, it is important to understand how the request mechanism works. The driver works with a fixed number of mv.impact.acquire.Request objects. The number of mv.impact.acquire.Request objects available to the driver can be set by modifying the property mv.impact.acquire.SystemSettings.requestCount. Each mv.impact.acquire.Request will consume a certain amount of memory. Once an image has been captured by the mv.impact.acquire.Request, this amount will be slightly more than the image itself needs in memory, so modify this parameter gently. On the other hand, it's necessary to have more than a single request in order to ensure a lossless acquisition. E.g. when working with free running cameras an image might be lost because while an image has been captured and is being processed, the next vertical sync. pulse is already missed before the mv.impact.acquire.Request is unlocked again.
See also
mv.impact.acquire.FunctionInterface.imageRequestReset,
mv.impact.acquire.Request.unlock,
mv.impact.acquire.FunctionInterface.imageRequestResultQueueElementCount,
mv.impact.acquire.FunctionInterface.imageRequestUnlock,
mv.impact.acquire.FunctionInterface.imageRequestWaitFor
mv.impact.acquire.Request.configure,
mv.impact.acquire.FunctionInterface.imageRequestConfigure
Returns
Parameters
[in]imageRequestControlA pointer to the mv.impact.acquire.ImageRequestControl object to be used for this request. mv.impact.acquire.ImageRequestControl objects define (among other things), which setting will be used for this image acquisition (via the property mv.impact.acquire.ImageRequestControl.setting).
[out]requestUsedThis variable receives the number of the mv.impact.acquire.Request which will be used to process this request.

◆ imageRequestSingle() [4/4]

int imageRequestSingle ( out int requestUsed)
inline

Sends an image request to the mv.impact.acquire.Device driver.

This functions sends a single image request to the capture device. To wait for the image to become ready call the function mv.impact.acquire.FunctionInterface.imageRequestWaitFor.

Attention
In order to make sure that no image data is lost, it is important to understand how the request mechanism works. The driver works with a fixed number of mv.impact.acquire.Request objects. The number of mv.impact.acquire.Request objects available to the driver can be set by modifying the property mv.impact.acquire.SystemSettings.requestCount. Each mv.impact.acquire.Request will consume a certain amount of memory. Once an image has been captured by the mv.impact.acquire.Request, this amount will be slightly more than the image itself needs in memory, so modify this parameter gently. On the other hand, it's necessary to have more than a single request in order to ensure a lossless acquisition. E.g. when working with free running cameras an image might be lost because while an image has been captured and is being processed, the next vertical sync. pulse is already missed before the mv.impact.acquire.Request is unlocked again.
See also
mv.impact.acquire.FunctionInterface.imageRequestReset,
mv.impact.acquire.Request.unlock,
mv.impact.acquire.FunctionInterface.imageRequestUnlock,
mv.impact.acquire.FunctionInterface.imageRequestResultQueueElementCount,
mv.impact.acquire.FunctionInterface.imageRequestWaitFor
mv.impact.acquire.Request.configure,
mv.impact.acquire.FunctionInterface.imageRequestConfigure
Returns
Parameters
[out]requestUsedThis variable receives the number of the mv.impact.acquire.Request which will be used to process this request.

◆ imageRequestUnlock()

int imageRequestUnlock ( int nr)
inline

Unlocks the request for the driver again.

Note
Another version of this function is available that might be nicer to use depending on personal preferences and use case: mv.impact.acquire.Request.unlock. Unlocking a certain request might be nicer by using this function, e.g. unlocking ALL requests in a loop is probably easier done by writing

Example

int rc = fi.requestCount;
for( int i=0; i<rc; i++ )
{
fi.imageRequestUnlock( i );
}

To ensure that no image data is overwritten by another image request while the user still deals with the image from a previous acquisition each image buffer will be locked by the driver when it is returned to the user by a call to mv.impact.acquire.FunctionInterface.imageRequestWaitFor. No new image will be captured into the same buffer until the user unlocks the buffer again by calling mv.impact.acquire.FunctionInterface.imageRequestUnlock.

Note
After unlocking a request it is no longer guaranteed that the memory once referenced by the request and the image buffer belonging to it stays valid, so do NEVER try to access memory belonging to an unlocked request object. If you need to copy the image buffer or modify it in any other way, do everything you have to do BEFORE calling this function!
See also
mv.impact.acquire.FunctionInterface.imageRequestReset,
mv.impact.acquire.FunctionInterface.imageRequestSingle,
mv.impact.acquire.FunctionInterface.imageRequestWaitFor,
mv.impact.acquire.FunctionInterface.imageRequestResultQueueElementCount,
mv.impact.acquire.FunctionInterface.imageRequestConfigure,
mv.impact.acquire.Request.configure
Returns
Parameters
[in]nrThe number of the request to unlock. This is typically a value returned from a call to mv.impact.acquire.FunctionInterface.imageRequestWaitFor.
Examples
ContinuousCaptureAllDevices.cs.

◆ imageRequestWaitFor() [1/2]

int imageRequestWaitFor ( int timeout_ms)
inline

Waits for a request object to become ready.

This function waits for a request object previously sent to the capture device by calling mv.impact.acquire.FunctionInterface.imageRequestSingle. When a new request became ready during the period of time specified by the timeout_ms parameter this request is extracted from the result queue and is returned to the user so the same request can not be returned twice until it has been processed and unlocked by the application.

Note
Whenever a mv.impact.acquire.Request is returned to the user the image data described by the mv.impact.acquire.Request remains valid until the user unlocks the image buffer again or the driver is closed.
See also
mv.impact.acquire.Request.unlock,
mv.impact.acquire.FunctionInterface.imageRequestUnlock,
mv.impact.acquire.FunctionInterface.imageRequestResultQueueElementCount,
mv.impact.acquire.FunctionInterface.getRequest
Returns
When the return value is greater than or equal to zero the return value is the request number of the image request in the interface's internal array of image requests. In this case the user can call mv.impact.acquire.FunctionInterface.getRequest to get access to the results.

When the result is negative the return value is an error code. [in] The error code that is returned in most of the cases will be mv.impact.acquire.TDMR_ERROR.DEV_WAIT_FOR_REQUEST_FAILED. To find out possible reasons for this error have a look at the corresponding explanation.
Parameters
[in]timeout_msThe maximum wait time in milliseconds(ms) for this request to become ready. If timeout_ms is '-1', the function's timeout interval never elapses. If the result queue specified by the queueNr parameter already contains a request when calling this function the function will return immediately. Please note that each request has its own timeout that is independent from this wait timeout, thus this function will return with a valid request after the timeout for this request has elapsed even if e.g. a trigger has not been detected. For detailed information on the interaction of the timeout of this function and the timeout of a request please refer to the chapter Acquiring Data in the C++ section.
Examples
ContinuousCapture.cs, ContinuousCaptureAllDevices.cs, ContinuousSaveImage.cs, GenICamCallbackOnEvent.cs, GenICamCommonSettingsUsage.cs, GenICamInterfaceLayout.cs, Properties.cs, SingleCapture.cs, and SingleCaptureStorage.cs.

◆ imageRequestWaitFor() [2/2]

int imageRequestWaitFor ( int timeout_ms,
int queueNr )
inline

Waits for a request object to become ready.

This function waits for a request object previously sent to the capture device by calling mv.impact.acquire.FunctionInterface.imageRequestSingle. When a new request became ready during the period of time specified by the timeout_ms parameter this request is extracted from the result queue and is returned to the user so the same request can not be returned twice until it has been processed and unlocked by the application.

Note
Whenever a mv.impact.acquire.Request is returned to the user the image data described by the mv.impact.acquire.Request remains valid until the user unlocks the image buffer again or the driver is closed.
See also
mv.impact.acquire.Request.unlock,
mv.impact.acquire.FunctionInterface.imageRequestUnlock,
mv.impact.acquire.FunctionInterface.imageRequestResultQueueElementCount,
mv.impact.acquire.FunctionInterface.getRequest
Returns
When the return value is greater than or equal to zero the return value is the request number of the image request in the interface's internal array of image requests. In this case the user can call mv.impact.acquire.FunctionInterface.getRequest to get access to the results.

When the result is negative the return value is an error code. [in] The error code that is returned in most of the cases will be mv.impact.acquire.TDMR_ERROR.DEV_WAIT_FOR_REQUEST_FAILED. To find out possible reasons for this error have a look at the corresponding explanation.
Parameters
[in]timeout_msThe maximum wait time in milliseconds(ms) for this request to become ready. If timeout_ms is '-1', the function's timeout interval never elapses. If the result queue specified by the queueNr parameter already contains a request when calling this function the function will return immediately. Please note that each request has its own timeout that is independent from this wait timeout, thus this function will return with a valid request after the timeout for this request has elapsed even if e.g. a trigger has not been detected. For detailed information on the interaction of the timeout of this function and the timeout of a request please refer to the chapter Acquiring Data in the C++ section.
[in]queueNrThe queue where to wait for the request. The number of request queues available depends on the number of video channels offered by the device. The queue a processed request ends up in can be defined by setting the property mv.impact.acquire.ImageRequestControl.resultQueue BEFORE calling mv.impact.acquire.FunctionInterface.imageRequestSingle.

◆ isRequestNrValid()

bool isRequestNrValid ( int nr)
inline

◆ isSettingAvailable() [1/3]

int isSettingAvailable ( String name)
inline

Checks if a certain setting is available under the specified location.

This function checks if a certain setting is available under the specified location.

Since
2.19.0
Returns
Parameters
[in]nameThe name or the full path under where the setting is located.

◆ isSettingAvailable() [2/3]

int isSettingAvailable ( String name,
TStorageLocation storageLocation )
inline

Checks if a certain setting is available under the specified location.

This function checks if a certain setting is available under the specified location.

Since
2.19.0
Returns
Parameters
[in]nameThe name or the full path under where the setting is located.
[in]storageLocationThe location of the setting.

◆ isSettingAvailable() [3/3]

int isSettingAvailable ( String name,
TStorageLocation storageLocation,
TScope scope )
inline

Checks if a certain setting is available under the specified location.

This function checks if a certain setting is available under the specified location.

Since
2.19.0
Returns
Parameters
[in]nameThe name or the full path under where the setting is located.
[in]storageLocationThe location of the setting.
[in]scopeSpecifies the scope of this operation.

◆ loadAndDeleteSettingFromStack()

int loadAndDeleteSettingFromStack ( )
inline

loads the last setting from the setting stack and then removes this setting from the stack.

This function loads the last setting from the setting stack and then removes this setting from the stack.

See mv.impact.acquire.FunctionInterface.saveCurrentSettingOnStack for an example how to use this feature.

See also mv.impact.acquire.FunctionInterface.loadSetting to find out which features of a GenICam device are stored in a setting and which are not!

See also
mv.impact.acquire.FunctionInterface.saveCurrentSettingOnStack
mv.impact.acquire.FunctionInterface.deleteSettingFromStack
mv.impact.acquire.FunctionInterface.loadSettingFromStack
Since
2.19.0
Returns

◆ loadSetting() [1/3]

int loadSetting ( String name)
inline

Loads a previously stored setting.

This function can be used to restore a previously stored setting again.

To load a setting from a file the mv.impact.acquire.TStorageFlag.sfFile should be specified as part of storageFlags. To load a setting from a platform specific location such as the Registry under Windows© mv.impact.acquire.TStorageFlag.sfNative should be specified. It's not allowed to combine mv.impact.acquire.TStorageFlag.sfFile and mv.impact.acquire.TStorageFlag.sfNative for this operation.

Attention
Since Impact Acquire 2.9.0 GenICam devices will be able to save their properties in a XML File, only if the properties have the streamable attribute set (for more information refer to the GenICam standard specification). Properties with no streamable attribute set, will be silently ignored when saving, which means they will not be saved in the XML file. For Balluff GenICam cameras, starting with firmware version 1.6.414 the streamable attribute is set for all the necessary properties.


Attention
Since Impact Acquire 2.9.0 and again in version 2.11.0 storing and loading of camera settings in a XML file for the mv.impact.acquire.TDeviceInterfaceLayout.dilGenICam interface layout has been updated. As a result XML files created with newer versions of Impact Acquire might not be readable on systems with older version of Impact Acquire installed. XML files created on systems with earlier versions of Impact Acquire will always be readable this or newer versions. See the following table for details.
Impact Acquire VersionLoading a XML settings file created with Impact Acquire version < 2.9.0Loading a XML settings file created with Impact Acquire version 2.9.0 - 2.10.1Loading a XML settings file created with Impact Acquire version 2.11.0 or later
< 2.9.0 YES NO NO
2.9.0 - 2.10.1 YES YES NO
>= 2.11.0 YES YES YES
Since Impact Acquire 2.28.0 it is possible for devices operated in the mv.impact.acquire.TDeviceInterfaceLayout.dilGenICam interface layout to store settings including sequencer sets and user sets (see SFNC for details) data by specifying the mv.impact.acquire.TStorageFlag.sfProcessGenICamSequencerData and/or mv.impact.acquire.TStorageFlag.sfProcessGenICamUserSetData during the storage operation. Settings stored like this cannot be loaded by previous Impact Acquire versions.
Note
For devices operated in the mv.impact.acquire.TDeviceInterfaceLayout.dilGenICam interface layout further restriction apply: Settings created with a certain product type can only be used with other devices belonging to the exact same type as defined by the property mv.impact.acquire.Device.product inside the device list (the one device specific property list that is accessible without initialising the device before). Even if a setting can be used with various firmware versions it is recommended to use one setting for multiple devices all updated to the very same firmware version to avoid compatibility problems.
See also
mv.impact.acquire.FunctionInterface.saveSetting.
Returns
Parameters
[in]nameThe name or the full path under where the setting is located.

◆ loadSetting() [2/3]

int loadSetting ( String name,
TStorageFlag storageFlags )
inline

Loads a previously stored setting.

This function can be used to restore a previously stored setting again.

To load a setting from a file the mv.impact.acquire.TStorageFlag.sfFile should be specified as part of storageFlags. To load a setting from a platform specific location such as the Registry under Windows© mv.impact.acquire.TStorageFlag.sfNative should be specified. It's not allowed to combine mv.impact.acquire.TStorageFlag.sfFile and mv.impact.acquire.TStorageFlag.sfNative for this operation.

Attention
There has been an incompatible change when loading settings in version 2.9.0 and 2.11.0 of Impact Acquire as well as in version 2.28.0. See mv.impact.acquire.FunctionInterface.loadSetting for details.
See also
mv.impact.acquire.FunctionInterface.saveSetting.
Returns
Parameters
[in]nameThe name or the full path under where the setting is located.
[in]storageFlagsThe flags which define which information shall be read from the location and how this information shall be interpreted.

◆ loadSetting() [3/3]

int loadSetting ( String name,
TStorageFlag storageFlags,
TScope scope )
inline

Loads a previously stored setting.

This function can be used to restore a previously stored setting again.

To load a setting from a file the mv.impact.acquire.TStorageFlag.sfFile should be specified as part of storageFlags. To load a setting from a platform specific location such as the Registry under Windows© mv.impact.acquire.TStorageFlag.sfNative should be specified. It's not allowed to combine mv.impact.acquire.TStorageFlag.sfFile and mv.impact.acquire.TStorageFlag.sfNative for this operation.

Attention
There has been an incompatible change when loading settings in version 2.9.0 and 2.11.0 of Impact Acquire as well as in version 2.28.0. See mv.impact.acquire.FunctionInterface.loadSetting for details.
See also
mv.impact.acquire.FunctionInterface.saveSetting.
Returns
Parameters
[in]nameThe name or the full path under where the setting is located.
[in]storageFlagsThe flags which define which information shall be read from the location and how this information shall be interpreted.
[in]scopeSpecifies where the information is located.

◆ loadSettingFromDefault() [1/2]

int loadSettingFromDefault ( )
inline

Loads the default settings.

This function will try to load the settings from a default location. This function can only succeed if a setting has been stored previously by a call to mv.impact.acquire.FunctionInterface.saveSettingToDefault.

Returns

◆ loadSettingFromDefault() [2/2]

int loadSettingFromDefault ( TScope scope)
inline

Loads the default settings.

This function will try to load the settings from a default location. This function can only succeed if a setting has been stored previously by a call to mv.impact.acquire.FunctionInterface.saveSettingToDefault.

Attention
There has been an incompatible change when loading settings in version 2.9.0 and 2.11.0 of Impact Acquire as well as in version 2.28.0. See mv.impact.acquire.FunctionInterface.loadSetting for details.
Returns
Parameters
[in]scopeSpecifies where the information is located.

◆ loadSettingFromStack()

int loadSettingFromStack ( )
inline

loads the last setting from the setting stack.

This function loads the last setting from the setting stack.

See mv.impact.acquire.FunctionInterface.saveCurrentSettingOnStack for an example how to use this feature.

See also mv.impact.acquire.FunctionInterface.loadSetting to find out which features of a GenICam device are stored in a setting and which are not!

See also
mv.impact.acquire.FunctionInterface.saveCurrentSettingOnStack
mv.impact.acquire.FunctionInterface.deleteSettingFromStack
mv.impact.acquire.FunctionInterface.loadAndDeleteSettingFromStack
Since
2.19.0
Returns

◆ saveCurrentSettingOnStack() [1/2]

int saveCurrentSettingOnStack ( )
inline

Saves the current setting on the setting stack.

This function saves the current setting on the setting stack. Together which the functions mentioned below this implements a stack for capture settings. This can become handy when entering a section of code that might modify the current capture settings in various ways and depending on the result these modifications shall either be kept or discarded at the end of the operation.

// ...
public enum TResult
{
}
// ...
fi.saveCurrentSettingOnStack();
{
case TResult.rDiscard:
fi.loadAndDeleteSettingFromStack(); // revert all changes just applied without worrying about what these changes actually are
break;
case TResult.rApply:
fi.deleteSettingFromStack(); // remove the setting from the stack, but keep changes
break;
}

Impact Acquire allows to store capture settings in the memory of the current process and this stack is making use of that feature. Once the last instance of this mv.impact.acquire.FunctionInterface object is deleted all settings pushed on this stack will be deleted automatically. For performance reasons however it is recommended to delete all settings by using the appropriate functions instead. Also the Dispose function of this class can be used to achieve the same behaviour.

See also
mv.impact.acquire.FunctionInterface.deleteSettingFromStack
mv.impact.acquire.FunctionInterface.loadSettingFromStack
mv.impact.acquire.FunctionInterface.loadAndDeleteSettingFromStack
Since
2.19.0
Returns

◆ saveCurrentSettingOnStack() [2/2]

int saveCurrentSettingOnStack ( TStorageFlag storageFlags)
inline

Saves the current setting on the setting stack.

This function saves the current setting on the setting stack. Together which the functions mentioned below this implements a stack for capture settings. This can become handy when entering a section of code that might modify the current capture settings in various ways and depending on the result these modifications shall either be kept or discarded at the end of the operation.

// ...
public enum TResult
{
}
// ...
fi.saveCurrentSettingOnStack();
{
case TResult.rDiscard:
fi.loadAndDeleteSettingFromStack(); // revert all changes just applied without worrying about what these changes actually are
break;
case TResult.rApply:
fi.deleteSettingFromStack(); // remove the setting from the stack, but keep changes
break;
}

Impact Acquire allows to store capture settings in the memory of the current process and this stack is making use of that feature. Once the last instance of this mv.impact.acquire.FunctionInterface object is deleted all settings pushed on this stack will be deleted automatically. For performance reasons however it is recommended to delete all settings by using the appropriate functions instead. Also the Dispose function of this class can be used to achieve the same behaviour.

See also
mv.impact.acquire.FunctionInterface.deleteSettingFromStack
mv.impact.acquire.FunctionInterface.loadSettingFromStack
mv.impact.acquire.FunctionInterface.loadAndDeleteSettingFromStack
Since
2.28.0
Returns

◆ saveSetting() [1/3]

int saveSetting ( String name)
inline

Stores the current settings.

This function can be used to store the current settings either in a XML-file or (under Windows©) into the Registry. A setting contains all the values set for properties that control the overall way an image is acquired( e.g. the exposure time, etc.).

To store a setting in a file the mv.impact.acquire.TStorageFlag.sfFile should be specified as part of storageFlags. To store a setting in a platform specific location such as the Registry under Windows© mv.impact.acquire.TStorageFlag.sfNative should be specified. Both flags can be combined. In that case the same setting will be stored in a file AND in a platform specific location if these location differ (platform dependent!).

Attention
There has been an incompatible change when loading settings in version 2.9.0 and 2.11.0 of Impact Acquire as well as in version 2.28.0. See mv.impact.acquire.FunctionInterface.loadSetting for details.
Returns
Parameters
[in]nameThe name or the full path under which this setting shall be stored

◆ saveSetting() [2/3]

int saveSetting ( String name,
TStorageFlag storageFlags )
inline

Stores the current settings.

This function can be used to store the current settings either in a XML-file or (under Windows©) into the Registry. A setting contains all the values set for properties that control the overall way an image is acquired( e.g. the exposure time, etc.).

Attention
There has been an incompatible change when loading settings in version 2.9.0 and 2.11.0 of Impact Acquire as well as in version 2.28.0. See mv.impact.acquire.FunctionInterface.loadSetting for details.

To store a setting in a file the mv.impact.acquire.TStorageFlag.sfFile should be specified as part of storageFlags. To store a setting in a platform specific location such as the Registry under Windows© mv.impact.acquire.TStorageFlag.sfNative should be specified. Both flags can be combined. In that case the same setting will be stored in a file AND in a platform specific location if these location differ (platform dependent!).

Returns
Parameters
[in]nameThe name or the full path under which this setting shall be stored
[in]storageFlagsThe flags which define which information shall be stored and how this information shall be stored.

◆ saveSetting() [3/3]

int saveSetting ( String name,
TStorageFlag storageFlags,
TScope scope )
inline

Stores the current settings.

This function can be used to store the current settings either in a XML-file or (under Windows©) into the Registry. A setting contains all the values set for properties that control the overall way an image is acquired( e.g. the exposure time, etc.).

To store a setting in a file the mv.impact.acquire.TStorageFlag.sfFile should be specified as part of storageFlags. To store a setting in a platform specific location such as the Registry under Windows© mv.impact.acquire.TStorageFlag.sfNative should be specified. Both flags can be combined. In that case the same setting will be stored in a file AND in a platform specific location if these location differ (platform dependent!).

Attention
There has been an incompatible change when loading settings in version 2.9.0 and 2.11.0 of Impact Acquire as well as in version 2.28.0. See mv.impact.acquire.FunctionInterface.loadSetting for details.
Returns
Parameters
[in]nameThe name or the full path under which this setting shall be stored
[in]storageFlagsThe flags which define which information shall be stored and how this information shall be stored.
[in]scopeSpecifies where the information shall be stored.

◆ saveSettingToDefault() [1/2]

int saveSettingToDefault ( )
inline

Stores the current settings under a default location.

Under Windows© this will be in the Registry. A setting contains all the values set for properties that control the overall way an image is acquired( e.g. the exposure time, etc.).

Attention
There has been an incompatible change when loading settings in version 2.9.0 and 2.11.0 of Impact Acquire as well as in version 2.28.0. See mv.impact.acquire.FunctionInterface.loadSetting for details
Returns

◆ saveSettingToDefault() [2/2]

int saveSettingToDefault ( TScope scope)
inline

Stores the current settings under a default location.

Under Windows© this will be in the Registry. A setting contains all the values set for properties that control the overall way an image is acquired( e.g. the exposure time, etc.).

Attention
There has been an incompatible change when loading settings in version 2.9.0 and 2.11.0 of Impact Acquire as well as in version 2.28.0. See mv.impact.acquire.FunctionInterface.loadSetting for details.
Returns
Parameters
[in]scopeSpecifies where the information shall be stored.

◆ updateRequests()

void updateRequests ( )
inline

Updates the internal cache for request objects.

Calling this function isn't strictly necessary but doing so can speed up the initial execution of other functions after the request count has been modified using the mv.impact.acquire.SystemSettings.requestCount property. Not doing so will execute the work performed by this function when calling any of the following functions for the first time after modifying the request count:

See also
mv.impact.acquire.SystemSettings.requestCount

Property Documentation

◆ availableImageRequestControls

ReadOnlyCollection<String> availableImageRequestControls
get

Returns the names of the image request controls available for this mv.impact.acquire.Device.

This function returns a const reference to a string array containing the names of all image request controls available for the current mv.impact.acquire.Device. These names are valid constructor parameters for objects of the type mv.impact.acquire.ImageRequestControl.

New image request controls can be created by calling mv.impact.acquire.FunctionInterface.createImageRequestControl.

Returns
A const reference to an array containing the names of all settings available.

◆ availableSettings

ReadOnlyCollection<String> availableSettings
get

Returns the names of the settings available for this mv.impact.acquire.Device.

This function returns a const reference to a string array containing the names of all settings available for the current mv.impact.acquire.Device. These names are valid constructor parameters for objects like mv.impact.acquire.CameraSettingsBase, mv.impact.acquire.ImageProcessing, mv.impact.acquire.ImageDestination or classes derived from these types.

New settings can be created by calling mv.impact.acquire.FunctionInterface.createSetting

Returns
A const reference to an array containing the names of all request controls available.

◆ requestCount

int requestCount
get

Returns the number of available request objects.

See also
mv.impact.acquire.SystemSettings.requestCount (to change the number of request objects)
Returns
Returns the number of available request objects.