Impact Acquire SDK .NET
CustomCommandGenerator Class Reference

Contains convenience functions to control features understood by a devices custom command interpreter. More...

Public Member Functions

 CustomCommandGenerator (Device device)
 Constructs a new mv.impact.acquire.GenICam.CustomCommandGenerator object.
 
 CustomCommandGenerator (Device device, String settingName)
 Constructs a new mv.impact.acquire.GenICam.CustomCommandGenerator object.
 
void discardCommandBuffer ()
 Discards all pending custom commands to the device.
 
int modifySequencerSetValue (Int64 sequencerSet, TSequencerSetParameter parameter, double value)
 Modifies a value of a certain sequencer set at runtime.
 
int modifySequencerSetValue (Int64 sequencerSet, TSequencerSetParameter parameter, Int64 value)
 Modifies a value of a certain sequencer set at runtime.
 
int queueSequencerSetValueModification (Int64 sequencerSet, TSequencerSetParameter parameter, double value)
 Queues the modification of a value of a certain sequencer set at runtime.
 
int queueSequencerSetValueModification (Int64 sequencerSet, TSequencerSetParameter parameter, Int64 value)
 Queues the modification of a value of a certain sequencer set at runtime.
 
int queueTransmissionRequest (Int64 timestamp_us, int offsetX, int offsetY, int width, int height, TRequestTransmissionMode mode, uint identifier)
 Request the transmission of an image with a certain timestamp in a different mode/ROI.
 
int queueTransmissionRequest (Request pRequest)
 Queues the transmission request of an image currently associated with the Request object in a different mode/ROI.
 
int queueTransmissionRequest (Request pRequest, int offsetX, int offsetY, int width, int height, TRequestTransmissionMode mode)
 Queues the transmission request of an image currently associated with the Request object in a different mode/ROI.
 
int queueTransmissionRequest (Request pRequest, int offsetX, int offsetY, int width, int height, TRequestTransmissionMode mode, uint identifier)
 Request the transmission of an image currently associated with the Request object in a different mode/ROI.
 
int queueTransmissionRequest (Request pRequest, uint identifier)
 Queues the transmission request of an image currently associated with the Request object in a different mode/ROI.
 
int requestTransmission (Int64 timestamp_us, int offsetX, int offsetY, int width, int height, TRequestTransmissionMode mode, uint identifier)
 Request the transmission of an image with a certain timestamp in a different mode/ROI.
 
int requestTransmission (Request pRequest)
 Request the transmission of an image currently associated with the Request object in a different mode/ROI.
 
int requestTransmission (Request pRequest, int offsetX, int offsetY, int width, int height, TRequestTransmissionMode mode)
 Request the transmission of an image currently associated with the Request object in a different mode/ROI.
 
int requestTransmission (Request pRequest, int offsetX, int offsetY, int width, int height, TRequestTransmissionMode mode, uint identifier)
 Request the transmission of an image currently associated with the Request object in a different mode/ROI.
 
int requestTransmission (Request pRequest, uint identifier)
 Request the transmission of an image currently associated with the Request object in a different mode/ROI.
 
int sendCommandBuffer ()
 Applies all pending custom commands to the device.
 

Properties

uint commandBufferSize [get]
 Returns the size of the command buffer for this device in bytes.
 
uint commandBufferSizeUsed [get]
 Returns the amount of bytes of the command buffer currently used(thus the amount of bytes that await sending) for this device in bytes.
 

Detailed Description

Contains convenience functions to control features understood by a devices custom command interpreter.

Contains convenience functions to control features understood by a devices custom command interpreter.

Note
Creating an instance of this class will only succeed when the device associated with this object supports the mv.impact.acquire.GenICam.mvCustomData.mvCustomCommandBuffer feature. If the feature is not supported an exception will be raised!

