from jep import jproxy import random class WritableScalar(): def write(self, value): print ("Write: ", value) class ReadableScalar(): def read(self): print ("Read") return random.random() class ReadableWaveform(): def getSize(self): return 20 def read(self): ret = [] for i in range (self.getSize()): ret.append(random.random()) return ret class ReadableImage(): def read(self): ret = [] for i in range (self.getHeight()): ret.append([random.random()] * self.getWidth()) return to_array(ret, 'd') def getWidth(self): return 80 def getHeight(self): return 40 ws1 = jproxy(WritableScalar(), ['ch.psi.pshell.device.Writable']) rs1 = jproxy(ReadableScalar(), ['ch.psi.pshell.device.Readable']) rw1 = jproxy(ReadableWaveform(), ['ch.psi.pshell.device.Readable$ReadableArray']) ri1 = jproxy(ReadableImage(),['ch.psi.pshell.device.Readable$ReadableMatrix']) tscan(rs1, 10, 0.1) lscan(ws1, rs1, 0.0, 10.0, 10)