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