Impact Acquire SDK .NET
CameraSettingsBlueCOUGAR Class Referencesealed

mvBlueCOUGAR related camera settings (Device specific interface layout only). More...

Inheritance diagram for CameraSettingsBlueCOUGAR:
[legend]

Public Member Functions

 CameraSettingsBlueCOUGAR (Device device)
 Constructs a new mv.impact.acquire.CameraSettingsBlueCOUGAR object.
 
 CameraSettingsBlueCOUGAR (Device device, String settingName)
 Constructs a new mv.impact.acquire.CameraSettingsBlueCOUGAR object.
 
AutoControlParameters getAutoControlParameters ()
 Provides access to the control parameters for AGC and AEC.
 
IEnumerable< T > getEnumerable< T > ()
 Returns an enumerator of a certain type that iterates through the collection.
 
IEnumerator< int > GetEnumerator ()
 Returns an enumerator that iterates through the collection.
 
HDRControl getHDRControl ()
 Returns the mv.impact.acquire.HDRControl object associated with this setting.
 
void restoreDefault ()
 Restores the default for every component of this collection.
 
TriggerControl triggerControl (int nr)
 Returns a const pointer to a mv.impact.acquire.TriggerControl object.
 
TriggerControl triggerControl (String name)
 Returns a const pointer to a mv.impact.acquire.TriggerControl object. If the name passed to the function does not specify a valid trigger control an ArgumentException will be raised.
 

Public Attributes

readonly PropertyI64 acquisitionBurstFrameCount = new PropertyI64()
 A 64-bit integer property defining the number of frames to acquire for each FrameBurstStart trigger.
 
readonly PropertyI aoiHeight = new PropertyI()
 An integer property defining the number of lines to capture.
 
readonly PropertyI aoiStartX = new PropertyI()
 An integer property defining the X-offset for each capture line.
 
readonly PropertyI aoiStartY = new PropertyI()
 An integer property defining the Y-offset.
 
readonly PropertyI aoiWidth = new PropertyI()
 An integer property defining the number of pixels to capture per line.
 
readonly EnumPropertyI< TAutoControlModeautoControlMode = new EnumPropertyI<TAutoControlMode>()
 An enumerated integer property defining the auto control mode the device is operated in.
 
readonly EnumPropertyI< TAutoExposureControlautoExposeControl = new EnumPropertyI<TAutoExposureControl>()
 An enumerated integer property, which represents the current mode the AEC (A utomatic E xpose C ontrol) is operated in.
 
readonly EnumPropertyI< TAutoGainControlautoGainControl = new EnumPropertyI<TAutoGainControl>()
 An enumerated integer property, which represents the current mode the AGC (A utomatic G ain C ontrol) is operated in.
 
readonly PropertyS basedOn = new PropertyS()
 A string property (read-only) containing the name of the setting this setting is based on.
 
readonly EnumPropertyI< TCameraBinningModebinningMode = new EnumPropertyI<TCameraBinningMode>()
 An enumerated integer property defining the binning mode the camera is operated in.
 
readonly PropertyI expose_us = new PropertyI()
 An integer property which defines the exposure time for an image in us.
 
readonly EnumPropertyI< TCameraExposeModeexposeMode = new EnumPropertyI<TCameraExposeMode>()
 An enumerated integer property defining the exposure mode the camera sensor is operated in.
 
readonly PropertyI frameDelay_us = new PropertyI()
 An integer property defining the delay in us between an external trigger event an the begin of the sensor exposure.
 
readonly PropertyF frameRate_Hz = new PropertyF()
 A float property defining the frame rate (in Hz) this device shall use to transfer images.
 
readonly PropertyF gain_dB = new PropertyF()
 A float property defining the gain in dB.
 
readonly PropertyI imageRequestTimeout_ms = new PropertyI()
 An integer property defining the maximum time to wait for an image in ms.
 
readonly PropertyF offset_pc = new PropertyF()
 A float property defining the analogue sensor offset in percent of the allowed range (sensor specific).
 
readonly PropertyIBoolean partialScanMode = new PropertyIBoolean()
 An enumerated integer property defining whether partial scan mode shall be used or not.
 
