Impact Acquire SDK .NET
Statistics Class Reference

Contains statistical information. More...

Inheritance diagram for Statistics:
[legend]

Public Member Functions

IEnumerable< TgetEnumerable< T > ()
 Returns an enumerator of a certain type that iterates through the collection.
 
IEnumerator< intGetEnumerator ()
 Returns an enumerator that iterates through the collection.
 
int reset ()
 Resets all statistical properties.
 
void restoreDefault ()
 Restores the default for every component of this collection.
 
 Statistics (Device device)
 Constructs a new mv.impact.acquire.Statistics object.
 

Public Attributes

readonly PropertyI abortedRequestsCount = new PropertyI()
 An integer property (read-only) containing the overall count of image requests which have been aborted since the mv.impact.acquire.Device has been opened OR since the last call to mv.impact.acquire.Statistics.reset().
 
readonly PropertyF bandwidthConsumed = new PropertyF()
 A float property (read-only) containing the current bandwidth consumed by this device in KB/s based on the average buffer size and the timestamps delivered from the device driver.
 
readonly PropertyF captureTime_s = new PropertyF()
 A float property (read-only) containing the average time needed to capture an image.
 
readonly PropertyI errorCount = new PropertyI()
 An integer property (read-only) containing the overall count of image requests which returned with an error since the mv.impact.acquire.Device has been opened OR since the last call to mv.impact.acquire.Statistics.reset().
 
readonly PropertyF formatConvertTime_s = new PropertyF()
 An integer property (read-only) containing the time (in seconds) needed to convert the image data delivered by the hardware and/or active internal driver filter nodes to the format specified by mv.impact.acquire.ImageDestination.pixelFormat internally.
 
readonly PropertyI frameCount = new PropertyI()
 An integer property (read-only) containing the overall count of images captured since the mv.impact.acquire.Device has been opened OR since the last call to mv.impact.acquire.Statistics.reset().
 
readonly PropertyI framesIncompleteCount = new PropertyI()
 An integer property (read-only) containing the overall count of image requests which haven't been captured completely since the mv.impact.acquire.Device has been opened.
 
readonly PropertyF framesPerSecond = new PropertyF()
 A float property (read-only) containing the current number of frames captured per second.
 
readonly PropertyF imageProcTime_s = new PropertyF()
 An integer property (read-only) containing the time (in seconds) needed to process the image data internally.
 
readonly PropertyI lostImagesCount = new PropertyI()
 An integer property (read-only) containing the number of images that have been lost from a continuous image stream coming from a video signal source.
 
readonly PropertyF missingDataAverage_pc = new PropertyF()
 A float property (read-only) containing the average amount of data missing in frames that haven't been captured completely since the mv.impact.acquire.Device has been opened OR since the last call to mv.impact.acquire.Statistics.reset().
 
readonly PropertyF queueTime_s = new PropertyF()
 A float property (read-only) containing the average time (in seconds) a mv.impact.acquire.Request object spends in the request queue of the device.
 
readonly PropertyI64 retransmitCount = new PropertyI64()
 A 64 bit integer property (read-only) containing the number of retransmit requests issued due to temporary bus bandwidth shortages or other transmission problems since this mv.impact.acquire.Device has been opened OR since the last call to mv.impact.acquire.Statistics.reset().
 
readonly PropertyI timedOutRequestsCount = new PropertyI()
 An integer property (read-only) containing the overall count of image requests which have timed out since the mv.impact.acquire.Device has been opened OR since the last call to mv.impact.acquire.Statistics.reset().
 

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.
 

Detailed Description

Contains statistical information.

This class contains general statistical information about the mv.impact.acquire.Device and the the current image acquisition progress.

Examples
CaptureToUserMemory.cs, ContinuousCapture.cs, ContinuousCaptureAllDevices.cs, ContinuousSaveImage.cs, GenICamCommonSettingsUsage.cs, and GenICamInterfaceLayout.cs.

