The following script moves a Spk motor. If no destination is supplied, the current position is displayed.
#!/usr/bin/python from PyTango import * import sys, time, termios init = 0 def inkey(): global init if( not init): init = 1 fd = sys.stdin.fileno() old = termios.tcgetattr( fd) new = termios.tcgetattr( fd) new[3] = new[3] & ~termios.ICANON & ~termios.ECHO # # VMIN - the minimum number of characters to be read # new[6] [termios.VMIN] = 0 # # VTIME - how long the driver waits for VMIN characters, unit 0.1s # new[6] [termios.VTIME] = 1 termios.tcsetattr( fd, termios.TCSADRAIN, new) sys.exitfunc = lambda: termios.tcsetattr( fd, termios.TCSADRAIN, old) key = sys.stdin.read(1) if( len( key) == 0): key = -1 else: key = ord( key) return key # # # def move_to( proxy, newPos): proxy.write_attribute( "Position", newPos) while( proxy.state() == DevState.MOVING): print " state ", proxy.state() print " Current position ",proxy.read_attribute( "Position").value time.sleep( 0.5) if inkey() == 32: print " stopping all moves" proxy.command_inout( "StopMove") return 0 # # main # try : proxy = DeviceProxy( "//haso107tk:10000/hires/exp/spk1") if( len( sys.argv) == 1): print " Position ", proxy.read_attribute( "Position").value else: move_to( proxy, 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