This class will allow to create various special commands understood by some MATRIX VISION and Balluff imaging devices. For example an application can modify parameters in a running sequencer program without stopping the acquisition engine and/or the sequencer program (see mv.impact.acquire.GenICam.SequencerControl and the corresponding use cases for details). This allows changes to be applied much faster than with a conventional approach which would work like this:

sc.sequencerMode.writeS("Off");
sc.sequencerConfigurationMode.writeS("On");
sc.sequencerSetSelector.write(2);
sc.sequencerSetLoad.call(); // needed as otherwise other parameters in the set might get changed as well.
ac.exposureTime.write(20000);
sc.sequencerSetSave.call();
sc.sequencerConfigurationMode.writeS("Off");
sc.sequencerMode.writeS("On");
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
Category for the acquisition and trigger control features.
Definition mvIMPACT_acquire_GenICam.autogen.cs:1934
Category for the Sequencer Control features.
Definition mvIMPACT_acquire_GenICam.autogen.cs:8952
Property writeS(String value)
Assigns a new value to this property.
Definition Property.cs:667
This namespace contains classes and functions belonging to the GenICam specific part of the image acq...
Definition GenTLDriverConfigurator.cs:6
This namespace contains classes and functions belonging to the image acquisition module of this SDK.
Definition Enumerations.cs:2
Definition Enumerations.cs:2
Definition Enumerations.cs:2

A single parameter in a defined sequencer set can be modified much faster at runtime like this:

// change the exposure time in sequencer set 2 to 30000 us.
ccg.modifySequencerSetValue(2, TSequencerSetParameter.sspExposureTime, 30000);
Contains convenience functions to control features understood by a devices custom command interpreter...
Definition mvIMPACT_acquire_GenICam_CustomCommands.cs:362
TSequencerSetParameter
Defines valid parameters that can be modified within a sequencer set at runtime.
Definition mvIMPACT_acquire_GenICam_CustomCommands.cs:131
Attention
In a real world application the instance of mv.impact.acquire.GenICam.CustomCommandGenerator should be a member of a class or stored elsewhere as constructing objects from the mv.impact.acquire.GenICam namespace is taking time so this shouldn't be done for each command that shall be sent!

This class uses an internal command buffer which allows an application to send multiple change commands in a single packet. This can be achieved like this:

// queue 2 parameter change requests
// change the \c AnalogAll gain in sequencer set 0 to 3.14 dB.
ccg.queueSequencerSetValueModification(0, mv.impact.acquire.GenICam.TSequencerSetParameter.sspGain_AnalogAll, 3.14);
// change the exposure time in sequencer set 1 to 20000 us.
ccg.queueSequencerSetValueModification(1, TSequencerSetParameter.sspExposureTime, 20000);
// send the 2 modifications in a single package
ccg.sendCommandBuffer();

The command queue NEVER overflows. When no more data can be stored in the queue before queuing the next parameter change all the pending changes will be transmitted to the device. Calling mv.impact.acquire.GenICam.CustomCommandGenerator.queueSequencerSetValueModification and mv.impact.acquire.GenICam.CustomCommandGenerator.sendCommandBuffer directly afterwards is equivalent to call mv.impact.acquire.GenICam.CustomCommandGenerator.modifySequencerSetValue. So the previous example can also be rewritten like this:

// queue 2 parameter change requests
// change the \c AnalogAll gain in sequencer set 0 to 3.14 dB.
ccg.queueSequencerSetValueModification(0, TSequencerSetParameter.sspGain_AnalogAll, 3.14);
// change the exposure time in sequencer set 1 to 20000 us and send both requests to the device in a single packet.
ccg.modifySequencerSetValue(1, TSequencerSetParameter.sspExposureTime, 20000);

Because there can never be an overflow of the command queue even this code is valid:

