Index: /trunk/AddOn/TAcq/brbaseproc.cc
===================================================================
--- /trunk/AddOn/TAcq/brbaseproc.cc	(revision 3695)
+++ /trunk/AddOn/TAcq/brbaseproc.cc	(revision 3696)
@@ -19,14 +19,17 @@
 BRBaseProcessor::BRBaseProcessor(RAcqMemZoneMgr& memgr)
   : memgr_(memgr), vpaq_(memgr.NbFibres()), vpchk_(memgr.NbFibres()), vfgok_(memgr.NbFibres()), 
-    curfc_(memgr.NbFibres())
+    curfc_(memgr.NbFibres()), fcfirst_(memgr.NbFibres()), ttfirst_(memgr.NbFibres())
 {
   stop_ = false;
   for(size_t fib=0; fib<(size_t)memgr_.NbFibres(); fib++)  {
+    fbuff_.push_back(NULL);
     vpaq_[fib]=BRPaquet(NULL,memgr_.PaqSize());
     vpchk_[fib]=BRPaqChecker(true,0); 
     vfgok_[fib]=true;
     curfc_[fib]=0;
+    fcfirst_[fib]=0;
+    ttfirst_[fib]=0;
   }
-  fcfirst_=ttfirst_=0;
+  fgokallfibers_=true;
   totprocnpaq_=0;
 }
@@ -42,6 +45,4 @@
 
     size_t paqsz=memgr_.PaqSize();
-    vector<Byte*> fbuff;
-    for(size_t fib=0; fib<(size_t)memgr_.NbFibres(); fib++)  fbuff.push_back(NULL);
     bool fgrun=true;
     while (fgrun) {
@@ -55,20 +56,31 @@
 	break;	
       }
+      for(size_t fib=0; fib<(size_t)memgr_.NbFibres(); fib++) {
+	fbuff_[fib] = memgr_.GetMemZone(mid,fib);
+	if (fbuff_[fib] == NULL) { // cela ne devrait pas arriver 
+	  cout << "BRBaseProcessor::run()/ERROR memgr.GetMemZone(" << mid << "," << fib << ") -> NULL" << endl;
+	  setRC(9);	  fgrun=false;		
+	  break;
+	}
+      }
       for(size_t jp=0; jp<memgr_.NbPaquets(); jp++) {   // boucle sur les paquets d'une zone  
 	fgokallfibers_=true;
 	for(size_t fib=0; fib<(size_t)memgr_.NbFibres(); fib++) {
-	  fbuff[fib] = memgr_.GetMemZone(mid,fib);
-	  if (fbuff[fib] == NULL) { // cela ne devrait pas arriver 
-	    cout << "BRBaseProcessor::run()/ERROR memgr.GetMemZone(" << mid << "," << fib << ") -> NULL" << endl;
-	    setRC(9);	  fgrun=false;		
-	    break;
-	  }
-	  vpaq_[fib].Set(fbuff[fib]+jp*paqsz);
+	  vpaq_[fib].Set(fbuff_[fib]+jp*paqsz);
 	  vfgok_[fib] = vpchk_[fib].Check(vpaq_[fib],curfc_[fib]);
 	  if (!vfgok_[fib])  fgokallfibers_=false;
 	}
 	//--- Traitement 
-	int rcp = Process();
-	totprocnpaq_++;
+	int rcp=0;
+	if (fgokallfibers_)  {
+	  if (totprocnpaq_==0) {
+	    for(size_t fib=0; fib<(size_t)memgr_.NbFibres(); fib++)  {
+	      fcfirst_[fib]=curfc_[fib];
+	      ttfirst_[fib]=vpaq_[fib].TimeTag();
+	    }
+	  }
+	  rcp=Process();
+	  totprocnpaq_++;
+	}
 	//	if (rcp != 0)   { fgrun=false; break; }
       }  // Fin de boucle sur les paquets 
@@ -101,6 +113,6 @@
   // la methode par defaut ne fait rien 
   // if (fgokallfibers_) { faire le traitement }
