Libargus API
Libargus Camera API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
SensorOtpData.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * * Redistributions of source code must retain the above copyright
8  * notice, this list of conditions and the following disclaimer.
9  * * Redistributions in binary form must reproduce the above copyright
10  * notice, this list of conditions and the following disclaimer in the
11  * documentation and/or other materials provided with the distribution.
12  * * Neither the name of NVIDIA CORPORATION nor the names of its
13  * contributors may be used to endorse or promote products derived
14  * from this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
17  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
24  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28 
29 /**
30  * @file
31  * <b>Libargus Extension: Sensor OTP data API</b>
32  *
33  * @b Description: This file defines the SensorOtpData extension.
34  */
35 
36 #ifndef _ARGUS_SENSOR_OTP_DATA_H
37 #define _ARGUS_SENSOR_OTP_DATA_H
38 
39 namespace Argus
40 {
41 
42 /**
43  * Adds a OTP interface to get OTP data.
44  * It introduces one new interface:
45  * - Ext::ISensorOtpData: gets OTP data.
46  * @defgroup ArgusExtOtpData Ext::SensorOtpData
47  * @ingroup ArgusExtensions
48  */
49 DEFINE_UUID(ExtensionName, EXT_SENSOR_OTP_DATA, 1651af90,19b1,11eb,8b6f,08,00,20,0c,9a,66);
50 
51 namespace Ext
52 {
53 
54 /**
55  * @class ISensorOtpData
56  *
57  * Interface used to get OTP data
58  *
59  * @ingroup ArgusCameraDevice ArgusExtSensorOtpData
60  */
61 DEFINE_UUID(InterfaceID, IID_SENSOR_OTP_DATA, 3d125710,19b1,11eb,8b6f,08,00,20,0c,9a,66);
62 class ISensorOtpData : public Interface
63 {
64 public:
65  static const InterfaceID& id() { return IID_SENSOR_OTP_DATA; }
66 
67  /**
68  * Returns the size of the OTP data.
69  */
70  virtual uint32_t getSensorOtpDataSize() const = 0;
71 
72  /**
73  * Copies back the OTP data to the provided memory location.
74  * If the size of @a dst is smaller than the total size of the EEPROM data, only the first
75  * bytes up to size are copied.
76  * @param [out] dst The pointer to the location where the data will be copied.
77  * The caller is responsible for allocating and managing the memory.
78  * @param [in] size The size of the destination.
79  */
80  virtual Status getSensorOtpData(void *dst, uint32_t size) const = 0;
81 
82 protected:
84 };
85 
86 } // namespace Ext
87 
88 } // namespace Argus
89 
90 #endif
91 
92