for (int i = 0; i < 100; i += 2)
{
// if the command buffer is full everything should be sent to the device thus no error should be returned here
ccg.queueSequencerSetValueModification(i % 5, GenICam.TSequencerSetParameter.sspCounterDuration_Counter1, i * 100);
ccg.queueSequencerSetValueModification(i % 5, GenICam.TSequencerSetParameter.sspExposureTime, ac.exposureTime.minValue + (double)(i * 10));
}
T minValue
Reads the minimum value from a property.
Definition EnumPropertyI.cs:586

Apart from modifying sequencer sets at runtime some MATRIX VISION and Balluff imaging devices support the so called Smart Frame Recall feature. For more information about the feature itself please refer to the corresponding use case in the product documentation. A .NET example written in C# is available that demonstrates Smart Frame Recall feature. The example is called SmartFrameRecall an can be found in the examples section of this documentation. The source code is shipped as part of this SDK. It however is rather complex as it makes use of WindowsForms as well. Therefore there is also a C++ example GenICamSmartFrameRecallUsage which can be read to get a first glimpse. The source code and the documentation of this example can be found in the C++ version of this documentation. The mv.impact.acquire.GenICam.CustomCommandGenerator provides functions to request a full resolution version of an image based on a mv.impact.acquire.Request object containing an image with reduced resolution passed to it (internally the relevant piece of information is the timestamp of the image to request). To request an image an application can call one of the various versions of the mv.impact.acquire.GenICam.CustomCommandGenerator.requestTransmission functions.

{
Int64 value = min + (Int64)((max - min + 1) * r.NextDouble());
}
// more code
// switch on the smart frame recall feature
ac.mvSmartFrameRecallEnable.write(TBoolean.bTrue);
// more code
// request the transmission of an arbitrary ROI of this image in full resolution
int w = getNextRandomValue(r, 1, pRequest.imageWidth.read());
int h = getNextRandomValue(r, 1, pRequest.imageHeight.read());
int x = getNextRandomValue(r, 0, pRequest.imageWidth.read() - w);
int y = getNextRandomValue(r, 0, pRequest.imageHeight.read() - h);
ccg.requestTransmission(pRequest, x, y, w, h, GenICam.TRequestTransmissionMode.rtmFullResolution);
T read()
Reads a value from a property.
Definition EnumPropertyI.cs:342
Contains information about a captured buffer.
Definition Request.cs:77
TBoolean
Defines a Boolean value type.
Definition mvDriverBaseEnums.cs:481

To allow the application to distinguish easily between images belonging to the reduced data stream and the ones that have been explicitly requested by the application the mv.impact.acquire.Request.chunkmvCustomIdentifier can be used. When requesting a full resolution ROI the application can tag the requested images with a custom identifier. This identifier is later returned in the chunk data of the image. The following example demonstrates how to use this feature:

// switch on the smart frame recall feature
ac.mvSmartFrameRecallEnable.write(TBoolean.bTrue);
// the chunk mode must be switched on to use chunk data for processing:
cdc.chunkModeActive.write(TBoolean.bTrue);
cdc.chunkSelector.writeS("Image");
cdc.chunkEnable.write(TBoolean.bTrue);
// enable the 'mvCustomIdentifier' chunk
cdc.chunkSelector.writeS("mvCustomIdentifier");
cdc.chunkEnable.write(TBoolean.bTrue);
// more code ...
if (pRequest.chunkmvCustomIdentifier.read() == 0)
{
// As the 'mvCustomIdentifier' is 0 this is a frame from the normal stream
Rect r = new Rect();
{
// request the transmission of the interesting ROI this image in full resolution
ccg.requestTransmission(pRequest, r.x, r.y, r.w, r.h, GenICam.TRequestTransmissionMode.rtmFullResolution, customID);
}
}
else if (pRequest.chunkmvCustomIdentifier.read() == (long)customID)
{
// As the 'mvCustomIdentifier' is 'customID' this is a frame explicitly requested by the application
}
else
{
// some other ID (this however must have been set by the application as well)
}
// normal 'unlocking' code for requests should reside here!!
// more code...
Category that contains the Chunk Data control features.
Definition mvIMPACT_acquire_GenICam.autogen.cs:10879
Since
2.18.0