Constructor & Destructor Documentation

◆ Statistics()

Statistics ( Device device)
inline

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

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

Member Function Documentation

◆ 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>())
{
}
A template class to represent 32 bit integer properties and 32 bit enumerated integer properties.
Definition EnumPropertyI.cs:61
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

◆ reset()

int reset ( )
inline

Resets all statistical properties.

Returns
Examples
ContinuousSaveImage.cs.

◆ 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.

Member Data Documentation

◆ abortedRequestsCount

readonly PropertyI abortedRequestsCount = new PropertyI()

An integer property (read-only) containing the overall count of image requests which have been aborted since the mv.impact.acquire.Device has been opened OR since the last call to mv.impact.acquire.Statistics.reset().

◆ bandwidthConsumed

readonly PropertyF bandwidthConsumed = new PropertyF()

A float property (read-only) containing the current bandwidth consumed by this device in KB/s based on the average buffer size and the timestamps delivered from the device driver.

Since
2.12.3

◆ captureTime_s

readonly PropertyF captureTime_s = new PropertyF()

A float property (read-only) containing the average time needed to capture an image.

This time is NOT the reciprocal of the frame rate, but usually a much longer period of time as it includes the time elapsed from sending the request into the capture queue until the buffer has been placed back into one of the result queues again. This time increases with the amount of requests being used.

Examples
CaptureToUserMemory.cs, ContinuousCapture.cs, ContinuousCaptureAllDevices.cs, GenICamCommonSettingsUsage.cs, and GenICamInterfaceLayout.cs.

◆ errorCount

readonly PropertyI errorCount = new PropertyI()

An integer property (read-only) containing the overall count of image requests which returned with an error since the mv.impact.acquire.Device has been opened OR since the last call to mv.impact.acquire.Statistics.reset().

Examples
CaptureToUserMemory.cs, ContinuousCapture.cs, ContinuousCaptureAllDevices.cs, ContinuousSaveImage.cs, GenICamCommonSettingsUsage.cs, and GenICamInterfaceLayout.cs.

◆ formatConvertTime_s

readonly PropertyF formatConvertTime_s = new PropertyF()

An integer property (read-only) containing the time (in seconds) needed to convert the image data delivered by the hardware and/or active internal driver filter nodes to the format specified by mv.impact.acquire.ImageDestination.pixelFormat internally.

This time will be almost 0 when no custom destination pixel format has been specified and if a custom destination format was selected and this format differs from the pixel format that is transferred by the hardware this time will be a part (or all, but never more) than the time reported by mv.impact.acquire.Statistics.imageProcTime_s.

Since
1.12.58

◆ frameCount

readonly PropertyI frameCount = new PropertyI()

An integer property (read-only) containing the overall count of images captured since the mv.impact.acquire.Device has been opened OR since the last call to mv.impact.acquire.Statistics.reset().

This counter is incremented regardless of the result a request is returned with thus also e.g. if a request did time out, was aborted(e.g. due to a call to mv.impact.acquire.FunctionInterface.imageRequestReset or mv.impact.acquire.FunctionInterface.acquisitionStop) or the data was not completely captured.

◆ framesIncompleteCount

readonly PropertyI framesIncompleteCount = new PropertyI()

An integer property (read-only) containing the overall count of image requests which haven't been captured completely since the mv.impact.acquire.Device has been opened.

This value is a good indicator for bandwidth problems on the device to host connection.

Note
This feature is supported by every device driver. If a device does not seem to support this feature (calling mv.impact.acquire.Component.isValid returns false) a driver update will fix this.

◆ framesPerSecond

readonly PropertyF framesPerSecond = new PropertyF()

A float property (read-only) containing the current number of frames captured per second.

This property is calculated from a running average where the current difference between 2 consecutive frames contributes 30 percent to the new value while the remaining 70 percent are used from the previous value to avoid sudden strong fluctuations in case a frame is missing of trigger frequencies are not constant.

