///////////////////////////////////////////////////////////// // // ApnCamData_KAF16801E.cpp: Implementation file for the CApnCamData_KAF16801E class. // ///////////////////////////////////////////////////////////// #include "ApnCamData_KAF16801E.h" #include #include ///////////////////////////////////////////////////////////// // Construction/Destruction ///////////////////////////////////////////////////////////// CApnCamData_KAF16801E::CApnCamData_KAF16801E() { } CApnCamData_KAF16801E::~CApnCamData_KAF16801E() { } void CApnCamData_KAF16801E::Initialize() { strcpy( m_Sensor, "KAF16801E" ); strcpy( m_CameraModel, "16" ); m_CameraId = 9; m_InterlineCCD = false; m_SupportsSerialA = true; m_SupportsSerialB = true; m_SensorTypeCCD = true; m_TotalColumns = 4145; m_ImagingColumns = 4098; m_ClampColumns = 35; m_PreRoiSkipColumns = 0; m_PostRoiSkipColumns = 0; m_OverscanColumns = 12; m_TotalRows = 4128; m_ImagingRows = 4098; m_UnderscanRows = 10; m_OverscanRows = 20; m_VFlushBinning = 4; m_EnableSingleRowOffset = false; m_RowOffsetBinning = 1; m_HFlushDisable = false; m_ShutterCloseDelay = 20; m_PixelSizeX = 9; m_PixelSizeY = 9; m_Color = false; m_ReportedGainSixteenBit = 1.5; m_MinSuggestedExpTime = 30.0; m_CoolingSupported = true; m_RegulatedCoolingSupported = true; m_TempSetPoint = -20.0; m_TempRampRateOne = 1000; m_TempRampRateTwo = 2000; m_TempBackoffPoint = 2.0; m_DefaultGainTwelveBit = 100; m_DefaultOffsetTwelveBit = 255; m_DefaultRVoltage = 1000; set_vpattern(); set_hpattern_clamp_sixteen(); set_hpattern_skip_sixteen(); set_hpattern_roi_sixteen(); set_hpattern_clamp_twelve(); set_hpattern_skip_twelve(); set_hpattern_roi_twelve(); } void CApnCamData_KAF16801E::set_vpattern() { const unsigned short Mask = 0x0; const unsigned short NumElements = 116; unsigned short Pattern[NumElements] = { 0x0000, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0204, 0x0204, 0x0204, 0x0204, 0x0204, 0x0204, 0x0204, 0x0204, 0x0204, 0x0204, 0x0004, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x0000 }; m_VerticalPattern.Mask = Mask; m_VerticalPattern.NumElements = NumElements; m_VerticalPattern.PatternData = (unsigned short *)malloc(NumElements * sizeof(unsigned short)); for ( int i=0; iMask = Mask; Pattern->BinningLimit = BinningLimit; Pattern->RefNumElements = RefNumElements; Pattern->SigNumElements = SigNumElements; if ( RefNumElements > 0 ) { Pattern->RefPatternData = (unsigned short *)malloc(RefNumElements * sizeof(unsigned short)); for ( i=0; iRefPatternData[i] = RefPatternData[i]; } } if ( SigNumElements > 0 ) { Pattern->SigPatternData = (unsigned short *)malloc(SigNumElements * sizeof(unsigned short)); for ( i=0; iSigPatternData[i] = SigPatternData[i]; } } if ( BinningLimit > 0 ) { for ( i=0; iBinNumElements[i] = BinNumElements[i]; Pattern->BinPatternData[i] = (unsigned short *)malloc(BinNumElements[i] * sizeof(unsigned short)); for ( j=0; jBinPatternData[i][j] = BinPatternData[i][j]; } } } }