Constructor & Destructor Documentation

◆ CustomCommandGenerator() [1/2]

CustomCommandGenerator ( Device device)
inline

Constructs a new mv.impact.acquire.GenICam.CustomCommandGenerator object.

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

◆ CustomCommandGenerator() [2/2]

CustomCommandGenerator ( Device device,
String settingName )
inline

Constructs a new mv.impact.acquire.GenICam.CustomCommandGenerator 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

◆ discardCommandBuffer()

void discardCommandBuffer ( )
inline

Discards all pending custom commands to the device.

This function will discard all pending custom commands. After calling this function the pending command queue will be empty an can be filled with new commands.

Since
2.18.0

◆ modifySequencerSetValue() [1/2]

int modifySequencerSetValue ( Int64 sequencerSet,
TSequencerSetParameter parameter,
double value )
inline

Modifies a value of a certain sequencer set at runtime.

This is a convenience function combining a call to mv.impact.acquire.GenICam.CustomCommandGenerator.queueSequencerSetValueModification directly followed by a call to mv.impact.acquire.GenICam.CustomCommandGenerator.sendCommandBuffer. Commands which have been queued before and have not yet been sent will be sent as well when calling this function.

Since
2.18.0
Returns
Parameters
sequencerSetThe index of the sequencer set to modify.
parameterThe parameter within the selected sequencer set to modify.
valueThe new value the selected parameter within the selected sequencer set shall be set to.

◆ modifySequencerSetValue() [2/2]

int modifySequencerSetValue ( Int64 sequencerSet,
TSequencerSetParameter parameter,
Int64 value )
inline

Modifies a value of a certain sequencer set at runtime.

This is a convenience function combining a call to mv.impact.acquire.GenICam.CustomCommandGenerator.queueSequencerSetValueModification directly followed by a call to mv.impact.acquire.GenICam.CustomCommandGenerator.sendCommandBuffer. Commands which have been queued before and have not yet been sent will be sent as well when calling this function.

Since
2.18.0
Returns
Parameters
sequencerSetThe index of the sequencer set to modify.
parameterThe parameter within the selected sequencer set to modify.
valueThe new value the selected parameter within the selected sequencer set shall be set to.

◆ queueSequencerSetValueModification() [1/2]

int queueSequencerSetValueModification ( Int64 sequencerSet,
TSequencerSetParameter parameter,
double value )
inline

Queues the modification of a value of a certain sequencer set at runtime.

This function queues a single parameter modification of a selected sequencer set. The actual modification will not become effective until mv.impact.acquire.GenICam.CustomCommandGenerator.sendCommandBuffer is called. With this function multiple modifications can be sent to a device at once. When the new command does not fit inside the internal command queue any more all pending commands will be sent to the device before the new one is put into the queue.

See also
mv.impact.acquire.GenICam.CustomCommandGenerator.sendCommandBuffer
Since
2.18.0
Returns
Parameters
sequencerSetThe index of the sequencer set to modify.
parameterThe parameter within the selected sequencer set to modify.
valueThe new value the selected parameter within the selected sequencer set shall be set to.

◆ queueSequencerSetValueModification() [2/2]

int queueSequencerSetValueModification ( Int64 sequencerSet,
TSequencerSetParameter parameter,
Int64 value )
inline

Queues the modification of a value of a certain sequencer set at runtime.

This function queues a single parameter modification of a selected sequencer set. The actual modification will not become effective until mv.impact.acquire.GenICam.CustomCommandGenerator.sendCommandBuffer is called. With this function multiple modifications can be sent to a device at once. When the new command does not fit inside the internal command queue any more all pending commands will be sent to the device before the new one is put into the queue.

