Client examples

from PyTango import *
import sys
import time

def get_nbsliders(absorbercontroller):
    """The get_nbsliders function is used to read the number of sliderss."""
        
    prop = absorbercontroller.get_property(['NbSliders'])        
    for v in prop['NbSliders']:        
        nb_sliders = v
    print "Number of sliders:"    
    print nb_sliders


def set_slidersToMoveIn(absorbercontroller, sliders):
    """The set_slidersToMoveIn function is used to select the sliders that will go to the IN by performing the next movement."""
    
    values = []
    for p in sliders:
        values.append(p)
    absorbercontroller.write_attribute("SetIn",values)


def get_slidersToMoveIn(absorbercontroller):
    """The get_slidersToMoveIn function is used to read the sliders that will go to the IN by performing the next movement."""
    
    dim_x = absorbercontroller.read_attribute("SetIn").dim_x
    if dim_x > 0:
        sliders_inout = absorbercontroller.SetIn
        print "Sliders to move In (flaged to 1):"
        for slider in sliders_inout:
            print slider

def get_slidersIn(absorbercontroller):
    """The get_statusIn function is used to read the status of the sliders (1 IN, 0 OUT)."""
    dim_x = absorbercontroller.read_attribute("SlidersIn").dim_x
    if dim_x > 0:
        sliders_inout = absorbercontroller.SlidersIn
        print "Sliders IN (flaged to 1):"
        for slider in sliders_inout:
            print slider

def get_slidersOut(absorbercontroller):
    """The get_statusOut function is used to read the status of the sliders (0 IN, 1 OUT)."""
    dim_x = absorbercontroller.read_attribute("SlidersOut").dim_x
    if dim_x > 0:
        sliders_inout = absorbercontroller.SlidersOut
        print "Sliders OUT (flaged to 1):"
        for slider in sliders_inout:
            print slider
                
def get_statusSliders(absorbercontroller):
    """The get_statusSliders function is used to read the status of the sliders (1 Error)."""
    
    dim_x = absorbercontroller.read_attribute("StatusSliders").dim_x
    if dim_x > 0:
        sliders_status = absorbercontroller.StatusSliders
        print "Status sliders (1 if error):"
        for slider in sliders_status:
            print slider
            
def get_FlagError(absorbercontroller):
    """The get_FlagError  function returns 1 if there is any slider in error"""

    print "Error flag (1 if error):"
    print absorbercontroller.FlagError

def get_FlagMovementOK(absorbercontroller):
    """The get_FlagMovementOK  function returns 1 if the last movement was smoothly done"""

    print "Movement flag (1 if last movement smoothly done):"  
    print absorbercontroller.FlagMovementOK

def set_position(absorbercontroller,position):
    """The set_position function is used to move the sliders to the given position  (12 bits in decimal)."""
    absorbercontroller.write_attribute("Position",position)
        
def get_position(absorbercontroller):
    """The get_position function is used to read the current position (12 bits in decimal)."""
    print "Current position (decimal):"
    print absorbercontroller.Position
                
def move(absorbercontroller):
    """The move function is used to perform the movement of the sliders"""
    
    absorbercontroller.Move()


#
# main
#
try :
    absorbercontroller = DeviceProxy( "//haso111n:10000/test/absorber/1")
    
    if( len( sys.argv) == 1):
        get_nbsliders(absorbercontroller)
        get_position(absorbercontroller)
        get_slidersToMoveIn(absorbercontroller)
        get_slidersIn(absorbercontroller)
        get_slidersOut(absorbercontroller)
        get_statusSliders(absorbercontroller)
        get_FlagError(absorbercontroller)
        get_FlagMovementOK(absorbercontroller)
        print "                 "
        print "Run 'python absorbercontroller.py help' to see program options"
        print "                 "
    else:
        if(sys.argv[1] == "help"):
            print "Usage:"
            print "-> to perform movement"
            print "python absorbercontroller.py move"
            print "-> to move sliders to the given position"
            print "python absorbercontroller.py setPosition x"
            print "where x is the decimal representation of 12 bits (1-> move in)"
            print "-> to set sliders to move"
            print "python absorbercontroller.py set2move x y z ..."
            print "where  'x, y, z ...'  would be 0's or 1's"
            print "depending on the sliders set for moving in"
            print "-> to get information and status"
            print "python absorbercontroller.py"
            
        if(sys.argv[1] == "move"):
            print "Moving"
            move(absorbercontroller)
        elif(sys.argv[1] == "set2move"):
            print "Set sliders to move in "
            i = 0
            values = []
            for lens in sys.argv:
                if(i > 1):
                    values.append(int(sys.argv[i]))
                i = i + 1
            print values
            set_slidersToMoveIn(absorbercontroller,values)
        elif(sys.argv[1] == "setPosition"):
            print "Moving sliders"
            print sys.argv[2]
            set_position(absorbercontroller,int(sys.argv[2]))
        else:
            print "Run 'python absorbercontroller.py help' to see program options"
                    
                 
    
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