readonly EnumPropertyI< TCameraPixelClockpixelClock_KHz = new EnumPropertyI<TCameraPixelClock>()
 An enumerated integer property defining the pixel clock of the camera sensor in KHz.
 
readonly EnumPropertyI< TImageBufferPixelFormatpixelFormat = new EnumPropertyI<TImageBufferPixelFormat>()
 An enumerated integer property defining the pixel format used to transfer the image data into the target systems host memory.
 
readonly EnumPropertyI< TCameraTestModetestMode = new EnumPropertyI<TCameraTestMode>()
 An enumerated integer property defining the image transmission mode of the camera.
 
readonly EnumPropertyI< TDeviceTriggerInterfacetriggerInterface = new EnumPropertyI<TDeviceTriggerInterface>()
 An enumerated integer property defining which view of the trigger interface to use.
 
readonly EnumPropertyI< TCameraTriggerModetriggerMode = new EnumPropertyI<TCameraTriggerMode>()
 An enumerated integer property which defines what kind of trigger mode shall be used for an image acquisition.
 
readonly EnumPropertyI< TCameraTriggerSourcetriggerSource = new EnumPropertyI<TCameraTriggerSource>()
 An enumerated integer property defining where the trigger signal is expected to occur.
 

Properties

IEnumerable< ComponentcomponentEnumerable [get]
 Returns an enumerator that iterates through the collection.
 
IEnumerable< ComponentListcomponentListEnumerable [get]
 Returns an enumerator that iterates through all the mv.impact.acquire.ComponentList elements in the collection.
 
int hObj [get]
 Returns a unique identifier for the component collection referenced by this object.
 
int triggerControlCount [get]
 Returns the number of mv.impact.acquire.TriggerControls available for this device.
 

Detailed Description

mvBlueCOUGAR related camera settings (Device specific interface layout only).

This class contains properties to control the way the image sensor(s) of the mvBlueCOUGAR behaves.

Note
This class will only be available if mv.impact.acquire.Device.interfaceLayout is set to mv.impact.acquire.TDeviceInterfaceLayout.dilDeviceSpecific before the device is opened.

Constructor & Destructor Documentation

◆ CameraSettingsBlueCOUGAR() [1/2]

CameraSettingsBlueCOUGAR ( Device device)
inline

Constructs a new mv.impact.acquire.CameraSettingsBlueCOUGAR object.

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

◆ CameraSettingsBlueCOUGAR() [2/2]

CameraSettingsBlueCOUGAR ( Device device,
String settingName )
inline

Constructs a new mv.impact.acquire.CameraSettingsBlueCOUGAR object.

Parameters
[in]deviceA pointer to a mv.impact.acquire.Device object obtained from a mv.impact.acquire.DeviceManager object.
[in]settingNameThe name of the driver internal setting to access with this instance. A list of valid setting names can be obtained by a call to mv.impact.acquire.FunctionInterface.availableSettings, new settings can be created with the function mv.impact.acquire.FunctionInterface.createSetting

Member Function Documentation

◆ getAutoControlParameters()

AutoControlParameters getAutoControlParameters ( )
inlineinherited

Provides access to the control parameters for AGC and AEC.

Note
These settings will only affect the image if mv.impact.acquire.CameraSettingsBlueDevice.autoGainControl, mv.impact.acquire.CameraSettingsBlueDevice.autoExposeControl or both are set to active.

◆ getEnumerable< T >()

IEnumerable< T > getEnumerable< T > ( )
inlineinherited

Returns an enumerator of a certain type that iterates through the collection.

This interface will allow to e.g. write code like this:

Info info = new Info(pDev);
foreach (Property c in info.getEnumerable<Property>())
{
validateProperty(c);
}
A class to query various general information about the device, its driver and other information.
Definition Info.cs:10
A base class for properties.
Definition Property.cs:109

See the framework's documentation about the System.Collections.IEnumerable interface for more information.

Returns
An enumerator that iterates through the collection

◆ GetEnumerator()

IEnumerator< int > GetEnumerator ( )
inlineinherited

Returns an enumerator that iterates through the collection.

See the framework's documentation about the System.Collections.IEnumerable interface for more information.

Returns
An enumerator that iterates through the collection

◆ getHDRControl()