See also
mv.impact.acquire.GenICam.CustomCommandGenerator.sendCommandBuffer
Since
2.18.0
Returns
Parameters
sequencerSetThe index of the sequencer set to modify.
parameterThe parameter within the selected sequencer set to modify.
valueThe new value the selected parameter within the selected sequencer set shall be set to.

◆ queueTransmissionRequest() [1/5]

int queueTransmissionRequest ( Int64 timestamp_us,
int offsetX,
int offsetY,
int width,
int height,
TRequestTransmissionMode mode,
uint identifier )
inline

Request the transmission of an image with a certain timestamp in a different mode/ROI.

This is a convenience function combining a call to mv.impact.acquire.GenICam.CustomCommandGenerator.queueTransmissionRequest directly followed by a call to mv.impact.acquire.GenICam.CustomCommandGenerator.sendCommandBuffer. Commands which have been queued before and have not yet been sent will be sent as well when calling this function.

If mv.impact.acquire.GenICam.AcquisitionControl.mvSmartFrameRecallEnable is set to mv.impact.acquire.TBoolean.bTrue this function can be used to request the transmission of the image currently associated with pRequest in a different mode/resolution. One use case would be to transmit every image taken by the sensor with a very coarse resolution e.g. by setting the properties mv.impact.acquire.GenICam.ImageFormatControl.decimationHorizontal and/or mv.impact.acquire.GenICam.ImageFormatControl.decimationVertical to values greater than 1. When then an algorithm finds something interesting within an image this function can be used to request the transmission of the very same image in full resolution for detailed processing.

Since
2.18.1
Returns
Parameters
[in]timestamp_usThe timestamp of the mv.impact.acquire.Request object shall be transmitted again.
[in]offsetXThe X-offset of the ROI of the image that shall be transmitted within the current image.
[in]offsetYThe Y-offset of the ROI of the image that shall be transmitted within the current image.
[in]widthThe width of the ROI of the image that shall be transmitted within the current image.
[in]heightThe height of the ROI of the image that shall be transmitted within the current image.
[in]modeThe mode in which this image shall be transmitted.
[in]identifierA user defined identifier that shall be attached to the image that will be sent as a result of calling this function. This value will be written into the mv.impact.acquire.Request.chunkmvCustomIdentifier property so in order to actually benefit from this parameter the corresponding chunk must be enabled. See mv.impact.acquire.GenICam.ChunkDataControl for details.

◆ queueTransmissionRequest() [2/5]

int queueTransmissionRequest ( Request pRequest)
inline

Queues the transmission request of an image currently associated with the Request object in a different mode/ROI.

Since
2.18.1
Returns
Parameters
[in]pRequestA pointer to a mv.impact.acquire.Request object currently associated with the image that shall be transmitted again.

◆ queueTransmissionRequest() [3/5]

int queueTransmissionRequest ( Request pRequest,
int offsetX,
int offsetY,
int width,
int height,
TRequestTransmissionMode mode )
inline

Queues the transmission request of an image currently associated with the Request object in a different mode/ROI.

If mv.impact.acquire.GenICam.AcquisitionControl.mvSmartFrameRecallEnable is set to mv.impact.acquire.TBoolean.bTrue this function can be used to queue the transmission request of the image currently associated with pRequest in a different mode/resolution. One use case would be to transmit every image taken by the sensor with a very coarse resolution e.g. by setting the properties mv.impact.acquire.GenICam.ImageFormatControl.decimationHorizontal and/or mv.impact.acquire.GenICam.ImageFormatControl.decimationVertical to values greater than 1. When then an algorithm finds something interesting within an image this function can be used to request the transmission of the very same image in full resolution for detailed processing.

