Image Manager (CVCDriver.dll) 14.0
Device Discovery

Interface for discovering devices. More...

Enumerations

enum  DODiscoverInfoCommands {
  DO_DISCOVER_INFO_ACCESS_TOKEN = 1000 , DO_DISCOVER_INFO_LEVEL , DO_DISCOVER_INFO_INTERFACE_NET_LIST = 2000 , DO_DISCOVER_INFO_INTERFACE_NET_MAC ,
  DO_DISCOVER_INFO_INTERFACE_TLTYPE , DO_DISCOVER_INFO_INTERFACE_DISPLAYNAME , DO_DISCOVER_INFO_INTERFACE_DRIVERTYPE , DO_DISCOVER_INFO_INTERFACE_ID ,
  DO_DISCOVER_INFO_DEVICE_TLTYPE = 3000 , DO_DISCOVER_INFO_DEVICE_USERNAME , DO_DISCOVER_INFO_DEVICE_SERIALNUMBER , DO_DISCOVER_INFO_DEVICE_NET_MAC ,
  DO_DISCOVER_INFO_DEVICE_NET_IP , DO_DISCOVER_INFO_DEVICE_NET_SUBNETMASK , DO_DISCOVER_INFO_DEVICE_USB_VID , DO_DISCOVER_INFO_DEVICE_USB_PID ,
  DO_DISCOVER_INFO_DEVICE_VENDOR , DO_DISCOVER_INFO_DEVICE_MODEL , DO_DISCOVER_INFO_DEVICE_ID , DO_DISCOVER_INFO_DEVICE_ACCESS_STATUS ,
  DO_DISCOVER_INFO_TRANSPORTLAYER_ID = 4000 , DO_DISCOVER_INFO_TRANSPORTLAYER_PATH , DO_DISCOVER_INFO_TRANSPORTLAYER_VENDOR , DO_DISCOVER_INFO_DEVICE_USB_PORT_PATH ,
  DO_DISCOVER_INFO_CUSTOM
}
 Commands to retrieve information on an entry in the discover list
to be used with DOEntryGetInfo or DOEntryGetInfoW. More...
 
enum  DODiscoverLevel {
  DO_AT_LEVEL_UNKNOWN = 0 , DO_AT_LEVEL_SYSTEM = 1 , DO_AT_LEVEL_VIN = 2 , DO_AT_LEVEL_TLSYSTEM = 3 ,
  DO_AT_LEVEL_TLIFACE = 4 , DO_AT_LEVEL_TLDEVICE = 5 , DO_AT_LEVEL_TLSTREAM = 6
}
 Discovery level. More...
 

Functions

cvbres_t CVDCreateOrGetDeviceObject (const char *AccessToken, DEVOBJ &DeviceObject)
 Load or create a device object as specified by a JSON Access Path as retrieved through DODiscovery. The returned object is not a CVB image as retrieved through LoadImageFile. It provides at least the INodemapHandle2 interface. More...
 
cvbres_t CVDCreateOrGetDeviceObjectW (const wchar_t *AccessToken, DEVOBJ &DeviceObject)
 Load or create a device object as specified by a JSON Access Path as retrieved through DODiscovery. The returned object is not a CVB image as retrieved through LoadImageFile. It provides at least the INodemapHandle2 interface. More...
 
cvbres_t __stdcall DODiscover (const char *Seed, uint64_t SearchFlags, uint64_t Reserved, ATLIST &List, size_t DiscoverTimeoutMS)
 Create a list of available devices or nodes. More...
 
cvbres_t __stdcall DODiscoverW (const wchar_t *Seed, uint64_t SearchFlags, uint64_t Reserved, ATLIST &List, size_t DiscoverTimeoutMS)
 Create a list of available devices or nodes given a wchar_t path. More...
 
cvbres_t __stdcall DOEntryGetInfo (ATLIST List, size_t Index, DODiscoverInfoCommands InfoCommand, char *Info, size_t &InfoSize)
 Retrieve information on one entry in the discover list. More...
 
cvbres_t __stdcall DOEntryGetInfoW (ATLIST List, size_t Index, DODiscoverInfoCommands InfoCommand, wchar_t *Info, size_t &InfoSize)
 Retrieve information on one entry in the discover list. More...
 
