renamed SATES21 -> SATES20

This commit is contained in:
2024-11-10 14:27:02 +01:00
parent 8501e2d038
commit fcd48fe411
13 changed files with 32 additions and 32 deletions

View File

@ -0,0 +1,8 @@
file "/ioc/data/SATES20-CPCL-DYNA/dynamic.template" {
pattern {
SYSTEM
}{
SATES20-DYNA
}
}

View File

@ -0,0 +1,24 @@
def load_data(fn):
try:
with open(fn) as f:
data = f.read().split("\n")
data = set(data)
data.discard("") #TODO
except FileNotFoundError:
data = set()
return data
def save_data(data, fn):
with open(fn, "w") as f:
data = "\n".join(sorted(data))
f.write(data)
def mk_db(data, fn):
with open(fn, "w") as f:
for name in data:
entry = f'record(stringin, "$(SYSTEM):{name}") {{}}'
f.write(entry)
f.write("\n")

View File

@ -0,0 +1,11 @@
import logging
log = logging.getLogger("dynaPV")
log.setLevel("INFO")
handler = logging.StreamHandler()
formatter = logging.Formatter("%(asctime)s %(name)s %(levelname)s: %(message)s")
handler.setFormatter(formatter)
log.addHandler(handler)

View File

@ -0,0 +1,38 @@
from epics import PV
from data import load_data, save_data, mk_db
from log import log
FN_ENTRIES = "/ioc/data/SATES20-CPCL-DYNA/entries"
FN_DB_TMPL = "/ioc/data/SATES20-CPCL-DYNA/dynamic.template"
def cb_new(value=None, **kwargs):
log.info(f"new: value={repr(value)} {kwargs}")
if not value:
return
data = load_data(FN_ENTRIES)
data.add(value)
save_data(data, FN_ENTRIES)
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("SATES20-DYNA:NEW")
pv_new.add_callback(cb_new)
pv_del = PV("SATES20-DYNA:DEL")
pv_del.add_callback(cb_del)

View File

@ -0,0 +1,8 @@
import signal
def handler(*args, **kwargs):
raise KeyboardInterrupt
signal.signal(signal.SIGTERM, handler)

View File

@ -0,0 +1,15 @@
from time import sleep, time
import pvs
import sigterm
from log import log
try:
while True:
sleep(5)
log.info("tick")
except KeyboardInterrupt:
log.info("bye")