From 042b71b403d4d198af67719fa57edd641c752270 Mon Sep 17 00:00:00 2001 From: bergamaschi Date: Fri, 15 Jun 2012 12:29:40 +0000 Subject: [PATCH] solved problem reading config files git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@191 951219d9-93cf-4727-9268-0efd64621fa3 --- .../multiSlsDetector/multiSlsDetector.cpp | 40 ++++++++++++++++--- .../multiSlsDetector/multiSlsDetectorClient.h | 1 + .../slsDetector/slsDetector.cpp | 17 ++++---- .../slsDetector/slsDetectorCommand.cpp | 6 +-- .../slsDetector/slsDetectorUtils.cpp | 10 +++-- 5 files changed, 51 insertions(+), 23 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 02d8545fb..2dfe6df9f 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -3076,6 +3076,22 @@ int multiSlsDetector::readConfigurationFile(string const fname){ + int nd=thisMultiDetector->numberOfDetectors; + + for (int i=0; ifreeSharedMemory(); + } + } + thisMultiDetector->numberOfDetectors=0; + + + + + + + multiSlsDetectorClient *cmd; char ext[100]; @@ -3086,11 +3102,10 @@ int multiSlsDetector::readConfigurationFile(string const fname){ ifstream infile; int iargval; int interrupt=0; - char *args[100]; - for (int ia=0; ia<100; ia++) { - args[ia]=new char[1000]; - } - + char *args[1000]; + + char myargs[1000][1000]; + string sargname, sargval; int iline=0; @@ -3127,10 +3142,23 @@ int multiSlsDetector::readConfigurationFile(string const fname){ #ifdef VERBOSE std::cout<< iargval << " " << sargname << std::endl; #endif - strcpy(args[iargval],sargname.c_str()); + + strcpy(myargs[iargval], sargname.c_str()); + args[iargval]=myargs[iargval]; + +#ifdef VERBOSE + std::cout<< "--" << iargval << " " << args[iargval] << std::endl; +#endif + iargval++; //} } + +#ifdef VERBOSE + cout << endl; + for (int ia=0; ia> sargname; // if (ssstr.good()) { - strcpy(args[iargval],sargname.c_str()); + strcpy(myargs[iargval],sargname.c_str()); #ifdef VERBOSE std::cout<< args[iargval] << std::endl; #endif