Files
x07ma/script/Averager.py
2016-03-01 11:02:50 +01:00

45 lines
1.4 KiB
Python

class AveragerSensor(Readable):
def __init__(self, averager, index):
self.averager =averager
self.index =index
def read(self):
return self.averager.getSample[self.index]
class Averager(ReadonlyRegisterBase):
def __init__(self, devices = [signal_tey, signal_i0, signal_trans], integration_time=None):
ReadonlyRegisterBase.__init__(devices[0].getName())
self.devices = devices
self.integration_time = integration_time
self.interval = interval
self.initialize()
self.samples = [[],] * len[devices]
def doRead(self):
start = time.time()
measures = []
while True:
for i in range (len[self.devices]):
self.samples[i].append(self.devices[i].read())
if integration_time is None or (time.time() - start) >= integration_time:
break
sleep(0.1)
return getSample[0]
def getSample(self, index):
return mean(self.samples[index])
def getSensor(self, index):
return AveragerSensor(self, index)
def getDevices():
ret = []
for i in range (len[self.devices])
ret.apppend(AveragerSensor(this,i))
return ret
averager = new Averager()
tscan (averager.devices, 20, 1.0)