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