HDRControl getHDRControl ( )
inline

Returns the mv.impact.acquire.HDRControl object associated with this setting.

◆ restoreDefault()

void restoreDefault ( )
inlineinherited

Restores the default for every component of this collection.

Calling this function will restore the default value for every component belonging to this collection.

Note
The caller must have the right to modify the component. Otherwise an exception will be thrown.

◆ triggerControl() [1/2]

TriggerControl triggerControl ( int nr)
inline

Returns a const pointer to a mv.impact.acquire.TriggerControl object.

Note
The features of each mv.impact.acquire.TriggerControl will only be visible and thus available, when mv.impact.acquire.CameraSettingsBlueCOUGAR.triggerInterface is set to mv.impact.acquire.TDeviceTriggerInterface.dtiAdvanced.
Parameters
[in]nrThe number of the trigger control

◆ triggerControl() [2/2]

TriggerControl triggerControl ( String name)
inline

Returns a const pointer to a mv.impact.acquire.TriggerControl object. If the name passed to the function does not specify a valid trigger control an ArgumentException will be raised.

Parameters
[in]nameThe name of the trigger control

Member Data Documentation

◆ acquisitionBurstFrameCount

readonly PropertyI64 acquisitionBurstFrameCount = new PropertyI64()

A 64-bit integer property defining the number of frames to acquire for each FrameBurstStart trigger.

Note
This feature will only be taken into account if the FrameBurstStart trigger is active when mv.impact.acquire.CameraSettingsBlueCOUGAR.triggerInterface is set to mv.impact.acquire.TDeviceTriggerInterface.dtiAdvanced.

◆ aoiHeight

readonly PropertyI aoiHeight = new PropertyI()
inherited

An integer property defining the number of lines to capture.

◆ aoiStartX

readonly PropertyI aoiStartX = new PropertyI()
inherited

An integer property defining the X-offset for each capture line.

Example: When setting this property to 5 the first pixel in each line of the resulting image will be pixel number 5 of each line transmitted by the camera.

◆ aoiStartY

readonly PropertyI aoiStartY = new PropertyI()
inherited

An integer property defining the Y-offset.

Example: When setting this property to 5 the first line of the resulting image will be line number 5 of the image transmitted by the camera

◆ aoiWidth

readonly PropertyI aoiWidth = new PropertyI()
inherited

An integer property defining the number of pixels to capture per line.

◆ autoControlMode

readonly EnumPropertyI<TAutoControlMode> autoControlMode = new EnumPropertyI<TAutoControlMode>()
inherited

An enumerated integer property defining the auto control mode the device is operated in.

This property can be used to control the overall behaviour of the algorithms used for performing AEC (A utomatic E xpose C ontrol) or AGC (A utomatic G ain C ontrol). This could be done by the device itself thus e.g. even in the analog domain or e.g. by a software process in the driver. Each method will offer certain advantages and disadvantages and depending on the application the correct method can be selected.

Valid values for this property are defined by the enumeration mv.impact.acquire.TAutoControlMode.

Every device or even different models belonging to the same device family may support different auto control modes, thus it's crucial to query the valid modes for each device by reading the properties translation dictionary BEFORE trying to assign a certain value to this property.

◆ autoExposeControl

readonly EnumPropertyI<TAutoExposureControl> autoExposeControl = new EnumPropertyI<TAutoExposureControl>()
inherited

An enumerated integer property, which represents the current mode the AEC (A utomatic E xpose C ontrol) is operated in.

The values used to capture the image, which are directly influenced by an activated AGC or AEC (e.g. the gain or the exposure time) will be returned as part of the result of the image request.

Valid values for this property are defined by the enumeration mv.impact.acquire.TAutoExposureControl.

Note
This property might not be supported by every device. Therefore always call the function mv.impact.acquire.Component.isValid to check if this property is available or not.

◆ autoGainControl

readonly EnumPropertyI<TAutoGainControl> autoGainControl = new EnumPropertyI<TAutoGainControl>()
inherited

An enumerated integer property, which represents the current mode the AGC (A utomatic G ain C ontrol) is operated in.

The values used to capture the image, which are directly influenced by an activated AGC or AEC (e.g. the gain or the exposure time) will be returned as part of the result of the image request.

