Skip to content

SICKAG/sick_visionary_gev_samples

Repository files navigation

sick_visionary_gev_samples

Overview

Version: 2.0.0
This repository contains programming samples for Sick Visionary-T Mini AP (V3S145-1AAAAAA), Sick Visionary-S AP (V3S142-1AAxxxx) and Sick Visionary-B Two (V3S146-1AAAAAA). All samples require that the Visionary Stream App is running on the devices.

Target audience
The samples provided in this repository are intended for developers and system integrators familiar with C++ or Python. Basic programming knowledge is assumed to adapt and extend the provided code.

License

The source code is released under the MIT license.

Supported Hardware

Device Name

Part No.

Description

Firmware Version

Visionary Stream App version

Visionary-T Mini AP (V3S145-1AAAAAA)

1127086

3D time-of-flight camera

3.15.3

2.0.2

Visionary-B Two (V3S146-1AAAAAA)

1133032

3D stereovision camera

3.17.0

2.0.2

Visionary-S AP (V3S142-1AAxxxx)

1114320 1114319

3D structured light stereovision camera

3.17.0

2.0.2

Network connection prerequisites

  • A Gigabit Ethernet (1000 Mbit/s) connection is the minimum requirement.

  • The network interface card (NIC) used to connect to the camera must support jumbo frames (typically MTU = 9000 bytes).

  • All Ethernet components between the camera and the host machine—including switches and routers—must also support jumbo frames.

  • Optimal network performance cannot be guaranteed without the use of jumbo frames.

Programming interfaces

This repository provides a collection of examples for accessing the cameras from C/C++ and Python.

C/C++: Using the SICK GenIStreamC library

GenIStreamC is an SDK from SICK that provides an easy-to-use programming interface for accessing GigE Vision and GenICam–based Visionary cameras. The library binaries, development files and documentation are distributed through a dedicated repository sick_visionary_gev_base. Refer to its GettingStarted document for all required instructions - system requirements, package structure and build instructions and in particular pointers to the library reference and other documentation.

Quick start

For advanced users and those who want get productive immediately: Ensure you have a recent version of cmake [1] and a compiler available on your machine’s system. To build the C++ samples, use the following command either in the top-level visionary_gev_samples directory or in the subdirectory of the respective sample using its specific CMakeLists.txt [2]:

  • cmake -B build optionally also specify other options like -G for custom generator

Now you can build the files with the chosen build-system you’ve generated them for, for instance, open the solution in VisualStudio or run make/ninja.

  • cmake --build build

To e.g. run the find_sensor sample, you can navigate to the build/output directory from their respective top-level directory:

$ cd build/output/


# On Windows depending on the <CONFIG> = {Debug, Release}

$ cd build/output/<CONFIG>/

and execute the sample:

$ ./find_sensor

or you can execute it from their respective top-level directory:

$ ./build/output/find_sensor

# On Windows depending on the <CONFIG> = {Debug, Release}

$ cd ./build/output/<CONFIG>/find_sensor

C++ samples

The entry point to accessing Visionary cameras is the

that demonstrates how to use the GenIStreamC library by giving a detailed, fully commented walkthrough. Further, a collection of task-specific source code samples is available:

Python: Using Harvesters

Harvesters (https://github.com/genicam/harvesters) is a lightweight Python framework that provides an easy‑to‑use interface for accessing GigE Vision and GenICam–based Visionary cameras. When used together with the SICK GenICam GenTL Producer, it enables efficient and intuitive implementation of streaming and device‑control functionality in Python applications.

Refer to the Python samples overview for specific installation instructions and description of the below mentioned samples. The starting point to work with GigE Vision and Harvesters is the

  • Python tutorial sample - a detailed, fully commented walkthrough of how to use Harvesters. We strongly recommend reviewing and understanding this script first. It is well‑documented and guides you step by step through the entire setup process. In addition, it performs several environment checks. Please pay close attention to any hints or warnings that appear during execution, as they may indicate configuration issues or missing dependencies.

Furthermore, we provide a task‑specific sample:

  • IP configuration - provides functionality to query and manage the IP configuration of the camera — an essential prerequisite for reliable device operation. A camera with an IP address that does not match the subnet of the connected network interface will be inaccessible. The main features supported by the script are:

    • Device discovery: Lists all currently visible devices, including identity details and current IP settings.

    • Temporary IP Assignment: Forces a temporary IP address (either user-defined or auto-selected) to bring the device into the same subnet as the host NIC. Note: This address is volatile and will not persist after a power cycle.

    • Persistent Configuration: Sets up permanent IP configuration for future boots, supporting static IP, DHCP, or LLA. Optionally, the IP configuration process can be forcefully restarted.

For detailed usage instructions, invoke the script with the --help parameter.

Further documentation

Further technical documentation is available in the doc/ folder:

Troubleshooting Guide

Create network traffic logs

Capture traffic using Wireshark

To assist with diagnostics, please capture network traffic during the issue using Wireshark. Wireshark is widely supported, and extensive documentation and tutorials are available online.

Enable debug log in Harvesters (Python)

Activate Python debug logs

For deeper insight into Harvesters behavior, enable debug logging via Python’s logging module:

from harvesters.core import Harvester
import logging
logging.basicConfig(format='%(asctime)s %(message)s', level=logging.DEBUG)
with Harvester(logger=logging) as h:
  ... <your script as usual> ...

Enable GenTL Producer logs

Advanced GenTL logging (only if requested)

In specific cases, detailed GenTL layer logging may be required. Enable it by setting the following environment variables:

SICK_GENTL_LOGGING=1
SICK_GENTL_LOGGING_LEVEL=99
  • On Windows: Use DebugView to view log output.

  • On Linux: Logs will be printed to stderr.

Warning
High-verbosity logging can significantly reduce acquisition performance. Enable it only when explicitly requested by support, and disable it after troubleshooting.

Multiple devices found

Handling duplicate device discovery

If a script reports multiple devices found, verify whether the device responds twice to discovery—once with read/write access and once without. This often indicates IP misconfiguration. Avoid multi-homing (assigning multiple IPs from different subnets to the same NIC), and review your IP setup accordingly.

Get diagnosis dump

Download encrypted device diagnostics

When contacting SICK support, providing a diagnosis dump can be helpful. You can download the encrypted dump file via HTTPS - simply paste the provided URL into your browser :
http://<CAMERA_IP>/api/crown/file?filePath=/diagnosisDump.zip

Known Issues

  • Downloading any camera system logs is not supported yet

Support

Depending on the nature of your question, there are two support channels:

  1. For questions regarding the code shared in this repo please check the FAQ first and search if an issue already exists. If a related issue doesn’t exist, you can open a new issue using the issue form.

  2. For application or device specific questions look for common solutions and knowledge articles on the Sick Support Portal. If your question is not answered there, open a ticket on the Sick Support Portal.

Keywords

Visionary-S Visionary-T Mini Visionary-B Two GigE Vision SICK AP


1. minimum required version >= 3.24
2. Also, other ways are possible

About

Provide samples for our products with GigEVision protocol

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors