New ScreenPanel
This commit is contained in:
55
script/test/TestPyArray.py
Executable file
55
script/test/TestPyArray.py
Executable file
@@ -0,0 +1,55 @@
|
||||
def lscan(writables, readables, start, end, steps, latency=0.0, relative=False, passes=1, zigzag=False, before_read=None, after_read=None, title=None):
|
||||
"""Line Scan: positioners change together, linearly from start to end positions.
|
||||
|
||||
Args:
|
||||
writables(list of Writable): Positioners set on each step.
|
||||
readables(list of Readable): Sensors to be sampled on each step.
|
||||
start(list of float): start positions of writables.
|
||||
end(list of float): final positions of writables.
|
||||
steps(int or float or list of float): number of scan steps (int) or step size (float).
|
||||
relative (bool, optional): if true, start and end positions are relative to
|
||||
current at start of the scan
|
||||
latency(float, optional): settling time for each step before readout, defaults to 0.0.
|
||||
passes(int, optional): number of passes
|
||||
zigzag(bool, optional): if true writables invert direction on each pass.
|
||||
before_read (function, optional): callback on each step, before each readout. Callback may have as
|
||||
optional parameters list of positions.
|
||||
after_read (function, optional): callback on each step, after each readout. Callback may have as
|
||||
optional parameters a ScanRecord object.
|
||||
title(str, optional): plotting window name.
|
||||
|
||||
Returns:
|
||||
ScanResult object.
|
||||
|
||||
"""
|
||||
latency_ms=int(latency*1000)
|
||||
writables=to_list(string_to_obj(writables))
|
||||
readables=to_list(string_to_obj(readables))
|
||||
start=to_list(start)
|
||||
end=to_list(end)
|
||||
if type(steps) is float or is_list(steps):
|
||||
steps = to_list(steps)
|
||||
scan = LineScan(writables,readables, start, end , steps, relative, latency_ms, passes, zigzag)
|
||||
scan.before_read=before_read
|
||||
scan.after_read=after_read
|
||||
scan.setPlotTitle(title)
|
||||
scan.start()
|
||||
ret = scan.getResult()
|
||||
return ret
|
||||
|
||||
|
||||
a= lscan(inp, (sin,out), 0, 4, 10, 0.1)
|
||||
|
||||
x = a.getPositions(0)
|
||||
y= a.getReadable(0)
|
||||
|
||||
|
||||
|
||||
plt = plot(None,name="data")[0]
|
||||
plt.addSeries(LinePlotSeries("1"))
|
||||
plt.addSeries(LinePlotSeries("2"))
|
||||
plt.getSeries(0).setData(x,y)
|
||||
plt.getSeries(1).setData(list(x), list(y))
|
||||
plt.getSeries(2).setData(to_array(x,'d'), to_array(y,'d'))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user