From b2699466d9c451a5fbca7f89d6b0bcd22e7ba5cf Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Sat, 9 Nov 2024 20:34:36 +0100 Subject: [PATCH] added PV delete functionality --- SATES21-CPCL-DYNA/SATES21-CPCL-DYNA_fixed.template | 6 ++++++ SATES21-CPCL-DYNA/cfg/python/data.py | 1 + SATES21-CPCL-DYNA/cfg/python/pvs.py | 12 ++++++++++++ 3 files changed, 19 insertions(+) diff --git a/SATES21-CPCL-DYNA/SATES21-CPCL-DYNA_fixed.template b/SATES21-CPCL-DYNA/SATES21-CPCL-DYNA_fixed.template index 5513d55..02e73f2 100644 --- a/SATES21-CPCL-DYNA/SATES21-CPCL-DYNA_fixed.template +++ b/SATES21-CPCL-DYNA/SATES21-CPCL-DYNA_fixed.template @@ -8,3 +8,9 @@ record(stringin, "$(SYSTEM):NEW") { field(SCAN, "Passive") } +record(stringin, "$(SYSTEM):DEL") { + field(DESC, "Delete") + field(VAL, "") + field(SCAN, "Passive") +} + diff --git a/SATES21-CPCL-DYNA/cfg/python/data.py b/SATES21-CPCL-DYNA/cfg/python/data.py index 228c60b..18ace09 100644 --- a/SATES21-CPCL-DYNA/cfg/python/data.py +++ b/SATES21-CPCL-DYNA/cfg/python/data.py @@ -4,6 +4,7 @@ def load_data(fn): with open(fn) as f: data = f.read().split("\n") data = set(data) + data.discard("") #TODO except FileNotFoundError: data = set() return data diff --git a/SATES21-CPCL-DYNA/cfg/python/pvs.py b/SATES21-CPCL-DYNA/cfg/python/pvs.py index 87bcc27..abc1fc1 100644 --- a/SATES21-CPCL-DYNA/cfg/python/pvs.py +++ b/SATES21-CPCL-DYNA/cfg/python/pvs.py @@ -18,9 +18,21 @@ def cb_new(value=None, **kwargs): mk_db(data, FN_DB_TMPL) log.info(f"data: {sorted(data)}") +def cb_del(value=None, **kwargs): + log.info(f"del: value={repr(value)} {kwargs}") + if not value: + return + data = load_data(FN_ENTRIES) + data.discard(value) + save_data(data, FN_ENTRIES) + mk_db(data, FN_DB_TMPL) + log.info(f"data: {sorted(data)}") + pv_new = PV("SATES21-DYNA:NEW") pv_new.add_callback(cb_new) +pv_del = PV("SATES21-DYNA:DEL") +pv_del.add_callback(cb_del)