add files and simulated modes
This commit is contained in:
70
backlight.py
Executable file
70
backlight.py
Executable file
@@ -0,0 +1,70 @@
|
||||
#!/usr/bin/env python
|
||||
# *-----------------------------------------------------------------------*
|
||||
# | |
|
||||
# | Copyright (c) 2022 by Paul Scherrer Institute (http://www.psi.ch) |
|
||||
# | Based on Zac great first implementation |
|
||||
# | Author Thierry Zamofing (thierry.zamofing@psi.ch) |
|
||||
# *-----------------------------------------------------------------------*
|
||||
|
||||
import logging
|
||||
_log=logging.getLogger(__name__)
|
||||
import epics
|
||||
|
||||
#from app_config import settings
|
||||
#from app_utils import assert_motor_positions
|
||||
|
||||
class Backlight(object):
|
||||
def __init__(self, prefix: str='SAR-EXPMX:MOT_BLGT'):
|
||||
if prefix is None:
|
||||
self._sim={'pos':'out'}
|
||||
_log.info('simulated mode:{}'.format(self._sim))
|
||||
return #simulated mode
|
||||
self._mot = epics.Motor(prefix)
|
||||
self._pos = {'in':-29000,'out':0}
|
||||
|
||||
def is_pos(self,strPos):
|
||||
try:
|
||||
m=self._mot
|
||||
except AttributeError:
|
||||
_log.info('simulated mode:{}'.format(strPos))
|
||||
return self._sim['pos']==strPos
|
||||
m.refresh()
|
||||
return abs(m.readback - self._pos[strPos]) < 10
|
||||
|
||||
def move(self, strPos, wait=False):
|
||||
try:
|
||||
m=self._mot
|
||||
except AttributeError:
|
||||
_log.info('simulated mode:{}'.format(strPos))
|
||||
self._sim['pos']=strPos
|
||||
return
|
||||
m=self._mot
|
||||
_log.debug("backlight to {}".format(strPos))
|
||||
target=self._pos[strPos]
|
||||
m.move(target, ignore_limits=True, wait=wait)
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import time,os
|
||||
import argparse
|
||||
logging.basicConfig(level=logging.DEBUG,format='%(levelname)s:%(module)s:%(lineno)d:%(funcName)s:%(message)s ')
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('-m', '--mode', help='mode string with characters: "frgbka" for front,red,green,blue,back,all')
|
||||
parser.add_argument("-t", "--test", help="test sequence", action="store_true")
|
||||
|
||||
args = parser.parse_args()
|
||||
os.environ['EPICS_CA_ADDR_LIST'] = '129.129.244.255 sf-saresc-cagw.psi.ch:5062 sf-saresc-cagw.psi.ch:5066'
|
||||
|
||||
_log.debug(args)
|
||||
bl = Backlight()
|
||||
if args.test:
|
||||
bl.move('in')
|
||||
time.sleep(2)
|
||||
bl.move('out')
|
||||
time.sleep(2)
|
||||
bl.move('in')
|
||||
time.sleep(2)
|
||||
bl.move('out')
|
||||
time.sleep(2)
|
||||
Reference in New Issue
Block a user