Changeset 3671 in Sophya for trunk/AddOn/TAcq/racqurw.cc


Ignore:
Timestamp:
Nov 13, 2009, 11:54:04 AM (16 years ago)
Author:
ansari
Message:
  • Nettoyage complet des programmes d'acquisition
  • Ajout methode BRPaquet::CopyFrom() pour reduction de paquet
  • Introduction des classes BRParList , BRConfList , BRAcqConfig
  • Introduction du nouveau programme acquisition mfacq.cc (MultiFibresAcq)

Reza, 13/11/2009

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/AddOn/TAcq/racqurw.cc

    r3658 r3671  
    464464
    465465/* --Methode-- */
    466 PCIEMultiReader::PCIEMultiReader(vector<PCIEWrapperInterface*> vec_pciw,uint_4 sizeFrame,uint_4 packSize ,RAcqMemZoneMgr& mem, uint_4 nmax, BRDataFmtConv swapall,int binMin, int nbBin)
     466PCIEMultiReader::PCIEMultiReader(vector<PCIEWrapperInterface*> vec_pciw,uint_4 sizeFrame,uint_4 packSize ,RAcqMemZoneMgr& mem, uint_4 nmax, BRDataFmtConv swapall)
    467467  :   memgr(mem) , vec_pciw_ (vec_pciw)
    468468{
     
    473473  packSizeInMgr_=memgr.PaqSize();
    474474  sizeFr_ =sizeFrame;
    475   binMin_= binMin;
    476   nbBin_= nbBin;
    477475  if (vec_pciw.size() != memgr.NbFibres()) {
    478476    cout << " PCIEMultiReader()PbArgs: vec_pciw.size()= " << vec_pciw.size() << " memgr.NbFibres()=" <<memgr.NbFibres()<< endl;
     
    572570            setRC(9);  fgarret=true; break;
    573571          }
    574           BRPaquet paq(tampon[fib], nextpaq, paqsz, swapall_,binMin_,nbBin_);
     572          BRPaquet paq(tampon[fib], nextpaq, paqsz, swapall_);
     573          // CHECK  S'il faut faire une reduction de taille de paquet
    575574          npaqfait[fib]++;
    576575          if (fib==nbDma_-1) npaqfaitg++;  // Ne pas oublier le compteur de paquets faits
     
    601600          setRC(9);  fgarret=true; break;
    602601        }
    603         BRPaquet paq(Datas[fib]+curoff, nextpaq, paqsz, swapall_,binMin_,nbBin_);
     602        BRPaquet paq(Datas[fib]+curoff, nextpaq, paqsz, swapall_);
     603        // CHECK  S'il faut faire une reduction de taille de paquet
    604604        npaqfait[fib]++;
    605605        if (fib==nbDma_-1) npaqfaitg++;  // Ne pas oublier le compteur de paquets faits
     
    688688//--------------------------------------------------------------------
    689689
    690 MultiDataSaver::MultiDataSaver(RAcqMemZoneMgr& mem, string& path, uint_4 nfiles, uint_4 nblocperfile, bool savesig)
    691   :  memgr(mem) 
     690MultiDataSaver::MultiDataSaver(RAcqMemZoneMgr& mem, string path, uint_4 nfiles, uint_4 nblocperfile, bool savesig)
     691  :  memgr(mem)
    692692{
    693693  nfiles_ = nfiles;
     
    708708  setRC(1);     
    709709  BRPaqChecker pcheck[MAXNBFIB];  // Verification/comptage des paquets
    710 
     710  BRAcqConfig bpar;
    711711  try {
    712712    TimeStamp ts;
     
    732732      fgnulldev = true;
    733733    }
     734    BRPaquet paq0(NULL, NULL, paqsz);
    734735    for (uint_4 nbFile=0;nbFile<nfiles_ ;nbFile++) {
    735736      if (stop_ )   break;
     
    742743          header[fib].open(fname);
    743744        }
    744       BRPaquet paq0(NULL, NULL, paqsz);
     745   
    745746      uint_4 npaqperfile = memgr.NbPaquets()*nblocperfile_;  // Nombre de paquets ecrits dans un fichier
    746747
    747748      if (savesig_) { //Reza - Ouverture conditionnel fichier
    748         for(uint_4 fib=0; fib<memgr.NbFibres(); fib++) {
     749        for(uint_4 fib=0; fib<memgr.NbFibres(); fib++)    {
    749750          if (fgnulldev) strcpy(fname,"/dev/null");
    750751          else sprintf(fname,"%s/Fibre%d/signal%d.fits",path_.c_str(),fib+1,(int)fnum);
    751752          mff[fib].Open(fname,MF_Write);  //Reza - Ouverture conditionnel fichier
    752753          // Entete correspondant a l'ecriture tout le paquet - trailer compris (modif Mai 2009)
    753           mff[fib].setDTypeNaxis(MF_Byte, paq0.PaquetSize(), npaqperfile);
    754         }
     754          mff[fib].setDTypeNaxis(MF_Byte, paq0.PaquetSize(), npaqperfile);     
     755        // Sans TRAILER de paquet mff.setDTypeNaxis(MF_Byte, paq0.DataSize()+paq0.HeaderSize(), npaqperfile);
     756        }
     757        // Ajout mots-cle additionnels a tous les fichiers FITS
     758        AddFitsKW(mff,bpar);
    755759        fnum++;
    756         // Sans TRAILER de paquet mff.setDTypeNaxis(MF_Byte, paq0.DataSize()+paq0.HeaderSize(), npaqperfile);
    757760      }
    758761      else sprintf(fname,"MemDataBloc[%d]-NoDataFile",(int)fnum++);
     
    765768        if (buffg == NULL) {
    766769          cout << " MultiDataSaver::run()/ERROR memgr.GetMemZone(" << mid << ") -> NULL" << endl;
    767           setRC(2);     
     770          setRC(21);   
    768771          return;       
    769772        }
     
    772775          if (buff == NULL) {  // Ceci ne devrait pas arriver - suite au test buffg ci-dessus
    773776            cout << " MultiDataSaver::run()/ERROR memgr.GetMemZone(" << mid << "," << fib << ") -> NULL" << endl;
    774             setRC(2);   
     777            setRC(22); 
    775778            return;     
    776779          }
     
    797800        }
    798801        else sprintf(fname,"MemDataBloc[%d]-NoDataFile",(int)fnum-1);
    799         filog << "    Fib " << fib << " -> " << fname << endl;
    800         cout << "    Fib " << fib << " -> " << fname << endl;
     802        string pcsum = pcheck[fib].Summary();
     803        filog << "    Fib " << fib << " -> " << fname << " Stat:" << pcsum << endl;
     804        cout  << "    Fib " << fib << " -> " << fname << " Stat:" << pcsum << endl;
    801805      }
    802806      if (savesig_)
     
    805809          mff[fib].Close();       
    806810        }
     811   
     812     
    807813    }  // Fin de boucle sur les fichiers
    808814    cout << " --------------------  MultiDataSaver::run() -------------------- " << endl;
     
    832838}   
    833839
     840
     841/* --Methode-- */
     842int MultiDataSaver::AddFitsKW(MiniFITSFile* mff, BRAcqConfig& acpar)
     843{
     844  TimeStamp ts;
     845  string cdtu=ts.ToString();
     846  for(uint_4 fib=0; fib<memgr.NbFibres(); fib++) {
     847    mff[fib].AddKeyS("DATE", cdtu.c_str(), " File Creation time(YYYY-MM-DDThh:mm:ss UT) ");       
     848    mff[fib].AddKeyS("DATEOBS", cdtu.c_str(), " Observation Time (YYYY-MM-DDThh:mm:ss UT) ");
     849    mff[fib].AddKeyD("ACQVER", acpar.AcqVersion(), " BAORadio Acq Software version ") ;
     850    mff[fib].AddKeyS("ACQCONF", acpar.GetParams().AcqMode, " BAORadio Acq run  mode" );
     851  }
     852  return 0;
     853}
     854
Note: See TracChangeset for help on using the changeset viewer.