49 lines
1013 B
Python
Executable File
49 lines
1013 B
Python
Executable File
import ch.psi.pshell.epics.CAS as CAS
|
|
|
|
|
|
|
|
class ScanDevice(ReadonlyAsyncRegisterBase, ReadonlyRegisterArray):
|
|
def getSize(self):
|
|
global scan_result
|
|
return len(self.take())
|
|
|
|
def append(self, value):
|
|
c = self.take()
|
|
c.append(value)
|
|
self.set(c)
|
|
|
|
def set(self, value):
|
|
self.onReadout(to_array(value, 'd'))
|
|
|
|
|
|
|
|
if get_device("scan_pos") is None:
|
|
add_device(ScanDevice("scan_pos"), True)
|
|
add_device(ScanDevice("scan_val"), True)
|
|
scan_pos.set([])
|
|
scan_val.set([])
|
|
|
|
cas1 = CAS("PSHELL:scanpos",scan_pos, "double")
|
|
cas2 = CAS("PSHELL:scanval",scan_val, "double")
|
|
cas3 = CAS("PSHELL:var",ai1)
|
|
|
|
scan_pos.set([])
|
|
scan_val.set([])
|
|
|
|
|
|
|
|
scan_pos.set([])
|
|
scan_val.set([])
|
|
|
|
def after(rec):
|
|
scan_pos.append(rec.positions[0])
|
|
scan_val.append(rec.values[0])
|
|
|
|
res = lscan(ao1, ai1, 0, 40, 40, 0.1, after_read = after)
|
|
#scan_pos.set(res.getPositions(0))
|
|
#scan_val.set(res.getReadable(0))
|
|
|
|
set_return(res.print())
|
|
|
|
|