00001
00002
00003
00004
00006
00007 #include "ApnCamData_TH7899.h"
00008
00009 #include <stdlib.h>
00010 #include <malloc.h>
00011 #include <string.h>
00012
00013
00015
00017
00018
00019 CApnCamData_TH7899::CApnCamData_TH7899()
00020 {
00021 }
00022
00023
00024 CApnCamData_TH7899::~CApnCamData_TH7899()
00025 {
00026 }
00027
00028
00029 void CApnCamData_TH7899::Initialize()
00030 {
00031 strcpy( m_Sensor, "TH7899" );
00032 strcpy( m_CameraModel, "10" );
00033 m_CameraId = 14;
00034 m_InterlineCCD = false;
00035 m_SupportsSerialA = true;
00036 m_SupportsSerialB = true;
00037 m_SensorTypeCCD = true;
00038 m_TotalColumns = 2110;
00039 m_ImagingColumns = 2048;
00040 m_ClampColumns = 25;
00041 m_PreRoiSkipColumns = 5;
00042 m_PostRoiSkipColumns = 5;
00043 m_OverscanColumns = 27;
00044 m_TotalRows = 2054;
00045 m_ImagingRows = 2048;
00046 m_UnderscanRows = 3;
00047 m_OverscanRows = 3;
00048 m_VFlushBinning = 4;
00049 m_EnableSingleRowOffset = false;
00050 m_RowOffsetBinning = 1;
00051 m_HFlushDisable = false;
00052 m_ShutterCloseDelay = 20;
00053 m_PixelSizeX = 14;
00054 m_PixelSizeY = 14;
00055 m_Color = false;
00056 m_ReportedGainSixteenBit = 2;
00057 m_MinSuggestedExpTime = 20.0;
00058 m_CoolingSupported = true;
00059 m_RegulatedCoolingSupported = true;
00060 m_TempSetPoint = -20.0;
00061 m_TempRampRateOne = 1000;
00062 m_TempRampRateTwo = 2000;
00063 m_TempBackoffPoint = 2.0;
00064 m_DefaultGainTwelveBit = 100;
00065 m_DefaultOffsetTwelveBit = 255;
00066 m_DefaultRVoltage = 1000;
00067
00068 set_vpattern();
00069
00070 set_hpattern_clamp_sixteen();
00071 set_hpattern_skip_sixteen();
00072 set_hpattern_roi_sixteen();
00073
00074 set_hpattern_clamp_twelve();
00075 set_hpattern_skip_twelve();
00076 set_hpattern_roi_twelve();
00077 }
00078
00079
00080 void CApnCamData_TH7899::set_vpattern()
00081 {
00082 const unsigned short Mask = 0x0;
00083 const unsigned short NumElements = 18;
00084 unsigned short Pattern[NumElements] =
00085 {
00086 0x0000, 0x0018, 0x0018, 0x001A, 0x001A, 0x0012, 0x0012, 0x0016, 0x0016, 0x0006,
00087 0x0006, 0x000E, 0x000E, 0x000C, 0x000C, 0x0000, 0x0001, 0x0000
00088 };
00089
00090 m_VerticalPattern.Mask = Mask;
00091 m_VerticalPattern.NumElements = NumElements;
00092 m_VerticalPattern.PatternData =
00093 (unsigned short *)malloc(NumElements * sizeof(unsigned short));
00094
00095 for ( int i=0; i<NumElements; i++ )
00096 {
00097 m_VerticalPattern.PatternData[i] = Pattern[i];
00098 }
00099 }
00100
00101
00102 void CApnCamData_TH7899::set_hpattern_skip_sixteen()
00103 {
00104 const unsigned short Mask = 0x1E;
00105 const unsigned short BinningLimit = 1;
00106 const unsigned short RefNumElements = 11;
00107 const unsigned short SigNumElements = 12;
00108
00109 unsigned short RefPatternData[RefNumElements] =
00110 {
00111 0x0074, 0x007A, 0x007A, 0x0078, 0x1078, 0x1078, 0x1078, 0x0078, 0x00F8, 0x00D8,
00112 0x00D8
00113 };
00114
00115 unsigned short SigPatternData[SigNumElements] =
00116 {
00117 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0144, 0x0104, 0x0004,
00118 0x0005, 0x0014
00119 };
00120
00121 unsigned short BinNumElements[APN_MAX_HBINNING] =
00122 {
00123 0x0002
00124 };
00125
00126 unsigned short BinPatternData[1][256] = {
00127 {
00128 0x0058, 0x0054
00129 } };
00130
00131 set_hpattern( &m_SkipPatternSixteen,
00132 Mask,
00133 BinningLimit,
00134 RefNumElements,
00135 SigNumElements,
00136 BinNumElements,
00137 RefPatternData,
00138 SigPatternData,
00139 BinPatternData );
00140 }
00141
00142
00143 void CApnCamData_TH7899::set_hpattern_clamp_sixteen()
00144 {
00145 const unsigned short Mask = 0x1E;
00146 const unsigned short BinningLimit = 1;
00147 const unsigned short RefNumElements = 25;
00148 const unsigned short SigNumElements = 24;
00149
00150 unsigned short RefPatternData[RefNumElements] =
00151 {
00152 0x0074, 0x007A, 0x007A, 0x0078, 0x0078, 0x1078, 0x1078, 0x1078, 0x1078, 0x1058,
00153 0x10D8, 0x10D8, 0x10D8, 0x10D8, 0x10D8, 0x10D8, 0x10D8, 0x10D8, 0x10D8, 0x10D8,
00154 0x10D8, 0x10D8, 0x10D8, 0x10D8, 0x10D8
00155 };
00156
00157 unsigned short SigPatternData[SigNumElements] =
00158 {
00159 0x0044, 0x0044, 0x0004, 0x0004, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104,
00160 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0004,
00161 0x0404, 0x0004, 0x0005, 0x0074
00162 };
00163
00164 unsigned short BinNumElements[APN_MAX_HBINNING] =
00165 {
00166 0x0002
00167 };
00168
00169 unsigned short BinPatternData[1][256] = {
00170 {
00171 0x0058, 0x0054
00172 } };
00173
00174 set_hpattern( &m_ClampPatternSixteen,
00175 Mask,
00176 BinningLimit,
00177 RefNumElements,
00178 SigNumElements,
00179 BinNumElements,
00180 RefPatternData,
00181 SigPatternData,
00182 BinPatternData );
00183 }
00184
00185
00186 void CApnCamData_TH7899::set_hpattern_roi_sixteen()
00187 {
00188 const unsigned short Mask = 0x1E;
00189 const unsigned short BinningLimit = 10;
00190 const unsigned short RefNumElements = 25;
00191 const unsigned short SigNumElements = 27;
00192
00193 unsigned short RefPatternData[RefNumElements] =
00194 {
00195 0x0074, 0x007A, 0x007A, 0x0078, 0x1078, 0x1078, 0x1078, 0x0078, 0x00F8, 0x00D8,
00196 0x00D8, 0x00D8, 0x00D8, 0x00D8, 0x00D8, 0x00D8, 0x00D8, 0x00D8, 0x00D8, 0x00D8,
00197 0x00D8, 0x00D8, 0x00D8, 0x00D8, 0x00D8
00198 };
00199
00200 unsigned short SigPatternData[SigNumElements] =
00201 {
00202 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0144, 0x0104, 0x0104,
00203 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104,
00204 0x0104, 0x0104, 0x0104, 0x0104, 0x8004, 0x8005, 0x0414
00205 };
00206
00207 unsigned short BinNumElements[APN_MAX_HBINNING] =
00208 {
00209 0x0002, 0x002A, 0x0052, 0x007A, 0x00A2, 0x00CA, 0x00B6, 0x00C6, 0x00A2, 0x00B6
00210 };
00211
00212 unsigned short BinPatternData[10][256] = {
00213 {
00214 0x0058, 0x0054
00215 },
00216 {
00217 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00218 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00219 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00220 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00221 0x0048, 0x0044
00222 },
00223 {
00224 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00225 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00226 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00227 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00228 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00229 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00230 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00231 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00232 0x0048, 0x0044
00233 },
00234 {
00235 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00236 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00237 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00238 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00239 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00240 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00241 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00242 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00243 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00244 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00245 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00246 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00247 0x0048, 0x0044
00248 },
00249 {
00250 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00251 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00252 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00253 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00254 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00255 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00256 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00257 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00258 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00259 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00260 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00261 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00262 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00263 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00264 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00265 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00266 0x0048, 0x0044
00267 },
00268 {
00269 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00270 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00271 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00272 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00273 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00274 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00275 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00276 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00277 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00278 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00279 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00280 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00281 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00282 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00283 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00284 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00285 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00286 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00287 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00288 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00289 0x0048, 0x0044
00290 },
00291 {
00292 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00293 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0048, 0x0048, 0x0048, 0x0048,
00294 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00295 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00296 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0048, 0x0048, 0x0048, 0x0048,
00297 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00298 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00299 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0048, 0x0048, 0x0048, 0x0048,
00300 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00301 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00302 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0048, 0x0048, 0x0048, 0x0048,
00303 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00304 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00305 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0048, 0x0048, 0x0048, 0x0048,
00306 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00307 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00308 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0048, 0x0048, 0x0048, 0x0048,
00309 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00310 0x0048, 0x0044
00311 },
00312 {
00313 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00314 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00315 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0044,
00316 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00317 0x0044, 0x0044, 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00318 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0044, 0x0044, 0x0044,
00319 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00320 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00321 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00322 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0048,
00323 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00324 0x0048, 0x0048, 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00325 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0048, 0x0048, 0x0048,
00326 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00327 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00328 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00329 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0044,
00330 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00331 0x0044, 0x0044, 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00332 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0044
00333 },
00334 {
00335 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00336 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00337 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00338 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00339 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00340 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00341 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00342 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00343 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00344 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00345 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00346 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00347 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00348 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00349 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00350 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00351 0x0048, 0x0044
00352 },
00353 {
00354 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00355 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00356 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00357 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00358 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00359 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00360 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00361 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00362 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00363 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00364 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00365 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00366 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00367 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00368 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00369 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00370 0x0048, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044,
00371 0x0044, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048, 0x0048,
00372 0x0048, 0x0044
00373 } };
00374
00375 set_hpattern( &m_RoiPatternSixteen,
00376 Mask,
00377 BinningLimit,
00378 RefNumElements,
00379 SigNumElements,
00380 BinNumElements,
00381 RefPatternData,
00382 SigPatternData,
00383 BinPatternData );
00384 }
00385
00386
00387 void CApnCamData_TH7899::set_hpattern_skip_twelve()
00388 {
00389 const unsigned short Mask = 0x0;
00390 const unsigned short BinningLimit = 1;
00391 const unsigned short RefNumElements = 0;
00392 const unsigned short SigNumElements = 0;
00393
00394 unsigned short *RefPatternData = NULL;
00395
00396 unsigned short *SigPatternData = NULL;
00397
00398 unsigned short BinNumElements[APN_MAX_HBINNING] =
00399 {
00400 0x000B
00401 };
00402
00403 unsigned short BinPatternData[1][256] = {
00404 {
00405 0x0014, 0x021A, 0x0018, 0x0018, 0x0018, 0x2018, 0x0014, 0x0004, 0x0004, 0x0005,
00406 0x4014
00407 } };
00408
00409 set_hpattern( &m_SkipPatternTwelve,
00410 Mask,
00411 BinningLimit,
00412 RefNumElements,
00413 SigNumElements,
00414 BinNumElements,
00415 RefPatternData,
00416 SigPatternData,
00417 BinPatternData );
00418 }
00419
00420
00421 void CApnCamData_TH7899::set_hpattern_clamp_twelve()
00422 {
00423 const unsigned short Mask = 0x0;
00424 const unsigned short BinningLimit = 1;
00425 const unsigned short RefNumElements = 0;
00426 const unsigned short SigNumElements = 0;
00427
00428 unsigned short *RefPatternData = NULL;
00429
00430 unsigned short *SigPatternData = NULL;
00431
00432 unsigned short BinNumElements[APN_MAX_HBINNING] =
00433 {
00434 0x000C
00435 };
00436
00437 unsigned short BinPatternData[1][256] = {
00438 {
00439 0x0014, 0x021A, 0x0018, 0x0018, 0x0018, 0x0018, 0x0014, 0x2004, 0x0004, 0x0004,
00440 0x0005, 0x4014
00441 } };
00442
00443 set_hpattern( &m_ClampPatternTwelve,
00444 Mask,
00445 BinningLimit,
00446 RefNumElements,
00447 SigNumElements,
00448 BinNumElements,
00449 RefPatternData,
00450 SigPatternData,
00451 BinPatternData );
00452 }
00453
00454
00455 void CApnCamData_TH7899::set_hpattern_roi_twelve()
00456 {
00457 const unsigned short Mask = 0x0;
00458 const unsigned short BinningLimit = 10;
00459 const unsigned short RefNumElements = 0;
00460 const unsigned short SigNumElements = 0;
00461
00462 unsigned short *RefPatternData = NULL;
00463
00464 unsigned short *SigPatternData = NULL;
00465
00466 unsigned short BinNumElements[APN_MAX_HBINNING] =
00467 {
00468 0x000A, 0x0011, 0x0019, 0x0021, 0x0029, 0x0031, 0x0039, 0x0041, 0x0049, 0x0051
00469 };
00470
00471 unsigned short BinPatternData[10][256] = {
00472 {
00473 0x0014, 0x021A, 0x0018, 0x0018, 0x0018, 0x0014, 0x2004, 0x0004, 0x8005, 0xC004
00474 },
00475 {
00476 0x0014, 0x021A, 0x0018, 0x0018, 0x0018, 0x2014, 0x0014, 0x0014, 0x0014, 0x0018,
00477 0x0018, 0x0018, 0x0018, 0x0014, 0x0004, 0x8005, 0xC004
00478 },
00479 {
00480 0x0004, 0x020A, 0x0008, 0x0008, 0x0008, 0x2004, 0x0004, 0x0004, 0x0004, 0x0008,
00481 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008,
00482 0x0008, 0x0004, 0x0004, 0x8005, 0xC004
00483 },
00484 {
00485 0x0004, 0x020A, 0x0008, 0x0008, 0x0008, 0x2004, 0x0004, 0x0004, 0x0004, 0x0008,
00486 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008,
00487 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008, 0x0008, 0x0004,
00488 0x0004, 0x8005, 0xC004
00489 },
00490 {
00491 0x0004, 0x020A, 0x0008, 0x0008, 0x0008, 0x2004, 0x0004, 0x0004, 0x0004, 0x0008,
00492 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008,
00493 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008, 0x0008, 0x0004,
00494 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x8005,
00495 0xC004
00496 },
00497 {
00498 0x0004, 0x020A, 0x0008, 0x0008, 0x0008, 0x2004, 0x0004, 0x0004, 0x0004, 0x0008,
00499 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008,
00500 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008, 0x0008, 0x0004,
00501 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x0004,
00502 0x0004, 0x0008, 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x8005, 0xC004
00503 },
00504 {
00505 0x0004, 0x020A, 0x0008, 0x0008, 0x0008, 0x2004, 0x0004, 0x0004, 0x0004, 0x0008,
00506 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008,
00507 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008, 0x0008, 0x0004,
00508 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x0004,
00509 0x0004, 0x0008, 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008,
00510 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x8005, 0xC004
00511 },
00512 {
00513 0x0004, 0x020A, 0x0008, 0x0008, 0x0008, 0x2004, 0x0004, 0x0004, 0x0004, 0x0008,
00514 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008,
00515 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008, 0x0008, 0x0004,
00516 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x0004,
00517 0x0004, 0x0008, 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008,
00518 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008,
00519 0x0008, 0x0004, 0x0004, 0x8005, 0xC004
00520 },
00521 {
00522 0x0004, 0x020A, 0x0008, 0x0008, 0x0008, 0x2004, 0x0004, 0x0004, 0x0004, 0x0008,
00523 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008,
00524 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008, 0x0008, 0x0004,
00525 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x0004,
00526 0x0004, 0x0008, 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008,
00527 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008,
00528 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008, 0x0008, 0x0004,
00529 0x0004, 0x8005, 0xC004
00530 },
00531 {
00532 0x0004, 0x020A, 0x0008, 0x0008, 0x0008, 0x2004, 0x0004, 0x0004, 0x0004, 0x0008,
00533 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008,
00534 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008, 0x0008, 0x0004,
00535 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x0004,
00536 0x0004, 0x0008, 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008,
00537 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008,
00538 0x0008, 0x0004, 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008, 0x0008, 0x0004,
00539 0x0004, 0x0004, 0x0004, 0x0008, 0x0008, 0x0008, 0x0008, 0x0004, 0x0004, 0x8005,
00540 0xC004
00541 } };
00542
00543 set_hpattern( &m_RoiPatternTwelve,
00544 Mask,
00545 BinningLimit,
00546 RefNumElements,
00547 SigNumElements,
00548 BinNumElements,
00549 RefPatternData,
00550 SigPatternData,
00551 BinPatternData );
00552 }
00553
00554
00555 void CApnCamData_TH7899::set_hpattern( APN_HPATTERN_FILE *Pattern,
00556 unsigned short Mask,
00557 unsigned short BinningLimit,
00558 unsigned short RefNumElements,
00559 unsigned short SigNumElements,
00560 unsigned short BinNumElements[],
00561 unsigned short RefPatternData[],
00562 unsigned short SigPatternData[],
00563 unsigned short BinPatternData[][APN_MAX_PATTERN_ENTRIES] )
00564 {
00565 int i, j;
00566
00567 Pattern->Mask = Mask;
00568 Pattern->BinningLimit = BinningLimit;
00569 Pattern->RefNumElements = RefNumElements;
00570 Pattern->SigNumElements = SigNumElements;
00571
00572 if ( RefNumElements > 0 )
00573 {
00574 Pattern->RefPatternData =
00575 (unsigned short *)malloc(RefNumElements * sizeof(unsigned short));
00576
00577 for ( i=0; i<RefNumElements; i++ )
00578 {
00579 Pattern->RefPatternData[i] = RefPatternData[i];
00580 }
00581 }
00582
00583 if ( SigNumElements > 0 )
00584 {
00585 Pattern->SigPatternData =
00586 (unsigned short *)malloc(SigNumElements * sizeof(unsigned short));
00587
00588 for ( i=0; i<SigNumElements; i++ )
00589 {
00590 Pattern->SigPatternData[i] = SigPatternData[i];
00591 }
00592 }
00593
00594 if ( BinningLimit > 0 )
00595 {
00596 for ( i=0; i<BinningLimit; i++ )
00597 {
00598 Pattern->BinNumElements[i] = BinNumElements[i];
00599
00600 Pattern->BinPatternData[i] =
00601 (unsigned short *)malloc(BinNumElements[i] * sizeof(unsigned short));
00602
00603 for ( j=0; j<BinNumElements[i]; j++ )
00604 {
00605 Pattern->BinPatternData[i][j] = BinPatternData[i][j];
00606 }
00607 }
00608 }
00609 }