This property is reset to 0.0 automatically if the acquisition either has been stopped by calling mv.impact.acquire.FunctionInterface.acquisitionStop() or mv.impact.acquire.FunctionInterface.imageRequestReset() or the internal request queue has run out of buffers for more than 200 milliseconds.

See also
The Capture Process
Examples
CaptureToUserMemory.cs, ContinuousCapture.cs, ContinuousCaptureAllDevices.cs, ContinuousSaveImage.cs, GenICamCommonSettingsUsage.cs, and GenICamInterfaceLayout.cs.

◆ imageProcTime_s

readonly PropertyF imageProcTime_s = new PropertyF()

An integer property (read-only) containing the time (in seconds) needed to process the image data internally.

This time might be interesting e.g. if the image data is transformed into a color image by the driver (e.g. when working with Bayer mosaic cameras) or if any other processing function is applied to the image before it is transferred to the user.

◆ lostImagesCount

readonly PropertyI lostImagesCount = new PropertyI()

An integer property (read-only) containing the number of images that have been lost from a continuous image stream coming from a video signal source.

Note
For some devices this value is based on an assumption so it's by no means absolutely accurate, but when this value starts to increase this might indicate that a problem is present.

Possible causes (among others) might be:

  • the capture device or device driver can't cope with the amount of data the video signal source is delivering in the current mode of operation
  • the capture device or device driver can't transfer all the data to the host PC because of bus bandwidth shortages
  • the capture device or device driver image request queue ran low because the system is busy doing other things or because of a bug in the application
Note
This feature is supported by every device driver. If a device does not seem to support this feature (calling mv.impact.acquire.Component.isValid returns false) a driver update will fix this.
Examples
ContinuousSaveImage.cs.

◆ missingDataAverage_pc

readonly PropertyF missingDataAverage_pc = new PropertyF()

A float property (read-only) containing the average amount of data missing in frames that haven't been captured completely since the mv.impact.acquire.Device has been opened OR since the last call to mv.impact.acquire.Statistics.reset().

This value is a good indicator for bandwidth problems on the device to host connection.

Note
This feature is supported by every device driver. If a device does not seem to support this feature (calling mv.impact.acquire.Component.isValid returns false) a driver update will fix this.

◆ queueTime_s

readonly PropertyF queueTime_s = new PropertyF()

A float property (read-only) containing the average time (in seconds) a mv.impact.acquire.Request object spends in the request queue of the device.

This is the time between a call to mv.impact.acquire.FunctionInterface.imageRequestSingle() and the time the driver actually uses this buffer to capture data into it or to forward it into a kernel driver.

◆ retransmitCount

readonly PropertyI64 retransmitCount = new PropertyI64()

A 64 bit integer property (read-only) containing the number of retransmit requests issued due to temporary bus bandwidth shortages or other transmission problems since this mv.impact.acquire.Device has been opened OR since the last call to mv.impact.acquire.Statistics.reset().

This value can be an indicator for transmission problems because of bad signal quality or bus bandwidth shortages in the system. Ideally this property should stay 0 all the time if the system can cope with the amount of data transferred and the signal quality is good. However it might increase slowly and still every frame will be flawless as the driver internally was able to restore the lost data by re-requesting it from the video signal source again.

Note
This feature is supported by every device driver. If a device does not seem to support this feature (calling mv.impact.acquire.Component.isValid returns false) a driver update will fix this.

◆ timedOutRequestsCount

readonly PropertyI timedOutRequestsCount = new PropertyI()

An integer property (read-only) containing the overall count of image requests which have timed out since the mv.impact.acquire.Device has been opened OR since the last call to mv.impact.acquire.Statistics.reset().

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
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);
foreach (ComponentList cl in info.componentListEnumerable)
{
Console.WriteLine("{0}", cl.name);
}
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.