
Research
SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains
An emerging npm supply chain attack that infects repos, steals CI secrets, and targets developer AI toolchains for further compromise.
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.

Research
An emerging npm supply chain attack that infects repos, steals CI secrets, and targets developer AI toolchains for further compromise.

Company News
Socket is proud to join the OpenJS Foundation as a Silver Member, deepening our commitment to the long-term health and security of the JavaScript ecosystem.

Security News
npm now links to Socket's security analysis on every package page. Here's what you'll find when you click through.