ISystem#
-
namespace Itala
Functions
-
ISystem *CreateSystem()#
Entry point of the runtime. It allocates all necessary resources and creates the system instance. Only one system can be created at a time. If a system instance is already alive, a call to this function leads to an error. That means the system pointer should be passed around in the client code. If the system instance created by this function is owned by a smart pointer, the ISystem::Dispose function must be used as deleter or, in general, called on destruction if RAII techniques are used.
- Returns:
Pointer to the created system instance.
-
struct ISystem : public Itala::IDisposable#
- #include <ISystem.h>
Root of the API. This interface represents the whole runtime and its main task is to provide functions for device enumeration and configuration. Only one system can be created at a time. It encloses the functionalities defined by the GenTL standard. The ownership of the system instance belongs to the client code: it needs to be disposed when it’s no longer required via ISystem::Dispose.
Public Functions
-
virtual DeviceInfoList EnumerateDevices(uint64_t timeout) = 0#
Enumerates devices across all interfaces. The maximum number of enumerated devices is 255.
- Parameters:
timeout – maximum amount of time in ms for the enumeration to terminate.
- Returns:
A list of information objects identifying each enumerated device.
-
virtual DeviceInfoList EnumerateDevices(InterfaceInfo itfInfo, uint64_t timeout) = 0#
Enumerates all devices under a specific network interface. The maximum number of enumerated devices is 255.
See also
- Parameters:
itfInfo – info object identyfing the interface to be used for enumeration.
timeout – maximum amount of time in ms for the enumeration to terminate.
-
virtual DeviceInfoList EnumerateDevices(InterfaceInfoList itfInfos, uint64_t timeout) = 0#
Enumerates all devices under a list of specific interfaces. The maximum number of enumerated devices is 255.
See also
- Parameters:
itfInfos – list of info objects identyfing the interfaces to be used for enumeration.
timeout – maximum amount of time in ms for the enumeration to terminate.
-
virtual IDevice *CreateDevice(DeviceInfo devInfo) = 0#
Creates a device instance which represents a physical device, given its identyfing info. The maximum number of simultaneously created devices is 50. When no longer needed, device instances must be disposed via IDevice::Dispose. The filter driver and packet resend functionalities are automatically enabled for the created device instance. Make sure the filter driver component is enabled on the NIC the device is connected to. If the instance is owned by a smart pointer, the IDevice::Dispose function must be used as deleter.
- Parameters:
devInfo – info object identyfing the device to be created.
- Returns:
Pointer to the created device instance.
-
virtual GenApi::INodeMap &GetNodeMap() const = 0#
Get the GenICam nodemap of the GenTL System module. The nodemap instance is accessible via GenApi library and allows the user to configure the behaviour of the system. The nodemap is owned by ItalaApi thus it’s returned by reference.
- Returns:
Reference to the system nodemap.
-
virtual InterfaceInfoList EnumerateInterfaces() = 0#
Enumerates the available network interfaces.
- Returns:
List of information objects identifying each interface found.
-
virtual GenApi::INodeMap &GetInterfaceNodeMap(InterfaceInfo itfInfo) = 0#
Get the GenICam nodemap of a network interface. The nodemap instance is accessible via GenApi library and allows the user to configure the behaviour of the interface. The nodemap is owned by ItalaApi thus it’s returned by reference.
- Returns:
Reference to the nodemap of the requested interface.
Protected Functions
-
inline virtual ~ISystem()#
-
virtual DeviceInfoList EnumerateDevices(uint64_t timeout) = 0#
-
ISystem *CreateSystem()#