Impact Acquire SDK .NET
|
This class and its functions represent an actual device detected by this interface in the current system. More...
Public Member Functions | |
void | close () |
Closes an opened device. | |
bool | hasCapability (TDeviceCapability capability) |
Checks whether this device has a certain capability. | |
void | open () |
Opens a device. | |
int | setID (int newID) |
Assigns a new ID to this device. | |
int | updateFirmware () |
Updates the firmware of the device. | |
void | validateInterfaceLayout (TDeviceInterfaceLayout requiredInterfaceLayout) |
A convenience function mostly used internally. Raises an exception if the current value of mv.impact.acquire.Device.interfaceLayout does not match the value passed to the function. | |
Public Attributes | |
readonly EnumPropertyI< TAcquisitionStartStopBehaviour > | acquisitionStartStopBehaviour = new EnumPropertyI<TAcquisitionStartStopBehaviour>() |
An enumerated integer property defining the start/stop behaviour during acquisition of this driver instance. | |
readonly PropertyIBoolean | allowUnrecommendedFeatures = new PropertyIBoolean() |
An enumerated integer property which can be used to unlock certain features, that are available but not recommended by the device manufacturer. | |
readonly PropertyS | autoLoadSettingOrder = new PropertyS() |
A string property (read-only) containing the auto load order of feature settings that is executed during initialisation of the device. | |
readonly PropertyIBoolean | autoNegotiatePacketSize = new PropertyIBoolean() |
An enumerated integer property which can be used to enable or disable the MTU auto negotiation of a GigE Vision device when opening it. | |
readonly EnumPropertyI< TDeviceAutoNegotiatePacketSizeMode > | autoNegotiatePacketSizeMode = new EnumPropertyI<TDeviceAutoNegotiatePacketSizeMode>() |
An enumerated integer property (read-only) that can be used to define how the auto packet size negotiation for a GigE Vision device is handled. | |
readonly EnumPropertyI< TDeviceCapability > | capabilities = new EnumPropertyI<TDeviceCapability>() |
An enumerated integer property (read-only) defining special device capabilities. | |
readonly PropertyS | customDataDirectory = new PropertyS() |
A string property (read-only once the device is open) containing a path to a custom directory for the location of camera description files, etc. | |
readonly PropertyI | defaultRequestCount = new PropertyI() |
An integer property that defines the number of mv.impact.acquire.Request objects to be created when the device is opened. | |
readonly EnumPropertyI< TDeviceAccessMode > | desiredAccess = new EnumPropertyI<TDeviceAccessMode>() |
An enumerated integer property that can be used to define the desired access to the device when opening it. | |
readonly EnumPropertyI< TDeviceClass > | deviceClass = new EnumPropertyI<TDeviceClass>() |
An enumerated integer property (read-only) defining the device class this device belongs to. | |
readonly PropertyS | deviceFamilyName = new PropertyS() |
A string property (read-only) containing the family name of this device. | |
readonly PropertyI | deviceID = new PropertyI() |
An integer property (read-only) containing the device ID associated with this device. | |
readonly PropertyS | deviceModelName = new PropertyS() |
A string property (read-only) containing the model name of this device. | |
readonly PropertyS | deviceVersion = new PropertyS() |
A string property (read-only) containing the version(e.g. the hard ware revision) of this device. | |
readonly PropertyS | family = new PropertyS() |
A string property (read-only) containing the family name of this device. | |
readonly PropertyI | firmwareVersion = new PropertyI() |
An integer property (read-only) containing the firmware version of this device. | |
readonly EnumPropertyI< TDeviceAccessMode > | grantedAccess = new EnumPropertyI<TDeviceAccessMode>() |
An enumerated integer property (read-only) that can be used to query the granted access to the device after an attempt to open it. | |
readonly EnumPropertyI< THWUpdateResult > | HWUpdateResult = new EnumPropertyI<THWUpdateResult>() |
An enumerated integer property (read-only) defining user executed hardware update results. | |
readonly EnumPropertyI< TDeviceInterfaceLayout > | interfaceLayout = new EnumPropertyI<TDeviceInterfaceLayout>() |
An enumerated integer property which can be used to define which interface layout shall be used when the device is opened. | |
readonly PropertyS | licenseDetails = new PropertyS() |
A string property (read-only) that indicates why a device may be used with this SDK. | |
readonly PropertyIBoolean | licenseValid = new PropertyIBoolean() |
A boolean property (read-only) that indicates if a device may be used with this SDK. | |
readonly EnumPropertyI< TDeviceLoadSettings > | loadSettings = new EnumPropertyI<TDeviceLoadSettings>() |
An enumerated integer property which can be used to define which previously stored setting to load when the device is opened. | |
readonly PropertyS | manufacturer = new PropertyS() |
A string property (read-only) containing the name of the manufacturer of this device. | |
readonly PropertyS | manufacturerSpecificInformation = new PropertyS() |
A string property (read-only) containing manufacturer specific information of this device. | |
readonly PropertyS | product = new PropertyS() |
A string property (read-only) containing the product name of this device. | |
readonly PropertyI | resultQueueCount = new PropertyI() |
An integer property that defines the number of result queues to be created when the device is opened. | |
readonly PropertyS | serial = new PropertyS() |
A string property (read-only) containing the serial number of this device. | |
readonly EnumPropertyI< TDeviceState > | state = new EnumPropertyI<TDeviceState>() |
An enumerated integer property (read-only) containing the current state of this device. | |
readonly PropertyI | streamChannelCount = new PropertyI() |
An integer property providing the number of stream channels supported by this device. | |
readonly PropertyIBoolean | userControlledImageProcessingEnable = new PropertyIBoolean() |
An enumerated integer property defining whether user controlled image processing related features shall be created under 'System Settings' or not. | |
Static Public Attributes | |
const int | INVALID_ID = -1 |
A symbolic constant to define an invalid handle. | |
Properties | |
ComponentList | deviceDriverFeatureList [get] |
Returns a list providing access to driver library specific features. | |
int | hDev [get] |
A unique identifier for this device. | |
int | hDrv [get] |
A unique identifier for the functionality offered by this device. | |
bool | isInUse [get] |
Returns the current usage status of this device. | |
bool | isOpen [get] |
Returns the current initialisation status in this process. | |
UserData | userData [get] |
Returns a reference to a helper class to handle user specific data stored in the devices non-volatile memory (if available). | |
Events | |
DeviceWillBeClosedEventHandler | onDeviceWillBeClosed |
An event handler for events which are sent to all listeners just before the device driver instance will be closed. | |
This class and its functions represent an actual device detected by this interface in the current system.
Instances of it can only be created by instances of the mv.impact.acquire.DeviceManager class as only the mv.impact.acquire.DeviceManager has the precise knowledge to do that anyway. As a result from this fact pointers to instances of mv.impact.acquire.Device can be obtained via a mv.impact.acquire.DeviceManager object only.
A valid pointer to a mv.impact.acquire.Device object is needed to construct most of the other objects available in this interface.
Almost every object requiring a valid pointer to a mv.impact.acquire.Device object will need to device in an initialised state as the properties provided e.g. by the class mv.impact.acquire.CameraSettingsBase will be constructed when the device is initialised. To initialise a device this class provides the function mv.impact.acquire.Device.open. However every object which needs an initialised device to be constructed successfully will try to open the device when it hasn't been opened before, so the user does not need to call this function explicitly.
|
inline |
Closes an opened device.
This function closes a device previously opened again.
|
inline |
Checks whether this device has a certain capability.
Valid values for this property are defined by the enumeration mv.impact.acquire.TDeviceCapability.
[in] | capability | The capability who's presence shall be checked. |
|
inline |
Opens a device.
This function will try to open the device represented by this instance of mv.impact.acquire.Device. If this fails for any reason an exception will be thrown. The exception object will contain additional information about the reason for the error.
Calling this function is not really necessary, as each object for accessing other settings of the device or even the function interface need the device to be opened in order to be constructed. Therefore all the constructors for these objects check if the device is open by calling mv.impact.acquire.Device.isOpen and open the device if necessary.
Whenever a device is opened, the driver executes the following procedure:
Please have a look here for more information about automatic loading of settings when a device is opened.
|
inline |
Assigns a new ID to this device.
To allow any application to distinguish between different devices of the same type the user can assign an unique ID to each device using this function. This ID currently is limited to values between 0 and 250 and is stored in the devices internal memory. This ID is NOT volatile. It will remain stored even if the device is unplugged.
[in] | newID | The new ID that shall be assigned to the device. |
|
inline |
Updates the firmware of the device.
Calling this function will cause the driver to download a firmware version compiled into the driver library into the devices non-volatile internal memory.
|
inline |
A convenience function mostly used internally. Raises an exception if the current value of mv.impact.acquire.Device.interfaceLayout does not match the value passed to the function.
If a driver does not support the interface layout property this function does nothing!
readonly EnumPropertyI<TAcquisitionStartStopBehaviour> acquisitionStartStopBehaviour = new EnumPropertyI<TAcquisitionStartStopBehaviour>() |
An enumerated integer property defining the start/stop behaviour during acquisition of this driver instance.
Valid values for this property are defined by the enumeration mv.impact.acquire.TAcquisitionStartStopBehaviour.
Not every device will offer the same options. Check for valid modes by reading the properties translation dictionary with the function mv.impact.acquire.EnumPropertyI<T>.getTranslationDict
readonly PropertyIBoolean allowUnrecommendedFeatures = new PropertyIBoolean() |
An enumerated integer property which can be used to unlock certain features, that are available but not recommended by the device manufacturer.
Valid values for this property are defined by the enumeration mv.impact.acquire.TBoolean.
This property will be invisible by default. As the name indicates its use requires special knowledge that can be provided by the device manufacturer on request.
A string property (read-only) containing the auto load order of feature settings that is executed during initialisation of the device.
The first setting detected on the system will be used.
readonly PropertyIBoolean autoNegotiatePacketSize = new PropertyIBoolean() |
An enumerated integer property which can be used to enable or disable the MTU auto negotiation of a GigE Vision device when opening it.
If set to true, the driver will try to determine the max. possible packet size during init, which if successful will result in optimal performance. Valid values for this property are defined by the enumeration mv.impact.acquire.TBoolean.
mvGenTLProducer-lib
. When using a 3rd party GenTL producer to access the GigE Vision device this feature will not be available.readonly EnumPropertyI<TDeviceAutoNegotiatePacketSizeMode> autoNegotiatePacketSizeMode = new EnumPropertyI<TDeviceAutoNegotiatePacketSizeMode>() |
An enumerated integer property (read-only) that can be used to define how the auto packet size negotiation for a GigE Vision device is handled.
If set to mv.impact.acquire.danpsmHighToLow the MTU is automatically negotiated starting from the NICs current MTU down to a value supported by all components belonging to the network path (device, network interface card, switches, ...), if set to mv.impact.acquire.danpsmLowToHigh the negotiation starts with the small value tries larger values with each iteration until the optimal value has been found. Valid values for this property are defined by the enumeration mv.impact.acquire.TDeviceAutoNegotiatePacketSizeMode.
readonly EnumPropertyI<TDeviceCapability> capabilities = new EnumPropertyI<TDeviceCapability>() |
An enumerated integer property (read-only) defining special device capabilities.
This property stores certain device capabilities that can be read without opening the device.
Valid values for this property are defined by the enumeration mv.impact.acquire.TDeviceCapability.
A string property (read-only once the device is open) containing a path to a custom directory for the location of camera description files, etc.
When a custom path is assigned to this property this path will be used to locate certain driver specific files and folders. Under this folder the following structure must be created:
If this property is left empty
PUBLIC%/Documents/Balluff/ImpactAcquire
will be used by default on Windows™ platforms and/opt/ImpactAcquire/data
on Unix based platforms. An integer property that defines the number of mv.impact.acquire.Request objects to be created when the device is opened.
By writing to this property an application can define the default number of mv.impact.acquire.Request objects that will be allocated when opening the device.
readonly EnumPropertyI<TDeviceAccessMode> desiredAccess = new EnumPropertyI<TDeviceAccessMode>() |
An enumerated integer property that can be used to define the desired access to the device when opening it.
Valid values for this property are defined by the enumeration mv.impact.acquire.TDeviceAccessMode.
readonly EnumPropertyI<TDeviceClass> deviceClass = new EnumPropertyI<TDeviceClass>() |
An enumerated integer property (read-only) defining the device class this device belongs to.
A string property (read-only) containing the family name of this device.
An integer property (read-only) containing the device ID associated with this device.
A device ID can be used to identify a certain device in the system. The ID is an 8 bit unsigned integer value stored in the device's EEPROM. In order to allow the distinct detection of a device via its device ID, the user has to make sure that two devices belonging to the same product family never share the same ID.
A string property (read-only) containing the model name of this device.
A string property (read-only) containing the version(e.g. the hard ware revision) of this device.
A string property (read-only) containing the family name of this device.
An integer property (read-only) containing the firmware version of this device.
A firmware is considered to be something that is stored in non volatile device memory, thus when a device is disconnected from the power supply and plugged into a different target system the same code will be executed on the device.
Some devices however may not support non volatile memory to accommodate a firmware. Typically the device driver then will download a firmware into the devices RAM at startup. Such devices will be considered as not supporting a firmware as in this case only the driver version present on the target system has impact on the devices behaviour.
When a device does not support a non volatile firmware, reading this property will always return 0.
readonly EnumPropertyI<TDeviceAccessMode> grantedAccess = new EnumPropertyI<TDeviceAccessMode>() |
An enumerated integer property (read-only) that can be used to query the granted access to the device after an attempt to open it.
Valid values for this property are defined by the enumeration mv.impact.acquire.TDeviceAccessMode.
readonly EnumPropertyI<THWUpdateResult> HWUpdateResult = new EnumPropertyI<THWUpdateResult>() |
An enumerated integer property (read-only) defining user executed hardware update results.
This property e.g. might contain the result of a user executed firmware update. Valid values for this property are defined by the enumeration mv.impact.acquire.THWUpdateResult.
readonly EnumPropertyI<TDeviceInterfaceLayout> interfaceLayout = new EnumPropertyI<TDeviceInterfaceLayout>() |
An enumerated integer property which can be used to define which interface layout shall be used when the device is opened.
Valid values for this property are defined by the enumeration mv.impact.acquire.TDeviceInterfaceLayout.
Not every device will offer the same options. Check for valid modes by reading the properties translation dictionary with the function mv.impact.acquire.EnumPropertyI<T>.getTranslationDict
|
static |
A symbolic constant to define an invalid handle.
A string property (read-only) that indicates why a device may be used with this SDK.
This property holds information on why a device may be used with Impact Acquire.
readonly PropertyIBoolean licenseValid = new PropertyIBoolean() |
A boolean property (read-only) that indicates if a device may be used with this SDK.
All Balluff/MATRIX VISION devices may be used with this SDK without limitations. Third party devices might work as well but without an appropriate license that can be obtained from Balluff certain restrictions may apply.
readonly EnumPropertyI<TDeviceLoadSettings> loadSettings = new EnumPropertyI<TDeviceLoadSettings>() |
An enumerated integer property which can be used to define which previously stored setting to load when the device is opened.
Valid values for this property are defined by the enumeration mv.impact.acquire.TDeviceLoadSettings.
A string property (read-only) containing the name of the manufacturer of this device.
A string property (read-only) containing manufacturer specific information of this device.
A string property (read-only) containing the product name of this device.
An integer property that defines the number of result queues to be created when the device is opened.
By writing to this property an application can define the number of result queues that will be allocated when opening the device. When requesting buffers the user can define in which result queue a processed request shall end up by writing to the property mv.impact.acquire.ImageRequestControl.resultQueue. When waiting for a request to become ready by calling mv.impact.acquire.FunctionInterface.imageRequestWaitFor the application can specify on which queue to wait.
EXAMPLE:
This can be useful e.g. when working with 2 different settings to sort all buffer capture with setting 0 into one queue and all the others into another queue.
A string property (read-only) containing the serial number of this device.
readonly EnumPropertyI<TDeviceState> state = new EnumPropertyI<TDeviceState>() |
An enumerated integer property (read-only) containing the current state of this device.
This property e.g. provides information about the current state of the device. For USB devices this can e.g. indicate whether a device is currently plugged into the system or not.
Valid values for this property are defined by the enumeration mv.impact.acquire.TDeviceState.
GenICam/GenTL device specific: In order to reduce the amount of network traffic to a minimum, this property will only be updated automatically for network devices if the property mv.impact.acquire.Device.registerErrorEvent is set to mv.impact.acquire.TBoolean.bTrue (which is the default behaviour). If the IP addresses stay the same the connection is automatically re-established then once the device is detected by the driver again. However if the IP address of the device and/or the network adapter of the system it is used from changes mv.impact.acquire.DeviceManager.updateDeviceList() must be called regardless of the value of mv.impact.acquire.Device.registerErrorEvent before a device that was lost can re-establish a connection to the capture driver. Apart from that ALL GenICam/GenTL will only update this property automatically if the device is currently in use BY THIS PROCESS, so when the device has been opened. This is also to save bandwidth and resources!
An integer property providing the number of stream channels supported by this device.
This property can be useful for devices offering more (or less) than one stream channel. It might be useful to use it in combination with mvIMPACT::acquire::Device::resultQueueCount to change the number of result queues to allow the engine to store the resulting mvIMPACT::acquire::Request to a specific result queue.
readonly PropertyIBoolean userControlledImageProcessingEnable = new PropertyIBoolean() |
An enumerated integer property defining whether user controlled image processing related features shall be created under 'System Settings' or not.
Valid values for this property are defined by the enumeration mv.impact.acquire.TBoolean.
Setting this feature to mv.impact.acquire.TBoolean.bTrue will result in a separate thread being created when opening the device driver instance. The thread will decouple the host based image processing from the acquisition engine. Apart from that it will also create additional properties in the ImageProcessingControl
list under SystemSettings
that can be used to control the behaviour of this thread. This might be useful e.g. to make sure images can be acquired faster than they can be processed and it is not needed to processed each image.
|
get |
Returns a list providing access to driver library specific features.
This list does exist only once per device driver library. Changes in this list will affect all devices that are operated using this device driver library.
|
get |
A unique identifier for this device.
|
get |
A unique identifier for the functionality offered by this device.
|
get |
Returns the current usage status of this device.
If this function returns true, this device was not in use at the time of calling this function. A call to mv.impact.acquire.Device.open() can still fail afterwards if some other process on the system claimed the device in the time between this call and the call to mv.impact.acquire.Device.open().
|
get |
Returns the current initialisation status in this process.
If this function returns true, this only states that the current process has not opened the device in question already. A call to mv.impact.acquire.Device.open() can still fail because of some other process using this device.
|
get |
Returns a reference to a helper class to handle user specific data stored in the devices non-volatile memory (if available).
DeviceWillBeClosedEventHandler onDeviceWillBeClosed |
An event handler for events which are sent to all listeners just before the device driver instance will be closed.