68 lines
1.6 KiB
Python
68 lines
1.6 KiB
Python
from jep import jproxy
|
|
import random
|
|
|
|
|
|
"""
|
|
class proxy():
|
|
def __init__(self,cls):
|
|
self.cls=cls
|
|
def __call__(self, name):
|
|
return jproxy(self, self.cls)
|
|
|
|
@proxy(['ch.psi.pshell.device.Readable'])
|
|
"""
|
|
class Readable():
|
|
def __init__(self, name=None):
|
|
self.name=name
|
|
self.proxy=jproxy(self, ['ch.psi.pshell.device.Readable'])
|
|
|
|
def __call__(self):
|
|
return self.read()
|
|
|
|
def __getattribute__(self, name):
|
|
if name in ('proxy',):
|
|
return object.__getattribute__(self, name)
|
|
print(name)
|
|
return self.proxy.__getattribute__(name)
|
|
|
|
def getName(self):
|
|
if self.name :
|
|
return self.name
|
|
|
|
return str(self.__class__.__name__)
|
|
def read(self):
|
|
raise Exception ("Not implemented")
|
|
|
|
|
|
|
|
class ReadableScalar(Readable):
|
|
def read(self):
|
|
ret =random.random()
|
|
print (ret)
|
|
return ret
|
|
|
|
class ReadableWaveform(Readable):
|
|
|
|
def __call__(self):
|
|
return self.read()
|
|
def getSize(self):
|
|
return 20
|
|
def read(self):
|
|
ret = []
|
|
for i in range (self.getSize()):
|
|
ret.append(random.random())
|
|
return ret
|
|
def getName(self):
|
|
return "rw1"
|
|
|
|
|
|
|
|
#rs1 = jproxy(ReadableScalar(), ['ch.psi.pshell.device.Readable'])
|
|
rs1 = ReadableScalar()
|
|
#rw1 = jproxy(ReadableWaveform(), ['ch.psi.pshell.device.Readable$ReadableArray'])
|
|
#ri1 = jproxy(ReadableImage(), ['ch.psi.pshell.device.Readable$ReadableMatrix'])
|
|
#rw1=ReadableWaveform()
|
|
rs1.read()
|
|
#rw1.read()
|
|
#rs1 = jproxy(rs1 , ['ch.psi.pshell.device.Readable'])#
|
|
#tscan([rs1],10,0.1, save=False) |