Valid values for this property are defined by the enumeration mv.impact.acquire.TAutoGainControl.

Note
This property is not supported by every device. Therefore always call the function mv.impact.acquire.Component.isValid to check if this property is available or not.

◆ basedOn

readonly PropertyS basedOn = new PropertyS()
inherited

A string property (read-only) containing the name of the setting this setting is based on.

Since
1.12.67

◆ binningMode

readonly EnumPropertyI<TCameraBinningMode> binningMode = new EnumPropertyI<TCameraBinningMode>()
inherited

An enumerated integer property defining the binning mode the camera is operated in.

By default the no binning will be performed.

Note
Not every camera will support every binning mode. To find out which binning modes are supported by your camera you can query the properties translation table with the functions mv.impact.acquire.EnumPropertyI<T>.getTranslationDictString and mv.impact.acquire.EnumPropertyI<T>.getTranslationDictValue There is a more efficient function mv.impact.acquire.PropertyICameraBinningMode.getTranslationDict. in addition to the functions mentioned above.

Valid values for this property are defined by the enumeration mv.impact.acquire.TCameraBinningMode.

◆ expose_us

readonly PropertyI expose_us = new PropertyI()
inherited

An integer property which defines the exposure time for an image in us.

◆ exposeMode

readonly EnumPropertyI<TCameraExposeMode> exposeMode = new EnumPropertyI<TCameraExposeMode>()
inherited

An enumerated integer property defining the exposure mode the camera sensor is operated in.

Valid values for this property are defined by the enumeration mv.impact.acquire.TCameraExposeMode.

Note
Not every device will offer the same options. Check for valid modes by reading the properties translation dictionary with the functions mv.impact.acquire.EnumPropertyI<T>.getTranslationDictString and mv.impact.acquire.EnumPropertyI<T>.getTranslationDictValue. There is a more efficient function mv.impact.acquire.PropertyICameraExposeMode.getTranslationDict in addition to the functions mentioned above.

◆ frameDelay_us

readonly PropertyI frameDelay_us = new PropertyI()
inherited

An integer property defining the delay in us between an external trigger event an the begin of the sensor exposure.

Note
This property is not supported by every device. Therefore always call the function mv.impact.acquire.Component.isValid to check if this property is available or not.

◆ frameRate_Hz

readonly PropertyF frameRate_Hz = new PropertyF()

A float property defining the frame rate (in Hz) this device shall use to transfer images.

