Changeset 3909 in Sophya for trunk/AddOn/TAcq/pciewrap.cc


Ignore:
Timestamp:
Nov 21, 2010, 2:26:12 PM (15 years ago)
Author:
ansari
Message:

1/ Mise en place d'informations auxiliaires au niveau de RAcqMemZoneMgr ,

FillTime (DATEOBS) pour chaque zone et identificateur des fibres

2/ remplissage de FillTime(DATEOBS) Et FiberId's de MemZoneMgr par

les classes PCIEMultiReader et EthernetReader

3/ Ajout de mots-cle (ds les datacards) pour numeros d'identification des

fibres et parametres de controles du DMA (@fiberids @waitenddma)
et corrections/ameliorations des modes acq (raw1c ordfft2c ...)

4/ Parametrage des WaitEndDMA ds PCIEWrapperInterface et implementation

au niveau de DMAMgrV6 (dmamgrv6.h .cc)

5/ Gestion d'echec DMA -> arret acquisition ds PCIEMultiReader,EthernetReader

modification TimeOut DMA entre le premier DMA et les suivants pour permettre
un arret propre rapide

6/ Adaptation de la classe BRVisibilityCalculator pour utilisation

FillTime (DATEOBS) et FiberIds de MemZoneMgr - amelioration de
l'identification des numeros de canaux pour les matrices de visibilites

7/ Petites ameliorations (ecriture mot-cles) pour MultiDataSaver et

amelioration classe BRMultiFitsReader pour lecture FillTime (DATEOBS)
et FiberIds depuis les fichiers FITS et remplissage de RAcqMemZoneMgr

Reza, 21/11/2010

File:
1 edited

Legend:

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

    r3683 r3909  
    1212using namespace SOPHYA;
    1313
     14//-----------------------------------------------------------------------
     15//  Classe PCIEWrapperInterface  ( virtuelle pure )
     16//-----------------------------------------------------------------------
     17
     18/* --Methode-- */
     19PCIEWrapperInterface::PCIEWrapperInterface()
     20{
     21  SetMaxWaitEndDMA();
     22}
     23
     24/* --Methode-- */
     25PCIEWrapperInterface::~PCIEWrapperInterface()
     26{
     27}
     28
     29/* --Methode-- */
     30unsigned long PCIEWrapperInterface::SetMaxWaitEndDMA(unsigned int maxkwedma, unsigned int nretry)
     31{
     32  if (maxkwedma>1) { maxwaitenddmaloop_=maxkwedma*1000; maxretryenddma_=nretry; }
     33  return maxwaitenddmaloop_;
     34}
     35
     36//------------------------------------------------------------------
     37// Classe TestPCIWrapperNODMA : genere des paquets sans appel au DMA
     38//------------------------------------------------------------------
    1439/* --Methode-- */
    1540TestPCIWrapperNODMA::TestPCIWrapperNODMA(UInt32 sz, double lossrate)
     
    2348  timetag_ = 0;
    2449  tottransfer_ = 0;
    25   lossrate_ = lossrate;
    26   cout << " TestPCIWrapperNODMA(PaqSz=" << sz << ",LossRate=" << lossrate << ")" << endl;
     50  if (lossrate<0.)  lossrate=-lossrate;
     51  max_frcount_=(UInt32)lossrate;
     52  lossrate_ = lossrate-(double)max_frcount_;
     53  if (lossrate_<1.e-9) lossrate_=0.;
     54  cout << " TestPCIWrapperNODMA(PaqSz=" << sz << ",LossRate=" << lossrate
     55       << " MaxFrameCount=" << max_frcount_ << ")" << endl;
    2756}
    2857
     
    4978Byte* TestPCIWrapperNODMA::GetData()
    5079{
    51   if (lossrate_ > 1.e-19) {
     80  if (frame_counter_>max_frcount_)  return NULL;
     81  if (lossrate_ > 1.e-9) {
    5282    UInt32 dfc = 1;
    5383    while (rg_.Flat01()<lossrate_)  dfc++;
Note: See TracChangeset for help on using the changeset viewer.