PS1080.h
Go to the documentation of this file.
00001 /*****************************************************************************
00002 *                                                                            *
00003 *  OpenNI 2.x Alpha                                                          *
00004 *  Copyright (C) 2012 PrimeSense Ltd.                                        *
00005 *                                                                            *
00006 *  This file is part of OpenNI.                                              *
00007 *                                                                            *
00008 *  Licensed under the Apache License, Version 2.0 (the "License");           *
00009 *  you may not use this file except in compliance with the License.          *
00010 *  You may obtain a copy of the License at                                   *
00011 *                                                                            *
00012 *      http://www.apache.org/licenses/LICENSE-2.0                            *
00013 *                                                                            *
00014 *  Unless required by applicable law or agreed to in writing, software       *
00015 *  distributed under the License is distributed on an "AS IS" BASIS,         *
00016 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  *
00017 *  See the License for the specific language governing permissions and       *
00018 *  limitations under the License.                                            *
00019 *                                                                            *
00020 *****************************************************************************/
00021 #ifndef PS1080_H
00022 #define PS1080_H
00023 
00024 #include <OniCTypes.h>
00025 
00027 #define XN_DEVICE_MAX_STRING_LENGTH 200
00028 
00029 /* 
00030  * private properties of PS1080 devices.
00031  *
00032  * @remarks 
00033  * properties structure is 0x1080XXYY where XX is range and YY is code.
00034  * range values:
00035  * F0 - device properties
00036  * E0 - device commands
00037  * 00 - common stream properties
00038  * 10 - depth stream properties
00039  * 20 - color stream properties
00040  */
00041 enum
00042 {
00043         /*******************************************************************/
00044         /* Device properties                                               */
00045         /*******************************************************************/
00046 
00048         XN_MODULE_PROPERTY_USB_INTERFACE = 0x1080F001, // "UsbInterface"
00050         XN_MODULE_PROPERTY_MIRROR = 0x1080F002, // "Mirror"
00052         XN_MODULE_PROPERTY_RESET_SENSOR_ON_STARTUP = 0x1080F004, // "ResetSensorOnStartup"
00054         XN_MODULE_PROPERTY_LEAN_INIT = 0x1080F005, // "LeanInit"
00056         XN_MODULE_PROPERTY_SERIAL_NUMBER = 0x1080F006, // "ID"
00058         XN_MODULE_PROPERTY_VERSION = 0x1080F007, // "Version"
00060         XN_MODULE_PROPERTY_FIRMWARE_FRAME_SYNC = 0x1080F008,
00062         XN_MODULE_PROPERTY_HOST_TIMESTAMPS = 0x1080FF77, // "HostTimestamps"
00064         XN_MODULE_PROPERTY_CLOSE_STREAMS_ON_SHUTDOWN = 0x1080FF78, // "CloseStreamsOnShutdown"
00066         XN_MODULE_PROPERTY_FIRMWARE_LOG_INTERVAL = 0x1080FF7F, // "FirmwareLogInterval"
00068         XN_MODULE_PROPERTY_PRINT_FIRMWARE_LOG = 0x1080FF80, // "FirmwareLogPrint"
00070         XN_MODULE_PROPERTY_FIRMWARE_LOG_FILTER = 0x1080FF81, // "FirmwareLogFilter"
00072         XN_MODULE_PROPERTY_FIRMWARE_LOG = 0x1080FF82, // "FirmwareLog"
00074         XN_MODULE_PROPERTY_FIRMWARE_CPU_INTERVAL = 0x1080FF83, // "FirmwareCPUInterval"
00076         XN_MODULE_PROPERTY_PHYSICAL_DEVICE_NAME = 0x1080FF7A, // "PhysicalDeviceName"
00078         XN_MODULE_PROPERTY_VENDOR_SPECIFIC_DATA = 0x1080FF7B, // "VendorSpecificData"
00080         XN_MODULE_PROPERTY_SENSOR_PLATFORM_STRING = 0x1080FF7C, // "SensorPlatformString"
00081 
00082         /*******************************************************************/
00083         /* Device commands (activated via SetProperty/GetProperty)         */
00084         /*******************************************************************/
00085 
00087         XN_MODULE_PROPERTY_FIRMWARE_PARAM = 0x1080E001, // "FirmwareParam"
00089         XN_MODULE_PROPERTY_RESET = 0x1080E002, // "Reset"
00091         XN_MODULE_PROPERTY_IMAGE_CONTROL = 0x1080E003, // "ImageControl"
00093         XN_MODULE_PROPERTY_DEPTH_CONTROL = 0x1080E004, // "DepthControl"
00095         XN_MODULE_PROPERTY_AHB = 0x1080E005, // "AHB"
00097         XN_MODULE_PROPERTY_LED_STATE = 0x1080E006, // "LedState"
00099         XN_MODULE_PROPERTY_EMITTER_STATE = 0x1080E007, // "EmitterState"
00100 
00102         XN_MODULE_PROPERTY_CMOS_BLANKING_UNITS = 0x1080FF74, // "CmosBlankingUnits"
00104         XN_MODULE_PROPERTY_CMOS_BLANKING_TIME = 0x1080FF75, // "CmosBlankingTime"
00106         XN_MODULE_PROPERTY_FILE_LIST = 0x1080FF84, // "FileList"
00108         XN_MODULE_PROPERTY_FLASH_CHUNK = 0x1080FF85, // "FlashChunk"
00109         XN_MODULE_PROPERTY_FILE = 0x1080FF86, // "FlashFile"
00111         XN_MODULE_PROPERTY_DELETE_FILE = 0x1080FF87, // "DeleteFile"
00112         XN_MODULE_PROPERTY_FILE_ATTRIBUTES = 0x1080FF88, // "FileAttributes"
00113         XN_MODULE_PROPERTY_TEC_SET_POINT = 0x1080FF89, // "TecSetPoint"
00115         XN_MODULE_PROPERTY_TEC_STATUS = 0x1080FF8A, // "TecStatus"
00117         XN_MODULE_PROPERTY_TEC_FAST_CONVERGENCE_STATUS = 0x1080FF8B, // "TecFastConvergenceStatus"
00118         XN_MODULE_PROPERTY_EMITTER_SET_POINT = 0x1080FF8C, // "EmitterSetPoint"
00120         XN_MODULE_PROPERTY_EMITTER_STATUS = 0x1080FF8D, // "EmitterStatus"
00121         XN_MODULE_PROPERTY_I2C = 0x1080FF8E, // "I2C"
00123         XN_MODULE_PROPERTY_BIST = 0x1080FF8F, // "BIST"
00125         XN_MODULE_PROPERTY_PROJECTOR_FAULT = 0x1080FF90, // "ProjectorFault"
00127         XN_MODULE_PROPERTY_APC_ENABLED = 0x1080FF91, // "APCEnabled"
00129         XN_MODULE_PROPERTY_FIRMWARE_TEC_DEBUG_PRINT = 0x1080FF92, // "TecDebugPrint"
00131         XN_MODULE_PROPERTY_READ_ALL_ENDPOINTS = 0x1080FF93,
00132         /*IRFLOOD*/
00133         XN_MODULE_PROPERTY_IRFLOOD_STATE = 0x1080FF94, // "Ir floodState"
00134 
00135         //irgain
00136         XN_MODULE_PROPERTY_IRGAIN = 0x1080FF95,  //Ir gain
00137         XN_MODULE_PROPERTY_IREXP = 0x1080FF96,  //Ir exp
00138 
00139         XN_MODULE_PROPERTY_SENSOR_CHANGE = 0x1080FF97,      //ado change sensor
00140 
00141         XN_MODULE_PROPERTY_PUBLIC_KEY = 0x1080FF98,             //public key and batch version
00142         XN_MODULE_PROPERTY_RANDOM_STRING = 0x1080FF99,          //get random init string
00143 
00144         XN_MODULE_PROPERTY_RS_KEY = 0x1080FF9A,            //rs key
00145         //laser secure
00146         XN_MODULE_PROPERTY_IS_SUPPORT_LASER_SECURE = 0x1080FF9B,  //is support laser secure
00147         XN_MODULE_PROPERTY_LASER_SECURE_STATUS = 0x1080FF9C,      //laser secure (open or close)
00148         XN_MODULE_PROPERTY_LASER_SECURE_KEEPALIVE = 0x1080FF9D,    //keepalive heart packet
00149         //laser current
00150         XN_MODULE_PROPERTY_LASER_CURRENT = 0x1080FF9E,
00151 
00152         //soft reset
00153         XN_MODULE_PROPERTY_SOFT_RESET = 0x1080FF9F,
00154         //dual camera switch left and right ir
00155         XN_MODULE_PROPERTY_SWITCH_IR = 0x1080FFB0,
00156 
00157         //rgb Ae mode
00158         XN_MODULE_PROPERTY_RGB_AE_MODE = 0x1080FFB1,
00159 
00160 
00161         /*******************************************************************/
00162         /* Common stream properties                                        */
00163         /*******************************************************************/
00164 
00166         XN_STREAM_PROPERTY_INPUT_FORMAT = 0x10800001, // "InputFormat"
00168         XN_STREAM_PROPERTY_CROPPING_MODE = 0x10800002, // "CroppingMode"
00169 
00170         /*******************************************************************/
00171         /* Depth stream properties                                         */
00172         /*******************************************************************/
00173 
00175         XN_STREAM_PROPERTY_CLOSE_RANGE = 0x1080F003, // "CloseRange"
00177         XN_STREAM_PROPERTY_FAST_ZOOM_CROP = 0x1080F009, // "FastZoomCrop"
00179         XN_STREAM_PROPERTY_PIXEL_REGISTRATION = 0x10801001, // "PixelRegistration"
00181         XN_STREAM_PROPERTY_PIXEL_C2D_REGISTRATION = 0x20801001, // "PixelRegistration"
00183         XN_STREAM_PROPERTY_PIXEL_D2C_REGISTRATION = 0x20801002, // "PixelRegistration"
00185         XN_STREAM_PROPERTY_WHITE_BALANCE_ENABLED = 0x10801002, // "WhiteBalancedEnabled"
00187         XN_STREAM_PROPERTY_GAIN = 0x10801003, // "Gain"
00189         XN_STREAM_PROPERTY_HOLE_FILTER = 0x10801004, // "HoleFilter"
00191         XN_STREAM_PROPERTY_REGISTRATION_TYPE = 0x10801005, // "RegistrationType"
00193         XN_STREAM_PROPERTY_AGC_BIN = 0x10801006, // "AGCBin"
00195         XN_STREAM_PROPERTY_CONST_SHIFT = 0x10801007, // "ConstShift"
00197         XN_STREAM_PROPERTY_PIXEL_SIZE_FACTOR = 0x10801008, // "PixelSizeFactor"
00199         XN_STREAM_PROPERTY_MAX_SHIFT = 0x10801009, // "MaxShift"
00201         XN_STREAM_PROPERTY_PARAM_COEFF = 0x1080100A, // "ParamCoeff"
00203         XN_STREAM_PROPERTY_SHIFT_SCALE = 0x1080100B, // "ShiftScale"
00205         XN_STREAM_PROPERTY_ZERO_PLANE_DISTANCE = 0x1080100C, // "ZPD"
00207         XN_STREAM_PROPERTY_ZERO_PLANE_PIXEL_SIZE = 0x1080100D, // "ZPPS"
00209         XN_STREAM_PROPERTY_EMITTER_DCMOS_DISTANCE = 0x1080100E, // "LDDIS"
00211         XN_STREAM_PROPERTY_DCMOS_RCMOS_DISTANCE = 0x1080100F, // "DCRCDIS"
00212         /*dual sensor */
00213         XN_STREAM_PROPERTY_DUAL_FOCALL_LENGTH = 0x06010011, // "DCRCDIS"
00214         /*dual sensor */
00215         XN_STREAM_PROPERTY_DUAL_COEFF_DISPARITY = 0x06010012, // "DCRCDIS"
00217         XN_STREAM_PROPERTY_S2D_TABLE = 0x10801112, // "S2D"
00219         XN_STREAM_PROPERTY_D2S_TABLE = 0x10801113, // "D2S"
00221         XN_STREAM_PROPERTY_DEPTH_SENSOR_CALIBRATION_INFO = 0x10801012,
00223         XN_STREAM_PROPERTY_GMC_MODE     = 0x1080FF44, // "GmcMode"
00225         XN_STREAM_PROPERTY_GMC_DEBUG = 0x1080FF45, // "GmcDebug"
00227         XN_STREAM_PROPERTY_WAVELENGTH_CORRECTION = 0x1080FF46, // "WavelengthCorrection"
00229         XN_STREAM_PROPERTY_WAVELENGTH_CORRECTION_DEBUG = 0x1080FF47, // "WavelengthCorrectionDebug"
00230 
00232     XN_STREAM_PROPERTY_SOFTWARE_REGISTRATION = 0x2080FF42, // "Software Registration"
00233 
00234         /*******************************************************************/
00235         /* Color stream properties                                         */
00236         /*******************************************************************/
00238         XN_STREAM_PROPERTY_FLICKER = 0x10802001, // "Flicker"
00239 };
00240 
00241 typedef enum 
00242 {
00243         XN_SENSOR_FW_VER_UNKNOWN = 0,
00244         XN_SENSOR_FW_VER_0_17 = 1,
00245         XN_SENSOR_FW_VER_1_1 = 2,
00246         XN_SENSOR_FW_VER_1_2 = 3,
00247         XN_SENSOR_FW_VER_3_0 = 4,
00248         XN_SENSOR_FW_VER_4_0 = 5,
00249         XN_SENSOR_FW_VER_5_0 = 6,
00250         XN_SENSOR_FW_VER_5_1 = 7,
00251         XN_SENSOR_FW_VER_5_2 = 8,
00252         XN_SENSOR_FW_VER_5_3 = 9,
00253         XN_SENSOR_FW_VER_5_4 = 10,
00254         XN_SENSOR_FW_VER_5_5 = 11,
00255         XN_SENSOR_FW_VER_5_6 = 12,
00256         XN_SENSOR_FW_VER_5_7 = 13,
00257         XN_SENSOR_FW_VER_5_8 = 14,
00258         XN_SENSOR_FW_VER_5_9 = 15,
00259 } XnFWVer;
00260 
00261 typedef enum {
00262         XN_SENSOR_VER_UNKNOWN = 0,
00263         XN_SENSOR_VER_2_0 = 1,
00264         XN_SENSOR_VER_3_0 = 2,
00265         XN_SENSOR_VER_4_0 = 3,
00266         XN_SENSOR_VER_5_0 = 4
00267 } XnSensorVer;
00268 
00269 typedef enum {
00270         XN_SENSOR_HW_VER_UNKNOWN = 0,
00271         XN_SENSOR_HW_VER_FPDB_10 = 1,
00272         XN_SENSOR_HW_VER_CDB_10  = 2,
00273         XN_SENSOR_HW_VER_RD_3  = 3,
00274         XN_SENSOR_HW_VER_RD_5  = 4,
00275         XN_SENSOR_HW_VER_RD1081  = 5,
00276         XN_SENSOR_HW_VER_RD1082  = 6,
00277         XN_SENSOR_HW_VER_RD109  = 7     
00278 } XnHWVer;
00279 
00280 typedef enum {
00281         XN_SENSOR_CHIP_VER_UNKNOWN = 0,
00282         XN_SENSOR_CHIP_VER_PS1000 = 1,
00283         XN_SENSOR_CHIP_VER_PS1080 = 2,
00284         XN_SENSOR_CHIP_VER_PS1080A6 = 3,
00285         XN_SENSOR_CHIP_VER_MX6000 = 6,
00286         XN_SENSOR_CHIP_VER_DUAL_MX6000 = 7
00287 
00288 } XnChipVer;
00289 
00290 typedef enum
00291 {
00292         XN_CMOS_TYPE_IMAGE = 0,
00293         XN_CMOS_TYPE_DEPTH = 1,
00294 
00295         XN_CMOS_COUNT
00296 } XnCMOSType;
00297 
00298 typedef enum
00299 {
00300         XN_IO_IMAGE_FORMAT_BAYER = 0,
00301         XN_IO_IMAGE_FORMAT_YUV422 = 1,
00302         XN_IO_IMAGE_FORMAT_JPEG = 2,
00303         XN_IO_IMAGE_FORMAT_JPEG_420 = 3,
00304         XN_IO_IMAGE_FORMAT_JPEG_MONO = 4,
00305         XN_IO_IMAGE_FORMAT_UNCOMPRESSED_YUV422 = 5,
00306         XN_IO_IMAGE_FORMAT_UNCOMPRESSED_BAYER = 6,
00307         XN_IO_IMAGE_FORMAT_UNCOMPRESSED_YUYV = 7,
00308 } XnIOImageFormats;
00309 
00310 typedef enum
00311 {
00312         XN_IO_DEPTH_FORMAT_UNCOMPRESSED_16_BIT = 0,
00313         XN_IO_DEPTH_FORMAT_COMPRESSED_PS = 1,
00314         XN_IO_DEPTH_FORMAT_UNCOMPRESSED_10_BIT = 2,
00315         XN_IO_DEPTH_FORMAT_UNCOMPRESSED_11_BIT = 3,
00316         XN_IO_DEPTH_FORMAT_UNCOMPRESSED_12_BIT = 4,
00317 } XnIODepthFormats;
00318 
00319 typedef enum
00320 {
00321         XN_RESET_TYPE_POWER = 0,
00322         XN_RESET_TYPE_SOFT = 1,
00323         XN_RESET_TYPE_SOFT_FIRST = 2,
00324 } XnParamResetType;
00325 
00326 typedef enum XnSensorUsbInterface
00327 {
00328         XN_SENSOR_USB_INTERFACE_DEFAULT = 0,
00329         XN_SENSOR_USB_INTERFACE_ISO_ENDPOINTS = 1,
00330         XN_SENSOR_USB_INTERFACE_BULK_ENDPOINTS = 2,
00331         XN_SENSOR_USB_INTERFACE_ISO_ENDPOINTS_LOW_DEPTH = 3,
00332 } XnSensorUsbInterface;
00333 
00334 typedef enum XnProcessingType
00335 {
00336         XN_PROCESSING_DONT_CARE = 0,
00337         XN_PROCESSING_HARDWARE = 1,
00338         XN_PROCESSING_SOFTWARE = 2,
00339 } XnProcessingType;
00340 
00341 typedef enum XnCroppingMode
00342 {
00343         XN_CROPPING_MODE_NORMAL = 1,
00344         XN_CROPPING_MODE_INCREASED_FPS = 2,
00345         XN_CROPPING_MODE_SOFTWARE_ONLY = 3,
00346 } XnCroppingMode;
00347 
00348 enum
00349 {
00350         XN_ERROR_STATE_OK = 0,
00351         XN_ERROR_STATE_DEVICE_PROJECTOR_FAULT = 1,
00352         XN_ERROR_STATE_DEVICE_OVERHEAT = 2,
00353 };
00354 
00355 typedef enum XnFirmwareCroppingMode
00356 {
00357         XN_FIRMWARE_CROPPING_MODE_DISABLED = 0,
00358         XN_FIRMWARE_CROPPING_MODE_NORMAL = 1,
00359         XN_FIRMWARE_CROPPING_MODE_INCREASED_FPS = 2,
00360 } XnFirmwareCroppingMode;
00361 
00362 typedef enum
00363 {
00364         XnLogFilterDebug                = 0x0001,
00365         XnLogFilterInfo                 = 0x0002,
00366         XnLogFilterError                = 0x0004,
00367         XnLogFilterProtocol             = 0x0008,
00368         XnLogFilterAssert               = 0x0010,
00369         XnLogFilterConfig               = 0x0020,
00370         XnLogFilterFrameSync    = 0x0040,
00371         XnLogFilterAGC                  = 0x0080,
00372         XnLogFilterTelems               = 0x0100,
00373 
00374         XnLogFilterAll                  = 0xFFFF
00375 } XnLogFilter;
00376 
00377 typedef enum
00378 {
00379         XnFileAttributeReadOnly = 0x8000
00380 } XnFilePossibleAttributes;
00381 
00382 typedef enum
00383 {
00384         XnFlashFileTypeFileTable                                        = 0x00,
00385         XnFlashFileTypeScratchFile                                      = 0x01,
00386         XnFlashFileTypeBootSector                                       = 0x02,
00387         XnFlashFileTypeBootManager                                      = 0x03,
00388         XnFlashFileTypeCodeDownloader                           = 0x04,
00389         XnFlashFileTypeMonitor                                          = 0x05,
00390         XnFlashFileTypeApplication                                      = 0x06,
00391         XnFlashFileTypeFixedParams                                      = 0x07,
00392         XnFlashFileTypeDescriptors                                      = 0x08,
00393         XnFlashFileTypeDefaultParams                            = 0x09,
00394         XnFlashFileTypeImageCmos                                        = 0x0A,
00395         XnFlashFileTypeDepthCmos                                        = 0x0B,
00396         XnFlashFileTypeAlgorithmParams                          = 0x0C,
00397         XnFlashFileTypeReferenceQVGA                            = 0x0D,
00398         XnFlashFileTypeReferenceVGA                                     = 0x0E,
00399         XnFlashFileTypeMaintenance                                      = 0x0F,
00400         XnFlashFileTypeDebugParams                                      = 0x10,
00401         XnFlashFileTypePrimeProcessor                           = 0x11,
00402         XnFlashFileTypeGainControl                                      = 0x12,
00403         XnFlashFileTypeRegistartionParams                       = 0x13,
00404         XnFlashFileTypeIDParams                                         = 0x14,
00405         XnFlashFileTypeSensorTECParams                          = 0x15,
00406         XnFlashFileTypeSensorAPCParams                          = 0x16,
00407         XnFlashFileTypeSensorProjectorFaultParams       = 0x17,
00408         XnFlashFileTypeProductionFile                           = 0x18,
00409         XnFlashFileTypeUpgradeInProgress                        = 0x19,
00410         XnFlashFileTypeWavelengthCorrection                     = 0x1A,
00411         XnFlashFileTypeGMCReferenceOffset                       = 0x1B,
00412         XnFlashFileTypeSensorNESAParams                         = 0x1C,
00413         XnFlashFileTypeSensorFault                                      = 0x1D,
00414         XnFlashFileTypeVendorData                                       = 0x1E,
00415 } XnFlashFileType;
00416 
00417 typedef enum XnBistType
00418 {
00419         //Auto tests
00420         XN_BIST_IMAGE_CMOS = 1 << 0,
00421         XN_BIST_IR_CMOS = 1 << 1,
00422         XN_BIST_POTENTIOMETER = 1 << 2,
00423         XN_BIST_FLASH = 1 << 3,
00424         XN_BIST_FULL_FLASH = 1 << 4,
00425         XN_BIST_PROJECTOR_TEST_MASK = 1 << 5,
00426         XN_BIST_TEC_TEST_MASK = 1 << 6,
00427 
00428         // Manual tests
00429         XN_BIST_NESA_TEST_MASK = 1 << 7,
00430         XN_BIST_NESA_UNLIMITED_TEST_MASK = 1 << 8,
00431 
00432         // Mask of all the auto tests
00433         XN_BIST_ALL = (0xFFFFFFFF & ~XN_BIST_NESA_TEST_MASK & ~XN_BIST_NESA_UNLIMITED_TEST_MASK),
00434 
00435 } XnBistType;
00436 
00437 typedef enum XnBistError
00438 {
00439         XN_BIST_RAM_TEST_FAILURE = 1 << 0,
00440         XN_BIST_IR_CMOS_CONTROL_BUS_FAILURE = 1 << 1,
00441         XN_BIST_IR_CMOS_DATA_BUS_FAILURE = 1 << 2,
00442         XN_BIST_IR_CMOS_BAD_VERSION = 1 << 3,
00443         XN_BIST_IR_CMOS_RESET_FAILUE = 1 << 4,
00444         XN_BIST_IR_CMOS_TRIGGER_FAILURE = 1 << 5,
00445         XN_BIST_IR_CMOS_STROBE_FAILURE = 1 << 6,
00446         XN_BIST_COLOR_CMOS_CONTROL_BUS_FAILURE = 1 << 7,
00447         XN_BIST_COLOR_CMOS_DATA_BUS_FAILURE = 1 << 8,
00448         XN_BIST_COLOR_CMOS_BAD_VERSION = 1 << 9,
00449         XN_BIST_COLOR_CMOS_RESET_FAILUE = 1 << 10,
00450         XN_BIST_FLASH_WRITE_LINE_FAILURE = 1 << 11,
00451         XN_BIST_FLASH_TEST_FAILURE = 1 << 12,
00452         XN_BIST_POTENTIOMETER_CONTROL_BUS_FAILURE = 1 << 13,
00453         XN_BIST_POTENTIOMETER_FAILURE = 1 << 14,
00454         XN_BIST_AUDIO_TEST_FAILURE = 1 << 15,
00455         XN_BIST_PROJECTOR_TEST_LD_FAIL = 1 << 16,
00456         XN_BIST_PROJECTOR_TEST_LD_FAILSAFE_TRIG_FAIL = 1 << 17,
00457         XN_BIST_PROJECTOR_TEST_FAILSAFE_HIGH_FAIL = 1 << 18,
00458         XN_BIST_PROJECTOR_TEST_FAILSAFE_LOW_FAIL = 1 << 19,
00459         XN_TEC_TEST_HEATER_CROSSED = 1 << 20,
00460         XN_TEC_TEST_HEATER_DISCONNETED = 1 << 21,
00461         XN_TEC_TEST_TEC_CROSSED = 1 << 22,
00462         XN_TEC_TEST_TEC_FAULT = 1 << 23,
00463 } XnBistError;
00464 
00465 typedef enum XnDepthCMOSType
00466 {
00467         XN_DEPTH_CMOS_NONE = 0,
00468         XN_DEPTH_CMOS_MT9M001 = 1,
00469         XN_DEPTH_CMOS_AR130 = 2,
00470         XN_DEPTH_CMOS_OV9151 = 3,
00471 
00472         XN_DEPTH_CMOS_OV9282 = 7,
00473         XN_DEPTH_CMOS_AR0144 = 8,
00474 } XnDepthCMOSType;
00475 
00476 typedef enum XnImageCMOSType
00477 {
00478         XN_IMAGE_CMOS_NONE = 0,
00479         XN_IMAGE_CMOS_MT9M112 = 1,
00480         XN_IMAGE_CMOS_MT9D131 = 2,
00481         XN_IMAGE_CMOS_MT9M114 = 3,
00482 } XnImageCMOSType;
00483 
00484 #define XN_IO_MAX_I2C_BUFFER_SIZE 10
00485 #define XN_MAX_LOG_SIZE (6*1024)
00486 
00487 #pragma pack (push, 1)
00488 
00489 typedef struct XnSDKVersion
00490 {
00491         unsigned char nMajor;
00492         unsigned char nMinor;
00493         unsigned char nMaintenance;
00494         unsigned short nBuild;
00495 } XnSDKVersion;
00496 
00497 typedef struct {
00498         unsigned char nMajor;
00499         unsigned char nMinor;
00500         unsigned short nBuild;
00501         unsigned int nChip;
00502         unsigned short nFPGA;
00503         unsigned short nSystemVersion;
00504 
00505         XnSDKVersion SDK;
00506 
00507         XnHWVer         HWVer;
00508         XnFWVer         FWVer;
00509         XnSensorVer SensorVer;
00510         XnChipVer       ChipVer;
00511 } XnVersions;
00512 
00513 typedef struct
00514 {
00515         unsigned short nParam;
00516         unsigned short nValue;
00517 } XnInnerParamData;
00518 
00519 typedef struct XnDepthAGCBin 
00520 {
00521         unsigned short nBin;
00522         unsigned short nMin;
00523         unsigned short nMax;
00524 } XnDepthAGCBin;
00525 
00526 typedef struct XnControlProcessingData
00527 {
00528         unsigned short nRegister;
00529         unsigned short nValue;
00530 } XnControlProcessingData;
00531 
00532 typedef struct XnAHBData
00533 {
00534         unsigned int nRegister;
00535         unsigned int nValue;
00536         unsigned int nMask;
00537 } XnAHBData;
00538 
00539 typedef struct XnPixelRegistration
00540 {
00541         unsigned int nDepthX;
00542         unsigned int nDepthY;
00543         uint16_t nDepthValue;
00544         unsigned int nImageXRes;
00545         unsigned int nImageYRes;
00546         unsigned int nImageX; // out
00547         unsigned int nImageY; // out
00548 } XnPixelRegistration;
00549 
00550 typedef struct XnLedState
00551 {
00552         uint16_t nLedID;
00553         uint16_t nState;
00554 } XnLedState;
00555 
00556 
00557 typedef struct XnCmosBlankingTime
00558 {
00559         XnCMOSType nCmosID;
00560         float nTimeInMilliseconds;
00561         uint16_t nNumberOfFrames;
00562 } XnCmosBlankingTime;
00563 
00564 typedef struct XnCmosBlankingUnits
00565 {
00566         XnCMOSType nCmosID;
00567         uint16_t nUnits;
00568         uint16_t nNumberOfFrames;
00569 } XnCmosBlankingUnits;
00570 
00571 typedef struct XnI2CWriteData
00572 {
00573         uint16_t nBus;
00574         uint16_t nSlaveAddress;
00575         uint16_t cpWriteBuffer[XN_IO_MAX_I2C_BUFFER_SIZE];
00576         uint16_t nWriteSize;
00577 } XnI2CWriteData;
00578 
00579 typedef struct XnI2CReadData
00580 {
00581         uint16_t nBus;
00582         uint16_t nSlaveAddress;
00583         uint16_t cpReadBuffer[XN_IO_MAX_I2C_BUFFER_SIZE];
00584         uint16_t cpWriteBuffer[XN_IO_MAX_I2C_BUFFER_SIZE];
00585         uint16_t nReadSize;
00586         uint16_t nWriteSize;
00587 } XnI2CReadData;
00588 
00589 typedef struct XnTecData
00590 {
00591         uint16_t m_SetPointVoltage;
00592         uint16_t m_CompensationVoltage;
00593         uint16_t m_TecDutyCycle; //duty cycle on heater/cooler
00594         uint16_t m_HeatMode; //TRUE - heat, FALSE - cool
00595         int32_t m_ProportionalError;
00596         int32_t m_IntegralError;
00597         int32_t m_DerivativeError;
00598         uint16_t m_ScanMode; //0 - crude, 1 - precise
00599 } XnTecData;
00600 
00601 typedef struct XnTecFastConvergenceData
00602 {
00603         int16_t     m_SetPointTemperature;  // set point temperature in celsius,
00604         // scaled by factor of 100 (extra precision)
00605         int16_t     m_MeasuredTemperature;  // measured temperature in celsius,
00606         // scaled by factor of 100 (extra precision)
00607         int32_t         m_ProportionalError;    // proportional error in system clocks
00608         int32_t         m_IntegralError;        // integral error in system clocks
00609         int32_t         m_DerivativeError;      // derivative error in system clocks
00610         uint16_t        m_ScanMode; // 0 - initial, 1 - crude, 2 - precise
00611         uint16_t    m_HeatMode; // 0 - idle, 1 - heat, 2 - cool
00612         uint16_t    m_TecDutyCycle; // duty cycle on heater/cooler in percents
00613         uint16_t        m_TemperatureRange;     // 0 - cool, 1 - room, 2 - warm
00614 } XnTecFastConvergenceData;
00615 
00616 typedef struct XnEmitterData
00617 {
00618         uint16_t m_State; //idle, calibrating
00619         uint16_t m_SetPointVoltage; //this is what should be written to the XML
00620         uint16_t m_SetPointClocks; //target cross duty cycle
00621         uint16_t m_PD_Reading; //current cross duty cycle in system clocks(high time)
00622         uint16_t m_EmitterSet; //duty cycle on emitter set in system clocks (high time).
00623         uint16_t m_EmitterSettingLogic; //TRUE = positive logic, FALSE = negative logic
00624         uint16_t m_LightMeasureLogic; //TRUE - positive logic, FALSE - negative logic
00625         uint16_t m_IsAPCEnabled;
00626         uint16_t m_EmitterSetStepSize; // in MilliVolts
00627         uint16_t m_ApcTolerance; // in system clocks (only valid up till v5.2)
00628         uint16_t m_SubClocking; //in system clocks (only valid from v5.3)
00629         uint16_t m_Precision; // (only valid from v5.3)
00630 } XnEmitterData;
00631 
00632 typedef struct
00633 {
00634         uint16_t nId;
00635         uint16_t nAttribs;
00636 } XnFileAttributes;
00637 
00638 typedef struct
00639 {
00640         uint32_t nOffset;
00641         const char* strFileName;
00642         uint16_t nAttributes;
00643 } XnParamFileData;
00644 
00645 typedef struct
00646 {
00647         uint32_t nOffset;
00648         uint32_t nSize;
00649         unsigned char* pData;
00650 } XnParamFlashData;
00651 
00652 typedef struct  {
00653         uint16_t nId;
00654         uint16_t nType;
00655         uint32_t nVersion;
00656         uint32_t nOffset;
00657         uint32_t nSize;
00658         uint16_t nCrc;
00659         uint16_t nAttributes;
00660         uint16_t nReserve;
00661 } XnFlashFile;
00662 
00663 typedef struct  
00664 {
00665         XnFlashFile* pFiles;
00666         uint16_t nFiles;
00667 } XnFlashFileList;
00668 
00669 typedef struct XnProjectorFaultData
00670 {
00671         uint16_t nMinThreshold;
00672         uint16_t nMaxThreshold;
00673         int32_t bProjectorFaultEvent;
00674 } XnProjectorFaultData;
00675 
00676 typedef struct XnBist
00677 {
00678         uint32_t nTestsMask;
00679         uint32_t nFailures;
00680 } XnBist;
00681 
00682 //public key and batch version
00683 typedef struct OBEccVerify
00684 {
00685         char Pub_x[48];                 //public key x 48 bytes
00686         char Pub_y[48];         //public key y 48 bytes
00687         char Batch_Ver[12];             //batch version 12 bytes
00688 }OBEccVerify;
00689 
00690 //get init random string
00691 typedef struct OBEccInit
00692 {
00693         char RandomStr[48];
00694         char Batch_Ver[12];
00695 }OBEccInit;
00696 
00697 //r s key
00698 typedef struct OBEccRSKey
00699 {
00700         char R_key[48];
00701         char S_key[48];
00702 }OBEccRSKey;
00703 
00704 //rgb ae mode
00705 typedef struct XnRgbAeMode
00706 {
00707         uint16_t nAeMode;
00708         uint16_t nAeTarget;
00709 } XnRgbAeMode;
00710 
00711 #pragma pack (pop)
00712 
00713 #endif // PS1080_H


astra_camera
Author(s): Tim Liu
autogenerated on Wed Jul 10 2019 03:18:55