41 lines
1.0 KiB
Python
41 lines
1.0 KiB
Python
class Image(ReadonlyRegisterBase, ReadonlyRegisterMatrix):
|
|
def doRead(self):
|
|
time.sleep(0.001)
|
|
self.val = to_array(self.calc(), 'd')
|
|
return self.val
|
|
|
|
def getWidth(self):
|
|
return len(self.take(-1)[0])
|
|
|
|
def getHeight(self):
|
|
return len(self.take(-1))
|
|
|
|
class SinusoidImage(Image):
|
|
def calc(self):
|
|
(width, height) = (200, 100)
|
|
ret = []
|
|
x = random.random();
|
|
base = []
|
|
for i in range (width):
|
|
base.append( math.sin(x))
|
|
x = x + 0.05
|
|
for i in range (height):
|
|
noise = (random.random() - 0.5)/5.0
|
|
ret.append([x+noise for x in base])
|
|
return ret
|
|
|
|
def calc(self):
|
|
(width, height) = (200, 100)
|
|
ret = []
|
|
for i in range (height):
|
|
ret.append([0] * width)
|
|
return ret
|
|
|
|
add_device(SinusoidImage("im1"), True)
|
|
p=show_panel(im1)
|
|
p.setAsyncUpdates(True)
|
|
im1.polling=200
|
|
|
|
add_device(RegisterMatrixSource("src1", im1), True)
|
|
p=show_panel(src1)
|