Pylon Logo Basler Logo
Public Member Functions | List of all members
Pylon::ITransportLayer Interface Referenceabstract

The interface of Transport Layer objects. More...

#include <pylon/TransportLayer.h>

Inheritance diagram for Pylon::ITransportLayer:
Inheritance graph
[legend]

Public Member Functions

virtual CTlInfo GetTlInfo () const =0
 Returns a CTlInfo object holding information about the transport layer. More...
 
virtual CDeviceInfo CreateDeviceInfo ()=0
 Creates and returns an 'empty' Device Info object appropriate for the transport layer. More...
 
virtual GenApi::INodeMapGetNodeMap ()=0
 Returns the GenApi node map used for accessing parameters provided by the transport layer. More...
 
virtual int EnumerateInterfaces (InterfaceInfoList_t &list, bool addToList=false)=0
 Retrieves a list of available interfaces. More...
 
virtual IInterfaceCreateInterface (const CInterfaceInfo &interfaceInfo)=0
 Creates an interface object from an interface info object. More...
 
virtual void DestroyInterface (IInterface *pInterface)=0
 Destroys an interface. More...
 
virtual int EnumerateDevices (DeviceInfoList_t &list, bool addToList=false)=0
 Retrieves a list of available devices. More...
 
virtual int EnumerateDevices (DeviceInfoList_t &list, const DeviceInfoList_t &filter, bool addToList=false)=0
 Retrieves a list of available devices filtered by given properties, usable for looking for specific devices. More...
 
virtual IPylonDeviceCreateDevice (const CDeviceInfo &di)=0
 Creates a camera object from a device info object. More...
 
virtual IPylonDeviceCreateDevice (const CDeviceInfo &di, const StringList_t &InjectedXmlStrings)=0
 
virtual IPylonDeviceCreateDevice (const String_t &)=0
 
virtual IPylonDeviceCreateFirstDevice (const CDeviceInfo &di=CDeviceInfo())=0
 
virtual IPylonDeviceCreateFirstDevice (const CDeviceInfo &di, const StringList_t &InjectedXmlStrings)=0
 
virtual void DestroyDevice (IPylonDevice *)=0
 Destroys a device. More...
 
virtual bool IsDeviceAccessible (const CDeviceInfo &deviceInfo, AccessModeSet mode=Control, EDeviceAccessiblityInfo *pAccessibilityInfo=NULL)=0
 This method can be used to check if a camera device can be created and opened. More...
 

Detailed Description

The interface of Transport Layer objects.

Transport Layer objects are used for enumerating and creating devices accessible by a specific transport layer (like the Pylon1394 or the PylonGigE transport layer).

Member Function Documentation

virtual IPylonDevice* Pylon::IDeviceFactory::CreateDevice ( const CDeviceInfo di)
pure virtualinherited

Creates a camera object from a device info object.

This method accepts either a device info object from a device enumeration or a user-provided device info object. User-provided device info objects can be preset with properties required for a device, e.g. the user-provided name or the serial number. The implementation tries to find a matching camera by using device enumeration. When the device class property is set, the search is limited to the required transport layer.

If the device creation fails, a GenApi::GenericException will be thrown.

Parameters
diDevice info object containing all information needed to identify exactly one device.

Implemented in Pylon::CInstantInterface< T >, and Pylon::CTlFactory.

virtual IPylonDevice* Pylon::IDeviceFactory::CreateDevice ( const CDeviceInfo di,
const StringList_t InjectedXmlStrings 
)
pure virtualinherited

Creates a camera object from a device info object, injecting additional GenICam XML definition strings. Currently only one injected xml string is supported.

Implemented in Pylon::CInstantInterface< T >, and Pylon::CTlFactory.

virtual IPylonDevice* Pylon::IDeviceFactory::CreateDevice ( const String_t )
pure virtualinherited

This method is deprecated. Use CreateDevice and pass a CDeviceInfo object containing the full name as a property. Example: IPylonDevice* device = TlFactory.CreateDevice( CDeviceInfo().SetFullName( fullname)); creates a device that matches its full name (i.e., as returned by CDeviceInfo::GetFullName).

