
Product
Introducing Data Exports
Export Socket alert data to your own cloud storage in JSON, CSV, or Parquet, with flexible snapshot or incremental delivery.
genicam
Advanced tools
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.
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)
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
The official Python Binding for the GenICam GenApi & the GenTL Producers
We found that genicam demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

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.

Product
Export Socket alert data to your own cloud storage in JSON, CSV, or Parquet, with flexible snapshot or incremental delivery.

Research
/Security News
Bitwarden CLI 2026.4.0 was compromised in the Checkmarx supply chain campaign after attackers abused a GitHub Action in Bitwarden’s CI/CD pipeline.

Research
/Security News
Docker and Socket have uncovered malicious Checkmarx KICS images and suspicious code extension releases in a broader supply chain compromise.