Since
2.18.1
Returns
Parameters
[in]pRequestA pointer to a mv.impact.acquire.Request object currently associated with the image that shall be transmitted again.
[in]offsetXThe X-offset of the ROI of the image that shall be transmitted within the current image.
[in]offsetYThe Y-offset of the ROI of the image that shall be transmitted within the current image.
[in]widthThe width of the ROI of the image that shall be transmitted within the current image.
[in]heightThe height of the ROI of the image that shall be transmitted within the current image.
[in]modeThe mode in which this image shall be transmitted.

◆ queueTransmissionRequest() [4/5]

int queueTransmissionRequest ( Request pRequest,
int offsetX,
int offsetY,
int width,
int height,
TRequestTransmissionMode mode,
uint identifier )
inline

Request the transmission of an image currently associated with the Request object in a different mode/ROI.

This is a convenience function combining a call to mv.impact.acquire.GenICam.CustomCommandGenerator.queueTransmissionRequest directly followed by a call to mv.impact.acquire.GenICam.CustomCommandGenerator.sendCommandBuffer. Commands which have been queued before and have not yet been sent will be sent as well when calling this function.

If mv.impact.acquire.GenICam.AcquisitionControl.mvSmartFrameRecallEnable is set to mv.impact.acquire.TBoolean.bTrue this function can be used to request the transmission of the image currently associated with pRequest in a different mode/resolution. One use case would be to transmit every image taken by the sensor with a very coarse resolution e.g. by setting the properties mv.impact.acquire.GenICam.ImageFormatControl.decimationHorizontal and/or mv.impact.acquire.GenICam.ImageFormatControl.decimationVertical to values greater than 1. When then an algorithm finds something interesting within an image this function can be used to request the transmission of the very same image in full resolution for detailed processing.

Since
2.18.1
Returns
Parameters
[in]pRequestA pointer to a mv.impact.acquire.Request object currently associated with the image that shall be transmitted again.
[in]offsetXThe X-offset of the ROI of the image that shall be transmitted within the current image.
[in]offsetYThe Y-offset of the ROI of the image that shall be transmitted within the current image.
[in]widthThe width of the ROI of the image that shall be transmitted within the current image.
[in]heightThe height of the ROI of the image that shall be transmitted within the current image.
[in]modeThe mode in which this image shall be transmitted.
[in]identifierA user defined identifier that shall be attached to the image that will be sent as a result of calling this function. This value will be written into the mv.impact.acquire.Request.chunkmvCustomIdentifier property so in order to actually benefit from this parameter the corresponding chunk must be enabled. See mv.impact.acquire.GenICam.ChunkDataControl for details.

◆ queueTransmissionRequest() [5/5]

int queueTransmissionRequest ( Request pRequest,
uint identifier )
inline

Queues the transmission request of an image currently associated with the Request object in a different mode/ROI.

Since
2.18.1
Returns
Parameters
[in]pRequestA pointer to a mv.impact.acquire.Request object currently associated with the image that shall be transmitted again.
[in]identifierA user defined identifier that shall be attached to the image that will be sent as a result of calling this function. This value will be written into the mv.impact.acquire.Request.chunkmvCustomIdentifier property so in order to actually benefit from this parameter the corresponding chunk must be enabled. See mv.impact.acquire.GenICam.ChunkDataControl for details.

◆ requestTransmission() [1/5]

int requestTransmission ( Int64 timestamp_us,
int offsetX,
int offsetY,
int width,
int height,
TRequestTransmissionMode mode,
uint identifier )
inline

Request the transmission of an image with a certain timestamp in a different mode/ROI.

This is a convenience function combining a call to mv.impact.acquire.GenICam.CustomCommandGenerator.queueTransmissionRequest directly followed by a call to mv.impact.acquire.GenICam.CustomCommandGenerator.sendCommandBuffer. Commands which have been queued before and have not yet been sent will be sent as well when calling this function.

