Index: trunk/AddOn/TAcq/brparam.cc
===================================================================
--- trunk/AddOn/TAcq/brparam.cc	(revision 3671)
+++ trunk/AddOn/TAcq/brparam.cc	(revision 3672)
@@ -3,4 +3,83 @@
 #include "bracqvers.h"
 
+/* --Methode-- */
+ADCBoardDesc::ADCBoardDesc(int id, string sbid, string cyc_firmw, string str1_firmw, string str2_firmw)
+  : id_(id), sbid_(sbid), cyclone_firmware_(cyc_firmw), stratix1_firmware_(str1_firmw), stratix2_firmware_(str2_firmw)
+{
+  
+}
+
+/* --Methode-- */
+ADCBoardDesc::ADCBoardDesc(ADCBoardDesc const& bdes)
+  : id_(bdes.id_), sbid_(bdes.sbid_), cyclone_firmware_(bdes.cyclone_firmware_), 
+    stratix1_firmware_(bdes.stratix1_firmware_), stratix2_firmware_(bdes.stratix2_firmware_)
+{
+}
+
+/* --Methode-- */
+ADCBoardDesc& ADCBoardDesc::Set(ADCBoardDesc const & bdes)
+{
+  id_ = bdes.id_;
+  sbid_ = bdes.sbid_;
+  cyclone_firmware_ = bdes.cyclone_firmware_;
+  stratix1_firmware_ = bdes.stratix1_firmware_;
+  stratix2_firmware_ = bdes.stratix2_firmware_;
+  return(*this);
+}
+
+/* --Methode-- */
+ostream& ADCBoardDesc::Print(ostream& os)
+{
+  os << "ADCBoard#" << id_ << "(" << sbid_ << ") Cyclone:" << cyclone_firmware_ 
+     << " Stratix1: " << stratix1_firmware_ << " Stratix2: " << stratix2_firmware_ << endl;
+  return os;
+}
+
+/* --Methode-- */
+BRConfList::BRConfList()
+  : basedir_("./")
+{
+}
+
+/* --Methode-- */
+BRConfList::BRConfList(string basedir)
+  : basedir_(basedir)
+{
+}
+
+/* --Methode-- */
+BRConfList::BRConfList(string basedir, vector<ADCBoardDesc> boards)
+  : basedir_(basedir), boards_(boards)
+{
+  size_t len = basedir_.length();
+  if ((len>1)&&(basedir_[len-1]!='/')) basedir_ += '/';
+}
+
+/* --Methode-- */
+BRConfList::BRConfList(BRConfList const & cf)
+  : basedir_(cf.basedir_), boards_(cf.boards_)
+{
+}
+
+/* --Methode-- */
+void BRConfList::Set(BRConfList const & cf)
+{
+  basedir_=cf.basedir_;
+  boards_=cf.boards_;
+}
+
+/* --Methode-- */
+ostream& BRConfList::Print(ostream& os)
+{
+  os << " ----- BRConfList:: BaseDir:" << basedir_ << " NBoards= " << boards_.size() << endl;
+  for(size_t k=0; k<boards_.size(); k++)  boards_[k].Print(os);
+  return os;
+}
+
+/* --Methode-- */
+void BRConfList::ReadDCFile(string file)
+{
+  //  A FAIRE 
+}
 
 // Classe qui memorise tous les parametres importants de l'acquisition
@@ -27,6 +106,4 @@
   fgnulldev4fits=false;
   fg_hard_ctrlc=fgcntlc;
-  fgnulldev4fits = (OutPathName == "/dev/null") ? true : false;
-
   fgreducpsize=false;
   redpqsize=PaqSize;
@@ -102,4 +179,12 @@
   for (int fib=0; fib<fiblist.size(); fib++) {
     FiberNum[fib]=atoi(fiblist[fib].c_str()); 
+  }
+  if (OutPathName == "/dev/null") { 
+    fgnulldev4fits=true;
+  }
+  else { 
+    size_t len = OutPathName.length();
+    if ((len>1)&&(OutPathName[len-1]!='/')) OutPathName+='/';
+    fgnulldev4fits=false;
   }
   string acqmode = AcqMode;
@@ -159,5 +244,8 @@
 
 
+//-------------------- Classe BRAcqConfig -----------------------
+
 BRParList* BRAcqConfig::param_=NULL;
+BRConfList* BRAcqConfig::config_=NULL;
 
 /* --Methode-- */
@@ -165,4 +253,14 @@
 {
   if (param_==NULL)  param_ = new BRParList;  
+  if (config_==NULL) config_ = new BRConfList;
+}
+
+/* --Methode-- */
+ostream& BRAcqConfig::Print(ostream& os)
+{ 
+  os << " ------------  BAORadio Acq Run/Configuration -------- " << endl;
+  config_->Print(os);
+  param_->Print(os); 
+  os << " ----------------------------------------------------- " << endl;
 }
 
@@ -170,20 +268,20 @@
 int BRAcqConfig::CreateOutputDirectories()
 {
-  char cmd[512];
+  char cmd[1024];
   if (param_->fgnulldev4fits!=true) {
-    sprintf(cmd,"mkdir %s",param_->OutPathName.c_str());
+    sprintf(cmd,"mkdir %s%s",config_->BaseDirectory().c_str(), param_->OutPathName.c_str());
     if (system(cmd) < 0) {
-      cout << "CreateOutputDirectories()/Error: Can not create  subdirectory " 
-	   << param_->OutPathName << " -> stop" << endl;
+      cout << "CreateOutputDirectories()/Error: Can not create subdirectory " 
+	   << cmd << " -> stop" << endl;
       return 2;
     }
     cout << "CreateOutputDirectories() - Executed command " << cmd << endl;
     
-    memset(cmd,0,512); 
+    memset(cmd,0,1024); 
     for (int  i= 0; i< NFibers() ; i++)  {
-      sprintf(cmd,"mkdir %s/Fibre%d",param_->OutPathName.c_str(),param_->FiberNum[i]);
+      sprintf(cmd,"mkdir %s%s/Fiber%d",config_->BaseDirectory().c_str(), param_->OutPathName.c_str(),param_->FiberNum[i]);
       if (system(cmd) < 0) {
 	cout << "CreateOutputDirectories()/Error: Can not create subdirectory " 
-	     << param_->OutPathName << "/FiberII -> stop" << endl;
+	     << cmd << " -> stop" << endl;
 	return 3;
       }
@@ -202,11 +300,4 @@
     }
     else cout << "CreateOutputDirectories() - Executed command " << cmd << endl;
-
-    sprintf(cmd,"mkdir %s/Fibre1 %s/Fibre2",ProcPathName.c_str(),ProcPathName.c_str());
-    if (system(cmd) < 0) {
-      cout << "CreateOutputDirectories()/Error: Can not create subdirectory ./XZXZXZX/Fibre1,2" 
-	   << "-> stop" << endl;
-      return 4;
-    }
   }
   return 0;
@@ -217,5 +308,5 @@
 {
   char buff[24];
-  sprintf(buff,"/Fiber%d",param_->FiberNum[ifib]);
-  return ( param_->OutPathName + buff );
-}
+  sprintf(buff,"Fiber%d/",param_->FiberNum[ifib]);
+  return ( config_->BaseDirectory() + param_->OutPathName + buff );
+}
