Skip to content
Snippets Groups Projects
Commit f15c5bb1 authored by kpetersn's avatar kpetersn
Browse files

Added enable PV to allow the lab transform to be disabled.

git-svn-id: https://subversion.xray.aps.anl.gov/kmp/transform/trunk@351 f095f811-4e88-6c84-d33e-e382bdb4531c
parent 50452c0e
No related branches found
No related tags found
No related merge requests found
#setenv EPICS_DISPLAY_PATH /APSshare/epics/synApps_5_5/support/all_adl
medm -x -attach -macro "P=kmp2:,M1=m1,M2=m2,M3=m3" motor3x.adl &
medm -x -attach -macro "P=kmp3:,M1=m1,M2=m2,M3=m3" motor3x.adl &
sleep 4.0
medm -x -attach -macro "P=kmp2:,M1=m4,M2=m5,M3=m6" motor3x.adl &
medm -x -attach -macro "P=kmp2:,M1=lab:m1,M2=lab:m2,M3=lab:m3" motor3x.adl &
medm -x -attach -macro "P=kmp2:,M=m1" ~/epics/synAppsSVN/support/motor/motorApp/op/adl/motorx_all.adl &
medm -x -attach -macro "P=kmp2:lab:,M=m1" ~/epics/synAppsSVN/support/motor/motorApp/op/adl/motorx_all.adl &
medm -x -attach -macro "P=kmp3:,M1=m4,M2=m5,M3=m6" motor3x.adl &
medm -x -attach -macro "P=kmp3:,M1=lab:m1,M2=lab:m2,M3=lab:m3" motor3x.adl &
medm -x -attach -macro "P=kmp3:,M=m1" ~/epics/synAppsSVN/support/motor/motorApp/op/adl/motorx_all.adl &
medm -x -attach -macro "P=kmp3:lab:,M=m1" ~/epics/synAppsSVN/support/motor/motorApp/op/adl/motorx_all.adl &
......@@ -51,11 +51,13 @@ class myTransform(transform.transform):
return retval.tolist()[0]
if __name__ == "__main__":
prefix = 'kmp2:'
#!prefix = 'kmp3:'
#!prefix = 'kmp2:'
prefix = 'kmp3:'
labStr = 'lab'
realMotors = ["%s%s" % (prefix, x) for x in ('m1', 'm2', 'm3') ]
transformMotors = ["%s%s" % (prefix, x) for x in ('m4', 'm5', 'm6') ]
softMotors = ["%s%s" % (prefix, x) for x in ('lab:m1', 'lab:m2', 'lab:m3') ]
print realMotors, transformMotors, softMotors
MyTrans = myTransform(realMotors, transformMotors, softMotors)
softMotors = ["%s%s:%s" % (prefix, labStr, x) for x in ('m1', 'm2', 'm3') ]
enablePv = "%s%s:enable" % (prefix, labStr)
print realMotors, transformMotors, softMotors, enablePv
MyTrans = myTransform(realMotors, transformMotors, softMotors, enablePv)
MyTrans.main()
record(bo,"$(P)$(S):enable")
{
field(DESC,"Enable/disable transform")
field(ZNAM,"Disabled")
field(ONAM,"Enabled")
field(VAL, "1")
}
record(motor,"$(P)$(S):m1")
{
field(DTYP,"Soft Channel")
......
......@@ -4,7 +4,7 @@ import epics
from time import sleep
class transform:
def __init__(self, (m1, m2, m3), (t1, t2, t3), (tm1, tm2, tm3)):
def __init__(self, (m1, m2, m3), (t1, t2, t3), (tm1, tm2, tm3), enable):
"""
real motors (to be transformed): m1, m2, m3
transform motors: t1, t2, t3
......@@ -26,6 +26,7 @@ class transform:
self.abortFlag = False
self.initCompleteFlag = False
self.syncInProgress = False
### PVs to set
......@@ -73,6 +74,9 @@ class transform:
### PVs to monitor
# Calculation enable PV
self.enablePv = epics.PV(enable, callback=self.enableCallback)
# real motor RBV (for calculating transformed position)
self.m_rbv = []
for m in (m1, m2, m3):
......@@ -131,6 +135,14 @@ class transform:
### Callback functions (to be called when PV values change--only set flags that are watched in main loop)
def enableCallback(self, **kw):
if kw['value'] == 1:
self.enableFlag = True
print "Transform is enabled."
else:
self.enableFlag = False
print "Transform is diabled."
def driveCallback(self, **kw):
#!print "driveCallback:\n", " ", kw['pvname'], kw['value']
if self.initCompleteFlag == True and self.syncInProgress == False:
......@@ -321,33 +333,39 @@ class transform:
if self.abortFlag == True:
break
# The order of these if statements is important. The ones that appear first take precendence.
if self.reinitFlag == True:
#!print "idle: resyncing after reconnect"
#!print " self.reinitFlag = ", self.reinitFlag
self.resyncAfterReconnect()
if self.stopMotorsFlag == True:
#!print "idle: stop motors"
self.stopMotors()
if self.moveSoftMotorFlag == True:
#!print "idle: move motors"
self.moveMotors()
if self.dmovChangeFlag == True:
#!print "idle: update dmov"
self.updateDmov()
if self.updateReadbackFlag == True:
#!print "idle: update readback"
self.updateReadbacks()
if self.syncSoftTargetFlag == True:
#!print "idle: sync soft targets"
self.syncSoftTargets()
if self.enableFlag == True:
# The order of these if statements is important. The ones that appear first take precendence.
if self.reinitFlag == True:
#!print "idle: resyncing after reconnect"
#!print " self.reinitFlag = ", self.reinitFlag
self.resyncAfterReconnect()
if self.stopMotorsFlag == True:
#!print "idle: stop motors"
self.stopMotors()
if self.moveSoftMotorFlag == True:
#!print "idle: move motors"
self.moveMotors()
if self.dmovChangeFlag == True:
#!print "idle: update dmov"
self.updateDmov()
if self.updateReadbackFlag == True:
#!print "idle: update readback"
self.updateReadbacks()
if self.syncSoftTargetFlag == True:
#!print "idle: sync soft targets"
self.syncSoftTargets()
else:
pass
if __name__ == "__main__":
prefix = 'kmp2:'
labStr = 'lab'
realMotors = ["%s%s" % (prefix, x) for x in ('m1', 'm2', 'm3') ]
transformMotors = ["%s%s" % (prefix, x) for x in ('m4', 'm5', 'm6') ]
softMotors = ["%s%s" % (prefix, x) for x in ('lab:m1', 'lab:m2', 'lab:m3') ]
print realMotors, transformMotors, softMotors
MyTrans = transform(realMotors, transformMotors, softMotors)
softMotors = ["%s%s:%s" % (prefix, labStr, x) for x in ('m1', 'm2', 'm3') ]
enablePv = "%s%s:enable" % (prefix, labStr)
print realMotors, transformMotors, softMotors, enablePv
MyTrans = transform(realMotors, transformMotors, softMotors, enablePv)
MyTrans.main()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment