Code owners
Assign users and groups as approvers for specific file changes. Learn more.
shutters.py 3.15 KiB
"""
main shutter and branch shutter functions
"""
from time import sleep
from epics import caget, caput
from .utilities import dateandtime, print_warning_message
##############################################################################################################
################################ main shutter ##############################
##############################################################################################################
def main_shutter_open():
"""
opens the main shutter
Previously: Open_MainShutter
"""
caput("PC:29ID:FES_OPEN_REQUEST.VAL",1, wait=True,timeout=180000)
print("Opening Main Shutter...")
def main_shutter_close():
"""
closes the main shutter
Previously: Close_MainShutter
"""
caput("PC:29ID:FES_CLOSE_REQUEST.VAL",1,wait=True,timeout=18000)
print("Closing Main Shutter...")
def main_shutter_status():
"""
checks on the status of the main shutter
and returns shutter_open = True / False
"""
SS1=caget("EPS:29:ID:SS1:POSITION")
SS2=caget("EPS:29:ID:SS2:POSITION")
PS2=caget("EPS:29:ID:PS2:POSITION")
check=SS1*SS2*PS2
if check == 8:
shutter_open = True
else:
shutter_open = False
return shutter_open
def main_shutter_check_open():
"""
Checks main shutter is open, if not opens it"
Previously: Check_MainShutter
"""
while True:
shutter_open = main_shutter_status()
if shutter_open == False:
print("MAIN SHUTTER CLOSED !!!" , dateandtime())
main_shutter_open()
sleep(10)
else:
print("Shutter is now open" , dateandtime())
break
##############################################################################################################
################################ branch shutters ##############################
##############################################################################################################
def branch_shutter_status(branch,verbose=False):
"""
checks on the status of the main shutter
and returns shutter_open = True / False
"""
pvA="PA:29ID:S"+branch+"S_BLOCKING_BEAM.VAL"
pvB="PB:29ID:S"+branch+"S_BLOCKING_BEAM.VAL"
#"ON" = 1 => shutter open
status=caget(pvA)+caget(pvA)
if status == 2:
shutter_open=True
else:
shutter_open=False
if verbose:
status = 'Open' if shutter_open else 'Closed'
print(branch+"-shutter is "+status)
return shutter_open
def branch_shutter_close(branch):
"""
closes current branch shutter
Previously: Close_BranchShutter
"""
caput("PC:29ID:S"+branch+"S_CLOSE_REQUEST.VAL",1,wait=True,timeout=18000)
print("Closing "+branch+"-Shutter...")
def branch_shutter_open(branch):
"""
Opens current branch shutter
Previoulsy: Open_BranchShutter
"""
shutter_status = branch_shutter_status
if shutter_status:
print(branch+"-Shutter already open...")
else:
caput("PC:29ID:S"+branch+"S_OPEN_REQUEST.VAL",1,wait=True,timeout=18000)
print("Opening "+branch+"-Shutter...")