From c4caacd2ed4ea080ea23ab559f99e60c41d1f656 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 3 Sep 2021 08:12:59 +0200 Subject: [PATCH] wip --- .../src/slsDetectorServer_funcs.c | 29 ++++++++++++++++++- slsDetectorSoftware/src/Module.cpp | 10 +++++-- 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index 29a05bf99..788f504f5 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -3725,7 +3725,34 @@ int program_fpga(int file_des) { return printSocketReadError(); LOG(logINFOBLUE, ("Program size is: %lld\n", (long long unsigned int)filesize)); - int fsize = filesize; + +/* + // delete old /var/tmp/file + char cmd[MAX_STR_LENGTH] = {0}; + memset(cmd, 0, MAX_STR_LENGTH); + sprintf(cmd, "rm -fr /var/tmp/tmp.pof"); + char retvals[MAX_STR_LENGTH] = {0}; + memset(retvals, 0, MAX_STR_LENGTH); + int success = executeCommand(cmd, retvals, logDEBUG1); + if (success == FAIL) { + ret = FAIL; + strcpy(mess, retvals); + // LOG(logERROR, (mess)); already printed in executecommand + } else { + memset(cmd, 0, MAX_STR_LENGTH); + sprintf(cmd, "free | grep Mem | cut -f 2");.// fix this + memset(retvals, 0, MAX_STR_LENGTH); + int success = executeCommand(cmd, retvals, logDEBUG1); + if (success == FAIL) { + ret = FAIL; + strcpy(mess, retvals); + // LOG(logERROR, (mess)); already printed in executecommand + } + } + Server_SendResult(file_des, INT32, NULL, 0); +*/ + + size_t fsize = filesize; fpgasrc = malloc(fsize); if (fpgasrc == NULL) { LOG(logERROR, ("Could not malloc\n")); diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index 94eedad01..f114144c3 100644 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -3417,9 +3417,15 @@ void Module::programFPGAviaBlackfin(std::vector buffer) { auto client = DetectorSocket(shm()->hostname, shm()->controlPort); client.Send(F_PROGRAM_FPGA); client.Send(filesize); - printf("%d%%\r", 0); - std::cout << std::flush; + // opening file fail + if (client.Receive() == FAIL) { + std::cout << '\n'; + std::ostringstream os; + os << "Detector " << moduleId << " (" << shm()->hostname << ")" + << " returned error: " << client.readErrorMessage(); + throw RuntimeError(os.str()); + } // sending program in parts of 2mb each uint64_t unitprogramsize = 0;