///////////////////////////////////////////////////////////// // // ApnCamData_TH7899.cpp: Implementation file for the CApnCamData_TH7899 class. // ///////////////////////////////////////////////////////////// #include "ApnCamData_TH7899.h" #include #include ///////////////////////////////////////////////////////////// // Construction/Destruction ///////////////////////////////////////////////////////////// CApnCamData_TH7899::CApnCamData_TH7899() { } CApnCamData_TH7899::~CApnCamData_TH7899() { } void CApnCamData_TH7899::Initialize() { strcpy( m_Sensor, "TH7899" ); strcpy( m_CameraModel, "10" ); m_CameraId = 14; m_InterlineCCD = false; m_SupportsSerialA = true; m_SupportsSerialB = true; m_SensorTypeCCD = true; m_TotalColumns = 2110; m_ImagingColumns = 2048; m_ClampColumns = 25; m_PreRoiSkipColumns = 5; m_PostRoiSkipColumns = 5; m_OverscanColumns = 27; m_TotalRows = 2054; m_ImagingRows = 2048; m_UnderscanRows = 3; m_OverscanRows = 3; m_VFlushBinning = 4; m_EnableSingleRowOffset = false; m_RowOffsetBinning = 1; m_HFlushDisable = false; m_ShutterCloseDelay = 20; m_PixelSizeX = 14; m_PixelSizeY = 14; m_Color = false; m_ReportedGainSixteenBit = 2; m_MinSuggestedExpTime = 20.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_TH7899::set_vpattern() { const unsigned short Mask = 0x0; const unsigned short NumElements = 18; unsigned short Pattern[NumElements] = { 0x0000, 0x0018, 0x0018, 0x001A, 0x001A, 0x0012, 0x0012, 0x0016, 0x0016, 0x0006, 0x0006, 0x000E, 0x000E, 0x000C, 0x000C, 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]; } } } }