Changeset 3899 in Sophya for trunk


Ignore:
Timestamp:
Oct 4, 2010, 11:15:02 PM (15 years ago)
Author:
ansari
Message:

Ajout flag waitendmsg (Wait for END message) pour le controle de la fin d'execution de EthernetReader , Reza 04/10/2010

Location:
trunk/AddOn/TAcq
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/AddOn/TAcq/acqparam_exemple.d

    r3897 r3899  
    5858#  de resynchronisation succesive
    5959ethrforcesamefc 50 50
     60#####
     61# En activant la carte suivante, le lecteur (EthernetReader) attend les messages END sur chaque lien
     62# avant de terminer l'execuction
     63#  @ethrwaitendmsg
     64ethrwaitendmsg
    6065## No de port TCP/IP   
    6166#  @tcpportid 6912
  • trunk/AddOn/TAcq/brparam.cc

    r3897 r3899  
    139139  ethr_sfc_maxdpc_=50;
    140140  ethr_sfc_maxresync_=50;
     141  ethr_waitendmsg_=false;
    141142
    142143  skysource="";
     
    212213  ethr_sfc_maxdpc_=p.ethr_sfc_maxdpc_;
    213214  ethr_sfc_maxresync_=p.ethr_sfc_maxresync_;
     215  ethr_waitendmsg_=p.ethr_waitendmsg_;
    214216
    215217  skysource=p.skysource;
     
    263265    ethr_sfc_maxresync_=conf.IParam("ethrforcesamefc",1,50);
    264266  }
     267  if (conf.HasKey("ethrwaitendmsg"))  ethr_waitendmsg_=true;
    265268
    266269  //  Parametre de controle du monitoring
     
    398401  if (ethr_forcesamefc_)
    399402    cout << "EthernetReader mode: ForceSameFrameCounter read mode with Max_PaquetCounterDiff= "
    400          << ethr_sfc_maxdpc_ << " MaxNbResync=" << ethr_sfc_maxresync_ << endl;
     403         << ethr_sfc_maxdpc_ << " MaxNbResync=" << ethr_sfc_maxresync_
     404         << ((ethr_waitendmsg_)?" Wait_For_END_Message_Before_Terminate ":" ") << endl;
    401405  else
    402     cout << "EthernetReader mode: AllOKPaquets read mode " << endl;
     406    cout << "EthernetReader mode: AllOKPaquets read mode "
     407         << ((ethr_waitendmsg_)?" Wait_For_END_Message_Before_Terminate ":" ") << endl;
    403408
    404409  if (fgdoProc>0)
  • trunk/AddOn/TAcq/brparam.h

    r3897 r3899  
    168168  uint_4 ethr_sfc_maxdpc_;   // valeur maximum de difference tolere entre compteurs de paquets de differentes fibres
    169169  uint_4 ethr_sfc_maxresync_;   // Nombre maximum de tentative de resynchronisation avant echec
    170  
     170  bool ethr_waitendmsg_;   // true -> EthernetReader attend le message END avant de s'arreter
     171
    171172  // Identification source observee dans le ciel
    172173  string skysource;
  • trunk/AddOn/TAcq/mfacq.cc

    r3897 r3899  
    389389  EthernetReader ethrdr(mmgr, bpar.GetParams(), bpar.GetParams().tcpportid);
    390390  ethrdr.SetReadMode(acpar.ethr_forcesamefc_, acpar.ethr_sfc_maxdpc_,acpar.ethr_sfc_maxresync_);
     391  ethrdr.WaitENDMsg4Terminate(acpar.ethr_waitendmsg_);
    391392  ethrdr.SetPrintLevel(acpar.prtlevel_, acpar.prtmodulo_);
    392393
  • trunk/AddOn/TAcq/racqueth.cc

    r3898 r3899  
    514514    usleep(50000);       // Attente de traitement du dernier paquet
    515515    memgr_.Stop();        // Arret
    516     CleanUpAllSockets();  // On lit tous les liens jusqu'a la reception du message END
    517     cout << " EthernetReader::run(): done CleanUpAllSockets()" << endl;
     516    if (waitendmsg_)  {
     517      CleanUpAllSockets();  // On lit tous les liens jusqu'a la reception du message END
     518      cout << " EthernetReader::run(): done CleanUpAllSockets()" << endl;
     519    }
    518520  }  // Fin du bloc try
    519521  catch (std::exception& exc) {
  • trunk/AddOn/TAcq/racqueth.h

    r3898 r3899  
    9898  inline void SetReadMode(bool force_samefc=false, uint_4 maxdiff_paqnum=50, uint_4 maxresync=50)
    9999  { rdsamefc_=force_samefc; sfc_maxdpc_=maxdiff_paqnum; sfc_maxresync_=maxresync; }
     100  //  En activant le flag, le reader ne se termine qu'avec la reception des message END sur chaque lien
     101  inline void WaitENDMsg4Terminate(bool waitendmsg=false)
     102  { waitendmsg_=waitendmsg; }
    100103
    101104  virtual void run();
     
    165168  string stopreason_;   // message descriptif de la raison d'arret
    166169
     170  bool waitendmsg_;   // si true, attendre le message  END message sur chaque lien avant de s'arreter
     171 
    167172  int prtlev_;   // print level
    168173  uint_8 prtmodulo_;   // print periodicity (modulo)
Note: See TracChangeset for help on using the changeset viewer.