Merge branch 'dev'
This commit is contained in:
@ -1,6 +1,11 @@
|
||||
from .snap import getSnap
|
||||
from .snap import saveSnap
|
||||
from .snap import loadSnap
|
||||
from .snap import parseSnapShotReqYAML
|
||||
from .save import saveDataset
|
||||
from .save import getDatasetFileName
|
||||
from .load import loadDataset
|
||||
from .elog import writeElog
|
||||
from .slic import SlicScan
|
||||
from .doocs import doocsread
|
||||
from .doocs import doocswrite
|
||||
|
@ -57,15 +57,14 @@ def getSnap(pvs=None):
|
||||
ret={}
|
||||
val = epics.caget_many(pvs)
|
||||
for i,pv in enumerate(pvs):
|
||||
if val[i]: # filter out None values
|
||||
if not val[i] is None: # filter out None values
|
||||
ret[pv]=float(val[i])
|
||||
# epics.ca.clear_cache()
|
||||
return ret
|
||||
|
||||
def saveSnap(pvs={},label="", comment = "generated by application"):
|
||||
def saveSnap(pvs={},label="", comment = "generated by application",reqfile = "SF_settings.yaml"):
|
||||
filename = datetime.datetime.now().strftime('/sf/data/applications/snapshot/SF_settings_%Y%m%d_%H%M%S.snap')
|
||||
with open(filename,'w') as fid:
|
||||
fid.write('#{"labels":["%s"],"comment":"%s", "machine_parms":{}, "save_time": 0.0, "req_file_name": "SF_settings.yaml"}\n' % (label,comment))
|
||||
fid.write('#{"labels":["%s"],"comment":"%s", "machine_parms":{}, "save_time": 0.0, "req_file_name": "%s"}\n' % (label,comment,reqfile))
|
||||
for key in pvs.keys():
|
||||
if isinstance(pvs[key],int):
|
||||
fid.write('%s,{"val": %d}\n' % (key,pvs[key]))
|
||||
@ -73,6 +72,21 @@ def saveSnap(pvs={},label="", comment = "generated by application"):
|
||||
fid.write('%s,{"val": %f}\n' % (key,pvs[key]))
|
||||
elif isinstance(pvs[key],str):
|
||||
fid.write('%s,{"val": %s}\n' % (key,pvs[key]))
|
||||
return filename
|
||||
|
||||
def loadSnap(filename):
|
||||
res={}
|
||||
with open(filename,'r') as fid:
|
||||
lines=fid.readlines()
|
||||
for line in lines[1:]:
|
||||
split = line.split(',')
|
||||
pv = split[0].strip()
|
||||
val = split[1].split('"val":')[1].split('}')[0]
|
||||
if '.' in val:
|
||||
res[pv]=float(val)
|
||||
else:
|
||||
res[pv]= val
|
||||
return res
|
||||
|
||||
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
from .zmqbase import ZMQBase
|
||||
from .serverbase import ServerBase
|
||||
from .simplecapture import SimpleCapture
|
||||
|
||||
|
||||
|
@ -36,6 +36,9 @@ class ZMQBase:
|
||||
self.logger.info("Watchdog server came online")
|
||||
self.serverIsOffline=False
|
||||
if check:
|
||||
if reply['action'] == 'quit':
|
||||
client.close()
|
||||
context.term()
|
||||
return (reply['action'] == 'quit')
|
||||
else:
|
||||
self.logger.warning("Malformed reply from server")
|
||||
@ -49,6 +52,7 @@ class ZMQBase:
|
||||
if not self.serverIsOffline:
|
||||
self.logger.info("Watchdog server seems to be offline")
|
||||
self.serverIsOffline=True
|
||||
context.term()
|
||||
return False
|
||||
|
||||
# Create new connection
|
||||
|
Reference in New Issue
Block a user