Implemented in Pylon::CInstantInterface< T >, and Pylon::CTlFactory.

virtual CDeviceInfo Pylon::ITransportLayer::CreateDeviceInfo ( )
pure virtual

Creates and returns an 'empty' Device Info object appropriate for the transport layer.

Device Info objects returned by the CreateDeviceInfo() method are used to create devices from device info objects that are not the result of a device enumeration process but are provided by the user. The user is responsible for filling in the fields of the Device Info object that are needed to identify and create a device.

Example: To open a GigE device for which the IP address is known, the user lets the Transport Layer object create a Device Info object, specifies the IP address and passes the device info object to the CreateDevice() method.

virtual IPylonDevice* Pylon::IDeviceFactory::CreateFirstDevice ( const CDeviceInfo di = CDeviceInfo())
pure virtualinherited

If multiple devices match the provided properties, the first device found is created. The order in which the devices are found can vary from call to call.

Implemented in Pylon::CInstantInterface< T >, and Pylon::CTlFactory.

virtual IPylonDevice* Pylon::IDeviceFactory::CreateFirstDevice ( const CDeviceInfo di,
const StringList_t InjectedXmlStrings 
)
pure virtualinherited

Creates the first found camera device matching the provided properties, injecting additional GenICam XML definition strings. Currently only one injected xml string is supported.

Implemented in Pylon::CInstantInterface< T >, and Pylon::CTlFactory.

virtual IInterface* Pylon::ITransportLayer::CreateInterface ( const CInterfaceInfo interfaceInfo)
pure virtual

Creates an interface object from an interface info object.

Parameters
[in]interfaceInfoThe Interface info object. You can pass an interface info object returned by EnumerateInterfaces() or a user-provided interface info object. User-provided interface info objects can be preset with properties required for an interface, e.g. the interface ID. The implementation tries to find a matching interface.
Returns
Returns the pointer to the interface created.
Postcondition
The interface created must be freed by calling DestroyInterface(). The transport layer is not destroyed as long as the interface is not destroyed. Never try to delete a pointer to an interface object by calling free or delete. Always use the DestroyInterface() method.
Error Safety:
Throws an exception if creating the interface fails.
Thread Safety:
This method is thread-safe.
virtual void Pylon::IDeviceFactory::DestroyDevice ( IPylonDevice )
pure virtualinherited

Destroys a device.

Note
Never try to delete a pointer to a camera device by calling free or delete. Always use the DestroyDevice method.

Implemented in Pylon::CInstantInterface< T >, and Pylon::CTlFactory.

virtual void Pylon::ITransportLayer::DestroyInterface ( IInterface pInterface)
pure virtual

Destroys an interface.

Parameters
[in]pInterfaceThe pointer to an interface created by this transport layer.
Precondition
The interface has been created by this transport layer using CreateInterface() and has not been destroyed using DestroyInterface() yet.
Postcondition
The interface is deleted and must not be used any longer.
Error Safety:
Throws a C++ exception if the preconditions are not met.
Thread Safety:
This method is thread-safe.
virtual int Pylon::IDeviceFactory::EnumerateDevices ( DeviceInfoList_t list,
bool  addToList = false 
)
pure virtualinherited

Retrieves a list of available devices.

The list contains Pylon::CDeviceInfo objects used for the device creation and is ordered by device class and serial number using the operator Pylon::CDeviceInfo::operator<(). By default, the list will be cleared before the device discovery is started.

Parameters
listList to be filled with device info objects.
addToListIf true, the devices found will be appended to the list instead of deleting the list. Only newly discovered devices are sorted and not the entire list.
Returns
Number of devices found.

Implemented in Pylon::CInstantInterface< T >, and Pylon::CTlFactory.

virtual int Pylon::IDeviceFactory::EnumerateDevices ( DeviceInfoList_t list,
const DeviceInfoList_t filter,
bool  addToList = false 
)
pure virtualinherited

