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 targetC++17 compiler
jsoncpp (optional, for
--output-jsonsupport)
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 |
|
None |
Show usage help |
|
None |
Show NvSIPL Camera Query API version |
|
None |
List all camera config names and module names |
|
|
Query a specific camera configuration by name |
|
|
Query a specific module configuration by name |
|
|
Query a specific transport configuration by name |
|
None |
Show all registered device info (modules & transports) |
|
|
Parse an additional JSON config file before other queries |
|
None |
Dump camera module list as JSON |
API Overview#
This sample uses the INvSIPLCameraQuery interface (from NvSIPLCameraQuery.hpp):
Method |
Description |
|---|---|
|
Get library version information |
|
Create a query API instance |
|
Parse built-in sensor/module/transport database |
|
Parse additional JSON configuration file |
|
Get list of named configuration entries |
|
Get full |
|
Get |
|
Get a single |
|
Get a single |
|
Enable/disable specific links in a |
Key Data Structures#
Structure |
Description |
|---|---|
|
Top-level config with modules and transports |
|
Camera module with MIPI settings and |
|
Transport with |
|
GMSL or CoE specific module details |
|
GMSL or CoE specific transport details |
|
Sensor info common to all types (resolution, format, VC, and so on) |
|
CoE sensor with MAC address and IP |
|
GMSL sensor (inherits common config) |
|
Lists of all modules and transports by type |
For full API details, refer to the NVIDIA SIPL Camera Driver Release Documentation.