Skip to content

Pylon::IInterface#

Module: Transport Layer

An interface is used to represent a frame grabber board, a network card, etc. More…

#include <pylon/Interface.h>

Inherits from Pylon::IDeviceFactory

Inherited by Pylon::CInstantInterface< T >

Public Functions#

Name
virtual void Open() =0
Opens an interface to be able access it's parameters via GetNodeMap().
virtual void Close() =0
Closes an interface.
virtual bool IsOpen() const =0
Checks if the interface is open.
virtual const CInterfaceInfo & GetInterfaceInfo() const =0
Returns the interface info object storing information like the Interface ID property.
virtual GenApi::INodeMap * GetNodeMap() =0
Returns the GenApi node map used for accessing parameters provided by the interface.
virtual int EnumerateDevices(DeviceInfoList_t & list, bool addToList =false) =0
Retrieves a list of available devices.
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.
virtual IPylonDevice * CreateDevice(const CDeviceInfo & di) =0
Creates a camera object from a device info object.
virtual IPylonDevice * CreateDevice(const CDeviceInfo & di, const StringList_t & InjectedXmlStrings) =0
virtual IPylonDevice * CreateDevice(const String_t & ) =0
virtual IPylonDevice * CreateFirstDevice(const CDeviceInfo & di =CDeviceInfo()) =0
virtual IPylonDevice * CreateFirstDevice(const CDeviceInfo & di, const StringList_t & InjectedXmlStrings) =0
virtual void DestroyDevice(IPylonDevice * ) =0
Destroys a device.
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.

Detailed Description#

class Pylon::IInterface;

An interface is used to represent a frame grabber board, a network card, etc.

Currently, this object type is mainly used for the pylon GenTL Consumer Transport Layer, e.g., for CoaXPress. All other pylon transport layers currently return one default interface.

The 'open' status of an interface instance won't change even if an attached camera is used, e.g., opened or closed.

Public Functions Documentation#

function Open#

virtual void Open() =0

Opens an interface to be able access it's parameters via GetNodeMap().

Note You can use the methods provided by IDeviceFactory regardless of whether the interface is opened or closed.

Postcondition:

  • The interface is open.
  • The node map can be accessed via GetNodeMap().

Thread Safety:

This method is thread-safe.

Error Safety:

Throws a C++ exception if opening the interface fails.

Reimplemented by: Pylon::CInstantInterface::Open

function Close#

virtual void Close() =0

Closes an interface.

Postcondition:

  • The interface is closed.
  • Any previously acquired node map using GetNodeMap() has been deleted and must not be used any longer.

Thread Safety:

This method is thread-safe.

Error Safety:

Does not throw C++ exceptions.

Reimplemented by: Pylon::CInstantInterface::Close

function IsOpen#

virtual bool IsOpen() const =0

Checks if the interface is open.

Return: Returns true if when the interface is open.

Note The 'open' status of an interface instance won't change even if an attached camera is used, e.g., opened or closed.

Thread Safety:

This method is thread-safe.

Error Safety:

Does not throw C++ exceptions.

Reimplemented by: Pylon::CInstantInterface::IsOpen

function GetInterfaceInfo#

virtual const CInterfaceInfo & GetInterfaceInfo() const =0

Returns the interface info object storing information like the Interface ID property.

Return: A reference to the interface info object.

Thread Safety:

This method is thread-safe.

Error Safety:

Does not throw C++ exceptions.

Reimplemented by: Pylon::CInstantInterface::GetInterfaceInfo

This information is available at all times regardless of whether the interface is open or closed.

function GetNodeMap#

virtual GenApi::INodeMap * GetNodeMap() =0

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

Return: Returns the GenApi node map used for accessing parameters provided by the interface. If no parameters are available, NULL is returned.

Note The default interface object does not provide a node map.

Thread Safety:

This method is thread-safe.

Error Safety:

Can throw C++ exceptions.

Reimplemented by: Pylon::CInstantInterface::GetNodeMap

function EnumerateDevices#

virtual int EnumerateDevices(
    DeviceInfoList_t & list,
    bool addToList =false
) =0

Retrieves a list of available devices.

Parameters:

  • list List to be filled with device info objects.
  • addToList If 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.

Return: Number of devices found.

Reimplemented by: Pylon::CTlFactory::EnumerateDevices, Pylon::CInstantInterface::EnumerateDevices

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.

function EnumerateDevices#

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.

Parameters:

  • list List to be filled with device info objects.
  • filter A list of device info objects with user-provided properties that a device can match.
  • addToList If 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.

Return: Number of devices found.

Reimplemented by: Pylon::CTlFactory::EnumerateDevices, Pylon::CInstantInterface::EnumerateDevices

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.

function CreateDevice#

virtual IPylonDevice * CreateDevice(
    const CDeviceInfo & di
) =0

Creates a camera object from a device info object.

Parameters:

  • di Device info object containing all information needed to identify exactly one device.

Reimplemented by: Pylon::CTlFactory::CreateDevice, Pylon::CInstantInterface::CreateDevice

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.

function CreateDevice#

virtual IPylonDevice * CreateDevice(
    const CDeviceInfo & di,
    const StringList_t & InjectedXmlStrings
) =0

Reimplemented by: Pylon::CTlFactory::CreateDevice, Pylon::CInstantInterface::CreateDevice

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

function CreateDevice#

virtual IPylonDevice * CreateDevice(
    const String_t & 
) =0

Reimplemented by: Pylon::CTlFactory::CreateDevice, Pylon::CInstantInterface::CreateDevice

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).

function CreateFirstDevice#

virtual IPylonDevice * CreateFirstDevice(
    const CDeviceInfo & di =CDeviceInfo()
) =0

Reimplemented by: Pylon::CTlFactory::CreateFirstDevice, Pylon::CInstantInterface::CreateFirstDevice

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.

function CreateFirstDevice#

virtual IPylonDevice * CreateFirstDevice(
    const CDeviceInfo & di,
    const StringList_t & InjectedXmlStrings
) =0

Reimplemented by: Pylon::CTlFactory::CreateFirstDevice, Pylon::CInstantInterface::CreateFirstDevice

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

function DestroyDevice#

virtual void DestroyDevice(
    IPylonDevice * 
) =0

Destroys a device.

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

Reimplemented by: Pylon::CTlFactory::DestroyDevice, Pylon::CInstantInterface::DestroyDevice

function IsDeviceAccessible#

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.

Parameters:

  • deviceInfo Properties to find/identify the camera device to check.
  • mode Used for defining how a device is accessed. The use of the mode information is transport layer-specific.

  • For 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.
  • pAccessibilityInfo Optional parameter that provides more information about whether a device is accessible or not.

Return: 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.

Reimplemented by: Pylon::CTlFactory::IsDeviceAccessible, Pylon::CInstantInterface::IsDeviceAccessible

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].