cvbres_t __stdcall DOGetNumEntries (ATLIST List, size_t &NumEntries)
 Inquire the number of entries in the discover list obtained through through DODiscover or DODiscoverW. More...
 
cvbres_t __stdcall DOSetFeature (ATLIST List, size_t Index, const char *NodeMapID, const char *Name, const char *Value)
 Set a GenICam feature in the nodemap of the terminal node of the current list to the provided value. More...
 
cvbres_t __stdcall DOSetFeatureW (ATLIST List, size_t Index, const wchar_t *NMId, const wchar_t *Name, const wchar_t *Value)
 Set a GenICam feature in the nodemap of the terminal node of the current list to the provided value. All features attached to a node are set before the parameters are applied. More...
 
cvbres_t __stdcall DOSetParameter (ATLIST List, size_t Index, const char *Name, const char *Value)
 Set an initialization parameter in the terminal node of one of the current list entries. More...
 
cvbres_t __stdcall DOSetParameterW (ATLIST List, size_t Index, const wchar_t *Name, const wchar_t *Value)
 Set an initialization parameter in the terminal node of one of the current list entries. More...
 
cvbres_t LoadDeviceObject (const char *AccessToken, DEVOBJ &DeviceObject)
 Load a device object as specified by a JSON Access Path as retrieved through DODiscovery. The returned object is not a CVB image as retrieved through LoadImageFile. It provides at least the INodemapHandle2 interface. More...
 
cvbres_t LoadDeviceObjectW (const wchar_t *AccessToken, DEVOBJ &DeviceObject)
 Load a device object as specified by a JSON Access Path as retrieved through DODiscovery. The returned object is not a CVB image as retrieved through LoadImageFile. It provides at least the INodemapHandle2 interface. More...
 

Detailed Description

Interface for discovering devices.

The device discovery is the first starting point, when connecting an acquisition device without preceeding configuration. The result of the search in DODiscover can be used for specifically picking a device by a property via LoadDeviceObject.

Enumeration Type Documentation

◆ DODiscoverInfoCommands

Commands to retrieve information on an entry in the discover list
to be used with DOEntryGetInfo or DOEntryGetInfoW.

Enumerator
DO_DISCOVER_INFO_ACCESS_TOKEN 

JSON Access String for a single device. Pass this string to LoadImageFile or LoadDeviceObject.

DO_DISCOVER_INFO_LEVEL 

Refers the DO_DISCOVER_FLAG_LEVEL_XXX values, indicating
the top most level of the discover entry.

DO_DISCOVER_INFO_INTERFACE_NET_LIST 

Zero terminated list of all subnets on this interface.

DO_DISCOVER_INFO_INTERFACE_NET_MAC 

Interface MAC address.

DO_DISCOVER_INFO_INTERFACE_TLTYPE 

TL Type according to GenTL Spec.

DO_DISCOVER_INFO_INTERFACE_DISPLAYNAME 

Interface display name.

DO_DISCOVER_INFO_INTERFACE_DRIVERTYPE 

DriverType of the driver for this interface. Possible values are 'SOCKET', 'FILTER', 'NA', 'UNKNOWN'.

DO_DISCOVER_INFO_INTERFACE_ID 

GenTL ID of the interface

DO_DISCOVER_INFO_DEVICE_TLTYPE 

TL Type of Device, as listed in GenTL spec.

DO_DISCOVER_INFO_DEVICE_USERNAME 

User defined name of the device.

DO_DISCOVER_INFO_DEVICE_SERIALNUMBER 

Device serial number.

DO_DISCOVER_INFO_DEVICE_NET_MAC 

device MAC for Ethernet devices

DO_DISCOVER_INFO_DEVICE_NET_IP 

device IP for Ethernet devices

DO_DISCOVER_INFO_DEVICE_NET_SUBNETMASK 

device subnet mask for Ethernet devices

DO_DISCOVER_INFO_DEVICE_USB_VID 

USB Vendor ID for USB devices.

DO_DISCOVER_INFO_DEVICE_USB_PID 

USB Product ID for USB devices.

