Added routines to get only the PVs from snapshot file and to get the data by these PVS. This avoids crashed of too many files open when used often
This commit is contained in:
@ -1,4 +1,6 @@
|
||||
from .snap import getSnap
|
||||
from .snap import getSnapPV
|
||||
from .snap import getSnapVal
|
||||
from .snap import saveSnap
|
||||
from .snap import loadSnap
|
||||
from .snap import parseSnapShotReqYAML
|
||||
|
@ -61,6 +61,24 @@ def getSnap(pvs=None):
|
||||
ret[pv]=float(val[i])
|
||||
return ret
|
||||
|
||||
def getSnapPV(pvs=None):
|
||||
if not isinstance(pvs,list):
|
||||
pvs = parseSnapShotReqYAML(pvs)
|
||||
if not pvs:
|
||||
return
|
||||
return [epics.PV(pvname,auto_monitor = False) for pvname in pvs]
|
||||
|
||||
|
||||
def getSnapVal(pvs=None):
|
||||
if not pvs:
|
||||
return None
|
||||
ret={}
|
||||
val = [pv.value for pv in pvs]
|
||||
for i,pv in enumerate(pvs):
|
||||
if not val[i] is None: # filter out None values
|
||||
ret[pv.pvname]=float(val[i])
|
||||
return ret
|
||||
|
||||
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:
|
||||
|
Reference in New Issue
Block a user