From 8097bf06ea05e14f59b57965a4745836890b875a Mon Sep 17 00:00:00 2001 From: lhdamiani Date: Thu, 15 Jul 2021 16:52:43 +0200 Subject: [PATCH 1/2] recv request without null terminator fix --- std-det-writer/src/main.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/std-det-writer/src/main.cpp b/std-det-writer/src/main.cpp index 710525b..6266756 100644 --- a/std-det-writer/src/main.cpp +++ b/std-det-writer/src/main.cpp @@ -54,11 +54,11 @@ int main (int argc, char *argv[]) char recv_buffer[8192]; while (true) { - zmq_recv(receiver, &recv_buffer, sizeof(recv_buffer), 0); - + auto nbytes = zmq_recv(receiver, &recv_buffer, sizeof(recv_buffer), 0); rapidjson::Document document; - if (document.Parse(recv_buffer).HasParseError()) { - continue; + if (document.Parse(recv_buffer, nbytes).HasParseError()) { + std::string error_str(recv_buffer, nbytes); + throw runtime_error(error_str); } const string output_file = document["output_file"].GetString(); @@ -66,7 +66,6 @@ int main (int argc, char *argv[]) const int run_id = document["run_id"].GetInt(); const int i_image = document["i_image"].GetInt(); const int n_images = document["n_images"].GetInt(); - // i_image == n_images -> end of run. if (i_image == n_images) { writer.close_run(); @@ -85,7 +84,7 @@ int main (int argc, char *argv[]) // i_image == 0 -> we have a new run. if (i_image == 0) { auto image_meta = (ImageMetadata*) - image_buffer.get_slot_meta(image_id); + image_buffer.get_slot_meta(image_id); writer.open_run(output_file, run_id, @@ -108,7 +107,7 @@ int main (int argc, char *argv[]) // Only the first instance writes metadata. if (i_writer == 0) { auto image_meta = (ImageMetadata*) - image_buffer.get_slot_meta(image_id); + image_buffer.get_slot_meta(image_id); writer.write_meta(run_id, i_image, image_meta); } From c0574fbc09d602ca787aa7c79e8d7bbe3ec6018e Mon Sep 17 00:00:00 2001 From: lhdamiani Date: Thu, 15 Jul 2021 16:53:15 +0200 Subject: [PATCH 2/2] eiger control scripts improvements --- eiger/sf-daq-4/control/kill_controls.sh | 2 +- eiger/sf-daq-4/control/start_acquisition.sh | 28 ------------- eiger/sf-daq-4/control/start_requests.py | 42 ++++++++++++++++++++ eiger/test/trimbit.py | 4 +- eiger/test/trimbits.sn000 | Bin 1048648 -> 2097224 bytes 5 files changed, 45 insertions(+), 31 deletions(-) delete mode 100755 eiger/sf-daq-4/control/start_acquisition.sh create mode 100644 eiger/sf-daq-4/control/start_requests.py diff --git a/eiger/sf-daq-4/control/kill_controls.sh b/eiger/sf-daq-4/control/kill_controls.sh index e93e2f5..ebcd39d 100755 --- a/eiger/sf-daq-4/control/kill_controls.sh +++ b/eiger/sf-daq-4/control/kill_controls.sh @@ -47,7 +47,7 @@ if (( ${ASSEMBLER} == 1 )); then fi if (( ${WRITER} == 1 )); then - echo "Killing assembler..." + echo "Killing writer..." ps aux | grep mpiexec | awk 'NR > 1 { print prev } { prev = $2 }' | xargs -I{} kill {} fi diff --git a/eiger/sf-daq-4/control/start_acquisition.sh b/eiger/sf-daq-4/control/start_acquisition.sh deleted file mode 100755 index ad2a48b..0000000 --- a/eiger/sf-daq-4/control/start_acquisition.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -ENDPOINT="http://127.0.0.1:5000" -SYNC="/write_sync" -ASYNC="/write_async" -KILL="/kill" -HEADER="Content-Type:application/json" -N_IMAGES=500 -SOURCES="eiger" -# Define a timestamp function -timestamp() { - date +"%T" # current time -} -generate_post_data() -{ - cat <T1!pI zEb}a~%qr__vdu309CFMl=jUa-kL5j<@_qf=<8xC42oNAZfB*pk1PBlyK%f(WL8R^E zQoaoY2oNAZfB*pk1PBly&LwS}#Py@jKNvxTdLyM?EPw}r2Te~N$y04wGU@&Et;