The following client operates a TangoMotor. Depending on the command line the current position is read or, if a destination is supplied, the motor is moved.
#!/usr/bin/python
#
from PyTango import *
import sys, time, termios
init = 0
def move_to( sps, newPos):
attr= sps.read_attribute( "UnitLimitMin")
minPos = attr.value
attr = sps.read_attribute( "UnitLimitMax")
maxPos = attr.value
print " min ", minPos, ", max ", maxPos
if (newPos > maxPos or newPos < minPos):
print "\n Position", newPos, "outside limits", minPos, maxPos
return 0
posAttr = sps.read_attribute( "Position")
posAttr.value = newPos
sps.write_attribute( posAttr)
status = 1
while (sps.state() == DevState.MOVING):
print " Current position ",sps.read_attribute( "Position").value
time.sleep( 0.2)
return 1
#
# main
#
try :
sps = DeviceProxy( "//haso107XX:10000/pXX/tcpipmotorp10/exp.01")
if( len( sys.argv) == 1):
print " Current position ", sps.read_attribute( "Position").value
else:
move_to( sps, float(sys.argv[1]))
except Exception, inst :
print "Failed with exception !"
print sys.exc_info()[0]
print type(inst) # the exception instance
print inst.args # arguments stored in .args