Tools & Software
API Reference & Integration
The ZanVision SDK provides a comprehensive C/C++ API for direct hardware control of our thermal imaging and electro-optical camera modules. Key API groups include device enumeration and initialization, stream configuration and frame capture, NUC (Non-Uniformity Correction) calibration control, shutter and FFC (Flat Field Correction) management, temperature measurement and radiometric data access, GPIO and external synchronization triggers, and firmware update and diagnostic commands. The complete API reference is included in each SDK download package as Doxygen-generated HTML documentation.
Platform Compatibility
The SDK supports cross-platform development with native libraries for Linux (x86_64, ARMv7, ARM64/aarch64) and Windows (x64). Linux builds are tested on Ubuntu 20.04/22.04 LTS, Debian 11/12, and Yocto-based embedded distributions. Pre-compiled .so (Linux) and .dll (Windows) binaries are provided alongside full source code for ARM cross-compilation toolchains. Android and macOS support are available through portable C++ source compilation with minimal platform abstraction layer modifications.
Code Examples & Quick Start
Each SDK package includes ready-to-compile sample applications covering the most common integration scenarios. The grabber example demonstrates single and multi-camera frame acquisition with configurable resolution and frame rate. The radiometry example shows how to convert raw 16-bit thermal data to temperature values using factory calibration coefficients. The trigger_sync example illustrates hardware trigger configuration for multi-camera synchronized capture. The video_encode example provides a complete pipeline from raw frame acquisition to H.264/H.265 hardware-accelerated encoding. All examples compile with a single cmake command and include detailed inline comments explaining each API call and its parameters.
Integration Guide
Standard integration follows a four-step workflow. First, initialize the SDK context and enumerate connected devices using zv_device_list() and zv_device_open(). Second, configure stream parameters including resolution, pixel format (YUV, RAW14, or RGB), and frame rate through zv_stream_config(). Third, start acquisition with zv_stream_start() and retrieve frames via a callback or polling loop using zv_frame_get(). Fourth, implement cleanup with zv_stream_stop() and zv_device_close(). For performance-critical applications, the SDK supports zero-copy frame buffer sharing via DMA-BUF on Linux and direct GPU texture mapping on Windows. The memory-mapped transfer mode achieves sub-2ms latency for 640x512 16-bit frames.
Compatibility Matrix
| Module Series | Linux x64 | Linux ARM | Windows x64 | Interface |
|---|---|---|---|---|
| LWIR TC/TM Series | v3.2+ | v3.2+ | v3.2+ | USB 3.0 / GigE |
| MWIR Cooled Series | v3.2+ | v3.2+ | v3.2+ | GigE / Camera Link |
| EOS Visible Series | v3.1+ | v3.1+ | v3.1+ | USB 3.0 / MIPI |
| DRI Calculator Tools | Web | Web | Web | Browser-based |
Getting Started FAQ
- Which SDK version do I need?
- The SDK package is versioned by module series. Download the package matching your camera module family. Each package includes headers, libraries, sample code, and full API documentation. Contact our engineering team at info@zanvisiontech.com for access to pre-release or custom builds.
- Can I evaluate the SDK before purchasing hardware?
- Yes. The SDK includes a software emulation mode that replays pre-recorded thermal and visible frame sequences, allowing full API integration testing without physical hardware. Contact our sales team to request the evaluation package with sample data sets.
- What is the typical integration timeline?
- Basic frame acquisition can be achieved within 2 to 4 hours using the provided sample applications. Full integration including custom stream processing, radiometric calibration mapping, and production hardening typically requires 1 to 2 weeks of engineering effort. Our applications engineering team provides direct support throughout the integration process.
- Is the SDK thread-safe?
- All device-level API calls are internally synchronized. Multi-camera applications can safely call device functions from separate threads. Stream callback contexts are isolated per device. Frame buffer access requires application-level synchronization when sharing buffers across processing pipelines.
Performance Optimization Notes
For maximum throughput in multi-camera deployments, the SDK provides configurable buffer pools and DMA transfer modes. On ARM platforms, zero-copy frame delivery is achieved through dmabuf export and import across process boundaries. For x86 systems, GPU-accelerated color mapping and resize operations are available through CUDA and OpenCL backends, reducing CPU load by up to 70 percent in 4K streaming pipelines. The SDK also includes built-in performance profiling instrumentation that reports per-frame latency breakdowns covering acquisition, transfer, processing, and encoding stages without external tooling.
Technical Support & Resources
All SDK licenses include 12 months of technical support from the ZanVision applications engineering team, covering API integration guidance, performance tuning recommendations, and bug-fix updates. Support is provided through a dedicated ticketing portal with guaranteed 24-hour first-response on business days. Additional resources include a private GitHub repository with changelog and known-issue tracking, regular webinars covering new SDK features and best practices, and optional on-site integration support for volume OEM customers. Extended support terms and priority SLAs are available for enterprise license agreements.
The SDK also provides comprehensive logging and debugging facilities including configurable verbosity levels, per-module log routing, frame snapshot utilities for visual debugging, and built-in support for exporting diagnostic reports. These tools significantly reduce integration debugging time and help identify configuration issues early in the development cycle.