DO_DISCOVER_INFO_DEVICE_VENDOR 

Vendor name.

DO_DISCOVER_INFO_DEVICE_MODEL 

Model name.

DO_DISCOVER_INFO_DEVICE_ID 

GenTL ID of th device.

DO_DISCOVER_INFO_DEVICE_ACCESS_STATUS 

Device accessibility, Possible values are "UNKNOWN", "READWRITE", "READONLY", "NOACCESS".

DO_DISCOVER_INFO_TRANSPORTLAYER_ID 

GenTL ID of the Transport layer

DO_DISCOVER_INFO_TRANSPORTLAYER_PATH 

Path of the CTI on the local system.

DO_DISCOVER_INFO_TRANSPORTLAYER_VENDOR 

GenTL Vendor.

DO_DISCOVER_INFO_DEVICE_USB_PORT_PATH 

U3V device port path.

DO_DISCOVER_INFO_CUSTOM 

◆ DODiscoverLevel

Discovery level.

This is to be used in the DODiscoverFlags::AsFlags::Depth field.

Enumerator
DO_AT_LEVEL_UNKNOWN 

Invalid entry, used internally.

DO_AT_LEVEL_SYSTEM 

System Level.

DO_AT_LEVEL_VIN 

VIN Level.

DO_AT_LEVEL_TLSYSTEM 

Transport Layer Level.

DO_AT_LEVEL_TLIFACE 

Interface Level.

DO_AT_LEVEL_TLDEVICE 

Device Level.

DO_AT_LEVEL_TLSTREAM 

Data stream Level.

Function Documentation

◆ CVDCreateOrGetDeviceObject()

cvbres_t CVDCreateOrGetDeviceObject ( const char *  AccessToken,
DEVOBJ &  DeviceObject 
)

Load or create a device object as specified by a JSON Access Path as retrieved through DODiscovery. The returned object is not a CVB image as retrieved through LoadImageFile. It provides at least the INodemapHandle2 interface.

Parameters
[in]AccessTokenAccess Path of the driver node to open.
[out]DeviceObjectCVB Device Object (no image interface)
Returns
>=0 : OK
<0 : an error occured
Supported platforms:
Win32
Win64
Linux
Examples:

◆ CVDCreateOrGetDeviceObjectW()

cvbres_t CVDCreateOrGetDeviceObjectW ( const wchar_t *  AccessToken,
DEVOBJ &  DeviceObject 
)

Load or create a device object as specified by a JSON Access Path as retrieved through DODiscovery. The returned object is not a CVB image as retrieved through LoadImageFile. It provides at least the INodemapHandle2 interface.

Parameters
[in]AccessTokenAccess Path of the driver node to open.
[out]DeviceObjectCVB Device Object (no image interface)
Returns
>=0 : OK
<0 : an error occured
Supported platforms:
Win32
Win64
Linux
Examples:

◆ DODiscover()

cvbres_t __stdcall DODiscover ( const char *  Seed,
uint64_t  SearchFlags,
uint64_t  Reserved,
ATLIST &  List,
size_t  DiscoverTimeoutMS 
)

Create a list of available devices or nodes.

The provided parameter limit/define the search configuration. After obtaining a list the user can query information on the entries in the list. For each entry in the list the user can obtain a describing string (access path) which can be used in the LoadImageFile function or in the LoadDeviceObject function to directly open a device. The obtained list handle must the released using ReleaseObject. using ReleaseObject.

For further information please refer to DODiscoverW.

Parameters
[in]SeedInitial start string for the discovery process. For example this could be the JAS of an interface in which case only devices on this interface would be listed in the newly created list.
[in]SearchFlagsFlags providing additional search criterias/configurations. See DDFlags for more information.
[in]Reserved
[out]ListPointer receiving the handle to the created list.
[in]DiscoverTimeoutMSTimeout for the discovery in milliseconds on the last level. For example if it is specified in the SearchFlags that the max depth is DDFLAG_LVL_IFACE which would result in a list of available interfaces, the timeout would be used to when listing the available interfaces.
Returns
>=0 : OK
<0 : an error occured
Supported platforms:
Win32
Win64
Linux
Examples:

◆ DODiscoverW()

