Impact Acquire SDK C++
Statistics Class Reference

Contains basic statistical information. More...

#include <mvIMPACT_acquire.h>

Inheritance diagram for Statistics:
[legend]

Public Member Functions

HOBJ hObj (void) const
 Returns a unique identifier for the component collection referenced by this object.
 
int reset (void) const
 Resets all statistical properties.
 
const ComponentCollectionrestoreDefault (void) const
 Restores the default for every component of this collection.
 
 Statistics (Device *pDev)
 

Public Attributes

PropertyI abortedRequestsCount
 An integer property (read-only) containing the overall count of image requests which have been aborted since the mvIMPACT::acquire::Device has been opened OR since the last call to mvIMPACT::acquire::Statistics::reset().
 
PropertyF bandwidthConsumed
 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.
 
PropertyF captureTime_s
 A float property (read-only) containing the overall time an image request spent in the device drivers processing chain.
 
PropertyI errorCount
 An integer property (read-only) containing the overall count of image requests which returned with an error since the mvIMPACT::acquire::Device has been opened OR since the last call to mvIMPACT::acquire::Statistics::reset().
 
PropertyF formatConvertTime_s
 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 mvIMPACT::acquire::ImageDestination::pixelFormat internally.
 
PropertyI frameCount
 An integer property (read-only) containing the overall count of images captured since the mvIMPACT::acquire::Device has been opened OR since the last call to mvIMPACT::acquire::Statistics::reset().
 
PropertyI framesIncompleteCount
 An integer property (read-only) containing the overall count of image requests which haven't been captured completely since the mvIMPACT::acquire::Device has been opened.
 
PropertyF framesPerSecond
 A float property (read-only) containing the current number of frames captured per second.
 
PropertyF imageProcTime_s
 An integer property (read-only) containing the time (in seconds) needed to process the image data internally.
 
PropertyI lostImagesCount
 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.
 
PropertyF missingDataAverage_pc
 A float property (read-only) containing the average amount of data missing in frames that haven't been captured completely since the mvIMPACT::acquire::Device has been opened OR since the last call to mvIMPACT::acquire::Statistics::reset().
 
PropertyF queueTime_s
 A float property (read-only) containing the average time (in seconds) a mvIMPACT::acquire::Request object spends in the request queue of the device.
 
PropertyI64 retransmitCount
 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 mvIMPACT::acquire::Device has been opened OR since the last call to mvIMPACT::acquire::Statistics::reset().
 
PropertyI timedOutRequestsCount
 An integer property (read-only) containing the overall count of image requests which have timed out since the mvIMPACT::acquire::Device has been opened OR since the last call to mvIMPACT::acquire::Statistics::reset().
 

Protected Attributes

HOBJ m_hRoot
 

Detailed Description

Constructor & Destructor Documentation

◆ Statistics()

Statistics ( Device * pDev)
inlineexplicit
Parameters
[in]pDevA pointer to a mvIMPACT::acquire::Device object obtained from a mvIMPACT::acquire::DeviceManager object.

Member Function Documentation

◆ hObj()

HOBJ hObj ( void ) const
inlineinherited

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

This handle will always reference an object of type mvIMPACT::acquire::ComponentList.

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

◆ reset()

int reset ( void ) const
inline

Resets all statistical properties.

Returns

◆ restoreDefault()

const ComponentCollection & restoreDefault ( void ) const
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.
Returns
A const reference to the component.

Member Data Documentation

◆ abortedRequestsCount

PropertyI abortedRequestsCount

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

◆ bandwidthConsumed

PropertyF bandwidthConsumed

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

PropertyF captureTime_s

A float property (read-only) containing the overall time an image request spent in the device drivers processing chain.

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
ContinuousCapture.cpp, ContinuousCapture.linux.cpp, ContinuousCaptureAllFormats.cpp, ContinuousCaptureFFmpeg.cpp, ContinuousCaptureGenDC.cpp, ContinuousCaptureMultiPart.cpp, ContinuousCapture_BVS-3D-RV0.cpp, ContinuousCapture_BVS-3D-RV1.cpp, GenICamCommonSettingsUsage.cpp, GenICamInterfaceLayout.cpp, and SequenceCapture.cpp.

◆ errorCount

◆ formatConvertTime_s

PropertyF formatConvertTime_s

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 mvIMPACT::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 mvIMPACT::acquire::Statistics::imageProcTime_s.

Since
1.12.58

◆ frameCount

PropertyI frameCount

An integer property (read-only) containing the overall count of images captured since the mvIMPACT::acquire::Device has been opened OR since the last call to mvIMPACT::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 mvIMPACT::acquire::FunctionInterface::imageRequestReset or mvIMPACT::acquire::FunctionInterface::acquisitionStop) or the data was not completely captured.

Examples
ContinuousCaptureDirectX.cpp, SingleCaptureMasterSlave.cpp, and SingleCaptureMasterSlave.legacy.cpp.

◆ framesIncompleteCount

PropertyI framesIncompleteCount

An integer property (read-only) containing the overall count of image requests which haven't been captured completely since the mvIMPACT::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 mvIMPACT::acquire::Component::isValid returns false) a driver update will fix this.

◆ framesPerSecond

PropertyF framesPerSecond

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 mvIMPACT::acquire::FunctionInterface::acquisitionStop() or mvIMPACT::acquire::FunctionInterface::imageRequestReset() or the internal request queue has run out of buffers for more than 200 milliseconds.

See also
The Capture Process
Examples
ContinuousCapture.cpp, ContinuousCapture.linux.cpp, ContinuousCaptureAllFormats.cpp, ContinuousCaptureDirectX.cpp, ContinuousCaptureFFmpeg.cpp, ContinuousCaptureGenDC.cpp, ContinuousCaptureMultiPart.cpp, ContinuousCapture_BVS-3D-RV0.cpp, ContinuousCapture_BVS-3D-RV1.cpp, GenICamCommonSettingsUsage.cpp, GenICamInterfaceLayout.cpp, SequenceCapture.cpp, SingleCaptureMasterSlave.cpp, and SingleCaptureMasterSlave.legacy.cpp.

◆ imageProcTime_s

PropertyF imageProcTime_s

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

PropertyI lostImagesCount

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 mvIMPACT::acquire::Component::isValid returns false) a driver update will fix this.

◆ m_hRoot

HOBJ m_hRoot
protectedinherited

◆ missingDataAverage_pc

PropertyF missingDataAverage_pc

A float property (read-only) containing the average amount of data missing in frames that haven't been captured completely since the mvIMPACT::acquire::Device has been opened OR since the last call to mvIMPACT::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 mvIMPACT::acquire::Component::isValid returns false) a driver update will fix this.

◆ queueTime_s

PropertyF queueTime_s

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

This is the time between a call to mvIMPACT::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

PropertyI64 retransmitCount

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 mvIMPACT::acquire::Device has been opened OR since the last call to mvIMPACT::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 mvIMPACT::acquire::Component::isValid returns false) a driver update will fix this.

◆ timedOutRequestsCount

PropertyI timedOutRequestsCount

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