NVIDIA DRIVE OS Linux SDK API Reference

6.0.9 Release
NvSIPLQuery.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2019-2023, NVIDIA CORPORATION. All rights reserved.
3  *
4  * NVIDIA CORPORATION and its licensors retain all intellectual property
5  * and proprietary rights in and to this software, related documentation
6  * and any modifications thereto. Any use, reproduction, disclosure or
7  * distribution of this software and related documentation without an express
8  * license agreement from NVIDIA CORPORATION is strictly prohibited.
9  */
10 #ifndef NVSIPLQUERY_HPP
11 #define NVSIPLQUERY_HPP
12 
13 #include "NvSIPLCommon.hpp"
14 #include "NvSIPLPlatformCfg.hpp"
15 
16 #include <string>
17 #include <cstdint>
18 #include <memory>
19 #include <vector>
20 
28 namespace nvsipl
29 {
30 
34 {
36  std::vector<SensorInfo> sensorInfoList;
38  std::vector<EEPROMInfo> eepromInfoList;
40  std::vector<SerInfo> serInfoList;
42  std::vector<CameraModuleInfo> cameraModuleList;
44  std::vector<DeserInfo> deserInfoList;
45 };
46 
67 {
68 public:
69 
70  static constexpr uint32_t MAJOR_VER = 1u;
71  static constexpr uint32_t MINOR_VER = 0u;
72  static constexpr uint32_t PATCH_VER = 0u;
80  struct Version
81  {
82  uint32_t uMajor = MAJOR_VER;
83  uint32_t uMinor = MINOR_VER;
84  uint32_t uPatch = PATCH_VER;
85  };
86 
107  static void GetVersion(Version& version);
108 
133  static std::unique_ptr <INvSIPLQuery> GetInstance(void);
134 
156  virtual SIPLStatus ParseDatabase(void) = 0;
157 
183  virtual SIPLStatus ParseJsonFile(std::string fileName) = 0;
184 
205  const virtual DeviceInfoList* GetDeviceInfoList() const = 0;
206 
227  virtual std::vector <const PlatformCfg*> GetPlatformCfgList() const = 0;
228 
248  virtual SIPLStatus GetPlatformCfg(std::string name,
249  PlatformCfg& oConfig) const = 0;
250 
258  {
259  LINK_0 = 0x0001,
260  LINK_1 = 0x0010,
261  LINK_2 = 0x0100,
262  LINK_3 = 0x1000
263  };
264 
291  virtual SIPLStatus ApplyMask(PlatformCfg& platCfg,
292  const std::vector <uint32_t>& vMasks) const = 0;
293 
295  virtual ~INvSIPLQuery() = default;
296 
297 }; //INvSIPLQuery
298 
301 }// namespace nvsipl
302 
303 
304 
305 #endif //NVSIPLQUERY_HPP
nvsipl::INvSIPLQuery::GetPlatformCfg
virtual SIPLStatus GetPlatformCfg(std::string name, PlatformCfg &oConfig) const =0
Returns a PlatformCfg object by name.
nvsipl::DeviceInfoList::sensorInfoList
std::vector< SensorInfo > sensorInfoList
Holds a vector of SensorInfo objects.
Definition: NvSIPLQuery.hpp:36
nvsipl::INvSIPLQuery
Defines the public data structures and describes the interfaces for NvSIPLQuery.
Definition: NvSIPLQuery.hpp:66
nvsipl::INvSIPLQuery::GetInstance
static std::unique_ptr< INvSIPLQuery > GetInstance(void)
Gets a handle to an instance of INvSIPLQuery.
nvsipl::INvSIPLQuery::GetDeviceInfoList
const virtual DeviceInfoList * GetDeviceInfoList() const =0
Returns a pointer to the list of all external image devices supported by NvSIPL Query and SIPL Device...
nvsipl::INvSIPLQuery::Version
Defines the version information for NvSIPLQuery_API.
Definition: NvSIPLQuery.hpp:80
NvSIPLCommon.hpp
NVIDIA SIPL: Common Data Structures - SIPL
NvSIPLPlatformCfg.hpp
NVIDIA SIPL: Camera Platform Configuration
nvsipl::INvSIPLQuery::EnableMask
EnableMask
Defines link enable masks for deserializers.
Definition: NvSIPLQuery.hpp:257
nvsipl::INvSIPLQuery::Version::uMinor
uint32_t uMinor
Holds a minor revision.
Definition: NvSIPLQuery.hpp:83
nvsipl::INvSIPLQuery::Version::uPatch
uint32_t uPatch
Holds a patch revision.
Definition: NvSIPLQuery.hpp:84
nvsipl::INvSIPLQuery::MAJOR_VER
static constexpr uint32_t MAJOR_VER
Indicates a major revision.
Definition: NvSIPLQuery.hpp:70
nvsipl::INvSIPLQuery::MINOR_VER
static constexpr uint32_t MINOR_VER
Indicates a minor revision.
Definition: NvSIPLQuery.hpp:71
nvsipl::PlatformCfg
Defines the camera platform configuration.
Definition: NvSIPLPlatformCfg.hpp:36
nvsipl::DeviceInfoList::deserInfoList
std::vector< DeserInfo > deserInfoList
Holds a vector of DeserInfo objects.
Definition: NvSIPLQuery.hpp:44
nvsipl::INvSIPLQuery::LINK_1
@ LINK_1
2nd Link
Definition: NvSIPLQuery.hpp:260
nvsipl::INvSIPLQuery::GetVersion
static void GetVersion(Version &version)
Returns the library version.
nvsipl::INvSIPLQuery::ParseDatabase
virtual SIPLStatus ParseDatabase(void)=0
Parses the built-in JSON database and updates the internal state of the implementation class.
nvsipl::DeviceInfoList::eepromInfoList
std::vector< EEPROMInfo > eepromInfoList
Holds a vector of EEPROMInfo objects.
Definition: NvSIPLQuery.hpp:38
nvsipl::INvSIPLQuery::ParseJsonFile
virtual SIPLStatus ParseJsonFile(std::string fileName)=0
Parses the input JSON file containing a list of user-specified camera platform configuration.
nvsipl::SIPLStatus
SIPLStatus
Defines the status codes returned by functions in SIPL modules.
Definition: NvSIPLCommon.hpp:150
nvsipl::DeviceInfoList::serInfoList
std::vector< SerInfo > serInfoList
Holds a vector of SerInfo objects.
Definition: NvSIPLQuery.hpp:40
nvsipl::INvSIPLQuery::ApplyMask
virtual SIPLStatus ApplyMask(PlatformCfg &platCfg, const std::vector< uint32_t > &vMasks) const =0
Applies masks to the input platform configuration.
nvsipl::DeviceInfoList
Defines a list of all external image devices supported by NvSIPL Query and SIPL Device Block drivers.
Definition: NvSIPLQuery.hpp:33
nvsipl::INvSIPLQuery::PATCH_VER
static constexpr uint32_t PATCH_VER
Indicates a patch revision.
Definition: NvSIPLQuery.hpp:72
nvsipl::INvSIPLQuery::GetPlatformCfgList
virtual std::vector< const PlatformCfg * > GetPlatformCfgList() const =0
Returns a list of camera platform configurations supported by NvSIPL Query and NvSIPL Camera.
nvsipl::INvSIPLQuery::LINK_2
@ LINK_2
3rd Link
Definition: NvSIPLQuery.hpp:261
nvsipl::DeviceInfoList::cameraModuleList
std::vector< CameraModuleInfo > cameraModuleList
Holds a vector of CameraModuleInfo objects.
Definition: NvSIPLQuery.hpp:42
nvsipl::INvSIPLQuery::Version::uMajor
uint32_t uMajor
Holds a major revision.
Definition: NvSIPLQuery.hpp:82
nvsipl
Contains the classes and variables for implementation of SIPL.
Definition: INvSiplControlAuto.hpp:33
nvsipl::INvSIPLQuery::LINK_0
@ LINK_0
1st Link
Definition: NvSIPLQuery.hpp:259
nvsipl::INvSIPLQuery::LINK_3
@ LINK_3
4th Link
Definition: NvSIPLQuery.hpp:262
nvsipl::INvSIPLQuery::~INvSIPLQuery
virtual ~INvSIPLQuery()=default
Default destructor.