From bdc8b49716c61a9232d0c28e4128134adb969430 Mon Sep 17 00:00:00 2001 From: Sven Augustin Date: Fri, 15 Nov 2024 18:14:08 +0100 Subject: [PATCH] added clearing functionality --- SATES20-CPCL-DYNA/SATES20-CPCL-DYNA_fixed.template | 6 ++++++ SATES20-CPCL-DYNA/cfg/python/pvs.py | 13 +++++++++++++ 2 files changed, 19 insertions(+) diff --git a/SATES20-CPCL-DYNA/SATES20-CPCL-DYNA_fixed.template b/SATES20-CPCL-DYNA/SATES20-CPCL-DYNA_fixed.template index 8c7a2fb..3206989 100644 --- a/SATES20-CPCL-DYNA/SATES20-CPCL-DYNA_fixed.template +++ b/SATES20-CPCL-DYNA/SATES20-CPCL-DYNA_fixed.template @@ -23,6 +23,12 @@ record(bi, "$(SYSTEM):REMOVE") { field(ONAM, "proc") } +record(bi, "$(SYSTEM):CLEAR") { + field(DESC, "Remove all currently defined PVs") + field(ZNAM, "idle") + field(ONAM, "proc") +} + record(waveform, "$(SYSTEM):LIST") { field(DESC, "List of currently defined PVs") field(FTVL, "CHAR") diff --git a/SATES20-CPCL-DYNA/cfg/python/pvs.py b/SATES20-CPCL-DYNA/cfg/python/pvs.py index eb02152..c2c5f8f 100644 --- a/SATES20-CPCL-DYNA/cfg/python/pvs.py +++ b/SATES20-CPCL-DYNA/cfg/python/pvs.py @@ -46,12 +46,25 @@ def cb_remove(value=None, **kwargs): pv_list.put(mk_printable_data(data)) +@toggle +def cb_clear(value=None, **kwargs): + log.info(f"clear: {kwargs}") + data = {} + save_data(data, FN_ENTRIES) + mk_db(data, FN_DB_TMPL) + log.info(f"data: {data}") + pv_list.put(mk_printable_data(data)) + + pv_add = PV("SATES20-DYNA:ADD") pv_add.add_callback(cb_add) pv_remove = PV("SATES20-DYNA:REMOVE") pv_remove.add_callback(cb_remove) +pv_clear = PV("SATES20-DYNA:CLEAR") +pv_clear.add_callback(cb_clear) + def mk_printable_data(data): return "\n".join(f"{k} ({v})" for k, v in sorted(data.items()))