Changeset 3956 in Sophya for trunk/AddOn/TAcq/vismfib.cc


Ignore:
Timestamp:
Mar 2, 2011, 3:31:39 PM (15 years ago)
Author:
ansari
Message:

Amelioration du processeur de calcul de visibilite (BRVisibilityCalculator) et du programme vismfib.cc pour permettre la prise en charge des donnees raw-2c pour le calcul des visibilites et ajout de la possibilite d ecrire les fichiers de sortie (matrices de visibilites) au format FITS, Reza 02/03/2011

File:
1 edited

Legend:

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

    r3895 r3956  
    5858    ResourceUsage resu;
    5959
    60     cout << " visimfib: Creating MemZoneMgr/threads - PaqSz= " << par.paqsize_ << endl;
     60    BRPaquet paq(par.paqsize_);
     61    uint_4 procsz=sizeof(float)*(paq.DataSize()+4);
     62    if ((par.fgdatafft_)||(par.action_=="cube3d")) procsz = 0;
     63    cout << " visimfib: Creating MemZoneMgr/processing threads - PaqSz= " << par.paqsize_
     64         << " ProcPaqSz=" << procsz << endl;
    6165
    62     RAcqMemZoneMgr mmgr(par.nzones_, par.dirlist_.size(), par.npaqinzone_, par.paqsize_);
    63     if (par.action_ == "cube3d")  mmgr.SetFinalizedMask((uint_4)MemZS_Saved);
    64     else  {
    65       if (par.nbcalgrp_==2)
    66         mmgr.SetFinalizedMask((uint_4)MemZS_ProcA|(uint_4)MemZS_ProcB);
    67       else if (par.nbcalgrp_==3)
    68         mmgr.SetFinalizedMask((uint_4)MemZS_ProcA|(uint_4)MemZS_ProcB|(uint_4)MemZS_ProcC);
    69       else if (par.nbcalgrp_==4)
    70         mmgr.SetFinalizedMask((uint_4)MemZS_ProcA|(uint_4)MemZS_ProcB|(uint_4)MemZS_ProcC|(uint_4)MemZS_ProcD);
    71       else if (par.nbcalgrp_==5)
    72         mmgr.SetFinalizedMask((uint_4)MemZS_ProcA|(uint_4)MemZS_ProcB|(uint_4)MemZS_ProcC|(uint_4)MemZS_ProcD|(uint_4)MemZS_ProcE);
    73       else if (par.nbcalgrp_==6)
    74         mmgr.SetFinalizedMask((uint_4)MemZS_ProcA|(uint_4)MemZS_ProcB|(uint_4)MemZS_ProcC|
    75                               (uint_4)MemZS_ProcD|(uint_4)MemZS_ProcE|(uint_4)MemZS_ProcF);
    76       else mmgr.SetFinalizedMask((uint_4)MemZS_ProcA); 
    77     }
     66    RAcqMemZoneMgr mmgr(par.nzones_, par.dirlist_.size(), par.npaqinzone_, par.paqsize_, procsz);
     67   
    7868    BRMultiFitsReader reader(mmgr, par.dirlist_, par.rdsamefc_, par.imin_, par.imax_, par.istep_);
    7969    reader.SetPrintLevel(par.prtlevel_,par.prtmodulo_);
     
    8575
    8676    if (par.action_ == "viscktt")  procg.ActivateTimeTagCheck(par.TotalNPaquets());
     77    if (par.fgfitsout_) procg.SetFitsOutput();
     78
     79    BRFFTCalculator procfft(mmgr, par.fgsinglechannel_);
     80
     81    // On determine MemZaction pour chaque processeur et le finalizemask en fonction du traitement demande
     82    if (par.action_ == "cube3d")  mmgr.SetFinalizedMask((uint_4)MemZS_Saved);
     83    else {
     84      MemZStatus mfmask=MemZS_ProcA;
     85      if (par.fgdatafft_) mfmask=procg.SetMemZAction(MemZA_ProcA);
     86      else mfmask=procg.SetMemZAction(MemZA_ProcB);
     87      mmgr.SetFinalizedMask((uint_4)mfmask);
     88    }
    8789
    8890    FitsCubeWriter wrt(mmgr, par.outpath_, par.nbloc_);
     
    9294    reader.start();
    9395    if (par.action_ == "cube3d")   wrt.start();
    94     else  procg.start();
     96    else  {
     97      if (!par.fgdatafft_)  procfft.start();
     98      procg.start();
     99    }
    95100    usleep(200000);
    96101    reader.join();
    97102    if (par.action_ == "cube3d")  wrt.join();
    98     else procg.join();
     103    else {
     104      if (!par.fgdatafft_)  procfft.join();
     105      procg.join();
     106    }
    99107    mmgr.Print(cout);
    100108    cout << resu ;
Note: See TracChangeset for help on using the changeset viewer.