Index: trunk/AddOn/TAcq/brparam.h
===================================================================
--- trunk/AddOn/TAcq/brparam.h	(revision 3909)
+++ trunk/AddOn/TAcq/brparam.h	(revision 3913)
@@ -20,4 +20,5 @@
 #include <string>
 #include <vector>
+#include <map>
 #include <iostream>
 #include "brpaqu.h"
@@ -61,12 +62,25 @@
   BRConfList(BRConfList const & cf);
 
-  void SetBaseDirectory(string basedir);
-  void Set(BRConfList const & cf);
+  void SetBaseDirectory(string& basedir);
+  BRConfList& Set(BRConfList const & cf);
+  inline BRConfList& operator = (BRConfList const & cf) { return Set(cf); }
+
+  int SetFiberIds(string& sfids);  // Identification absolue des fibres sous forme de 3,5,8 
+
   ostream& Print(ostream& os) ;
   void ReadDCFile(string file);
   inline const string& BaseDirectory() const { return basedir_; }
+  inline const string& TmpDirectory() const { return tmpdir_; }
+
+  inline int FiberId(int numfib) 
+  { size_t ff=numfib-1; if (ff<fiberIds_.size())  return fiberIds_[ff]; else return 0; }
+
+  void InitFromEnv();  // initialisation a partir de variables d'environnement 
 //.......................................
   string basedir_;
   vector<ADCBoardDesc> boards_;
+  string fiberIdsS_;     // String_liste des numeros 'absolu' des fibres 12,13,14,15 par exemple
+  vector<int> fiberIds_;  // liste des numero d'identification 'absolu' des fibres {12,13,14,15} par ex.
+  string tmpdir_;       // repertoire pour fichiers temporaires 
 };
 
@@ -86,7 +100,10 @@
   void ReadDCFile(string file);
 
-  // Nombre de fibres 
-  inline size_t NFibers() { return FiberNum.size(); } 
-  inline size_t NbFibers() { return FiberNum.size(); } 
+  // Nombre de fibres pour acquisition
+  inline size_t NFibers() { return fiberNum_.size(); } 
+  inline size_t NbFibers() { return fiberNum_.size(); } 
+  // Numeros des fibres pour acquisition 
+  inline int FiberNum(size_t fib) 
+    { if (fib<fiberNum_.size())  return fiberNum_[fib]; else return 0; }
   // Taille des operations DMA (en octets) 
   inline uint_4 DMASizeBytes() { return dmasizekb*1024; }
@@ -114,7 +131,5 @@
   inline uint_4 PatternSize() { return ((PaqSize-(BRHDRSIZE+BRTRLSIZE))/4); }
 
-  // Liste des machines cibles pour transfert sur ethernet
-  inline void SetEthTargets(vector<string>& targs) { eths_targets=targs; return; }
-  inline vector<string>& GetEthTargets() { return eths_targets; }
+  inline vector< vector<string> >& GetEthTargets() { return eths_targets; }
   // Nombre de liens ethernet comme source de donnees (paquets) 
   inline int NbEthLinks() { return ethr_nlink; }
@@ -130,8 +145,6 @@
   bool fgsinglechannel; // true -> un seul canal par fibre (par defaut=2 canaux/fibres)
 
-  string FiberListS ;    // String_liste des fibres a utiliser 1,3,4 par exemple
-  vector<int> FiberNum;  // liste des fibres a utiliser {1,3,4} par exemple
-  string FiberIdsS ;     // String_liste des numeros 'absolu' des fibres 12,13,14,15 par exemple
-  vector<int> FiberIds;  // liste des numero d'identification 'absolu' des fibres {12,13,14,15} par ex.
+  string FiberListS ;    // String_liste des numeros de fibres a utiliser 1,3,4 par exemple
+  vector<int> fiberNum_;  // liste des numeros fibres a utiliser {1,3,4} par exemple
 
   string OutPathName;  // directory de base
@@ -170,7 +183,9 @@
   // Cote Send DMA -> Ethernet 
   bool pci2eth_fgdirect;   // true -> direct transfer DMA to Ethernet  
-  vector< string > eths_targets;   // Liste des machines cibles pour les transferts DMA -> ethernet 
+  vector< vector<string> > eths_targets;   // Liste des machines cibles pour les transferts DMA -> ethernet pour chaque fibre
+  vector<string> eths_stargs;    // cibles communes pour toutes les fibres 
+  map< int, vector<string> > eths_fibtargs;  // Cibles specifiees pour les differentes fibres ds les datacards
   // Cote reception 
-  int ethr_nlink;    // Nombre total de source d'envoi (= nb total de fibre de fibre) 
+  int ethr_nlink;    // Nombre total de source d'envoi (= nb total de fibres = nb total liens ethernet) 
   bool ethr_forcesamefc_;   // true -> on force receptions de paquets avec SAME FrameCounter sur tous les liens 
   uint_4 ethr_sfc_maxdpc_;   // valeur maximum de difference tolere entre compteurs de paquets de differentes fibres 
@@ -241,7 +256,11 @@
   inline bool GetFileDevNull() { return param_->fgnulldev4fits; };
 
-  // Nombre de fibres 
+  // Nombre de fibres pour l'acquisition 
   inline int  NFibers() { return param_->NbFibers(); } 
   inline int  NbFibers() { return param_->NbFibers(); } 
+  // Numeros des fibres pour l'acquisition 
+  inline int FiberNum(size_t fib) { return param_->FiberNum(fib); } 
+  // Identificateurs des fibres 
+  inline int FiberId(size_t fib) { return config_->FiberId( param_->FiberNum(fib) ); }
 
   // Taille des operations DMA (en octets) 
@@ -273,4 +292,6 @@
   inline string OutputDirectory() { return (config_->BaseDirectory()+param_->OutPathName); }
   string OutputDirectoryFib(int fib);
+  // repertoire temporaire
+  inline const string& TmpDirectory() const { return config_->TmpDirectory(); }
 
  protected:
