SIPL Query Sample#

Sample application demonstrating the INvSIPLCameraQuery API with the SensorSystemConfig structure. It works with both GMSL and CoE (Camera over Ethernet) camera configurations.

For JSON schema and query database details, see SIPL Query JSON Guide.

Requirements#

  • NVIDIA SIPL library (libnvsipl_query.so) on the Jetson target

  • C++17 compiler

  • jsoncpp (optional, for --output-json support)

Building#

The sample is built automatically as part of the top-level CMake build (see the top-level README in the SIPL package).

On the Jetson target:

cd /usr/src/jetson_sipl_api/sipl
mkdir -p build && cd build
cmake ..
make nvsipl_query

Note

On a host machine without libnvsipl_query.so, the build system prints a warning and skips this target. Cross-compile or build on the target directly.

Note

If jsoncpp is not installed, the build succeeds but --output-json is not available. Install with apt install libjsoncpp-dev if needed.

Usage#

Bare Run (No Arguments)#

With no arguments, the application lists all named camera configurations from GetCameraConfigNames() and displays each one in the legacy tab-indented format (matching the internal nvsipl_query output).

nvsipl_query

Command-Line Options#

# Show version information
nvsipl_query -v

# List all available camera configurations and module names
nvsipl_query -l

# Query a specific configuration by name (hierarchical display)
nvsipl_query -c <configName>

# Query a specific module by name (hierarchical display)
nvsipl_query -m <moduleName>

# Query a specific transport by name (hierarchical display)
nvsipl_query -s <transportName>

# Show all registered device info (modules & transports, GMSL + CoE)
nvsipl_query -d

# Parse an additional JSON config file before querying
nvsipl_query -t <jsonFile> -l
nvsipl_query -t <jsonFile> -c <configName>

# Dump camera module list as JSON (consumed by IQ Tuning tool)
nvsipl_query --output-json

# Show help
nvsipl_query -h

Options can be combined, for example:

nvsipl_query -v -l -d
nvsipl_query -t custom.json -c MyConfig

Display Modes#

Legacy-Style (Bare Run)#

The default output when run with no arguments. Displays all configs in a tab-indented format matching the internal nvsipl_query, with per-transport module listings and transport settings.

Platform: Vb1940
Platform configuration: VB1940
Platform configuration description: VB1940 Camera 2 Configuration
     CoE transport: HsbTransport
                  Interface: mgbe0_0
     CameraModule (CoE)
                  Name: VB1940
                  Description: VB1940 Camera 2 Configuration
             Sensor Name: VB1940
                    ID: 0
                    MAC: 8c:1f:64:6d:70:23
                    IP: 192.168.4.12
Transport Settings:
Name: HsbTransport
Type: CoE
Interface: mgbe0_0
HSB IP: 192.168.4.12
VLAN Enable: No
Sync Sensors: Yes

Hierarchical (with -c, -m, -s, -d)#

A structured display used by the query options. Provides a more compact view with full detail.

=== SensorSystemConfig: VB1940 ===
Transports (1):
  Transport: HsbTransport (ID: 0)
    CoE Transport | Interface: mgbe0_0 | IP: 192.168.4.12 | VLAN: No | Sync: Yes
Modules (2):
  Module: VB1940
    Platform: Vb1940 | Config: VB1940 | Transport ID: 0
    MIPI: DPHY | Lanes: 4 | DPHY Rate: 1140000 kbps
    Type: CoE
      Sensor: VB1940 (ID: 0)
        I2C Address: 0x10
        MAC: 8c:1f:64:6d:70:23 | IP: 192.168.4.12

JSON (--output-json)#

Machine-readable output consumed by the IQ Tuning tool (AutomotiveReprocessingController). Requires jsoncpp at build time.

Outputs a JSON object with a cameraModules array containing sensor details, resolution, format, and platform config cross-references for each module.

Configuration Names vs Module Names#

GetCameraConfigNames() returns named composed configurations (for example, heterogeneous setups combining different sensor types). Individual module template names (for example, AR0234CS_HAWK, CONTI_IMX728) are available via GetDeviceInfoList() but might not appear in GetCameraConfigNames().

The -l option merges both sources to show the complete list. The -c option works with config names from GetCameraConfigNames(). The -m option works with module names from either GetModuleConfig() or the device info lists.

Command-Line Reference#

Option

Argument

Description

(no args)

None

Legacy-style text dump of all configs

-h

None

Show usage help

-v

None

Show NvSIPL Camera Query API version

-l

None

List all camera config names and module names

-c

<configName>

Query a specific camera configuration by name

-m

<moduleName>

Query a specific module configuration by name

-s

<transportName>

Query a specific transport configuration by name

-d

None

Show all registered device info (modules & transports)

-t

<jsonFile>

Parse an additional JSON config file before other queries

--output-json

None

Dump camera module list as JSON

API Overview#

This sample uses the INvSIPLCameraQuery interface (from NvSIPLCameraQuery.hpp):

Method

Description

GetVersion()

Get library version information

GetInstance()

Create a query API instance

ParseDatabase()

Parse built-in sensor/module/transport database

ParseJsonFile()

Parse additional JSON configuration file

GetCameraConfigNames()

Get list of named configuration entries

GetSensorSystemConfig()

Get full SensorSystemConfig by name

GetDeviceInfoList()

Get CameraDeviceInfoList (GMSL + CoE modules & transports)

GetModuleConfig()

Get a single ModuleConfig by name

GetTransportSettings()

Get a single TransportConfig by name

ApplyMask()

Enable/disable specific links in a SensorSystemConfig

Key Data Structures#

Structure

Description

SensorSystemConfig

Top-level config with modules and transports

ModuleConfig

Camera module with MIPI settings and ModuleType variant

TransportConfig

Transport with TransportType variant

GmslModule / CoEModule

GMSL or CoE specific module details

GmslTransportConfig / CoETransportConfig

GMSL or CoE specific transport details

CommonSensorConfig

Sensor info common to all types (resolution, format, VC, and so on)

CoECameraSensorConfig

CoE sensor with MAC address and IP

GmslCameraSensorConfig

GMSL sensor (inherits common config)

CameraDeviceInfoList

Lists of all modules and transports by type

For full API details, refer to the NVIDIA SIPL Camera Driver Release Documentation.