cvbres_t __stdcall DODiscoverW ( const wchar_t *  Seed,
uint64_t  SearchFlags,
uint64_t  Reserved,
ATLIST &  List,
size_t  DiscoverTimeoutMS 
)

Create a list of available devices or nodes given a wchar_t path.

The provided parameter limits/define the search configuration. After obtaining a list the user can query information on the entries in the list. For each entry in the list the user can obtain a describing string (access path) which can be used in the LoadImageFile function or in the LoadDeviceObject function to directly open a device. The obtained list handle must the released using ReleaseObject. This function creates internally a tree with nodes for level. The levels are System-VIN/TL-Interface-Device. The list presented in the end contains the terminal nodes of this tree. If Partial is set to FALSE all terminal nodes are of the same level which is the specified discovery level in the DODiscoverFlags::Flags::Depth field of SearchFlags. If Partial is set to TRUE also terminal nodes of incomplete branches are used.

For VINs we currently do not support discovery up the device level. This means that you can enumerate VINs but you can not directly open a single channel. So if depth is set to DDFLAG_LVL_VIN and a VIN access path is passed to the LoadImageFile function the driver is loaded as it has been in the past.

If the resulting Access Path Token (retrieved through DOEntryGetInfo or DOEntryGetInfoW with the command DD_INFO_JAS) is used in LoadImageFile or LoadImageFileW the resulting CVB Image object does not provide an ICameraSelect2 or IBoardSelect2 Interface since this would interfere with the entries in the INI file.

Parameters
[in]SeedInitial start string for the discovery process. For example this could be the JAS of an interface in which case only devices on this interface would be listed in the newly created list.
[in]SearchFlagsFlags providing additional search criteria/configurations. See DDFlags for more information.
[in]Reserved
[out]ListPointer receiving the handle to the created list.
[in]DiscoverTimeoutMSTimeout for the discovery in milliseconds on the last level. For example if it is specified in the SearchFlags that the max depth is DDFLAG_LVL_IFACE which would result in a list of available interfaces, the timeout would be used to when listing the available interfaces.
Returns
>=0 : OK
<0 : an error occured
Supported platforms:
Win32
Win64
Linux
Examples:

◆ DOEntryGetInfo()

cvbres_t __stdcall DOEntryGetInfo ( ATLIST  List,
size_t  Index,
DODiscoverInfoCommands  InfoCommand,
char *  Info,
size_t &  InfoSize 
)

Retrieve information on one entry in the discover list.

Parameters
[in]ListHandle to a discover list obtained through DODiscover or DODiscoverW.
[in]IndexZero based index of the entry in the list to get the info for.
[in]InfoCommandEntry in DDInfoCommands which specifies the information to retrieve.
[in,out]InfoString buffer to retrieve the information string. If NULL is passed to the function, infoSize will contain the required size on return.
[in,out]InfoSizeSize of the buffer provided in bytes. If Info passed a NULL pointer InfoSize contains the required buffer size upon return.
Returns
>=0 : OK
<0 : an error occured
Supported platforms:
Win32
Win64
Linux
Examples:

◆ DOEntryGetInfoW()

cvbres_t __stdcall DOEntryGetInfoW ( ATLIST  List,
size_t  Index,
DODiscoverInfoCommands  InfoCommand,
wchar_t *  Info,
size_t &  InfoSize 
)

Retrieve information on one entry in the discover list.

Parameters
[in]ListHandle to a discover list obtained through DODiscover or DODiscoverW.
[in]IndexZero based index of the entry in the list to get the info for.
[in]InfoCommandEntry in DDInfoCommands which specifies the information to retrieve.
[in,out]InfoWide char string buffer to retrieve the information string. If NULL is passed to the function, infoSize will contain the required size on return.
[in,out]InfoSizeSize of the buffer provided in bytes. If Info passed a NULL pointer InfoSize contains the required buffer size upon return.
Returns
>=0 : OK
<0 : an error occured
Supported platforms:
Win32
Win64
Linux
Examples:

◆ DOGetNumEntries()

cvbres_t __stdcall DOGetNumEntries ( ATLIST  List,
size_t &  NumEntries 
)

Inquire the number of entries in the discover list obtained through through DODiscover or DODiscoverW.