Retrieves a list of available devices filtered by given properties, usable for looking for specific devices.

The list contains Pylon::CDeviceInfo objects used for the device creation and is ordered by device class and serial number using the operator Pylon::CDeviceInfo::operator<(). By default, the list will be cleared before the device discovery is started. The filter list can contain a list of device info objects containing properties a device must have, e.g., the user-provided name or the serial number. A device is returned if it matches the properties of any of the device info objects on the filter list. If the device class property is set in the filter device info objects, the search is limited to the required transport layers.

Parameters
listList to be filled with device info objects.
filterA list of device info objects with user-provided properties that a device can match.
addToListIf true, the devices found will be appended to the list instead of deleting the list. Only newly discovered devices are sorted and not the entire list.
Returns
Number of devices found.

Implemented in Pylon::CInstantInterface< T >, and Pylon::CTlFactory.

virtual int Pylon::ITransportLayer::EnumerateInterfaces ( InterfaceInfoList_t list,
bool  addToList = false 
)
pure virtual

Retrieves a list of available interfaces.

An interface may represent a frame grabber board, a network card, etc.

Note
Currently, this method is used mainly for the pylon GenTL Consumer transport layer, which is used for CoaXPress, for example. All other pylon transport layers return one default interface. The default interface will forward all IDeviceFactory methods to the transport layer that created the interface object. The default interface does not provide a node map.
Parameters
[out]listThe list to be filled with interface info objects. The list contains Pylon::CInterfaceInfo objects used for the interface creation. It is ordered by device class and interface ID using the operator Pylon::CInterfaceInfo::operator<().
[in]addToListIf true, devices found will be added to the list instead of clearing the list. By default, the list passed in will be cleared.
Returns
Number of interfaces provided by the transport layer.
Thread Safety:
This method is thread-safe.
Error Safety:
Can throw C++ exceptions.
virtual GenApi::INodeMap* Pylon::ITransportLayer::GetNodeMap ( )
pure virtual

Returns the GenApi node map used for accessing parameters provided by the transport layer.

Returns
NULL, if the transport layer doesn't provide parameters, a pointer to the parameter node map otherwise.
virtual CTlInfo Pylon::ITransportLayer::GetTlInfo ( ) const
pure virtual

Returns a CTlInfo object holding information about the transport layer.

Returns
Returns a CTlInfo object holding information about the transport layer.
virtual bool Pylon::IDeviceFactory::IsDeviceAccessible ( const CDeviceInfo deviceInfo,
AccessModeSet  mode = Control,
EDeviceAccessiblityInfo pAccessibilityInfo = NULL 
)
pure virtualinherited

This method can be used to check if a camera device can be created and opened.

This method accepts either a device info object from a device enumeration or a user-provided device info object. User-provided device info objects can be preset with properties required for a device, e.g. the user-provided name or the serial number. The implementation tries to find a matching camera by using device enumeration. When the device class property is set, see DeviceClass.h header file, the search is limited to the required transport layer. For more information, see Applying a Filter when Enumerating Cameras.

Parameters
[in]deviceInfoProperties to find/identify the camera device to check.
[in]modeUsed for defining how a device is accessed. The use of the mode information is transport layer-specific.
  • For BCON, CameraLink, and USB devices, the mode information is ignored.
  • For GigE devices, the Exclusive and Control flags are used for defining how a device is accessed. Other mode information is ignored.
  • For devices of any type that are accessed via the GenICam GenTL transport layer, the mode is ignored.
[out]pAccessibilityInfoOptional parameter that provides more information about whether a device is accessible or not.
Returns
True if device can be opened with provided access mode.
Precondition
The deviceInfo object properties specify exactly one device. This is the case when the device info object has been obtained using device enumeration.
Error Safety:
Throws a C++ exception, if the preconditions are not met.

Implemented in Pylon::CInstantInterface< T >, and Pylon::CTlFactory.


The documentation for this interface was generated from the following file:

pylon 6.1.0
Copyright (c) 2006-2020 Basler AG (Mon Mar 16 2020 10:57:01)