From 891b649ed49ec9a74a21375fd5b88b5d9a2f75a2 Mon Sep 17 00:00:00 2001 From: Giulio Gaio <giulio.gaio@elettra.eu> Date: Thu, 4 Nov 2021 10:33:21 +0100 Subject: [PATCH] First release --- Makefile | 19 ++++++++++++ src/TestSaveGofRm.py | 72 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 Makefile create mode 100755 src/TestSaveGofRm.py diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..8e5751a --- /dev/null +++ b/Makefile @@ -0,0 +1,19 @@ +NAME = test-save-gof-rm-cli +MAIN = TestSaveGofRm.py + +DIRNAME = $(NAME:-cli=) +MODNAME = $(MAIN:.py=) +PY_FILES += $(wildcard src/*.py) + +default: bin ${PY_FILES} + @cp ${PY_FILES} bin/${DIRNAME} + @echo "#!/usr/bin/env python\nimport sys\nsys.path.append(sys.path[0]+'/${DIRNAME}')\nfrom ${MODNAME} import main\nif __name__ == '__main__':\n main()\n" > bin/${NAME} + @chmod +x bin/${NAME} bin/${DIRNAME}/${MAIN} + +bin: + @test -d $@ || mkdir -p $@/${DIRNAME} + +clean: + @rm -fr bin/ src/*~ + +.PHONY: clean diff --git a/src/TestSaveGofRm.py b/src/TestSaveGofRm.py new file mode 100755 index 0000000..2af1bb1 --- /dev/null +++ b/src/TestSaveGofRm.py @@ -0,0 +1,72 @@ +#!/usr/bin/python3 +# +# This script stores the image of a camera in a sequencer +# +# Usage: +# save-image [sequencer device] [ccd device] [image attribute] +# +# Example: +# save-image.py seq/save/mscrccd_ref_20gev_b1.1 sr/diagnostics/ccd_srpm.01 Image8 +# + + +from tango import * +import time, datetime +import sys, os + + +def main(): + + try: + # connect to devices + gof_dev = DeviceProxy('ecgofmasa5/gmbf/0') + dcct=DeviceProxy('sr/diagnostics/dcct_s4') + + # get date + today = datetime.date.today() + # get time + obj_now = datetime.datetime.now() + # format date-time + date_save = today.strftime("%Y-%m-%d") + '-' + str(obj_now.hour) + '-' + str(obj_now.minute) + '-' + str(obj_now.second) + # get machine energy + energy="{:.0f}Gev".format(dcct.Energy*10) + filename = "resp_mat_direct_horver_" + energy + "_" + date_save + ".mat" + path = "/runtime/site/ecgofmasa5/etc/" + # full path filename + path_filename = path + filename + + # store the response matrix in the gof master filesystem + gof_dev.command_inout("StoreRmGof",path_filename) + + # connect to database + db = Database() + + # get current rm file + rm_file = db.get_property("Gof","RespMatrixFile") + rm_file_list = rm_file['RespMatrixFile'] + + # get back rm file list + bck_rm_files=db.get_property("Gof","RespMatrixFileBck") + bck_rm_files_list = bck_rm_files["RespMatrixFileBck"] + + # append current rm file as the last element of the backup list + bck_rm_files_list.append(rm_file_list[0]) + # create a dictionary and store it in the backup list + bck_rm_files_list_new = {"RespMatrixFileBck":bck_rm_files_list} + db.put_property("Gof",bck_rm_files_list_new) + + # store the new response matrix as the default response matrix + rm_files_list_new = {"RespMatrixFile":[path_filename]} + db.put_property("Gof",rm_files_list_new) + + except: + print("Error saving gof default response matrix") + sys.exit(1) + + sys.exit(0) + + + +if __name__ == '__main__': + main() + -- GitLab