Parameters
[in]ListHandle to a discover list obtained through DODiscover or DODiscoverW.
[out]NumEntriesNumber of entries.
Returns
>=0 : OK
<0 : an error occured
Supported platforms:
Win32
Win64
Linux
Examples:

◆ DOSetFeature()

cvbres_t __stdcall DOSetFeature ( ATLIST  List,
size_t  Index,
const char *  NodeMapID,
const char *  Name,
const char *  Value 
)

Set a GenICam feature in the nodemap of the terminal node of the current list to the provided value.

Note
All features attached to a node are set before the parameters are applied.
Parameters
[in]ListHandle to the discovery list.
[in]IndexZero based index of the list entry.
[in]NodeMapIDName of the nodemap to use. This is the name reported in through the INodemapHandle2 interface. For standard nodemaps these names comply with the default names of INodemapHandle2
[in]NameName of the feature to set.
[in]ValueValue of the feature to set.
Returns
>=0 : OK
<0 : an error occured
Supported platforms:
Win32
Win64
Linux
Examples:

◆ DOSetFeatureW()

cvbres_t __stdcall DOSetFeatureW ( ATLIST  List,
size_t  Index,
const wchar_t *  NMId,
const wchar_t *  Name,
const wchar_t *  Value 
)

Set a GenICam feature in the nodemap of the terminal node of the current list to the provided value. All features attached to a node are set before the parameters are applied.

Parameters
[in]ListHandle to the discovery list.
[in]IndexZero based index of the list entry.
[in]NMIdName of the nodemap to use. This is the name reported in through the INodemapHandle2 interface. For standard nodemaps these names comply with the default names of INodemapHandle2
[in]NameName of the feature to set.
[in]ValueValue of the feature to set.
Returns
>=0 : OK
<0 : an error occured
Supported platforms:
Win32
Win64
Linux
Examples:

◆ DOSetParameter()

cvbres_t __stdcall DOSetParameter ( ATLIST  List,
size_t  Index,
const char *  Name,
const char *  Value 
)

Set an initialization parameter in the terminal node of one of the current list entries.

Parameters
[in]Listhandle to the list.
[in]IndexZero based index of the entry in the list.
[in]NameName of the parameter to set.
[in]ValueValue of the parameter to set
Returns
>=0 : OK
<0 : an error occured
Supported platforms:
Win32
Win64
Linux
Examples:

◆ DOSetParameterW()

cvbres_t __stdcall DOSetParameterW ( ATLIST  List,
size_t  Index,
const wchar_t *  Name,
const wchar_t *  Value 
)

Set an initialization parameter in the terminal node of one of the current list entries.

Parameters
[in]Listhandle to the list.
[in]IndexZero based index of the entry in the list.
[in]NameName of the parameter to set as wide char string.
[in]ValueValue of the parameter to set as wide char string.
Returns
>=0 : OK
<0 : an error occured
Supported platforms:
Win32
Win64
Linux
Examples:

◆ LoadDeviceObject()

cvbres_t LoadDeviceObject ( const char *  AccessToken,
DEVOBJ &  DeviceObject 
)

Load a device object as specified by a JSON Access Path as retrieved through DODiscovery. The returned object is not a CVB image as retrieved through LoadImageFile. It provides at least the INodemapHandle2 interface.

Parameters
[in]AccessTokenAccess Path of the driver node to open.
[out]DeviceObjectCVB Device Object (no image interface)
Returns
>=0 : OK
<0 : an error occured
Supported platforms:
Win32
Win64
Linux
Examples:

◆ LoadDeviceObjectW()

cvbres_t LoadDeviceObjectW ( const wchar_t *  AccessToken,
DEVOBJ &  DeviceObject 
)

Load a device object as specified by a JSON Access Path as retrieved through DODiscovery. The returned object is not a CVB image as retrieved through LoadImageFile. It provides at least the INodemapHandle2 interface.

Parameters
[in]AccessTokenAccess Path of the driver node to open.
[out]DeviceObjectCVB Device Object (no image interface)
Returns
>=0 : OK
<0 : an error occured
Supported platforms:
Win32
Win64
Linux
Examples: