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

493 lines
20 KiB
C
Executable File
Raw Blame History

/*******************************************************************************
**
** File NAME: LEPTON_SYS.h
**
** AUTHOR: David Dart
**
** CREATED: 5/8/2012
**
** DESCRIPTION: Lepton SDK SYS (system) Module Command
** Interface
**
** HISTORY: 5/8/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_SYS_H_
#define _LEPTON_SYS_H_
#ifdef __cplusplus
extern "C"
{
#endif
/******************************************************************************/
/** INCLUDE FILES **/
/******************************************************************************/
#include "LEPTON_Types.h"
/******************************************************************************/
/** EXPORTED DEFINES **/
/******************************************************************************/
/* SYS Module Command IDs
*/
#define LEP_SYS_MODULE_BASE 0x0200
#define LEP_CID_SYS_PING (LEP_SYS_MODULE_BASE + 0x0000 )
#define LEP_CID_SYS_CAM_STATUS (LEP_SYS_MODULE_BASE + 0x0004 )
#define LEP_CID_SYS_FLIR_SERIAL_NUMBER (LEP_SYS_MODULE_BASE + 0x0008 )
#define LEP_CID_SYS_CAM_UPTIME (LEP_SYS_MODULE_BASE + 0x000C )
#define LEP_CID_SYS_AUX_TEMPERATURE_KELVIN (LEP_SYS_MODULE_BASE + 0x0010 )
#define LEP_CID_SYS_FPA_TEMPERATURE_KELVIN (LEP_SYS_MODULE_BASE + 0x0014 )
#define LEP_CID_SYS_TELEMETRY_ENABLE_STATE (LEP_SYS_MODULE_BASE + 0x0018 )
#define LEP_CID_SYS_TELEMETRY_LOCATION (LEP_SYS_MODULE_BASE + 0x001C )
#define LEP_CID_SYS_EXECTUE_FRAME_AVERAGE (LEP_SYS_MODULE_BASE + 0x0020 )
#define LEP_CID_SYS_NUM_FRAMES_TO_AVERAGE (LEP_SYS_MODULE_BASE + 0x0024 )
#define LEP_CID_SYS_CUST_SERIAL_NUMBER (LEP_SYS_MODULE_BASE + 0x0028 )
#define LEP_CID_SYS_SCENE_STATISTICS (LEP_SYS_MODULE_BASE + 0x002C )
#define LEP_CID_SYS_SCENE_ROI (LEP_SYS_MODULE_BASE + 0x0030 )
#define LEP_CID_SYS_THERMAL_SHUTDOWN_COUNT (LEP_SYS_MODULE_BASE + 0x0034 )
#define LEP_CID_SYS_SHUTTER_POSITION (LEP_SYS_MODULE_BASE + 0x0038 )
#define LEP_CID_SYS_FFC_SHUTTER_MODE_OBJ (LEP_SYS_MODULE_BASE + 0x003C )
#define FLR_CID_SYS_RUN_FFC (LEP_SYS_MODULE_BASE + 0x0042 )
#define LEP_CID_SYS_FFC_STATUS (LEP_SYS_MODULE_BASE + 0x0044 )
#define LEP_CID_SYS_GAIN_MODE (LEP_SYS_MODULE_BASE + 0x0048 )
#define LEP_CID_SYS_FFC_STATE (LEP_SYS_MODULE_BASE + 0x004C )
#define LEP_CID_SYS_GAIN_MODE_OBJ (LEP_SYS_MODULE_BASE + 0x0050 )
#define LEP_CID_SYS_GAIN_MODE_DESIRED_FLAG (LEP_SYS_MODULE_BASE + 0x0054 )
#define LEP_CID_SYS_BORESIGHT_VALUES (LEP_SYS_MODULE_BASE + 0x0058 )
/* SYS Module Attribute Limits
*/
#define LEP_SYS_MAX_FRAMES_TO_AVERAGE 128 /* Scale is 1x */
#define LEP_SYS_MAX_SERIAL_NUMBER_CHAR_SIZE 32
/******************************************************************************/
/** EXPORTED TYPE DEFINITIONS **/
/******************************************************************************/
typedef LEP_UINT64 LEP_SYS_FLIR_SERIAL_NUMBER_T, *LEP_SYS_FLIR_SERIAL_NUMBER_T_PTR;
typedef LEP_UINT32 LEP_SYS_UPTIME_NUMBER_T, *LEP_SYS_UPTIME_NUMBER_T_PTR;
typedef LEP_FLOAT32 LEP_SYS_AUX_TEMPERATURE_CELCIUS_T, *LEP_SYS_AUX_TEMPERATURE_CELCIUS_T_PTR;
typedef LEP_FLOAT32 LEP_SYS_FPA_TEMPERATURE_CELCIUS_T, *LEP_SYS_FPA_TEMPERATURE_CELCIUS_T_PTR;
typedef LEP_UINT16 LEP_SYS_AUX_TEMPERATURE_KELVIN_T, *LEP_SYS_AUX_TEMPERATURE_KELVIN_T_PTR;
typedef LEP_UINT16 LEP_SYS_FPA_TEMPERATURE_KELVIN_T, *LEP_SYS_FPA_TEMPERATURE_KELVIN_T_PTR;
//typedef LEP_UINT8 LEP_SYS_NUM_AVERAGE_FRAMES_T, *LEP_SYS_NUM_AVERAGE_FRAMES_T_PTR;
typedef LEP_UINT16 LEP_SYS_THERMAL_SHUTDOWN_COUNTS_T, *LEP_SYS_THERMAL_SHUTDOWN_COUNTS_T_PTR;
typedef LEP_UINT16 LEP_SYS_THRESHOLD_T, *LEP_SYS_THRESHOLD_T_PTR;
#if USE_DEPRECATED_SERIAL_NUMBER_INTERFACE
typedef LEP_CHAR8 *LEP_SYS_CUST_SERIAL_NUMBER_T, *LEP_SYS_CUST_SERIAL_NUMBER_T_PTR;
#else
typedef struct LEP_SYS_CUST_SERIAL_NUMBER_T_TAG
{
LEP_CHAR8 value[LEP_SYS_MAX_SERIAL_NUMBER_CHAR_SIZE];
} LEP_SYS_CUST_SERIAL_NUMBER_T, *LEP_SYS_CUST_SERIAL_NUMBER_T_PTR;
#endif
/* SYS Camera System Status Enum
Captures basic camera operation
*/
typedef enum LEP_SYSTEM_STATUS_STATES_E_TAG
{
LEP_SYSTEM_READY = 0,
LEP_SYSTEM_INITIALIZING,
LEP_SYSTEM_IN_LOW_POWER_MODE,
LEP_SYSTEM_GOING_INTO_STANDBY,
LEP_SYSTEM_FLAT_FIELD_IN_PROCESS,
LEP_SYSTEM_FLAT_FIELD_IMMINENT,
LEP_SYSTEM_THERMAL_SHUTDOWN_IMMINENT,
LEP_SYSTEM_END_STATES,
LEP_SYSTEM_STATES_MAKE_32_BIT_ENUM = 0x7FFFFFFF
}LEP_SYSTEM_STATUS_STATES_E, *LEP_SYSTEM_STATUS_STATES_E_PTR;
typedef struct LEP_STATUS_T_TAG
{
LEP_SYSTEM_STATUS_STATES_E camStatus;
LEP_UINT16 commandCount;
LEP_UINT16 reserved;
}LEP_STATUS_T, *LEP_STATUS_T_PTR;
typedef enum LEP_SYS_TELEMETRY_ENABLE_STATE_E_TAG
{
LEP_TELEMETRY_DISABLED = 0,
LEP_TELEMETRY_ENABLED,
LEP_END_TELEMETRY_ENABLE_STATE,
LEP_TELEMETRY_ENABLE_STATE_MAKE_32_BIT_ENUM = 0x7FFFFFFF
}LEP_SYS_TELEMETRY_ENABLE_STATE_E, *LEP_SYS_TELEMETRY_ENABLE_STATE_E_PTR;
typedef enum LEP_SYS_TELEMETRY_LOCATION_E_TAG
{
LEP_TELEMETRY_LOCATION_HEADER = 0,
LEP_TELEMETRY_LOCATION_FOOTER,
LEP_END_TELEMETRY_LOCATION,
LEP_TELEMETRY_LOCATION_MAKE_32_BIT_ENUM = 0x7FFFFFFF
}LEP_SYS_TELEMETRY_LOCATION_E, *LEP_SYS_TELEMETRY_LOCATION_E_PTR;
typedef enum LEP_SYS_FRAME_AVERAGE_DIVISOR_E_TAG
{
LEP_SYS_FA_DIV_1 = 0,
LEP_SYS_FA_DIV_2,
LEP_SYS_FA_DIV_4,
LEP_SYS_FA_DIV_8,
LEP_SYS_FA_DIV_16,
LEP_SYS_FA_DIV_32,
LEP_SYS_FA_DIV_64,
LEP_SYS_FA_DIV_128,
LEP_SYS_END_FA_DIV,
LEP_SYS_FA_DIV_MAKE_32_BIT_ENUM = 0x7FFFFFFF
}LEP_SYS_FRAME_AVERAGE_DIVISOR_E, *LEP_SYS_FRAME_AVERAGE_DIVISOR_E_PTR;
typedef struct LEP_SYS_SCENE_STATISTICS_T_TAG
{
LEP_UINT16 meanIntensity;
LEP_UINT16 maxIntensity;
LEP_UINT16 minIntensity;
LEP_UINT16 numPixels;
} LEP_SYS_SCENE_STATISTICS_T, *LEP_SYS_SCENE_STATISTICS_T_PTR;
typedef struct LEP_SYS_BAD_PIXEL_T_TAG
{
LEP_UINT8 row;
LEP_UINT8 col;
LEP_UINT8 value;
LEP_UINT8 value2;
}LEP_SYS_BAD_PIXEL_T, *LEP_SYS_BAD_PIXEL_T_PTR;
typedef struct LEP_SYS_VIDEO_ROI_T_TAG
{
LEP_UINT16 startCol;
LEP_UINT16 startRow;
LEP_UINT16 endCol;
LEP_UINT16 endRow;
} LEP_SYS_VIDEO_ROI_T, *LEP_SYS_VIDEO_ROI_T_PTR;
typedef enum LEP_SYS_ENABLE_E_TAG
{
LEP_SYS_DISABLE = 0,
LEP_SYS_ENABLE,
LEP_END_SYS_ENABLE,
LEP_SYS_ENABLE_MAKE_32_BIT_ENUM = 0x7FFFFFFF
}LEP_SYS_ENABLE_E, *LEP_SYS_ENABLE_E_PTR;
typedef enum LEP_SYS_SHUTTER_POSITION_E_TAG
{
LEP_SYS_SHUTTER_POSITION_UNKNOWN = -1,
LEP_SYS_SHUTTER_POSITION_IDLE = 0,
LEP_SYS_SHUTTER_POSITION_OPEN,
LEP_SYS_SHUTTER_POSITION_CLOSED,
LEP_SYS_SHUTTER_POSITION_BRAKE_ON,
LEP_SYS_SHUTTER_POSITION_END,
LEP_SYS_SHUTTER_POSITION_MAKE_32_BIT_ENUM = 0x7FFFFFFF
}LEP_SYS_SHUTTER_POSITION_E, *LEP_SYS_SHUTTER_POSITION_E_PTR;
typedef enum LEP_SYS_FFC_SHUTTER_MODE_E_TAG
{
LEP_SYS_FFC_SHUTTER_MODE_MANUAL = 0,
LEP_SYS_FFC_SHUTTER_MODE_AUTO,
LEP_SYS_FFC_SHUTTER_MODE_EXTERNAL,
LEP_SYS_FFC_SHUTTER_MODE_END,
LEP_SYS_FFC_SHUTTER_MODE_MAKE_32_BIT_ENUM = 0x7FFFFFFF
}LEP_SYS_FFC_SHUTTER_MODE_E, *LEP_SYS_FFC_SHUTTER_MODE_E_PTR;
typedef enum LEP_SYS_SHUTTER_TEMP_LOCKOUT_STATE_E_TAG
{
LEP_SYS_SHUTTER_LOCKOUT_INACTIVE = 0, /* not locked out */
LEP_SYS_SHUTTER_LOCKOUT_HIGH, /* lockout due to high temp */
LEP_SYS_SHUTTER_LOCKOUT_LOW, /* lockout due to low temp */
LEP_SYS_SHUTTER_LOCKOUT_MAKE_32_BIT_ENUM = 0x7FFFFFFF
}LEP_SYS_SHUTTER_TEMP_LOCKOUT_STATE_E,*LEP_SYS_SHUTTER_TEMP_LOCKOUT_STATE_E_PTR;
#if 0
typedef struct LEP_SYS_FFC_SHUTTER_TEMP_LOCKOUT_T_TAG
{
LEP_UINT16 lowTempThreshold; /* in Kelvin */
LEP_UINT16 highTempThreshold; /* in Kelvin */
LEP_SYS_SHUTTER_TEMP_LOCKOUT_STATE_E tempLockoutState;
}
LEP_SYS_FFC_SHUTTER_TEMP_LOCKOUT_T, *LEP_SYS_FFC_SHUTTER_TEMP_LOCKOUT_T_PTR;
#endif
typedef struct LEP_SYS_FFC_SHUTTER_MODE_OBJ_T_TAG
{
LEP_SYS_FFC_SHUTTER_MODE_E shutterMode; /* defines current mode */
LEP_SYS_SHUTTER_TEMP_LOCKOUT_STATE_E tempLockoutState;
LEP_SYS_ENABLE_E videoFreezeDuringFFC;
LEP_SYS_ENABLE_E ffcDesired; /* status of FFC desired */
LEP_UINT32 elapsedTimeSinceLastFfc; /* in milliseconds x1 */
LEP_UINT32 desiredFfcPeriod; /* in milliseconds x1 */
LEP_BOOL explicitCmdToOpen; /* true or false */
LEP_UINT16 desiredFfcTempDelta; /* in Kelvin x100 */
LEP_UINT16 imminentDelay; /* in frame counts x1 */
}LEP_SYS_FFC_SHUTTER_MODE_OBJ_T, *LEP_SYS_FFC_SHUTTER_MODE_OBJ_T_PTR;
/* SYS Status Enum
Captures the FFC operation status
*/
typedef enum LEP_SYS_STATUS_E_TAG
{
LEP_SYS_STATUS_WRITE_ERROR = -2,
LEP_SYS_STATUS_ERROR = -1,
LEP_SYS_STATUS_READY = 0,
LEP_SYS_STATUS_BUSY,
LEP_SYS_FRAME_AVERAGE_COLLECTING_FRAMES,
LEP_SYS_STATUS_END,
LEP_SYS_STATUS_MAKE_32_BIT_ENUM = 0x7FFFFFFF
} LEP_SYS_STATUS_E, *LEP_SYS_STATUS_E_PTR;
typedef enum LEP_SYS_GAIN_MODE_E_TAG
{
LEP_SYS_GAIN_MODE_HIGH = 0,
LEP_SYS_GAIN_MODE_LOW,
LEP_SYS_GAIN_MODE_AUTO,
LEP_SYS_END_GAIN_MODE,
LEP_SYS_GAIN_MODE_MAKE_32_BIT_ENUM = 0x7FFFFFFF
} LEP_SYS_GAIN_MODE_E, *LEP_SYS_GAIN_MODE_E_PTR;
/* System Gain Mode ROI Structure
*/
typedef struct LEP_SYS_GAIN_MODE_ROI_T_TAG
{
LEP_UINT16 startCol;
LEP_UINT16 startRow;
LEP_UINT16 endCol;
LEP_UINT16 endRow;
}LEP_SYS_GAIN_MODE_ROI_T, *LEP_SYS_GAIN_MODE_ROI_T_PTR;
/* Gain Mode Support
*/
typedef struct LEP_SYS_GAIN_MODE_THRESHOLDS_T_TAG
{
LEP_SYS_THRESHOLD_T sys_P_high_to_low; /* Range: [0 <20> 100], percent */
LEP_SYS_THRESHOLD_T sys_P_low_to_high; /* Range: [0 <20> 100], percent */
LEP_SYS_THRESHOLD_T sys_C_high_to_low; /* Range: [0-600], degrees C */
LEP_SYS_THRESHOLD_T sys_C_low_to_high; /* Range: [0-600], degrees C */
LEP_SYS_THRESHOLD_T sys_T_high_to_low; /* Range: [0-900], Kelvin */
LEP_SYS_THRESHOLD_T sys_T_low_to_high; /* Range: [0-900], Kelvin */
}LEP_SYS_GAIN_MODE_THRESHOLDS_T, *LEP_SYS_GAIN_MODE_THRESHOLDS_T_PTR;
/* Gain Mode Object
*/
typedef struct LEP_SYS_GAIN_MODE_OBJ_T_TAG
{
LEP_SYS_GAIN_MODE_ROI_T sysGainModeROI; /* Specified ROI to use for Gain Mode switching */
LEP_SYS_GAIN_MODE_THRESHOLDS_T sysGainModeThresholds; /* Set of threshold triggers */
LEP_UINT16 sysGainRoiPopulation; /* Population size in pixels within the ROI */
LEP_UINT16 sysGainModeTempEnabled; /* True if T-Linear is implemented */
LEP_UINT16 sysGainModeFluxThresholdLow; /* calculated from desired temp */
LEP_UINT16 sysGainModeFluxThresholdHigh; /* calculated from desired temp */
}LEP_SYS_GAIN_MODE_OBJ_T, *LEP_SYS_GAIN_MODE_OBJ_T_PTR;
/* SYS FFC States Enum
Captures the current camera FFC operation state
*/
typedef enum LEP_SYS_FFC_STATES_E_TAG
{
LEP_SYS_FFC_NEVER_COMMANDED = 0,
LEP_SYS_FFC_IMMINENT,
LEP_SYS_FFC_IN_PROCESS,
LEP_SYS_FFC_DONE,
LEP_SYS_END_FFC_STATES,
LEP_SYS_FFC_STATES_MAKE_32_BIT_ENUM = 0x7FFFFFFF
}LEP_SYS_FFC_STATES_E, *LEP_SYS_FFC_STATES_E_PTR;
typedef struct LEP_SYS_BORESIGHT_VALUES_T_TAG
{
LEP_UINT16 targetRow;
LEP_UINT16 targetCol;
LEP_INT16 targetRotation;
LEP_INT16 fovX;
LEP_INT16 fovY;
} LEP_SYS_BORESIGHT_VALUES_T, *LEP_SYS_BORESIGHT_VALUES_T_PTR;
/******************************************************************************/
/** EXPORTED PUBLIC DATA **/
/******************************************************************************/
/******************************************************************************/
/** EXPORTED PUBLIC FUNCTIONS **/
/******************************************************************************/
extern LEP_RESULT LEP_RunSysPing( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr );
extern LEP_RESULT LEP_GetSysStatus( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_STATUS_T_PTR sysStatusPtr );
extern LEP_RESULT LEP_GetSysFlirSerialNumber( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_FLIR_SERIAL_NUMBER_T_PTR sysSerialNumberBufPtr );
/* Deprecated: Use LEP_GetSysCustSN instead */
#if LEP_SYS_CUST_SERIAL_NUMBER_T
extern LEP_RESULT LEP_GetSysCustSerialNumber( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_CUST_SERIAL_NUMBER_T_PTR sysSerialNumberPtr );
#else
extern LEP_RESULT LEP_GetSysCustSerialNumber( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_CUST_SERIAL_NUMBER_T_PTR sysCustSNPtr );
#endif
extern LEP_RESULT LEP_GetSysCameraUpTime( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_UPTIME_NUMBER_T_PTR sysCameraUpTimePtr );
extern LEP_RESULT LEP_GetSysAuxTemperatureCelcius( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_AUX_TEMPERATURE_CELCIUS_T_PTR auxTemperaturePtr );
extern LEP_RESULT LEP_GetSysFpaTemperatureCelcius( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_FPA_TEMPERATURE_CELCIUS_T_PTR fpaTemperaturePtr );
extern LEP_RESULT LEP_GetSysAuxTemperatureKelvin( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_AUX_TEMPERATURE_KELVIN_T_PTR auxTemperaturePtr );
extern LEP_RESULT LEP_GetSysFpaTemperatureKelvin( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_FPA_TEMPERATURE_KELVIN_T_PTR fpaTemperaturePtr );
extern LEP_RESULT LEP_GetSysTelemetryEnableState( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_TELEMETRY_ENABLE_STATE_E_PTR enableStatePtr );
extern LEP_RESULT LEP_SetSysTelemetryEnableState( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_TELEMETRY_ENABLE_STATE_E enableState );
extern LEP_RESULT LEP_GetSysTelemetryLocation( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_TELEMETRY_LOCATION_E_PTR telemetryLocationPtr );
extern LEP_RESULT LEP_SetSysTelemetryLocation( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_TELEMETRY_LOCATION_E telemetryLocation );
extern LEP_RESULT LEP_RunSysAverageFrames( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_FRAME_AVERAGE_DIVISOR_E numFrameToAverage );
extern LEP_RESULT LEP_GetSysFramesToAverage( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_FRAME_AVERAGE_DIVISOR_E_PTR numFrameToAveragePtr );
extern LEP_RESULT LEP_SetSysFramesToAverage( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_FRAME_AVERAGE_DIVISOR_E numFrameToAverage );
extern LEP_RESULT LEP_GetSysSceneStatistics( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_SCENE_STATISTICS_T_PTR sceneStatisticsPtr );
extern LEP_RESULT LEP_RunFrameAverage( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr );
extern LEP_RESULT LEP_GetSysSceneRoi( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_VIDEO_ROI_T_PTR sceneRoiPtr );
extern LEP_RESULT LEP_SetSysSceneRoi( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_VIDEO_ROI_T sceneRoi );
extern LEP_RESULT LEP_GetSysThermalShutdownCount( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_THERMAL_SHUTDOWN_COUNTS_T_PTR thermalCountsPtr );
extern LEP_RESULT LEP_GetSysShutterPosition( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_SHUTTER_POSITION_E_PTR shutterPositionPtr );
extern LEP_RESULT LEP_SetSysShutterPosition( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_SHUTTER_POSITION_E shutterPosition );
extern LEP_RESULT LEP_GetSysFfcShutterModeObj( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_FFC_SHUTTER_MODE_OBJ_T_PTR shutterModeObjPtr );
extern LEP_RESULT LEP_SetSysFfcShutterModeObj( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_FFC_SHUTTER_MODE_OBJ_T shutterModeObj );
extern LEP_RESULT LEP_GetSysFFCStatus( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_STATUS_E_PTR ffcStatusPtr );
extern LEP_RESULT LEP_RunSysFFCNormalization( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr );
extern LEP_RESULT LEP_GetSysGainMode( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_GAIN_MODE_E_PTR gainModePtr );
extern LEP_RESULT LEP_SetSysGainMode( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_GAIN_MODE_E gainMode );
extern LEP_RESULT LEP_GetSysFFCStates( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_FFC_STATES_E_PTR ffcStatePtr );
extern LEP_RESULT LEP_GetSysGainModeObj( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_GAIN_MODE_OBJ_T_PTR gainModeObjPtr );
extern LEP_RESULT LEP_SetSysGainModeObj( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_GAIN_MODE_OBJ_T gainModeObj );
extern LEP_RESULT LEP_GetSysBoresightValues( LEP_CAMERA_PORT_DESC_T_PTR portDescPtr,
LEP_SYS_BORESIGHT_VALUES_T_PTR boresightValuesPtr);
/******************************************************************************/
#ifdef __cplusplus
}
#endif
#endif /* _LEPTON_SYS_H_ */
//+++++++++++++++++++++++++++