Changeset 3883 in Sophya for trunk/AddOn/TAcq
- Timestamp:
- Sep 23, 2010, 7:59:29 PM (15 years ago)
- Location:
- trunk/AddOn/TAcq
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/AddOn/TAcq/acqparam_exemple.d
r3877 r3883 37 37 # Par defaut NoMonitoring @monitor 512 10 0 38 38 @monitor 0 384 4 39 ######################## 39 40 # Reduction des tailles de paquets si cle present 40 41 # @reducpaqsz ReducedSize Offset 41 42 reducpaqsz 1024 0 43 ######################## 42 44 #### cartes de controle pour le mode transfert sur Ethernet 43 45 # Liste des machines cibles pour les envois de paquets … … 49 51 # @ethrnlink 4 50 52 ethrnlink 4 53 # En mode reception de paquets sur ethernet, On peut forcer la lecture 54 # de paquets avec meme compteur de paquet (Force SameFrameCounter ) 55 # @ethrforcesamefc 56 ethrforcesamefc 51 57 ## No de port TCP/IP 52 58 # @tcpportid 6912 … … 68 74 # Defaut: visicfreq 0 0 0 (aucun binning, toutes les frequences) 69 75 visicfreq 0 0 0 76 ######################## 70 77 # Taux de perte de paquets en simulation (Sans carte PCIExpress) 71 78 # @nopcilossrate Perte (0<=Perte<1) 72 79 # Defaut @nopcilossrate 0. 80 ######################## 81 # Niveau d'impression 82 # @prtlev Level CounterModulo 83 prtlev 0 50000 84 prtlev 1 50000 -
trunk/AddOn/TAcq/branap.cc
r3872 r3883 20 20 imin_=imax_=0; 21 21 istep_=1; 22 rdsamefc_=true; // read paquets with same frame counter 22 23 freqmin_=freqmax_=0; 23 24 nbinfreq_=1; … … 27 28 fgdatafft_=false; fgsinglechannel_=false; 28 29 prtlevel_=0; 30 prtmodulo_=50000; 29 31 nbcalgrp_=1; 30 32 nthreads_=1; … … 69 71 ka+=2; 70 72 } 71 else if (strcmp(arg[ka],"-prt lev")==0) {72 prtlevel_=atoi(arg[ka+1]);73 else if (strcmp(arg[ka],"-prt")==0) { 74 sscanf(arg[ka+1],"%d,%ld",&prtlevel_,&prtmodulo_); 73 75 ka+=2; 74 76 } … … 80 82 nbcalgrp_=atoi(arg[ka+1]); 81 83 ka+=2; 84 } 85 else if (strcmp(arg[ka],"-nosfc")==0) { 86 rdsamefc_=false; 87 ka++; 82 88 } 83 89 else if (strcmp(arg[ka],"-in")==0) { … … 120 126 cout << " Usage: prgname [-act ACT] [-out OutPath] [-nmean NMean] [-zones NZones,nPaqinZone] \n" 121 127 << " [-nbloc NBloc] [-freq NumFreqMin,NumFreqMax,NBinFreq] \n" 122 << " [-prt lev lev] [-nvcal n] [-nthr n] \n"128 << " [-prt lev,modulo] [-nvcal n] [-nthr n] [-nosfc] \n" 123 129 << " -in Imin,Imax,Istep InPath FiberList [InPath2 FiberList2 InPath3 FiberList3 ...] \n" << endl; 124 130 if (fgshort) { … … 135 141 << " -zones NZones,NbPaqinZone : Number of Zones and number of paquets in one zone \n" 136 142 << " -freq NumFreqMin,NumFreqMax,NBinFreq : Frequency zone and number of bins \n" 137 << " -prt lev lev : Print level (0,1,2...) \n"143 << " -prt lev,modulo : Print level (0,1,2...) and print counter modulo (10000, 50000 ...) \n" 138 144 << " -nvcal n : number of BRVisibilityCalculator objects running in parallel in BRVisCalcGroup (default=1) \n" 139 145 << " -nthr n : number of threads for parallel execution in BRVisibilityCalculator (default=1) \n" 146 << " -nosfc : Don't force reading with SAME FrameCounter \n" 140 147 << " -in : input files/directory definition : \n" 141 148 << " Imin,Imax,Istep: fits files signalII.fits Imin<=II<=Imax Istep=increment \n" … … 160 167 for(size_t k=0; k< dirlist_.size(); k++) 161 168 cout << k+1 << " : " << dirlist_[k] << endl; 162 cout << " IMin= " << imin_ << " IMax= " << imax_ << " IStep= " << istep_ << endl; 169 cout << " IMin= " << imin_ << " IMax= " << imax_ << " IStep= " << istep_ 170 << ((rdsamefc_)?" SameFrameCounter read mode":" AllOKPaquets read mode ") << endl; 163 171 cout << " OutPath= " << outpath_ << endl; 164 172 cout << " Action=" << action_ << " NMean=" << nmean_ << " NBloc=" << nbloc_ << endl; 165 173 cout << " FreqMin= " << freqmin_ << " FreqMax= " << freqmax_ << " NBinFreq= " << nbinfreq_ << endl; 166 174 cout << " PaqSize=" << paqsize_ << " - NZones=" << nzones_ << " NPaqZone=" << npaqinzone_ 167 << " PrtLevel=" << prtlevel_ << endl;175 << " PrtLevel=" << prtlevel_ << " PrtCntModulo=" << prtmodulo_ << endl; 168 176 cout << " AcqMode: " << ((fgdatafft_)?" Data_FFT " : " Data_Raw " ) 169 177 << ((fgsinglechannel_)?" SingleChannel " : " TwoChannels " ) << endl; -
trunk/AddOn/TAcq/branap.h
r3872 r3883 34 34 uint_4 nbloc_; 35 35 uint_4 imin_, imax_, istep_; 36 bool rdsamefc_; // read paquets with same frame counter 36 37 uint_4 freqmin_, freqmax_, nbinfreq_; 37 38 uint_4 paqsize_; … … 41 42 bool fgsinglechannel_; // true -> un seul canal par fibre (par defaut=2 canaux/fibres) 42 43 int prtlevel_; 44 long int prtmodulo_; 43 45 uint_4 nbcalgrp_; // Nb d'objets/threads dans BRVisCalcGroup 44 46 uint_4 nthreads_; // Nb de threads pour l'execution parallele ds BRVisibilityCalculator -
trunk/AddOn/TAcq/brfitsrd.cc
r3700 r3883 78 78 << " signalII.fits IMin=" << imin_ << " IMax=" << imax_ << " IStep=" << istep_ << endl; 79 79 80 uint_8 prtcnt=0; 80 81 Byte* nextpaq=NULL; 81 82 bool fgok=true; … … 95 96 } 96 97 if (ReadNextAllFibers()) { fgok=false; break; } 98 prtcnt++; 99 if ((prtlev_>0)&&(prtcnt%prtmodulo_==0)) { 100 cout << "BRMultiFitsReader: NbPaqMFRead=" << prtcnt << " NSameFC=" 101 << totsamefc_ << " / NPaqFib0Read=" << totnpqrd_[0] 102 << " FracSameFC=" << 100*totsamefc_/totnpqrd_[0] << " %" << endl; 103 } 97 104 } 98 105 99 106 MoveToNextTarget(); // Pour faire traiter le dernier paquet si plein 100 107 MZoneManage(true); // Nettoyage final 101 usleep(50000); // Attente de traitement du dernier paquet102 memgr_.Stop(); // Arret103 108 104 109 cout << " ------------------ BRMultiFitsReader::run() END ----------------- " << endl; 105 110 ts.SetNow(); 106 111 tm.SplitQ(); 107 cout << " END reading : " << ts ; 108 if (rdsamefc_) cout << " NSameFC=" << totsamefc_ << endl; 109 else cout << endl; 112 cout << "BRMultiFitsReader::run(): END reading : " << ts << endl; 113 cout << "... NbPaqMFRead=" << prtcnt << " NSameFC=" 114 << totsamefc_ << " / NPaqFib0Read=" << totnpqrd_[0] 115 << " FracSameFC=" << 100*totsamefc_/totnpqrd_[0] << " %" << endl; 116 110 117 for(size_t fib=0; fib<(size_t)memgr_.NbFibres(); fib++) { 111 118 int perc=0; … … 121 128 cout << " ---------------------------------------------------------- " << endl; 122 129 130 usleep(50000); // Attente de traitement du dernier paquet 131 memgr_.Stop(); // Arret 132 123 133 } // Fin du bloc try 124 134 catch (std::exception& exc) { … … 142 152 if (ReadNext(fib)) return true; // probleme 143 153 } 144 if (!rdsamefc_ || (memgr_.NbFibres()<2)) { 145 totsamefc_++; return false; // c'est OK 146 } 147 uint_8 cfc=curfc_[0]; 148 bool fgsamefc=true; 149 for(size_t fib=1; fib<memgr_.NbFibres(); fib++) { 150 if (curfc_[fib]!=cfc) { 151 fgsamefc=false; 152 if (curfc_[fib] > cfc) cfc=curfc_[fib]; 153 } 154 } 155 if (fgsamefc) { 156 totsamefc_++; return false; // c'est OK , same framecounter 157 } 158 else { // else !fgsame 159 for(uint_4 fib=0; fib<memgr_.NbFibres(); fib++) { 160 while (curfc_[fib]<cfc) { 161 if (ReadNext(fib)) return true; // probleme 162 } 163 } 164 } // fin de else !fgsame 165 totsamefc_++; 166 return false; // c'est OK 154 if (!rdsamefc_ || (memgr_.NbFibres()<2)) { 155 uint_8 cfc=curfc_[0]; 156 bool fgsamefc=true; 157 for(size_t fib=1; fib<memgr_.NbFibres(); fib++) { 158 if (curfc_[fib]!=cfc) fgsamefc=false; 159 } 160 if (fgsamefc) totsamefc_++; 161 return false; // c'est OK 162 } 163 // On va essayer de lire jusqu'a avoir same_frame_counter 164 bool echec=true; 165 while (echec) { 166 uint_8 cfc=curfc_[0]; 167 bool fgsamefc=true; 168 for(size_t fib=1; fib<memgr_.NbFibres(); fib++) { 169 if (curfc_[fib]!=cfc) { 170 fgsamefc=false; 171 if (curfc_[fib] > cfc) cfc=curfc_[fib]; 172 } 173 } 174 if (fgsamefc) { 175 totsamefc_++; echec=false; return false; // c'est OK , same framecounter 176 } 177 else { // else !fgsame 178 for(uint_4 fib=0; fib<memgr_.NbFibres(); fib++) { 179 while (curfc_[fib]<cfc) { 180 if (ReadNext(fib)) return true; // probleme 181 } 182 } 183 } // fin de else !fgsame 184 } // fin de while(echec): lecture jusqu'a same_frame_counter 185 186 return true; // probleme 167 187 } 168 188 -
trunk/AddOn/TAcq/brfitsrd.h
r3731 r3883 36 36 inline void STOP() { stop_ = true; } 37 37 38 inline int SetPrintLevel(int lev=0) { prtlev_=lev; return 0;} 38 inline int SetPrintLevel(int lev=0, uint_8 prtmodulo=50000) 39 { prtlev_=lev; prtmodulo_=prtmodulo; return 0; } 40 39 41 protected: 40 42 bool ReadNextAllFibers(); // Renvoie true si probleme … … 77 79 Byte* mmbufib_[MAXANAFIB]; // Pointeurs zone memoire de chaque fibre rendu par RAcqMemZoneMgr 78 80 79 int prtlev_; 81 int prtlev_; // print level 82 uint_8 prtmodulo_; // print periodicity (modulo) 80 83 }; 81 84 -
trunk/AddOn/TAcq/brparam.cc
r3876 r3883 136 136 pci2eth_fgdirect=false; 137 137 ethr_nlink = 0; 138 ethr_forcesamefc_ = false; 138 139 139 140 skysource=""; … … 157 158 nopciLossRate=0.; 158 159 160 // niveau d'impression,debug ... 161 prtlevel_=0; 162 prtmodulo_=50000; 159 163 Decode(); // On decode et on complete les parametres 160 164 } … … 203 207 eths_targets=p.eths_targets; 204 208 ethr_nlink=p.ethr_nlink; 209 ethr_forcesamefc_=p.ethr_forcesamefc_; 205 210 206 211 skysource=p.skysource; … … 215 220 216 221 nopciLossRate=p.nopciLossRate; 222 223 prtlevel_=p.prtlevel_; 224 prtmodulo_=p.prtlevel_; 225 217 226 return; 218 227 } … … 245 254 } 246 255 ethr_nlink=conf.IParam("ethrnlink",0,0); // Nombre de sources de paquets en reception ethernet 256 if (conf.HasKey("ethrforcesamefc")) ethr_forcesamefc_=true; // force SAME FrameCounter on all links 247 257 248 258 // Parametre de controle du monitoring … … 269 279 fg_hard_ctrlc=conf.HasKey("hard_ctrlc"); 270 280 if (conf.HasKey("nosavesigfits")) savesigfits=false; 281 if (conf.HasKey("prtlev")) { 282 prtlevel_=conf.IParam("prtlev",0,0); 283 prtmodulo_=conf.IParam("prtlev",1,50000); 284 } 285 271 286 Decode(); 272 287 } … … 372 387 cout << endl; 373 388 } 374 cout << " TCP-PortId=" << tcpportid << " EthernetRead NbSources (=NbLinks)= " << ethr_nlink << endl; 389 cout << " TCP-PortId=" << tcpportid << " EthernetRead NbSources (=NbLinks)= " << ethr_nlink 390 << ((ethr_forcesamefc_)?" ForceSameFrameCounter read mode":" AllOKPaquets read mode ") << endl; 391 375 392 if (fgdoProc>0) 376 393 os << " Monitoring NMeanProc=" << nmeanProc << " StepProc=" << stepProc << " NMaxProc=" << nmaxProc << endl; … … 385 402 os << " monothr y(1)/n(0) " << ((monothr)?"true":"false"); 386 403 os << " ActivatePattern " << ((activate_pattern)?"true":"false") << endl; 387 404 os << " PrtLevel=" << prtlevel_ << " PrtCntModulo=" << prtmodulo_ << endl; 405 388 406 return os; 389 407 } -
trunk/AddOn/TAcq/brparam.h
r3876 r3883 165 165 // Cote reception 166 166 int ethr_nlink; // Nombre total de source d'envoi (= nb total de fibre de fibre) 167 bool ethr_forcesamefc_; // true -> on force receptions de paquets avec SAME FrameCounter sur tous les liens 167 168 168 169 // Identification source observee dans le ciel … … 188 189 189 190 double nopciLossRate; // Utilise avec pour les tests sans carte pciexpress TestPCIWrapperNODMA 191 192 // Niveau d'impression/debug ... 193 int prtlevel_; 194 long int prtmodulo_; 190 195 }; 191 196 -
trunk/AddOn/TAcq/mfacq.cc
r3876 r3883 387 387 388 388 cout << "mfacq[3] Creating EthernetReader thread object " << endl; 389 EthernetReader ethrdr(mmgr, bpar.GetParams(), bpar.GetParams().tcpportid, false);389 EthernetReader ethrdr(mmgr, bpar.GetParams(), bpar.GetParams().tcpportid, acpar.ethr_forcesamefc_); 390 390 391 391 // usleep(200); attente au cas ou ... -
trunk/AddOn/TAcq/racqueth.cc
r3764 r3883 433 433 if (ReadNextAllFibers()) { fgok=false; break; } 434 434 totnpaqrd_++; 435 if ((prtlev_>0)&&(totnpaqrd_%prtmodulo_==0)) { 436 cout << "EthernetReader: NbPaq/Link=" << totnpaqrd_ << " NSameFC=" 437 << totsamefc_ << " / NPaqFib0Read=" << totnpqrd_[0] 438 << " FracSameFC=" << 100*totsamefc_/totnpqrd_[0] << " %" << endl; 439 } 435 440 } 436 441 437 442 MoveToNextTarget(); // Pour faire traiter le dernier paquet si plein 438 443 MZoneManage(true); // Nettoyage final 439 usleep(50000); // Attente de traitement du dernier paquet440 memgr_.Stop(); // Arret441 444 442 445 cout << " ------------------ EthernetReader::run() END ----------------- " << endl; 443 446 ts.SetNow(); 444 447 tm.SplitQ(); 445 cout << " END reading TotNPaq/Link=" << totnpaqrd_ << " :" << ts ; 446 if (rdsamefc_) cout << " NSameFC=" << totsamefc_ << endl; 447 else cout << endl; 448 cout << " END reading TotNPaq/Link=" << totnpaqrd_ << " :" << ts << endl; 449 cout << "... NbPaq/Link=" << totnpaqrd_ << " NSameFC=" 450 << totsamefc_ << " / NPaqLink[0]_Read=" << totnpqrd_[0] 451 << " FracSameFC=" << 100*totsamefc_/totnpqrd_[0] << " %" << endl; 452 448 453 for(size_t fib=0; fib<(size_t)memgr_.NbFibres(); fib++) { 449 454 int perc=0; … … 459 464 cout << " ---------------------------------------------------------- " << endl; 460 465 466 usleep(50000); // Attente de traitement du dernier paquet 467 memgr_.Stop(); // Arret 468 461 469 } // Fin du bloc try 462 470 catch (std::exception& exc) { … … 480 488 if (ReadNext(fib)) return true; // probleme 481 489 } 482 if (!rdsamefc_ || (memgr_.NbFibres()<2)) { 483 totsamefc_++; return false; // c'est OK 484 } 485 uint_8 cfc=curfc_[0]; 486 bool fgsamefc=true; 487 for(size_t fib=1; fib<memgr_.NbFibres(); fib++) { 488 if (curfc_[fib]!=cfc) { 489 fgsamefc=false; 490 if (curfc_[fib] > cfc) cfc=curfc_[fib]; 491 } 492 } 493 if (fgsamefc) { 494 totsamefc_++; return false; // c'est OK , same framecounter 495 } 496 else { // else !fgsame 497 for(uint_4 fib=0; fib<memgr_.NbFibres(); fib++) { 498 while (curfc_[fib]<cfc) { 499 if (ReadNext(fib)) return true; // probleme 500 } 501 } 502 } // fin de else !fgsame 503 totsamefc_++; 504 return false; // c'est OK 490 if (!rdsamefc_ || (memgr_.NbFibres()<2)) { 491 uint_8 cfc=curfc_[0]; 492 bool fgsamefc=true; 493 for(size_t fib=1; fib<memgr_.NbFibres(); fib++) { 494 if (curfc_[fib]!=cfc) fgsamefc=false; 495 } 496 if (fgsamefc) totsamefc_++; 497 return false; // c'est OK 498 } 499 // On va essayer de lire jusqu'a avoir same_frame_counter 500 bool echec=true; 501 while (echec) { 502 uint_8 cfc=curfc_[0]; 503 bool fgsamefc=true; 504 for(size_t fib=1; fib<memgr_.NbFibres(); fib++) { 505 if (curfc_[fib]!=cfc) { 506 fgsamefc=false; 507 if (curfc_[fib] > cfc) cfc=curfc_[fib]; 508 } 509 } 510 if (fgsamefc) { 511 totsamefc_++; echec=false; return false; // c'est OK , same framecounter 512 } 513 else { // else !fgsame 514 for(uint_4 fib=0; fib<memgr_.NbFibres(); fib++) { 515 while (curfc_[fib]<cfc) { 516 if (ReadNext(fib)) return true; // probleme 517 } 518 } 519 } // fin de else !fgsame 520 } // fin de while(echec): lecture jusqu'a same_frame_counter 521 522 return true; // probleme 505 523 } 506 524 -
trunk/AddOn/TAcq/racqueth.h
r3775 r3883 57 57 inline void STOP() { stop_ = true; } 58 58 59 inline int SetPrintLevel(int lev=0) { prtlev_=lev; return 0;} 59 inline int SetPrintLevel(int lev=0, uint_8 prtmodulo=50000) 60 { prtlev_=lev; prtmodulo_=prtmodulo; return 0; } 60 61 61 62 protected: … … 79 80 bool fgdirectsend_; // true -> direct transfer of DMA data to ethernet 80 81 81 int prtlev_; 82 int prtlev_; // print level 83 uint_8 prtmodulo_; // print periodicity (modulo) 82 84 }; 83 85 … … 92 94 inline void STOP() { stop_ = true; } 93 95 94 inline int SetPrintLevel(int lev=0) { prtlev_=lev; return 0;} 96 inline int SetPrintLevel(int lev=0, uint_8 prtmodulo=50000) 97 { prtlev_=lev; prtmodulo_=prtmodulo; return 0; } 95 98 96 99 protected: … … 137 140 Byte* mmbufib_[MAXANAFIB]; // Pointeurs zone memoire de chaque fibre rendu par RAcqMemZoneMgr 138 141 139 int prtlev_; 142 int prtlev_; // print level 143 uint_8 prtmodulo_; // print periodicity (modulo) 140 144 }; 141 145 -
trunk/AddOn/TAcq/specmfib.cc
r3872 r3883 68 68 else mmgr.SetFinalizedMask((uint_4)MemZS_ProcB); 69 69 } 70 BRMultiFitsReader reader(mmgr, par.dirlist_, false, par.imin_, par.imax_, par.istep_);71 reader.SetPrintLevel(par.prtlevel_ );70 BRMultiFitsReader reader(mmgr, par.dirlist_, par.rdsamefc_, par.imin_, par.imax_, par.istep_); 71 reader.SetPrintLevel(par.prtlevel_,par.prtmodulo_); 72 72 73 73 BRMeanSpecCalculator procms(mmgr, par.outpath_, par.nmean_, par.fgdatafft_, par.fgsinglechannel_);
Note:
See TracChangeset
for help on using the changeset viewer.