-  return 0;
-  /*    Exemple de code test 
+  //  return 0;
+  /*    Exemple de code test  */
   if ( totprocnpaq_ % 1000 == 0 ) {
     cout << " BRVisibilityCalculator::Process() " << totprocnpaq_ << " FrameCnt=" ;
@@ -113,6 +125,5 @@
       cout << "   seconds" << endl;
   }
-
-   */
+  return 0;
 }
 
Index: /trunk/AddOn/TAcq/brbaseproc.h
===================================================================
--- /trunk/AddOn/TAcq/brbaseproc.h	(revision 3695)
+++ /trunk/AddOn/TAcq/brbaseproc.h	(revision 3696)
@@ -26,5 +26,5 @@
   BRBaseProcessor(RAcqMemZoneMgr& memgr);
   virtual void run();
-  // Methode devant etre redefinie pour effectuer le traitement 
+  // Methode devant etre redefinie pour effectuer le traitement - appele pour chaque trigger  
   virtual int Process();  // renvoie 0 si OK, sinon, arret traitement 
   inline void Stop();
@@ -32,12 +32,12 @@
 protected:
   RAcqMemZoneMgr& memgr_;
-  bool stop_;  
+  bool stop_;
+  vector<Byte*> fbuff_;      // Vecteur de pointeur de zone memoire pour chaque fibre 
   vector<BRPaquet> vpaq_;   // Vecteur de BRPaquet pour chaque fibre
   vector<BRPaqChecker> vpchk_;
   vector<uint_8> vfgok_;    // Vecteur de flag si paquet OK pour chaque fibre
   vector<uint_8> curfc_;    // Vecteur de numero de FrameCounter pour chaque fibre
-
-  uint_8 fcfirst_;
-  uint_8 ttfirst_;
+  vector<uint_8> fcfirst_;  // 
+  vector<uint_8> ttfirst_;
   bool fgokallfibers_;      // true -> paquets for all fibers OK
 
Index: /trunk/AddOn/TAcq/brproc.cc
===================================================================
--- /trunk/AddOn/TAcq/brproc.cc	(revision 3695)
+++ /trunk/AddOn/TAcq/brproc.cc	(revision 3696)
@@ -50,6 +50,6 @@
   }
   //  visdt_.AddFloatColumn("mfc");
-  visdt_.AddFloatColumn("mfc");
-  visdt_.AddFloatColumn("mtt");
+  visdt_.AddDoubleColumn("mfc");
+  visdt_.AddDoubleColumn("mtt");
   visdt_.AddIntegerColumn("jfreq");
   visdt_.AddIntegerColumn("numch");
@@ -101,17 +101,10 @@
 int BRVisibilityCalculator::Process()
 {
-  vector<TwoByteComplex*> vpdata;
-  /*
-  for(size_t fib=0; fib<(size_t)memgr_.NbFibres(); fib++) {
-    vpdata.push_back(vpaq_[fib].Data1C());
-    vpdata.push_back(vpaq_[fib].Data2C());
-  }
-  */
-  // On s'arrange pour mettre les canaux dans l'ordre pour les observations de Pittsburgh Nov 2009
+    
   for(size_t fib=0; fib<(size_t)memgr_.NbFibres(); fib++) {
     vpdata_[2*fib] = vpaq_[fib].Data1C();
     vpdata_[2*fib+1] = vpaq_[fib].Data2C();
   }
-
+  
   if (totnbpaq_%nmean_ == 0) {
     if (totnbpaq_ > 0) {
@@ -143,5 +136,5 @@
     }
   }
-
+  
   moyfc_ += curfc_[0];
   moytt_ += vpaq_[0].TimeTag();
@@ -172,6 +165,6 @@
 	r_4 moyimag=0.;
 	for(sa_size_t jjf=jf; jjf<jf+djf_; jjf++) {
-	  moyreal+=vismtx_(rv,jf).real();
-	  moyimag+=vismtx_(rv,jf).imag();
+	  moyreal+=vismtx_(rv,jjf).real();
+	  moyimag+=vismtx_(rv,jjf).imag();
 	}
 	xnt_[2]=jf+djf_/2;