If mv.impact.acquire.GenICam.AcquisitionControl.mvSmartFrameRecallEnable is set to mv.impact.acquire.TBoolean.bTrue this function can be used to request the transmission of the image currently associated with pRequest in a different mode/resolution. One use case would be to transmit every image taken by the sensor with a very coarse resolution e.g. by setting the properties mv.impact.acquire.GenICam.ImageFormatControl.decimationHorizontal and/or mv.impact.acquire.GenICam.ImageFormatControl.decimationVertical to values greater than 1. When then an algorithm finds something interesting within an image this function can be used to request the transmission of the very same image in full resolution for detailed processing.

Since
2.18.1
Returns
Parameters
[in]timestamp_usThe timestamp of the mv.impact.acquire.Request object shall be transmitted again.
[in]offsetXThe X-offset of the ROI of the image that shall be transmitted within the current image.
[in]offsetYThe Y-offset of the ROI of the image that shall be transmitted within the current image.
[in]widthThe width of the ROI of the image that shall be transmitted within the current image.
[in]heightThe height of the ROI of the image that shall be transmitted within the current image.
[in]modeThe mode in which this image shall be transmitted.
[in]identifierA user defined identifier that shall be attached to the image that will be sent as a result of calling this function. This value will be written into the mv.impact.acquire.Request.chunkmvCustomIdentifier property so in order to actually benefit from this parameter the corresponding chunk must be enabled. See mv.impact.acquire.GenICam.ChunkDataControl for details.

◆ requestTransmission() [2/5]

int requestTransmission ( Request pRequest)
inline

Request the transmission of an image currently associated with the Request object in a different mode/ROI.

This is a convenience function combining a call to mv.impact.acquire.GenICam.CustomCommandGenerator.queueTransmissionRequest directly followed by a call to mv.impact.acquire.GenICam.CustomCommandGenerator.sendCommandBuffer. Commands which have been queued before and have not yet been sent will be sent as well when calling this function.

See also
mv.impact.acquire.GenICam.CustomCommandGenerator.sendCommandBuffer
Since
2.18.0
Returns
Parameters
[in]pRequestA pointer to a mv.impact.acquire.Request object currently associated with the image that shall be transmitted again.

◆ requestTransmission() [3/5]

int requestTransmission ( Request pRequest,
int offsetX,
int offsetY,
int width,
int height,
TRequestTransmissionMode mode )
inline

Request the transmission of an image currently associated with the Request object in a different mode/ROI.

This is a convenience function combining a call to mv.impact.acquire.GenICam.CustomCommandGenerator.queueTransmissionRequest directly followed by a call to mv.impact.acquire.GenICam.CustomCommandGenerator.sendCommandBuffer. Commands which have been queued before and have not yet been sent will be sent as well when calling this function.

If mv.impact.acquire.GenICam.AcquisitionControl.mvSmartFrameRecallEnable is set to mv.impact.acquire.TBoolean.bTrue this function can be used to request the transmission of the image currently associated with pRequest in a different mode/resolution. One use case would be to transmit every image taken by the sensor with a very coarse resolution e.g. by setting the properties mv.impact.acquire.GenICam.ImageFormatControl.decimationHorizontal and/or mv.impact.acquire.GenICam.ImageFormatControl.decimationVertical to values greater than 1. When then an algorithm finds something interesting within an image this function can be used to request the transmission of the very same image in full resolution for detailed processing.

See also
mv.impact.acquire.GenICam.CustomCommandGenerator.sendCommandBuffer
Since
2.18.0
Returns
Parameters
[in]pRequestA pointer to a mv.impact.acquire.Request object currently associated with the image that shall be transmitted again.
[in]offsetXThe X-offset of the ROI of the image that shall be transmitted within the current image.
[in]offsetYThe Y-offset of the ROI of the image that shall be transmitted within the current image.
[in]widthThe width of the ROI of the image that shall be transmitted within the current image.
[in]heightThe height of the ROI of the image that shall be transmitted within the current image.
[in]modeThe mode in which this image shall be transmitted.

◆ requestTransmission() [4/5]

