Changeset 3774 in Sophya for trunk/AddOn/TAcq/brproc.cc


Ignore:
Timestamp:
May 17, 2010, 5:18:10 PM (15 years ago)
Author:
ansari
Message:

Ajout/modif classes (brproc.h,.cc) pour analyse de donnees BAORadio, Reza 17/05/2010

File:
1 edited

Legend:

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

    r3726 r3774  
    131131      if (stop_) break;
    132132      if (memgr_.GetRunState() == MemZR_Stopped) break;
    133       int mid = memgr_.FindMemZoneId(MemZA_ProcA);
     133      int mid = memgr_.FindMemZoneId(mmact_);  // (MemZA_ProcA);
    134134      Byte* buffg = memgr_.GetMemZone(mid);
    135135      if (buffg == NULL) {
     
    141141        fbuff_[fib] = memgr_.GetMemZone(mid,fib);
    142142        if (fbuff_[fib] == NULL) { // cela ne devrait pas arriver
    143           cout << "BRBaseProcessor::run()/ERROR memgr.GetMemZone(" << mid << "," << fib << ") -> NULL" << endl;
     143          cout << "BRVisibilityCalculator::run()/ERROR memgr.GetMemZone(" << mid << "," << fib << ") -> NULL" << endl;
    144144          setRC(9);       fgrun=false;         
    145145          break;
     
    196196      if (rcpex!=0)  cout << " BRVisibilityCalculator::run() / Error Rc[paralex_.execute()]=" << rcpex << endl;
    197197
    198       memgr_.FreeMemZone(mid, MemZS_ProcA);
     198      memgr_.FreeMemZone(mid, mmsta_);  // (MemZS_ProcA);
    199199    } // Fin de boucle sur les zones a traiter
    200200    //------------------------------------
     
    207207  }
    208208  catch (std::exception& exc) {
    209     cout << " BRBaseProcessor::run()/catched std::exception " << exc.what() << endl;
     209    cout << " BRVisibilityCalculator::run()/catched std::exception " << exc.what() << endl;
    210210    setRC(98); 
    211211    return;
    212212  }
    213213  catch(...) {
    214     cout << " BRBaseProcessor::run()/catched unknown ... exception " << endl;
     214    cout << " BRVisibilityCalculator::run()/catched unknown ... exception " << endl;
    215215    setRC(99); 
    216216    return;
     
    397397  return 0;
    398398}
     399
     400
     401//---------------------------------------------------------------------
     402// Classe de traitement simple - calcul de spectres moyennes / voie
     403//---------------------------------------------------------------------
     404/* --Methode-- */
     405BRMeanSpecCalculator::BRMeanSpecCalculator(RAcqMemZoneMgr& memgr, string outpath, uint_4 nmean)
     406  : BRBaseProcessor(memgr), outpath_(outpath), nmean_(nmean)
     407{
     408  BRPaquet paq(memgr_.PaqSize());
     409  mspecmtx_.SetSize(2*memgr_.NbFibres(), paq.DataSize()/4);
     410  numfile_=0;
     411  totnbpaq_=0;
     412}
     413
     414/* --Methode-- */
     415BRMeanSpecCalculator::~BRMeanSpecCalculator()
     416{
     417}
     418
     419
     420/* --Methode-- */
     421int BRMeanSpecCalculator::Process()
     422{
     423     
     424  if (totnbpaq_%nmean_ == 0) {
     425    if (totnbpaq_ > 0) {
     426      mspecmtx_.Info()["NPAQSUM"] = nmean_;
     427      mspecmtx_ /= (double)nmean_;
     428      char nfile[32];
     429      sprintf(nfile,"mspecmtx%d.ppf",numfile_);
     430      string flnm=outpath_+nfile;
     431      POutPersist po(flnm);
     432      po << mspecmtx_;
     433      cout << numfile_ << "-BRMeanSpecCalculator::Process() NPaqProc="
     434           << totnbpaq_ << "  -> Mean spectra Matrix in " << flnm << endl;
     435      numfile_++;
     436    }
     437    mspecmtx_ = (r_8)(0.);
     438  }
     439
     440  sa_size_t k=0;
     441  for(size_t i=0; i<(size_t)2*memgr_.NbFibres(); i++) {
     442    TwoByteComplex* zp=vpaq_[i/2].Data1C();
     443    if (i%2==1)  zp=vpaq_[i/2].Data2C();
     444    TVector< r_4 > spec = mspecmtx_.Row(k);   k++;
     445    for(sa_size_t f=1; f<spec.Size(); f++) {
     446      spec(f) += zp[f].module2F();
     447      }
     448    }
     449
     450  totnbpaq_++;
     451  return 0;
     452}
     453
    399454
    400455//---------------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.