Files
dev/script/test/TestGenerator2.py
2019-03-20 13:52:00 +01:00

57 lines
1.8 KiB
Python

###################################################################################################
# Demonstrate use of Vector Scan: one or multiple positioners set with a list or generator.
###################################################################################################
#1D vector scan, positions in a list
vector = [ 1, 3, 5, 10, 25, 40, 45, 47, 49, 20, 2]
#r1 = vscan(inp,(out,sin),vector,False, 0.5, title = "1D Vector")
#1D vector scan, positions given by a generator
def gen():
num = 0.0
while num < 10:
yield num
num += 1
#v2 = vscan(ao1,(ai1,ai2),gen(),False, 0.5, title = "1D Generator")
vector = [ [1,1] , [1,2] , [1,3] , [1,4] ,
[1.5,2.5] ,
[2,1] , [2,2] , [2,3] , [2,4] ,
[2.5,2.5] ,
[3,1] , [3,2] , [3,3] , [3,4] , [2.1, 2.1] ]
r3 = vscan((m1,m2),(wf1, ai1,ai2),vector,False, 0.1, title = "2D Vector")
#2D vector scan, positions given by a generator
def gen():
a= 0
while abs(a) < len(vector):
yield vector[a]
a=a+1
#r2 = vscan((m1,m2),(ai1,ai2),gen(),False, 0.1, title = "2D Generator", range = [0.0,5.0, 0.0, 5.0])
def spiral_gen(radius, step, resolution=.1, angle=0.0, origin=[0.0, 0.0]):
d = 0.0
while d * math.hypot(math.cos(angle), math.sin(angle)) < radius:
cord=[]
cord.append(origin[0] + d * math.cos(angle))
cord.append(origin[1] + d * math.sin(angle))
yield(cord)
d+=step
angle+=resolution
spiral = spiral_gen(10, 0.1)
#for i in spiral_gen(10, 1, 0.1, 0.0, 0.0):
# print i
#r2 = vscan((m1,m2),(wf1, ai1,ai2),spiral,False, 0.1, title = "2D Generator", range = [-10.0,10.0, -10.0, 10.0])