diff --git a/slsDetectorSoftware/commonFiles/error_defs.h b/slsDetectorSoftware/commonFiles/error_defs.h index b21efe09f..272771956 100644 --- a/slsDetectorSoftware/commonFiles/error_defs.h +++ b/slsDetectorSoftware/commonFiles/error_defs.h @@ -32,6 +32,7 @@ using namespace std; #define COULD_NOT_CONFIGURE_MAC 0x0000000000000001ULL #define COULDNOT_SET_NETWORK_PARAMETER 0x0000000000000002ULL #define COULDNOT_SET_ROI 0x0000000000000004ULL +#define FILE_PATH_DOES_NOT_EXIST 0x0000000000000008ULL /** @short class returning all error messages for error mask */ @@ -77,6 +78,9 @@ public: if(slsErrorMask&COULDNOT_SET_ROI) retval.append("Could not set the exact region of interest. Verify ROI set by detector.\n"); + if(slsErrorMask&FILE_PATH_DOES_NOT_EXIST) + retval.append("File Path does not exist.\n"); + return retval; } diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 8ad2937b0..7f5335c29 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -5793,9 +5793,10 @@ string slsDetector::setFilePath(string s) { if(thisDetector->receiverOnlineFlag==OFFLINE_FLAG){ if(!s.empty()){ - if(stat(s.c_str(),&st)) + if(stat(s.c_str(),&st)){ std::cout << "path does not exist" << endl; - else + setErrorMask((getErrorMask())|(FILE_PATH_DOES_NOT_EXIST)); + }else fileIO::setFilePath(s); } } @@ -5809,6 +5810,10 @@ string slsDetector::setFilePath(string s) { ret=thisReceiver->sendString(fnum,retval,arg); if(ret!=FAIL) fileIO::setFilePath(string(retval)); + else if(!s.empty()){ + std::cout << "path does not exist" << endl; + setErrorMask((getErrorMask())|(FILE_PATH_DOES_NOT_EXIST)); + } if(ret==FORCE_UPDATE) updateReceiver(); } @@ -6350,7 +6355,9 @@ int slsDetector::setReadReceiverFrequency(int i){ void slsDetector::waitForReceiverReadToFinish(){ - if(dataSocket) - while(dataSocket->getsocketDescriptor() >= 0) + if(dataSocket){ + while(dataSocket->Connect() < 0) usleep(1000); + dataSocket->Disconnect(); + } }