Changeset 3909 in Sophya for trunk/AddOn/TAcq/racqurw.cc
- Timestamp:
- Nov 21, 2010, 2:26:12 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/AddOn/TAcq/racqurw.cc
r3683 r3909 487 487 mmbuf_=NULL; 488 488 max_targ_npaq = memgr.NbPaquets(); 489 for (int fid=0 ; fid<(int)nbDma_ ;fid++) mmbufib_[fid]=NULL; 489 for (int fid=0 ; fid<(int)nbDma_ ;fid++) { 490 memgr.FiberId(fid)=vec_pciw[fid]->FiberId(); 491 mmbufib_[fid]=NULL; 492 } 490 493 } 491 494 … … 507 510 uint_4 paqsz = packSize_; 508 511 uint_4 dmasz = vec_pciw_[0]->TransferSize(); 509 vec_pciw_[0]->StartTransfers();512 //DEL vec_pciw_[0]->StartTransfers(); 510 513 511 514 BRPaqChecker pcheck[MAXNBFIB]; // Verification/comptage des paquets … … 516 519 uint_4 off_acheval=0; 517 520 518 int nerrdma = 0;519 int maxerrdma = 10;520 521 bool fgarret = false; 521 522 … … 523 524 for (int i=0;i< (int)nbDma_ ;i++) { 524 525 tampon[i]= new Byte[paqsz]; 526 vec_pciw_[i]->SetMaxWaitEndDMA(par_.first_maxkwedma_,par_.first_nretrydma_); 525 527 } 526 528 bool fgredpaq=par_.fgreducpsize; … … 551 553 // Lancement des DMA 552 554 for (int dma=0; dma < (int)nbDma_ ;dma++) vec_pciw_[dma]->StartTransfers(); 553 555 if (npaqfaitg==1) { 556 for (int i=0;i< (int)nbDma_ ;i++) 557 vec_pciw_[i]->SetMaxWaitEndDMA(par_.maxkwedma_,par_.nretrydma_); 558 } 554 559 // On pointe vers le debut de la zone a remplir aver le prochain DMA 555 560 //-- Zone memoire locale Byte* nextdma = buff+i*paqsz; … … 560 565 Datas[dma]=vec_pciw_[dma]->GetData(); 561 566 if (Datas[dma] == NULL) { // No data Read in DMA 562 nerrdma ++;fgbaddma=true;563 cout << "PCIEMultiReaderChecker/Err eur Waiting for datas ..." << endl;567 fgbaddma=true; 568 cout << "PCIEMultiReaderChecker/Error Waiting for datas ..." << endl; 564 569 vec_pciw_[dma]->PrintStatus(cout); 565 if (nerrdma>=maxerrdma) { fgarret = true; break; }570 fgarret = true; break; 566 571 } 567 572 } … … 681 686 cout << " --------------------------------------------------------------------" << endl; 682 687 683 // //// Nettoyage final688 //---- Nettoyage final et arret 684 689 MZoneManage(true); 690 memgr.Stop(); // Pour arreter les autres threads 691 685 692 for (int i=0;i< (int)nbDma_ ;i++) delete[] tampon[i]; 686 693 if ((fgredpaq)&&predtampon) delete[] predtampon; … … 700 707 << " max_targ_npaq=" << max_targ_npaq << endl; 701 708 */ 702 if (mid_ >= 0) memgr.FreeMemZone(mid_, MemZS_Filled); 709 if (mid_ >= 0) { 710 memgr.GetAuxData(mid_)->filltime_.SetNow(); 711 memgr.FreeMemZone(mid_, MemZS_Filled); 712 } 703 713 mmbuf_ = NULL; targ_npaq_ = 0; mid_ = -2; 704 714 for (int fid=0;fid<(int)nbDma_ ;fid++) mmbufib_[fid]=NULL; … … 790 800 } 791 801 BRPaquet paq0(NULL, NULL, paqsz); 802 TimeStamp tsmz; 792 803 for (uint_4 nbFile=0;nbFile<nfiles_ ;nbFile++) { 793 804 if (stop_ ) break; … … 813 824 // Sans TRAILER de paquet mff.setDTypeNaxis(MF_Byte, paq0.DataSize()+paq0.HeaderSize(), npaqperfile); 814 825 } 815 AddFitsKWStart(mff,bpar);816 826 fnum++; fgfirstfctt=true; 817 827 } … … 828 838 return; 829 839 } 840 tsmz = memgr.GetAuxData(mid)->filltime_; 830 841 for(uint_4 fib=0; fib<memgr.NbFibres(); fib++) { // Boucle sur les fibres 831 842 Byte* buff = memgr.GetMemZone(mid,fib); … … 841 852 framecnt_first_[fib] = pcheck[fib].LastFrameNum(); 842 853 timetag_first_[fib] = paq.TimeTag(); 854 AddFitsKWStart(mff,bpar,tsmz); 843 855 fgfirstfctt=false; 844 856 } … … 871 883 framecnt_last_[fib] = pcheck[fib].LastFrameNum(); 872 884 873 AddFitsKWEnd(mff,bpar );885 AddFitsKWEnd(mff,bpar,tsmz); 874 886 for(uint_4 fib=0; fib<memgr.NbFibres(); fib++) { 875 887 header[fib].close(); … … 907 919 908 920 /* --Methode-- */ 909 int MultiDataSaver::AddFitsKWStart(MiniFITSFile* mff, BRAcqConfig& acpar )921 int MultiDataSaver::AddFitsKWStart(MiniFITSFile* mff, BRAcqConfig& acpar, TimeStamp& ts) 910 922 { 911 TimeStamp ts;912 923 string cdtu=ts.ToString(); 913 924 string& skysrc=acpar.SkySource(); … … 922 933 mff[fib].AddKeyS("BRPAQCFMT", BRPaquet::FmtConvToString(acpar.GetParams().GetDataConvFg()), 923 934 " BAORadio BRPaquet DataFormatConversion" ); 924 mff[fib].AddKeyI("FIBERNUM", acpar.GetParams().FiberNum[fib], " Fiber number/id") ; 935 mff[fib].AddKeyI("FIBERNUM", acpar.GetParams().FiberNum[fib], " Fiber number") ; 936 mff[fib].AddKeyI("FIBERID",memgr.FiberId(fib), " Fiber identifier (absolute id)"); 925 937 if (hassrc) 926 938 mff[fib].AddKeyS("SKYSOURC", skysrc, " Source identification" ); … … 935 947 936 948 /* --Methode-- */ 937 int MultiDataSaver::AddFitsKWEnd(MiniFITSFile* mff, BRAcqConfig& acpar )949 int MultiDataSaver::AddFitsKWEnd(MiniFITSFile* mff, BRAcqConfig& acpar, TimeStamp& ts) 938 950 { 939 TimeStamp ts;940 951 string cdtu=ts.ToString(); 941 952 for(uint_4 fib=0; fib<memgr.NbFibres(); fib++) {
Note:
See TracChangeset
for help on using the changeset viewer.