45 lines
1.3 KiB
Python
Executable File
45 lines
1.3 KiB
Python
Executable File
import ch.psi.pshell.device.ReadonlyRegisterBase as ReadonlyRegisterBase
|
|
import ch.psi.pshell.device.ReadonlyRegister.ReadonlyRegisterArray as ReadonlyRegisterArray
|
|
|
|
class Mean(Readable):
|
|
def __init__(self, dev):
|
|
self.dev =dev
|
|
|
|
def read(self):
|
|
return mean(self.dev.take())
|
|
|
|
class Variance(Readable):
|
|
def __init__(self, dev):
|
|
self.dev =dev
|
|
|
|
def read(self):
|
|
return variance(self.dev.take())
|
|
|
|
class Measures(ReadonlyRegisterBase, ReadonlyRegisterArray):
|
|
def __init__(self, dev, count, interval=0):
|
|
self.dev = dev
|
|
self.count = count
|
|
self.interval = interval
|
|
self.initialize()
|
|
|
|
def getSize(self):
|
|
return self.count
|
|
|
|
def doRead(self):
|
|
measures = []
|
|
for i in range(self.count):
|
|
measures.append(self.dev.read())
|
|
if self.interval>0 and i<(self.count-1):
|
|
time.sleep(self.interval)
|
|
return measures
|
|
|
|
|
|
def average(dev, count, interval=0.0):
|
|
#av = Measures(dev, count, interval)
|
|
#return [av, Mean(av), Variance(av)]
|
|
av = Averager(dev, count, int(interval*1000))
|
|
av.initialize()
|
|
return [av, av.samples, av.variance]
|
|
|
|
res= lscan(inp, average(sin,5,0.1), 0, 40, 20, 0.1)
|