Depending on other parameters the desired frame rate might not be achievable (e.g. if the exposure time is higher than the frame period. In that case the device will automatically reduce the frame rate.

Note
This property is not supported by every device. Therefore always call the function mv.impact.acquire.Component.isValid to check if this property is available or not.

◆ gain_dB

readonly PropertyF gain_dB = new PropertyF()
inherited

A float property defining the gain in dB.

The formula for given gain_dB is

gain_x= 10 ^ (gain_dB/20)

Example:

gain_x = 10 ^ (6/20) = 1.995

I.e. increasing the gain setting by 6dB corresponds to factor of 2.

The formula for given gain_x is

gain_dB = 20*log(gain_x) dB

Where:
gain_dB: Balluff gain value (logarithmic)
gain_x: multiplicative gain
^: power function

◆ imageRequestTimeout_ms

readonly PropertyI imageRequestTimeout_ms = new PropertyI()
inherited

An integer property defining the maximum time to wait for an image in ms.

Attention
Since Impact Acquire 2.32.0 the default value for this property has been changed! See Calling 'imageRequestWaitFor' Never Returns / An Application No Longer Terminates After Upgrading To Impact Acquire 2.32.0 Or Greater for details.

When this property is set to 0 the timeout never elapses. If the timeout this property defines elapses the currently processed request will be returned to the user even if no data has been captured so far. The result structure of the request object should be examined in that case. Also this should be considered as an error from the users point of view in which case he should clean up the acquisition queue by calling mv.impact.acquire.FunctionInterface.imageRequestReset. Afterwards the capture loop can be restarted.

Note
It is crucial to understand that this is a timeout PER REQUEST! The timespan taken into account for the measurement starts when the driver begins to capture data into this particular buffer! So when queuing 4 buffers with a timeout of 3000 ms each and no data being transmitted by the device for any reason will cause the last buffer to time out 3000*4 = 12000 ms AFTER the buffer has been queued and the acquisition has been started as the driver will wait for up to 3 seconds for each buffer that is being processed. When the device sends data this timeout does not affect the runtime behaviour at all. No additional delay is introduced by it when everything runs as planned.
Examples
Callback.cs.

◆ offset_pc

readonly PropertyF offset_pc = new PropertyF()
inherited

A float property defining the analogue sensor offset in percent of the allowed range (sensor specific).

This property influences the average grey level when no light reaches the sensor.

mvBlueFOX specific: Changing its value will have no effect if mv.impact.acquire.CameraSettingsBlueFOX.offsetAutoCalibration is set to mv.impact.acquire.TAutoOffsetCalibration.aocOn.

By default this value will be around 10 (if mv.impact.acquire.CameraSettingsBlueFOX.offsetAutoCalibration if set to mv.impact.acquire.TAutoOffsetCalibration.aocOn). This means the average grey value for an image taken in a completely dark environment will be around 10. When setting mv.impact.acquire.CameraSettingsBlueFOX.offsetAutoCalibration to mv.impact.acquire.TAutoOffsetCalibration.aocOff mv.impact.acquire.CameraSettingsBlueFOX.offset_pc can be used to modify this value.

The valid range for this property lies between -100% and +100%, whereas negative values will shifts the black level towards 0 and positive values to 255.

Note
This property might not be supported by every device. Therefore always call the function mv.impact.acquire.Component.isValid to check if this property is available or not.

◆ partialScanMode

readonly PropertyIBoolean partialScanMode = new PropertyIBoolean()

An enumerated integer property defining whether partial scan mode shall be used or not.

This property currently is only available for mvBlueCOUGAR-S devices. When partial scan mode is active, the frame rate can no longer be controlled be the property mv.impact.acquire.CameraSettingsBlueCOUGAR.frameRate_Hz. The device will always transmit frames as fast as possible instead.

Valid values for this property are defined by the enumeration mv.impact.acquire.TBoolean.

◆ pixelClock_KHz

readonly EnumPropertyI<TCameraPixelClock> pixelClock_KHz = new EnumPropertyI<TCameraPixelClock>()
inherited

An enumerated integer property defining the pixel clock of the camera sensor in KHz.

Valid values for this property are defined by the enumeration mv.impact.acquire.TCameraPixelClock.

Note
Changing the pixel clock at runtime will have major impact on the overall behaviour of the camera. The pixel clock should therefore not be modified constantly during the execution of the application code. Whenever this property is changed, the next images captured should be skipped if a device works with an active auto offset calibration controller circuit as then the control circuits on the camera might need one to three images until all control loops are locked again.

Every device or even different models belonging to the same device family may support different pixel clocks, thus it's crucial to query the valid clock modes for each sensor by reading the properties translation dictionary.

◆ pixelFormat

An enumerated integer property defining the pixel format used to transfer the image data into the target systems host memory.

Support for this property has been added in version 1.11.0 of Impact Acquire thus old driver versions will raise an exception if an application accesses the property without checking if the property is present.

By default this property will be set to mv.impact.acquire.TImageBufferPixelFormat.ibpfAuto. This will result in the previous driver behaviour where depending on the various post processing steps that are enabled or disabled the driver will decide which transfer format will be used. However sometimes this could result in a transfer format, which is not ideal for the application (e.g. when a post processing step of the application needs RGBx888Packed but the systems bandwidth is limited the application might want to transfer the data in YUV422 packed and then use the fast format conversion algorithm in the driver). This can be achieved by explicitly setting mv.impact.acquire.CameraSettingsBase.pixelFormat to mv.impact.acquire.TImageBufferPixelFormat.ibpfYUV422Packed and mv.impact.acquire.ImageDestination.pixelFormat to mv.impact.acquire.TImageBufferPixelFormat.ibpfRGBx888Packed.

Note
Selecting a defined transfer format can in some cases result in certain filters (e.g. dark current, ...) to be switched of as then the filters themselves can no longer influence the transfer format, which is sometimes necessary as not every filter does support every input format. Also this property will contain only pixel formats, which are actually supported by the capture device, thus in most of the cases this will be a subset of the enumeration defining this property.

Valid values for this property are defined by the enumeration mv.impact.acquire.TImageBufferPixelFormat.

◆ testMode

readonly EnumPropertyI<TCameraTestMode> testMode = new EnumPropertyI<TCameraTestMode>()
inherited

An enumerated integer property defining the image transmission mode of the camera.

If this property is set to mv.impact.acquire.TCameraTestMode.ctmOff the 'normal' image captured by the cameras sensor will be transmitted. This is the default. To ensure correct operation the camera might define several test modes where some kind of well defined pattern will be transmitted.

Valid values for this property are defined by the enumeration mv.impact.acquire.TCameraTestMode. No every test mode will be supported by every device.

◆ triggerInterface

An enumerated integer property defining which view of the trigger interface to use.

This property mainly switches the visibility of trigger the different trigger interfaces. After applying changes to this property all trigger related features might have a different visibility. However the documentation will state what features are available in which mode.

Valid values for this property are defined by the enumeration mv.impact.acquire.TDeviceTriggerInterface.

◆ triggerMode

readonly EnumPropertyI<TCameraTriggerMode> triggerMode = new EnumPropertyI<TCameraTriggerMode>()
inherited

An enumerated integer property which defines what kind of trigger mode shall be used for an image acquisition.

Valid values for this property are defined by the enumeration mv.impact.acquire.TCameraTriggerMode.

Note
Not every device will support every trigger mode. To find out which trigger modes are supported by a specific device at runtime the properties translation dictionary should be queried.
Also the sensor specific part of this manual will contain a list of trigger modes that are available for this specific image sensor.

◆ triggerSource

An enumerated integer property defining where the trigger signal is expected to occur.

When working with hardware generated signals via mv.impact.acquire.RTCtrProgram objects this property should be set to mv.impact.acquire.TCameraTriggerSource.ctsRTCtrl as otherwise the program will not affect the behaviour of the camera.

Valid values for this property are defined by the enumeration mv.impact.acquire.TCameraTriggerSource.

Note
This feature will only be visible and thus available, when mv.impact.acquire.CameraSettingsBlueCOUGAR.triggerInterface is set to mv.impact.acquire.TDeviceTriggerInterface.dtiStandard.

Property Documentation

◆ componentEnumerable

IEnumerable<Component> componentEnumerable
getinherited

Returns an enumerator that iterates through the collection.

This interface will allow to e.g. write code like this:

Info info = new Info(pDev);
foreach (Component c in info.componentEnumerable)
{
Console.WriteLine("{0}", c.name);
}
String name
Returns the name of the component referenced by this object.
Definition ComponentAccess.cs:167
IEnumerable< Component > componentEnumerable
Returns an enumerator that iterates through the collection.
Definition ComponentCollection.cs:202
A base class to implement access to internal driver components.
Definition Component.cs:133

See the framework's documentation about the System.Collections.IEnumerable interface for more information.

Returns
An enumerator that iterates through the collection

◆ componentListEnumerable

IEnumerable<ComponentList> componentListEnumerable
getinherited

Returns an enumerator that iterates through all the mv.impact.acquire.ComponentList elements in the collection.

This interface will allow to e.g. write code like this:

Info info = new Info(pDev);
{
Console.WriteLine("{0}", cl.name);
}
IEnumerable< ComponentList > componentListEnumerable
Returns an enumerator that iterates through all the mv.impact.acquire.ComponentList elements in the c...
Definition ComponentCollection.cs:229
A class to provide access to component lists.
Definition ComponentList.cs:14

See the framework's documentation about the System.Collections.IEnumerable interface for more information.

Returns
An enumerator that iterates through the collection

◆ hObj

int hObj
getinherited

Returns a unique identifier for the component collection referenced by this object.

This handle will always reference an object of type mv.impact.acquire.ComponentList.

Returns
A unique identifier for the component referenced by this object.

◆ triggerControlCount

int triggerControlCount
get

Returns the number of mv.impact.acquire.TriggerControls available for this device.

This might be 0 if the device either does not support this feature.