Files
dev/script/cpy/TestJProxy2.py
2023-05-01 11:28:04 +02:00

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)