Changeset 3913 in Sophya for trunk/AddOn/TAcq/brparam.h


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

1/ Correction de gestion de changement de timeout DMA ( racqueth.cc , racqurw.cc)
2/ Amelioration de la gestion des arguments de ligne de commande et

datacard - introduction de variables d'environnement
BRACQ_TMPDIR TMPDIR BRACQ_BASEDIR BRACQ_FIBERIDS

3/ possibilite de specifier des cibles ethernet pour chaque fibre

Reza 26/11/2010

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/AddOn/TAcq/brparam.h

    r3909 r3913  
    2020#include <string>
    2121#include <vector>
     22#include <map>
    2223#include <iostream>
    2324#include "brpaqu.h"
     
    6162  BRConfList(BRConfList const & cf);
    6263
    63   void SetBaseDirectory(string basedir);
    64   void Set(BRConfList const & cf);
     64  void SetBaseDirectory(string& basedir);
     65  BRConfList& Set(BRConfList const & cf);
     66  inline BRConfList& operator = (BRConfList const & cf) { return Set(cf); }
     67
     68  int SetFiberIds(string& sfids);  // Identification absolue des fibres sous forme de 3,5,8
     69
    6570  ostream& Print(ostream& os) ;
    6671  void ReadDCFile(string file);
    6772  inline const string& BaseDirectory() const { return basedir_; }
     73  inline const string& TmpDirectory() const { return tmpdir_; }
     74
     75  inline int FiberId(int numfib)
     76  { size_t ff=numfib-1; if (ff<fiberIds_.size())  return fiberIds_[ff]; else return 0; }
     77
     78  void InitFromEnv();  // initialisation a partir de variables d'environnement
    6879//.......................................
    6980  string basedir_;
    7081  vector<ADCBoardDesc> boards_;
     82  string fiberIdsS_;     // String_liste des numeros 'absolu' des fibres 12,13,14,15 par exemple
     83  vector<int> fiberIds_;  // liste des numero d'identification 'absolu' des fibres {12,13,14,15} par ex.
     84  string tmpdir_;       // repertoire pour fichiers temporaires
    7185};
    7286
     
    86100  void ReadDCFile(string file);
    87101
    88   // Nombre de fibres
    89   inline size_t NFibers() { return FiberNum.size(); }
    90   inline size_t NbFibers() { return FiberNum.size(); }
     102  // Nombre de fibres pour acquisition
     103  inline size_t NFibers() { return fiberNum_.size(); }
     104  inline size_t NbFibers() { return fiberNum_.size(); }
     105  // Numeros des fibres pour acquisition
     106  inline int FiberNum(size_t fib)
     107    { if (fib<fiberNum_.size())  return fiberNum_[fib]; else return 0; }
    91108  // Taille des operations DMA (en octets)
    92109  inline uint_4 DMASizeBytes() { return dmasizekb*1024; }
     
    114131  inline uint_4 PatternSize() { return ((PaqSize-(BRHDRSIZE+BRTRLSIZE))/4); }
    115132
    116   // Liste des machines cibles pour transfert sur ethernet
    117   inline void SetEthTargets(vector<string>& targs) { eths_targets=targs; return; }
    118   inline vector<string>& GetEthTargets() { return eths_targets; }
     133  inline vector< vector<string> >& GetEthTargets() { return eths_targets; }
    119134  // Nombre de liens ethernet comme source de donnees (paquets)
    120135  inline int NbEthLinks() { return ethr_nlink; }
     
    130145  bool fgsinglechannel; // true -> un seul canal par fibre (par defaut=2 canaux/fibres)
    131146
    132   string FiberListS ;    // String_liste des fibres a utiliser 1,3,4 par exemple
    133   vector<int> FiberNum;  // liste des fibres a utiliser {1,3,4} par exemple
    134   string FiberIdsS ;     // String_liste des numeros 'absolu' des fibres 12,13,14,15 par exemple
    135   vector<int> FiberIds;  // liste des numero d'identification 'absolu' des fibres {12,13,14,15} par ex.
     147  string FiberListS ;    // String_liste des numeros de fibres a utiliser 1,3,4 par exemple
     148  vector<int> fiberNum_;  // liste des numeros fibres a utiliser {1,3,4} par exemple
    136149
    137150  string OutPathName;  // directory de base
     
    170183  // Cote Send DMA -> Ethernet
    171184  bool pci2eth_fgdirect;   // true -> direct transfer DMA to Ethernet 
    172   vector< string > eths_targets;   // Liste des machines cibles pour les transferts DMA -> ethernet
     185  vector< vector<string> > eths_targets;   // Liste des machines cibles pour les transferts DMA -> ethernet pour chaque fibre
     186  vector<string> eths_stargs;    // cibles communes pour toutes les fibres
     187  map< int, vector<string> > eths_fibtargs;  // Cibles specifiees pour les differentes fibres ds les datacards
    173188  // Cote reception
    174   int ethr_nlink;    // Nombre total de source d'envoi (= nb total de fibre de fibre)
     189  int ethr_nlink;    // Nombre total de source d'envoi (= nb total de fibres = nb total liens ethernet)
    175190  bool ethr_forcesamefc_;   // true -> on force receptions de paquets avec SAME FrameCounter sur tous les liens
    176191  uint_4 ethr_sfc_maxdpc_;   // valeur maximum de difference tolere entre compteurs de paquets de differentes fibres
     
    241256  inline bool GetFileDevNull() { return param_->fgnulldev4fits; };
    242257
    243   // Nombre de fibres
     258  // Nombre de fibres pour l'acquisition
    244259  inline int  NFibers() { return param_->NbFibers(); }
    245260  inline int  NbFibers() { return param_->NbFibers(); }
     261  // Numeros des fibres pour l'acquisition
     262  inline int FiberNum(size_t fib) { return param_->FiberNum(fib); }
     263  // Identificateurs des fibres
     264  inline int FiberId(size_t fib) { return config_->FiberId( param_->FiberNum(fib) ); }
    246265
    247266  // Taille des operations DMA (en octets)
     
    273292  inline string OutputDirectory() { return (config_->BaseDirectory()+param_->OutPathName); }
    274293  string OutputDirectoryFib(int fib);
     294  // repertoire temporaire
     295  inline const string& TmpDirectory() const { return config_->TmpDirectory(); }
    275296
    276297 protected:
Note: See TracChangeset for help on using the changeset viewer.