Changeset 3918 in Sophya
- Timestamp:
- Dec 2, 2010, 4:41:13 PM (15 years ago)
- Location:
- trunk/AddOn/TAcq
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/AddOn/TAcq/acqparam_exemple.d
r3915 r3918 45 45 # Par defaut @acqmode std 46 46 # Modes standard: [std=raw2c : 2 channels raw data] [fft2c: fft 2 canaux - NOT reordered] 47 # Autres modes: raw1c , fft1c , ordfft2c , ordfft1c 47 # fftshrink=fft2cshrink 48 # Autres modes: raw1c , fft1c , fft1cshrink , ordfft2c , ordfft1c 48 49 # [nof=std+NoFitsFile] pattern,patnof,fft2cnof ... 49 50 @acqmode std -
trunk/AddOn/TAcq/brparam.cc
r3915 r3918 154 154 AcqMode=acqmod; 155 155 fgdatafft=false; 156 fgfftshrink=false; 156 157 fgsinglechannel=false; 157 158 … … 233 234 AcqMode=p.AcqMode; 234 235 fgdatafft=p.fgdatafft; 236 fgfftshrink=p.fgfftshrink; 235 237 fgsinglechannel=p.fgsinglechannel; 236 238 … … 425 427 } 426 428 string acqmode = AcqMode; 427 fgdatafft=false; fg singlechannel=false;429 fgdatafft=false; fgfftshrink=false; fgsinglechannel=false; 428 430 reducneedcopy=false; pqreducmode=BR_TwoChanReduc; 429 431 if ((acqmode == "std")||(acqmode=="raw2c")) swapall = BR_Copy ; 430 432 if (acqmode=="raw1c") { swapall = BR_Copy ; fgsinglechannel=true; pqreducmode=BR_OneChanReduc; } 431 433 432 if ((acqmode == "fft2c")||(acqmode == "fft1c")) swapall = BR_Copy ; 434 if (acqmode=="fft2c") { swapall = BR_Copy; fgdatafft=true; } 435 if ((acqmode=="fft2cshrink")||(acqmode=="fftshrink")) { swapall = BR_Copy; fgdatafft=true; fgfftshrink=true; } 436 if (acqmode=="fft1c") { swapall = BR_Copy; fgdatafft=true; fgsinglechannel=true; } 437 if (acqmode=="fft1cshrink") { swapall = BR_Copy; fgdatafft=true; fgfftshrink=true; fgfftshrink=true; } 438 433 439 if (acqmode == "nosw") swapall = BR_Copy ; 434 440 if (acqmode == "nof") { swapall = BR_Copy ; savesigfits = false; } … … 497 503 os << " AcqMode="<<AcqMode; 498 504 os << " Type of acquisition :" << BRPaquet::FmtConvToString( swapall) << endl; 505 os << " Firmware: " << ((fgdatafft)?" FFT_Data ":" RawData "); 506 os << ((fgfftshrink)?" ShrinkFFT ":" FULLFFT "); 507 os << ((fgsinglechannel)?" SingleChannel":" TwoChannels") << endl; 499 508 os << " SkySource=" << skysource; 500 509 os << " NbFiles="<<NbFiles; -
trunk/AddOn/TAcq/brparam.h
r3915 r3918 143 143 string AcqMode; // Mode d'acquisition (conditionne la mise en ordre/conversion des donnees lues par DMA 144 144 bool fgdatafft; // true -> donnee FFT (provenant du firmware FFT) 145 bool fgfftshrink; // true -> donnee FFT tronquee [NumFreq=2048...3072] (provenant du firmware FFT) 145 146 bool fgsinglechannel; // true -> un seul canal par fibre (par defaut=2 canaux/fibres) 146 147 -
trunk/AddOn/TAcq/racquproc.cc
r3876 r3918 177 177 178 178 // Histo pour valeurs des bytes dans les paquets 179 Histo* phist[2*MAXNBFIB] = {NULL,NULL,NULL,NULL, NULL,NULL,NULL,NULL}; 180 Histo2D* ph2[2*MAXNBFIB] = {NULL,NULL,NULL,NULL, NULL,NULL,NULL,NULL}; 181 Histo* phexp[2*MAXNBFIB] = {NULL,NULL,NULL,NULL, NULL,NULL,NULL,NULL}; 179 Histo* phist[2*MAXNBFIB]; 180 Histo2D* ph2[2*MAXNBFIB]; 181 Histo* phexp[2*MAXNBFIB]; 182 TMatrix<r_4>* psatur[2*MAXNBFIB]; 183 for(int ifib=0; ifib<2*MAXNBFIB; ifib++) { 184 phist[ifib]=NULL; ph2[ifib]=NULL; phexp[ifib]=NULL; psatur[ifib]=NULL; 185 } 182 186 if (par_.fgdatafft) { // data de type FFT 183 187 for(sa_size_t lc=0; lc<2*memgr.NbFibres(); lc++) { … … 185 189 ph2[lc] = new Histo2D(-128.5,+128.5,257, -128.5,+128.5,257); 186 190 phexp[lc] = new Histo(-128.5,+128.5,257); 191 psatur[lc] = new TMatrix<r_4>(3,3); 192 *psatur[lc] = 0.; 187 193 } 188 194 } … … 218 224 } 219 225 } 226 227 // DBG-ATTENTION : freq 0 pour expo full FFT si reordonne 228 int idxexpo=(par_.fgfftshrink)?1023:0; // exposant FFT shrink 1024 freq, ou freq 0 pour full-FFT 220 229 221 230 cpaqok_ = (uint_1)0; … … 230 239 if (par_.fgdatafft) { // Traitement data de type FFT 231 240 TwoByteComplex* tbcp=paq.Data1C(); 232 phexp[lc]->Add((r_4)tbcp[0].realD()); 241 242 // exposant FFT 243 phexp[lc]->Add((r_4)tbcp[idxexpo].realD()); 244 233 245 for(sa_size_t j=1; j<spectre_.NCols(); j++) { 234 246 phist[lc]->Add((r_4)tbcp[j].realD()); 235 247 phist[lc]->Add((r_4)tbcp[j].imagD()); 236 248 ph2[lc]->Add((r_4)tbcp[j].realD(), (r_4)tbcp[j].imagD()); 249 // comptage saturation 250 int sir=0, sii=0; // saturation partie reelle, partie imaginaire 251 if (tbcp[j].realI()==-128) sir=-1; 252 else if (tbcp[j].realI()==127) sir=1; 253 if (tbcp[j].imagI()==-128) sii=-1; 254 else if (tbcp[j].imagI()==127) sii=1; 255 (*psatur[lc])(sir+1,sii+1)+=1.; 256 237 257 spectre_(lc,j) += Zmod2(tbcp[j]); 238 258 } 239 259 nzm_[lc]++; 240 260 tbcp=paq.Data2C(); lc++; 241 phexp[lc]->Add((r_4)tbcp[ 0].realD());261 phexp[lc]->Add((r_4)tbcp[idxexpo].realD()); 242 262 for(sa_size_t j=1; j<spectre_.NCols(); j++) { 243 263 phist[lc]->Add((r_4)tbcp[j].realD()); 244 264 phist[lc]->Add((r_4)tbcp[j].imagD()); 245 265 ph2[lc]->Add((r_4)tbcp[j].realD(), (r_4)tbcp[j].imagD()); 266 // comptage saturation 267 int sir=0, sii=0; // saturation partie reelle, partie imaginaire 268 if (tbcp[j].realI()==-128) sir=-1; 269 else if (tbcp[j].realI()==127) sir=1; 270 if (tbcp[j].imagI()==-128) sii=-1; 271 else if (tbcp[j].imagI()==127) sii=1; 272 (*psatur[lc])(sir+1,sii+1)+=1.; 273 246 274 spectre_(lc,j) += Zmod2(tbcp[j]); 247 275 } … … 303 331 po << PPFNameTag(buftag) << (*phexp[lc]); 304 332 phexp[lc]->Zero(); 333 sprintf(buftag,"saturV%d",(int)lc); 334 po << PPFNameTag(buftag) << (*psatur[lc]); 335 cout << " Matrice Saturation Voie[" << lc << "] : " << (*psatur[lc]); 336 if (nzm_[lc]>0) { 337 (*psatur[lc]) /= ((r_4)nzm_[lc]*0.01); 338 cout << " Matrice Saturation Pourcentage Voie[" << lc << "] : " << (*psatur[lc]); 339 } 340 (*psatur[lc])=0.; 305 341 } 306 342 nzm_[lc]=0; … … 351 387 po << PPFNameTag(buftag) << (*phexp[lc]); 352 388 delete phexp[lc]; 389 sprintf(buftag,"saturV%d",(int)lc); 390 po << PPFNameTag(buftag) << (*psatur[lc]); 391 cout << " Matrice Saturation Voie[" << lc << "] : " << (*psatur[lc]); 392 if (nzm_[lc]>0) { 393 (*psatur[lc]) /= ((r_4)nzm_[lc]*0.01); 394 cout << " Matrice Saturation Pourcentage Voie[" << lc << "] : " << (*psatur[lc]); 395 } 396 (*psatur[lc])=0.; 353 397 } 354 398 nzm_[lc]=0; … … 369 413 << " -> " << fracsame << " % )" << endl; 370 414 } 415 416 for(sa_size_t lc=0; lc<2*memgr.NbFibres(); lc++) { 417 if (phist[lc]) delete phist[lc]; 418 if (ph2[lc]) delete ph2[lc]; 419 if (phexp[lc]) delete phexp[lc]; 420 if (psatur[lc]) delete psatur[lc]; 421 } 422 371 423 return 0; 372 424 }
Note:
See TracChangeset
for help on using the changeset viewer.