Latest Threat Research:SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains.Details
Socket
Book a DemoInstallSign in
Socket

genicam

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

genicam

The official Python Binding for the GenICam GenApi & the GenTL Producers

pipPyPI
Version
1.5.1
Maintainers
1

The genicam module is the official Python binding of GenICam that is developed and maintained by the GenICam committee.

.. figure:: https://user-images.githubusercontent.com/8652625/44912527-715ca800-ad65-11e8-9a33-9a88d5411340.png :alt: GenICam

######################## About the genicam module ########################

The genicam module consists of two sub-modules. The one is genapi and the other is gentl. The genapi module gives you a way to control GenICam features of the target device supports. On the other hand, the gentl module gives you a way to control functionality that the target GenTL Producer supports.

######################## Using the genicam module ########################

The genapi module

In this section, you will learn how to use the genapi module.

========================== Creating a node map object

First, you create a node map object instantiating the NodeMap class:

.. code-block:: python

from genicam.genapi import NodeMap

node_map = NodeMap()

And then, load a device description file on the node map object. The NodeMap object supports several ways to make it. One is to load the file content as a str object:

.. code-block:: python

file_content = 'blabla'
node_map.load_xml_from_string(file_content)

Another way is to load the file as an XML file:

.. code-block:: python

file = an_xml_file
node_map.load_xml_from_file(file)

The other ways is to load the file as a Zip file:

.. code-block:: python

file = a_zip_file
node_map.load_xml_from_zip_file(file)

======================== Changing a feature value

Once you loaded a device description file on a node map object, you would start to control GenICam feature nodes to control the target device. Now assume that we are going to control a GenICam feature node called Foo. To get the value of Foo, we code as follows:

.. code-block:: python

a = node_map.Foo.value

On the other hand, if Foo is an Integer node then we code as follows to set a value:

.. code-block:: python

node_map.Foo.value = 42

If Foo is a Boolean node, then you code as follows:

.. code-block:: python

node_map.Foo.value = True

Or if Foo is an Enumeration node, then you code as follows; it also works for a case where Foo is a String node:

.. code-block:: python

node_map.Foo.value = 'Bar'

If Foo is a Command node, then you can execute the command with the following code:

.. code-block:: python

node_map.Foo.execute()

The gentl module

In this section, you will learn how to use the gentl module.

[TO BE DOCUMENTED]

Links

Harvester

There is a sister project of the GenICam Python binding. It's called Harvester and is a reference implementation of the GenICam Python binding. Harvester gives you an intuitive way for image acquisition to make your life easier.

Harvester is distributed under the Apache version 2 license so you can use it for free; however, note that GenICam applies for another license. The source code can be found at GitHub <https://github.com/genicam/harvesters>_.

In addition, Haveseter is also uploaded to PyPi repository so You can install that executing the following pip command:

.. code-block:: shell

$ pip install harvesters

EMVA

In the EMVA website <https://www.emva.org/standards-technology/genicam/genicam-downloads/>_, you can get useful resources to learn and use GenICam standards and its compliant devices and software:

It would be worth knowing the following keywords: GenApi, GenTL, SFNC, GenTL SFNC, CLProtocol, PFNC, and GenCP.

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts