movevvc Demo

#!/usr/bin/env python
”'
demo for variable velocity contouring feature
”'
import sys, argparse, time
import PyTango
import HasyUtils

proxy = None

def pos( dest):
    ”'
    move to a unit position
    ”'
    print "--- pos to", dest, "slew", proxy.slewRate
    proxy.position = float(dest)
    while proxy.state() is PyTango.DevState.MOVING:
        print "pos", proxy.state(), proxy.position
        time.sleep(0.5)
        if HasyUtils.inkey() == 32:
            proxy.command_inout( "StopMove")
            return False
    print "pos", proxy.state(), proxy.position
    return True

def demo():
    ”'
    move through 3 regions with different speeds
    ”'
    #
    # start the test at 0
    #
    if not pos( 0): return
    
    lst = [ "slew: 20000, position: 0.1",
            "slew: 30000, position: 0.3",
            "slew: 40000, position: 0.5"]
    proxy.command_inout( "movevvc", lst)

    while proxy.state() is PyTango.DevState.MOVING:
        print proxy.state(), proxy.position
        time.sleep(0.5)
        if HasyUtils.inkey() == 32:    # space bar interrupts move
            proxy.command_inout( "StopMove")

    print "DONE", proxy.state(), proxy.position
    #
    # go back to 0
    #
    pos( 0)
    return

    
def main():
    global proxy
    
    parser = argparse.ArgumentParser( 
        formatter_class = argparse.RawDescriptionHelpFormatter,
        description="Variable Velocity Contouring Demo")

    parser.add_argument('-x', dest="tst", action="store_true", help='execute a test')
    args = parser.parse_args()

    try:
        proxy = PyTango.DeviceProxy( "p99/motor/d1.65")
    except PyTango.DevFailed, e:
        PyTango.Except.print_exception(e)
        sys.exit()

    proxy.FlagClosedLoop = 0
    
    if args.tst: 
        return demo()

    parser.print_help()
    
if __name__ == "__main__":
    main()