///////////////////////////////////////////////////////////// // // ApnCamData_CCD4710HS.cpp: Implementation file for the CApnCamData_CCD4710HS class. // ///////////////////////////////////////////////////////////// #include "ApnCamData_CCD4710HS.h" #include #include ///////////////////////////////////////////////////////////// // Construction/Destruction ///////////////////////////////////////////////////////////// CApnCamData_CCD4710HS::CApnCamData_CCD4710HS() { } CApnCamData_CCD4710HS::~CApnCamData_CCD4710HS() { } void CApnCamData_CCD4710HS::Initialize() { strcpy( m_Sensor, "CCD4710HS" ); strcpy( m_CameraModel, "47" ); m_CameraId = 11; m_InterlineCCD = false; m_SupportsSerialA = true; m_SupportsSerialB = true; m_SensorTypeCCD = true; m_TotalColumns = 1072; m_ImagingColumns = 1024; m_ClampColumns = 24; m_PreRoiSkipColumns = 0; m_PostRoiSkipColumns = 0; m_OverscanColumns = 24; m_TotalRows = 1027; m_ImagingRows = 1024; m_UnderscanRows = 3; m_OverscanRows = 0; m_VFlushBinning = 4; m_EnableSingleRowOffset = false; m_RowOffsetBinning = 1; m_HFlushDisable = false; m_ShutterCloseDelay = 20; m_PixelSizeX = 13; m_PixelSizeY = 13; 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 = 300; m_DefaultOffsetTwelveBit = 100; 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_CCD4710HS::set_vpattern() { const unsigned short Mask = 0x0; const unsigned short NumElements = 247; unsigned short Pattern[NumElements] = { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 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, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 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, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x0004, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x000C, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 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]; } } } }