int requestTransmission ( Request pRequest,
int offsetX,
int offsetY,
int width,
int height,
TRequestTransmissionMode mode,
uint identifier )
inline

Request the transmission of an image currently associated with the Request object in a different mode/ROI.

This is a convenience function combining a call to mv.impact.acquire.GenICam.CustomCommandGenerator.queueTransmissionRequest directly followed by a call to mv.impact.acquire.GenICam.CustomCommandGenerator.sendCommandBuffer. Commands which have been queued before and have not yet been sent will be sent as well when calling this function.

If mv.impact.acquire.GenICam.AcquisitionControl.mvSmartFrameRecallEnable is set to mv.impact.acquire.TBoolean.bTrue this function can be used to request the transmission of the image currently associated with pRequest in a different mode/resolution. One use case would be to transmit every image taken by the sensor with a very coarse resolution e.g. by setting the properties mv.impact.acquire.GenICam.ImageFormatControl.decimationHorizontal and/or mv.impact.acquire.GenICam.ImageFormatControl.decimationVertical to values greater than 1. When then an algorithm finds something interesting within an image this function can be used to request the transmission of the very same image in full resolution for detailed processing.

Since
2.18.0
Returns
Parameters
[in]pRequestA pointer to a mv.impact.acquire.Request object currently associated with the image that shall be transmitted again.
[in]offsetXThe X-offset of the ROI of the image that shall be transmitted within the current image.
[in]offsetYThe Y-offset of the ROI of the image that shall be transmitted within the current image.
[in]widthThe width of the ROI of the image that shall be transmitted within the current image.
[in]heightThe height of the ROI of the image that shall be transmitted within the current image.
[in]modeThe mode in which this image shall be transmitted.
[in]identifierA user defined identifier that shall be attached to the image that will be sent as a result of calling this function. This value will be written into the mv.impact.acquire.Request.chunkmvCustomIdentifier property so in order to actually benefit from this parameter the corresponding chunk must be enabled. See mv.impact.acquire.GenICam.ChunkDataControl for details.

◆ requestTransmission() [5/5]

int requestTransmission ( Request pRequest,
uint identifier )
inline

Request the transmission of an image currently associated with the Request object in a different mode/ROI.

This is a convenience function combining a call to mv.impact.acquire.GenICam.CustomCommandGenerator.queueTransmissionRequest directly followed by a call to mv.impact.acquire.GenICam.CustomCommandGenerator.sendCommandBuffer. Commands which have been queued before and have not yet been sent will be sent as well when calling this function.

See also
mv.impact.acquire.GenICam.CustomCommandGenerator.sendCommandBuffer
Since
2.18.0
Returns
Parameters
[in]pRequestA pointer to a mv.impact.acquire.Request object currently associated with the image that shall be transmitted again.
[in]identifierA user defined identifier that shall be attached to the image that will be sent as a result of calling this function. This value will be written into the mv.impact.acquire.Request.chunkmvCustomIdentifier property so in order to actually benefit from this parameter the corresponding chunk must be enabled. See mv.impact.acquire.GenICam.ChunkDataControl for details.

◆ sendCommandBuffer()

int sendCommandBuffer ( )
inline

Applies all pending custom commands to the device.

This function will send all pending custom commands to a device. After calling this function the pending command queue will be empty an can be filled with new commands. Calling this function multiple times without queuing new commands after each send will have no effect!

Since
2.18.0
Returns

Property Documentation

◆ commandBufferSize

uint commandBufferSize
get

Returns the size of the command buffer for this device in bytes.

Since
2.18.0
Returns
The size of the command buffer for this device in bytes.

◆ commandBufferSizeUsed

uint commandBufferSizeUsed
get

Returns the amount of bytes of the command buffer currently used(thus the amount of bytes that await sending) for this device in bytes.

Since
2.18.0
Returns
The amount of bytes of the command buffer currently used(thus the amount of bytes that await sending) for this device in bytes.