openmv/drivers/lepton/include/LEPTON_OEM.h
iabdalkader daf2bb30da misc: Restructure repo.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-13 08:28:34 +02:00

558 lines
25 KiB
C
Executable File

/*******************************************************************************
**
** File NAME: LEPTON_OEM.h
**
** AUTHOR: David Dart
**
** CREATED: 8/6/2012
**
** DESCRIPTION: COntains OEM Interfaces
**
** HISTORY: 8/6/2012 DWD - Initial Draft
**
** Copyright 2011,2012,2013,2014 FLIR Systems - Commercial
** Vision Systems. All rights reserved.
**
** Proprietary - PROPRIETARY - FLIR Systems Inc..
**
** This document is controlled to FLIR Technology Level 2.
** The information contained in this document pertains to a
** dual use product Controlled for export by the Export
** Administration Regulations (EAR). Diversion contrary to
** US law is prohibited. US Department of Commerce
** authorization is not required prior to export or
** transfer to foreign persons or parties unless otherwise
** prohibited.
**
** Redistribution and use in source and binary forms, with
** or without modification, are permitted provided that the
** following conditions are met:
**
** Redistributions of source code must retain the above
** copyright notice, this list of conditions and the
** following disclaimer.
**
** Redistributions in binary form must reproduce the above
** copyright notice, this list of conditions and the
** following disclaimer in the documentation and/or other
** materials provided with the distribution.
**
** Neither the name of the FLIR Systems Corporation nor the
** names of its contributors may be used to endorse or
** promote products derived from this software without
** specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
** CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
** PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
** COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY
** DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
** USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
** USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
** OF SUCH DAMAGE.
**
*******************************************************************************/
#ifndef _LEPTON_OEM_H_
#define _LEPTON_OEM_H_
#ifdef __cplusplus
extern "C"
{
#endif
/******************************************************************************/
/** INCLUDE FILES **/
/******************************************************************************/
#include "LEPTON_Types.h"
#include "LEPTON_ErrorCodes.h"
/******************************************************************************/
/** EXPORTED DEFINES **/
/******************************************************************************/
/* OEM Module Command IDs
*/
#define LEP_OEM_MODULE_BASE 0x0800
#define LEP_CID_OEM_POWER_DOWN (LEP_OEM_MODULE_BASE + 0x4000 )
#define LEP_CID_OEM_STANDBY (LEP_OEM_MODULE_BASE + 0x4004 )
#define LEP_CID_OEM_LOW_POWER_MODE_1 (LEP_OEM_MODULE_BASE + 0x4008 )
#define LEP_CID_OEM_LOW_POWER_MODE_2 (LEP_OEM_MODULE_BASE + 0x400C )
#define LEP_CID_OEM_BIT_TEST (LEP_OEM_MODULE_BASE + 0x4010 )
#define LEP_CID_OEM_MASK_REVISION (LEP_OEM_MODULE_BASE + 0x4014 )
//#define LEP_CID_OEM_MASTER_ID (LEP_OEM_MODULE_BASE + 0x4018 )
#define LEP_CID_OEM_FLIR_PART_NUMBER (LEP_OEM_MODULE_BASE + 0x401C )
#define LEP_CID_OEM_SOFTWARE_VERSION (LEP_OEM_MODULE_BASE + 0x4020 )
#define LEP_CID_OEM_VIDEO_OUTPUT_ENABLE (LEP_OEM_MODULE_BASE + 0x4024 )
#define LEP_CID_OEM_VIDEO_OUTPUT_FORMAT (LEP_OEM_MODULE_BASE + 0x4028 )
#define LEP_CID_OEM_VIDEO_OUTPUT_SOURCE (LEP_OEM_MODULE_BASE + 0x402C )
#define LEP_CID_OEM_VIDEO_OUTPUT_CHANNEL (LEP_OEM_MODULE_BASE + 0x4030 )
#define LEP_CID_OEM_VIDEO_GAMMA_ENABLE (LEP_OEM_MODULE_BASE + 0x4034 )
#define LEP_CID_OEM_CUST_PART_NUMBER (LEP_OEM_MODULE_BASE + 0x4038 )
#define LEP_CID_OEM_VIDEO_OUTPUT_CONSTANT (LEP_OEM_MODULE_BASE + 0x403C )
#define LEP_CID_OEM_REBOOT (LEP_OEM_MODULE_BASE + 0x4040 )
#define LEP_CID_OEM_FFC_NORMALIZATION_TARGET (LEP_OEM_MODULE_BASE + 0x4044 )
#define LEP_CID_OEM_STATUS (LEP_OEM_MODULE_BASE + 0x4048 )
#define LEP_CID_OEM_SCENE_MEAN_VALUE (LEP_OEM_MODULE_BASE + 0x404C )
#define LEP_CID_OEM_POWER_MODE (LEP_OEM_MODULE_BASE + 0x4050 )
#define LEP_CID_OEM_GPIO_MODE_SELECT (LEP_OEM_MODULE_BASE + 0x4054 )
#define LEP_CID_OEM_GPIO_VSYNC_PHASE_DELAY (LEP_OEM_MODULE_BASE + 0x4058 )
#define LEP_CID_OEM_USER_DEFAULTS (LEP_OEM_MODULE_BASE + 0x405C )
#define LEP_CID_OEM_USER_DEFAULTS_RESTORE (LEP_OEM_MODULE_BASE + 0x4060 )
#define LEP_CID_OEM_SHUTTER_PROFILE_OBJ (LEP_OEM_MODULE_BASE + 0x4064 )
#define LEP_CID_OEM_THERMAL_SHUTDOWN_ENABLE_STATE (LEP_OEM_MODULE_BASE + 0x4068 )
#define LEP_CID_OEM_BAD_PIXEL_REPLACE_CONTROL (LEP_OEM_MODULE_BASE + 0x406C )
#define LEP_CID_OEM_TEMPORAL_FILTER_CONTROL (LEP_OEM_MODULE_BASE + 0x4070 )
#define LEP_CID_OEM_COLUMN_NOISE_ESTIMATE_CONTROL (LEP_OEM_MODULE_BASE + 0x4074 )
#define LEP_CID_OEM_PIXEL_NOISE_ESTIMATE_CONTROL (LEP_OEM_MODULE_BASE + 0x4078 )
#define LEP_OEM_MAX_PART_NUMBER_CHAR_SIZE 32
/******************************************************************************/
/** EXPORTED TYPE DEFINITIONS **/
/******************************************************************************/
/* Chip Mask Revision: An (8 bit depth) identifier for the chip
** mask revision located in bits 7-0 of the 16-bit word passed.
*/
typedef LEP_UINT16 LEP_OEM_MASK_REVISION_T,*LEP_OEM_MASK_REVISION_T_PTR;
typedef LEP_UINT16 LEP_OEM_FFC_NORMALIZATION_TARGET_T, *LEP_OEM_FFC_NORMALIZATION_TARGET_T_PTR;
typedef LEP_UINT16 LEP_OEM_FRAME_AVERAGE_T, *LEP_OEM_FRAME_AVERAGE_T_PTR;
//typedef LEP_UINT16 LEP_OEM_VENDORID_T;
/* Part Number: A (32 byte string) identifier unique to a
** specific configuration of module; essentially a module
** Configuration ID.
*/
#if USE_DEPRECATED_PART_NUMBER_INTERFACE
typedef LEP_CHAR8 *LEP_OEM_PART_NUMBER_T, *LEP_OEM_PART_NUMBER_T_PTR;
#else
typedef struct LEP_OEM_PART_NUMBER_T_TAG
{
LEP_CHAR8 value[LEP_OEM_MAX_PART_NUMBER_CHAR_SIZE];
} LEP_OEM_PART_NUMBER_T, *LEP_OEM_PART_NUMBER_T_PTR;
#endif
#if 0
typedef struct
{
LEP_CHAR8 value[32]; /* 32-byte string */
}
LEP_OEM_PART_NUMBER_T, *LEP_OEM_PART_NUMBER_T_PTR;
#endif
/* Software Version ID: A (24 bit depth) identifier for
** the software version stored in OTP.
*/
typedef struct LEP_OEM_SW_VERSION_TAG
{
LEP_UINT8 gpp_major;
LEP_UINT8 gpp_minor;
LEP_UINT8 gpp_build;
LEP_UINT8 dsp_major;
LEP_UINT8 dsp_minor;
LEP_UINT8 dsp_build;
LEP_UINT16 reserved;
}LEP_OEM_SW_VERSION_T, *LEP_OEM_SW_VERSION_T_PTR;
#if 0
/* Chip Master ID: A (16 byte depth) identifier for the ISC1103
** signal processing ASIC.
*/
typedef struct LEP_OEM_MASTER_ID_T_TAG
{
LEP_UINT8 value[16]; /* 16 byte value */
}
LEP_OEM_MASTER_ID_T, *LEP_OEM_MASTER_ID_T_PTR;
#endif
/* Video Output Enable Enum
*/
typedef enum LEP_OEM_VIDEO_OUTPUT_ENABLE_TAG
{
LEP_VIDEO_OUTPUT_DISABLE = 0,
LEP_VIDEO_OUTPUT_ENABLE,
LEP_END_VIDEO_OUTPUT_ENABLE,
LEP_VIDEO_OUTPUT_ENABLE_MAKE_32_BIT_ENUM = 0x7FFFFFFF
}LEP_OEM_VIDEO_OUTPUT_ENABLE_E, *LEP_OEM_VIDEO_OUTPUT_ENABLE_E_PTR;
/* Video Output Format Selection
*/
typedef enum LEP_OEM_VIDEO_OUTPUT_FORMAT_TAG
{
LEP_VIDEO_OUTPUT_FORMAT_RAW8 = 0, // To be supported in later release
LEP_VIDEO_OUTPUT_FORMAT_RAW10, // To be supported in later release
LEP_VIDEO_OUTPUT_FORMAT_RAW12, // To be supported in later release
LEP_VIDEO_OUTPUT_FORMAT_RGB888, // To be supported in later release
LEP_VIDEO_OUTPUT_FORMAT_RGB666, // To be supported in later release
LEP_VIDEO_OUTPUT_FORMAT_RGB565, // To be supported in later release
LEP_VIDEO_OUTPUT_FORMAT_YUV422_8BIT, // To be supported in later release
LEP_VIDEO_OUTPUT_FORMAT_RAW14, // SUPPORTED in this release
LEP_VIDEO_OUTPUT_FORMAT_YUV422_10BIT, // To be supported in later release
LEP_VIDEO_OUTPUT_FORMAT_USER_DEFINED, // To be supported in later release
LEP_VIDEO_OUTPUT_FORMAT_RAW8_2, // To be supported in later release
LEP_VIDEO_OUTPUT_FORMAT_RAW8_3, // To be supported in later release
LEP_VIDEO_OUTPUT_FORMAT_RAW8_4, // To be supported in later release
LEP_VIDEO_OUTPUT_FORMAT_RAW8_5, // To be supported in later release
LEP_VIDEO_OUTPUT_FORMAT_RAW8_6, // To be supported in later release
LEP_END_VIDEO_OUTPUT_FORMAT,
LEP_VIDEO_OUTPUT_FORMAT_MAKE_32_BIT_ENUM = 0x7FFFFFFF
}LEP_OEM_VIDEO_OUTPUT_FORMAT_E, *LEP_OEM_VIDEO_OUTPUT_FORMAT_E_PTR;
/* Video Output Source Selection
*/
typedef enum LEP_OEM_VIDEO_OUTPUT_SOURCE_TAG
{
LEP_VIDEO_OUTPUT_SOURCE_RAW = 0, /* Before video processing */
LEP_VIDEO_OUTPUT_SOURCE_COOKED, /* Post video processing - NORMAL MODE */
LEP_VIDEO_OUTPUT_SOURCE_RAMP, /* Software Ramp pattern - increase in X, Y */
LEP_VIDEO_OUTPUT_SOURCE_CONSTANT, /* Software Constant value pattern */
LEP_VIDEO_OUTPUT_SOURCE_RAMP_H, /* Software Ramp pattern - increase in X only */
LEP_VIDEO_OUTPUT_SOURCE_RAMP_V, /* Software Ramp pattern - increase in Y only */
LEP_VIDEO_OUTPUT_SOURCE_RAMP_CUSTOM, /* Software Ramp pattern - uses custom settings */
/* Additions to support frame averaging, freeze frame, and data buffers
*/
LEP_VIDEO_OUTPUT_SOURCE_FRAME_CAPTURE, // Average, Capture frame
LEP_VIDEO_OUTPUT_SOURCE_FRAME_FREEZE, // Freeze-Frame Buffer
/* RESERVED BUFFERS
*/
LEP_VIDEO_OUTPUT_SOURCE_FRAME_0, // Reserved DATA Buffer
LEP_VIDEO_OUTPUT_SOURCE_FRAME_1, // Reserved DATA Buffer
LEP_VIDEO_OUTPUT_SOURCE_FRAME_2, // Reserved DATA Buffer
LEP_VIDEO_OUTPUT_SOURCE_FRAME_3, // Reserved DATA Buffer
LEP_VIDEO_OUTPUT_SOURCE_FRAME_4, // Reserved DATA Buffer
LEP_END_VIDEO_OUTPUT_SOURCE,
LEP_VIDEO_OUTPUT_SOURCE_MAKE_32_BIT_ENUM = 0x7FFFFFFF
}LEP_OEM_VIDEO_OUTPUT_SOURCE_E, *LEP_OEM_VIDEO_OUTPUT_SOURCE_E_PTR;
/* Video Output Channel Selection
*/
typedef enum LEP_OEM_VIDEO_OUTPUT_CHANNEL_TAG
{
LEP_VIDEO_OUTPUT_CHANNEL_MIPI = 0,
LEP_VIDEO_OUTPUT_CHANNEL_VOSPI,
LEP_END_VIDEO_OUTPUT_CHANNEL,
LEP_VIDEO_OUTPUT_CHANNEL_MAKE_32_BIT_ENUM = 0x7FFFFFFF
}LEP_OEM_VIDEO_OUTPUT_CHANNEL_E, *LEP_OEM_VIDEO_OUTPUT_CHANNEL_E_PTR;
/* Video Gamma Enable Enum
*/
typedef enum LEP_OEM_VIDEO_GAMMA_ENABLE_TAG
{
LEP_VIDEO_GAMMA_DISABLE = 0,
LEP_VIDEO_GAMMA_ENABLE,
LEP_END_VIDEO_GAMMA_ENABLE,
LEP_VIDEO_GAMMA_ENABLE_MAKE_32_BIT_ENUM = 0x7FFFFFFF
}LEP_OEM_VIDEO_GAMMA_ENABLE_E, *LEP_OEM_VIDEO_GAMMA_ENABLE_E_PTR;
typedef enum LEP_OEM_MEM_BUFFER_E_TAG
{
LEP_OEM_MEM_OTP_ODAC = 0,
LEP_OEM_MEM_OTP_GAIN,
LEP_OEM_MEM_OTP_OFFSET_0,
LEP_OEM_MEM_OTP_OFFSET_1,
LEP_OEM_MEM_OTP_FFC,
LEP_OEM_MEM_OTP_LG0,
LEP_OEM_MEM_OTP_LG1,
LEP_OEM_MEM_OTP_LG2,
LEP_OEM_MEM_OTP_TFPA_LUT,
LEP_OEM_MEM_OTP_TAUX_LUT,
LEP_OEM_MEM_OTP_BAD_PIXEL_LIST,
LEP_OEM_MEM_SRAM_ODAC,
LEP_OEM_MEM_SRAM_BAD_PIXEL_LIST,
LEP_OEM_MEM_SHARED_BUFFER_0,
LEP_OEM_MEM_SHARED_BUFFER_1,
LEP_OEM_MEM_SHARED_BUFFER_2,
LEP_OEM_MEM_SHARED_BUFFER_3,
LEP_OEM_MEM_SHARED_BUFFER_4,
LEP_OEM_END_MEM_BUFFERS,
LEP_OEM_MEM_BUFFERS_MAKE_32_BIT_ENUM = 0x7FFFFFFF
}LEP_OEM_MEM_BUFFER_E,*LEP_OEM_MEM_BUFFER_E_PTR;
typedef enum
{
LEP_OEM_STATUS_OTP_WRITE_ERROR = -2,
LEP_OEM_STATUS_ERROR = -1,
LEP_OEM_STATUS_READY = 0,
LEP_OEM_STATUS_BUSY,
LEP_OEM_FRAME_AVERAGE_COLLECTING_FRAMES,
LEP_OEM_STATUS_END,
LEP_OEM_STATUS_MAKE_32_BIT_ENUM = 0x7FFFFFFF
} LEP_OEM_STATUS_E, *LEP_OEM_STATUS_E_PTR;
typedef enum LEP_OEM_STATE_E_TAG
{
LEP_OEM_DISABLE = 0,
LEP_OEM_ENABLE,
LEP_OEM_END_STATE,
LEP_OEM_STATE_MAKE_32_BIT_ENUM = 0x7FFFFFFF
}LEP_OEM_STATE_E,*LEP_OEM_STATE_E_PTR;
typedef enum LEP_OEM_POWER_STATE_E_TAG
{
LEP_OEM_POWER_MODE_NORMAL = 0,
LEP_OEM_POWER_MODE_LOW_POWER_1,
LEP_OEM_POWER_MODE_LOW_POWER_2,
LEP_OEM_END_POWER_MODE,
LEP_OEM_POWER_MODE_MAKE_32_BIT_ENUM = 0x7FFFFFFF
}LEP_OEM_POWER_STATE_E, *LEP_OEM_POWER_STATE_E_PTR;
typedef enum LEP_OEM_VSYNC_DELAY_E_TAG
{
LEP_OEM_VSYNC_DELAY_MINUS_3 = -3,
LEP_OEM_VSYNC_DELAY_MINUS_2 = -2,
LEP_OEM_VSYNC_DELAY_MINUS_1 = -1,
LEP_OEM_VSYNC_DELAY_NONE = 0,
LEP_OEM_VSYNC_DELAY_PLUS_1 = 1,
LEP_OEM_VSYNC_DELAY_PLUS_2 = 2,
LEP_OEM_VSYNC_DELAY_PLUS_3 = 3,
LEP_END_OEM_VSYNC_DELAY,
LEP_OEM_VSYNC_DELAY_MAKE_32_BIT_ENUM = 0x7FFFFFFF
} LEP_OEM_VSYNC_DELAY_E, *LEP_OEM_VSYNC_DELAY_E_PTR;
typedef enum LEP_OEM_GPIO_MODE_E_TAG
{
LEP_OEM_GPIO_MODE_GPIO = 0,
LEP_OEM_GPIO_MODE_I2C_MASTER = 1,
LEP_OEM_GPIO_MODE_SPI_MASTER_VLB_DATA = 2,
LEP_OEM_GPIO_MODE_SPIO_MASTER_REG_DATA = 3,
LEP_OEM_GPIO_MODE_SPI_SLAVE_VLB_DATA = 4,
LEP_OEM_GPIO_MODE_VSYNC = 5,
LEP_OEM_END_GPIO_MODE,
LEP_OEM_GPIO_MODE_MAKE_32_BIT_ENUM = 0x7FFFFFFF
}LEP_OEM_GPIO_MODE_E, *LEP_OEM_GPIO_MODE_E_PTR;
typedef enum LEP_OEM_USER_PARAMS_STATE_E_TAG
{
LEP_OEM_USER_PARAMS_STATE_NOT_WRITTEN = 0,
LEP_OEM_USER_PARAMS_STATE_WRITTEN,
LEP_OEM_END_USER_PARAMS_STATE,
LEP_OEM_USER_PARAMS_STATE_MAKE_32_BIT_ENUM = 0x7FFFFFFF
}LEP_OEM_USER_PARAMS_STATE_E, *LEP_OEM_USER_PARAMS_STATE_E_PTR;
/* Shutter Profile Object
*/
typedef struct LEP_OEM_SHUTTER_PROFILE_OBJ_T_TAG
{
LEP_UINT16 closePeriodInFrames; /* in frame counts x1 */
LEP_UINT16 openPeriodInFrames; /* in frame counts x1 */
}LEP_OEM_SHUTTER_PROFILE_OBJ_T, *LEP_OEM_SHUTTER_PROFILE_OBJ_T_PTR;
typedef struct LEP_OEM_BAD_PIXEL_REPLACE_CONTROL_T_TAG
{
LEP_OEM_STATE_E oemBadPixelReplaceEnable; // Bad Pixel Replacment in the video path
}LEP_OEM_BAD_PIXEL_REPLACE_CONTROL_T, *LEP_OEM_BAD_PIXEL_REPLACE_CONTROL_T_PTR;
typedef struct LEP_OEM_TEMPORAL_FILTER_CONTROL_T_TAG
{
LEP_OEM_STATE_E oemTemporalFilterEnable; // Temporal Filter in the video path
}LEP_OEM_TEMPORAL_FILTER_CONTROL_T, *LEP_OEM_TEMPORAL_FILTER_CONTROL_T_PTR;
typedef struct LEP_OEM_COLUMN_NOISE_ESTIMATE_CONTROL_T_TAG
{
LEP_OEM_STATE_E oemColumnNoiseEstimateEnable; // Column Noise Estimate in the video path
}LEP_OEM_COLUMN_NOISE_ESTIMATE_CONTROL_T, *LEP_OEM_COLUMN_NOISE_ESTIMATE_CONTROL_T_PTR;
typedef struct LEP_OEM_PIXEL_NOISE_SETTINGS_T_TAG
{
LEP_OEM_STATE_E oemPixelNoiseEstimateEnable; // Row Noise Estimate in the video path
}LEP_OEM_PIXEL_NOISE_SETTINGS_T, *LEP_OEM_PIXEL_NOISE_SETTINGS_T_PTR;
typedef struct LEP_OEM_THERMAL_SHUTDOWN_ENABLE_T_TAG
{
LEP_OEM_STATE_E oemThermalShutdownEnable;
}LEP_OEM_THERMAL_SHUTDOWN_ENABLE_T, *LEP_OEM_THERMAL_SHUTDOWN_ENABLE_T_PTR;
/******************************************************************************/
/** EXPORTED PUBLIC DATA **/
/******************************************************************************/
/******************************************************************************/
/** EXPORTED PUBLIC FUNCTIONS **/
/******************************************************************************/
extern LEP_RESULT LEP_RunOemPowerDown( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr );
extern LEP_RESULT LEP_RunOemPowerOn( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr );
extern LEP_RESULT LEP_RunOemStandby( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr );
extern LEP_RESULT LEP_RunOemReboot( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr );
extern LEP_RESULT LEP_RunOemLowPowerMode1( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr );
extern LEP_RESULT LEP_RunOemLowPowerMode2( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr );
extern LEP_RESULT LEP_RunOemBit( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr );
extern LEP_RESULT LEP_GetOemMaskRevision( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_MASK_REVISION_T *oemMaskRevisionPtr );
#if 0
extern LEP_RESULT LEP_GetOemMasterID( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_MASTER_ID_T_PTR oemMasterIDPtr );
#endif
#if USE_DEPRECATED_PART_NUMBER_INTERFACE
/* Deprecated: use LEP_GetOemFlirPN instead */
extern LEP_RESULT LEP_GetOemFlirPartNumber( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_PART_NUMBER_T_PTR oemPartNumberPtr );
/* Deprecated: use LEP_GetOemCustPN instead */
extern LEP_RESULT LEP_GetOemCustPartNumber( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_PART_NUMBER_T_PTR oemPartNumberPtr );
#else
extern LEP_RESULT LEP_GetOemFlirPartNumber( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_PART_NUMBER_T_PTR oemPartNumberPtr );
extern LEP_RESULT LEP_GetOemCustPartNumber( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_PART_NUMBER_T_PTR oemPartNumberPtr );
#endif
extern LEP_RESULT LEP_GetOemSoftwareVersion( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_SW_VERSION_T *oemSoftwareVersionPtr );
#if 0
extern LEP_RESULT LEP_GetOemVendorID(LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_VENDORID_T *oemVendorIDPtr);
#endif
extern LEP_RESULT LEP_GetOemVideoOutputEnable( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_VIDEO_OUTPUT_ENABLE_E_PTR oemVideoOutputEnablePtr );
extern LEP_RESULT LEP_SetOemVideoOutputEnable( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_VIDEO_OUTPUT_ENABLE_E oemVideoOutputEnable );
extern LEP_RESULT LEP_GetOemVideoOutputFormat( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_VIDEO_OUTPUT_FORMAT_E_PTR oemVideoOutputFormatPtr );
extern LEP_RESULT LEP_SetOemVideoOutputFormat( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_VIDEO_OUTPUT_FORMAT_E oemVideoOutputFormat );
extern LEP_RESULT LEP_GetOemVideoOutputSource( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_VIDEO_OUTPUT_SOURCE_E_PTR oemVideoOutputSourcePtr );
extern LEP_RESULT LEP_SetOemVideoOutputSource( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_VIDEO_OUTPUT_SOURCE_E oemVideoOutputSource );
extern LEP_RESULT LEP_GetOemVideoOutputSourceConstant( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_UINT16 *oemVideoOutputSourceConstant );
extern LEP_RESULT LEP_SetOemVideoOutputSourceConstant( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_UINT16 oemVideoOutputSourceConstant );
extern LEP_RESULT LEP_GetOemVideoOutputChannel( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_VIDEO_OUTPUT_CHANNEL_E_PTR oemVideoOutputChannelPtr );
extern LEP_RESULT LEP_SetOemVideoOutputChannel( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_VIDEO_OUTPUT_CHANNEL_E oemVideoOutputChannel );
extern LEP_RESULT LEP_GetOemVideoGammaEnable( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_VIDEO_GAMMA_ENABLE_E_PTR oemVideoGammaEnablePtr );
extern LEP_RESULT LEP_SetOemVideoGammaEnable( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_VIDEO_GAMMA_ENABLE_E oemVideoGammaEnable );
extern LEP_RESULT LEP_GetOemCalStatus( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_STATUS_E_PTR calStatusPtr );
extern LEP_RESULT LEP_GetOemFFCNormalizationTarget( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_FFC_NORMALIZATION_TARGET_T_PTR ffcTargetPtr );
extern LEP_RESULT LEP_SetOemFFCNormalizationTarget( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_FFC_NORMALIZATION_TARGET_T ffcTarget );
extern LEP_RESULT LEP_RunOemFFCNormalization( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_FFC_NORMALIZATION_TARGET_T ffcTarget );
extern LEP_RESULT LEP_GetOemFrameMean( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_FRAME_AVERAGE_T_PTR frameAveragePtr );
extern LEP_RESULT LEP_GetOemPowerMode( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_POWER_STATE_E_PTR powerModePtr );
extern LEP_RESULT LEP_SetOemPowerMode( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_POWER_STATE_E powerMode );
extern LEP_RESULT LEP_RunOemFFC( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr );
extern LEP_RESULT LEP_GetOemGpioMode( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_GPIO_MODE_E_PTR gpioModePtr );
extern LEP_RESULT LEP_SetOemGpioMode( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_GPIO_MODE_E gpioMode );
extern LEP_RESULT LEP_GetOemGpioVsyncPhaseDelay( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_VSYNC_DELAY_E_PTR numHsyncLinesPtr );
extern LEP_RESULT LEP_SetOemGpioVsyncPhaseDelay( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_VSYNC_DELAY_E numHsyncLines );
extern LEP_RESULT LEP_GetOemUserDefaultsState( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_USER_PARAMS_STATE_E_PTR userParamsStatePtr );
extern LEP_RESULT LEP_RunOemUserDefaultsCopyToOtp( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr );
extern LEP_RESULT LEP_RunOemUserDefaultsRestore( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr );
extern LEP_RESULT LEP_GetOemThermalShutdownEnable( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_THERMAL_SHUTDOWN_ENABLE_T_PTR ThermalShutdownEnableStatePtr );
extern LEP_RESULT LEP_SetOemThermalShutdownEnable( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_THERMAL_SHUTDOWN_ENABLE_T ThermalShutdownEnableState );
extern LEP_RESULT LEP_GetOemShutterProfileObj( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_SHUTTER_PROFILE_OBJ_T_PTR ShutterProfileObjPtr );
extern LEP_RESULT LEP_SetOemShutterProfileObj( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_SHUTTER_PROFILE_OBJ_T ShutterProfileObj );
extern LEP_RESULT LEP_GetOemBadPixelReplaceControl( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_BAD_PIXEL_REPLACE_CONTROL_T_PTR BadPixelReplaceControlPtr );
extern LEP_RESULT LEP_SetOemBadPixelReplaceControl( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_BAD_PIXEL_REPLACE_CONTROL_T BadPixelReplaceControl );
extern LEP_RESULT LEP_GetOemTemporalFilterControl( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_TEMPORAL_FILTER_CONTROL_T_PTR TemporalFilterControlPtr );
extern LEP_RESULT LEP_SetOemTemporalFilterControl( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_TEMPORAL_FILTER_CONTROL_T TemporalFilterControl );
extern LEP_RESULT LEP_GetOemColumnNoiseEstimateControl( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_COLUMN_NOISE_ESTIMATE_CONTROL_T_PTR ColumnNoiseEstimateControlPtr );
extern LEP_RESULT LEP_SetOemColumnNoiseEstimateControl( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_COLUMN_NOISE_ESTIMATE_CONTROL_T ColumnNoiseEstimateControl );
extern LEP_RESULT LEP_GetOemPixelNoiseSettings( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_PIXEL_NOISE_SETTINGS_T_PTR PixelNoiseEstimateControlPtr );
extern LEP_RESULT LEP_SetOemPixelNoiseSettings( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_OEM_PIXEL_NOISE_SETTINGS_T PixelNoiseEstimateControl );
/******************************************************************************/
#ifdef __cplusplus
}
#endif
#endif /* _LEPTON_OEM_H_ */