From 904af4de06779e379d0e68707ed85d961390bd4b Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 16 Nov 2021 09:55:29 +0100 Subject: [PATCH] fix to allowing update mode functions in update mode and removing exception about set_position for hostname in update mode --- .../slsDetectorServer/include/common.h | 3 +- .../slsDetectorServer/src/slsDetectorServer.c | 32 +++++++++++-------- .../src/slsDetectorServer_funcs.c | 2 +- slsDetectorSoftware/src/DetectorImpl.cpp | 4 ++- 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/slsDetectorServers/slsDetectorServer/include/common.h b/slsDetectorServers/slsDetectorServer/include/common.h index ade91d545..4b86f6dc9 100644 --- a/slsDetectorServers/slsDetectorServer/include/common.h +++ b/slsDetectorServers/slsDetectorServer/include/common.h @@ -8,13 +8,12 @@ #include #include +#define UPDATE_FILE "update.txt" #ifdef VIRTUAL #define TEMP_PROG_FOLDER_NAME "/tmp/" -#define UPDATE_FILE "/tmp/slsdet_udpate" #else #define TEMP_PROG_FOLDER_NAME "/var/tmp/" #define TEMP_PROG_FOLDER_NAME_ALL_FILES "/var/tmp/*" -#define UPDATE_FILE "udpate.txt" #endif #define TEMP_PROG_FILE_NAME TEMP_PROG_FOLDER_NAME "tmp.rawbin" diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c index dbe7120ca..e11055123 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c @@ -49,18 +49,6 @@ int main(int argc, char *argv[]) { checkModuleFlag = 1; int version = 0; - // update flag if update file exists (command line arg overwrites) - const int fileNameSize = 128; - char fname[fileNameSize]; - if (getAbsPath(fname, fileNameSize, UPDATE_FILE) == FAIL) { - LOG(logERROR, ("Could not get abs path to check if update file exists. " - "Will try current folder instead.\n")); - strcpy(fname, UPDATE_FILE); - } - if (access(fname, F_OK) == 0) { - updateFlag = 1; - } - // help message char helpMessage[MAX_STR_LENGTH]; memset(helpMessage, 0, MAX_STR_LENGTH); @@ -163,7 +151,7 @@ int main(int argc, char *argv[]) { break; case 'u': - LOG(logINFO, ("Detected update mode\n")); + LOG(logINFO, ("Detected update mode from command line\n")); updateFlag = 1; break; @@ -198,6 +186,24 @@ int main(int argc, char *argv[]) { if (sharedMemory_create(portno) == FAIL) { return -1; } + + if (updateFlag == 0) { + // update flag if update file exists (command line arg overwrites) + const int fileNameSize = 128; + char fname[fileNameSize]; + if (getAbsPath(fname, fileNameSize, UPDATE_FILE) == FAIL) { + LOG(logERROR, + ("Could not get abs path to check if update file exists. " + "Will try current folder instead.\n")); + strcpy(fname, UPDATE_FILE); + } + if (access(fname, F_OK) == 0) { + updateFlag = 1; + LOG(logINFOBLUE, ("File Found: Update Mode enabled\n")); + } else { + LOG(logINFOBLUE, ("File not Found: Update Mode diabled\n")); + } + } #ifdef STOP_SERVER // start stop server process char cmd[MAX_STR_LENGTH]; diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index add17a247..b4980676c 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -78,7 +78,7 @@ char scanErrMessage[MAX_STR_LENGTH] = ""; /* initialization functions */ int updateModeAllowedFunction(int file_des) { - unsigned int listsize = 17; + unsigned int listsize = 19; enum detFuncs list[] = {F_EXEC_COMMAND, F_GET_DETECTOR_TYPE, F_GET_FIRMWARE_VERSION, diff --git a/slsDetectorSoftware/src/DetectorImpl.cpp b/slsDetectorSoftware/src/DetectorImpl.cpp index 2d51e7b58..98c7e4748 100644 --- a/slsDetectorSoftware/src/DetectorImpl.cpp +++ b/slsDetectorSoftware/src/DetectorImpl.cpp @@ -338,7 +338,9 @@ void DetectorImpl::updateDetectorSize() { << shm()->numberOfChannels.y; for (auto &module : modules) { - module->updateNumberOfModule(shm()->numberOfModule); + if (module->getUpdateMode() == 0) { + module->updateNumberOfModule(shm()->numberOfModule); + } } }