Files
ncs/script/tutorial/15_Pararellization.py
boccioli_m 79e9aac763 Startup
2015-09-02 10:39:31 +02:00

52 lines
914 B
Python

"""
Using Pararellization API to execute tasks concurrently
"""
import traceback
#Simple parallization
def task1():
m1.moveRel(1.0)
return m1.getPosition()
def task2():
m2.moveRel(1.0)
return m1.getPosition()
def task3():
return ai1.read()
ret = parallelize(task1, task2, task3)
print ret
#Fork amd join
ret = fork(task1, task2, task3)
print ai1.read()
ret = join(ret)
print ret
#Functions with parameters
def moveRelative(motor, step):
print "Moving " + motor.getName() + " step = " + str(step)
motor.moveRel(step)
return motor.getPosition()
ret = parallelize((moveRelative,(m1,-2)), (moveRelative,(m2,-2)))
print ret
#Exception in parallel task is thrown back to script
try:
parallelize((moveRelative,(ai1,1)), (moveRelative,(ai2,1)))
except:
print "Ok, caught exception:"
traceback.print_exc()