diff --git a/software/device.py b/software/device.py index 0642917..3544fca 100644 --- a/software/device.py +++ b/software/device.py @@ -87,10 +87,12 @@ class Device: def read(self): if self.fake: from random import randint - return (randint(0,1023), # AD0 - randint(0,1023), randint(0,1023), randint(0,1023), # AD1 .. AD3 - randint(0,1023), randint(0,1023), randint(0,1023), # AD4 .. AD6 - randint(0,1), randint(0,1), randint(0,1)) # IO1 .. IO3 + from time import time + from math import sin + return (randint(0,1023), # AD0 + int(sin(time())*511+512), randint(0,1023), randint(0,1023), # AD1 .. AD3 + randint(0,1023), randint(0,1023), randint(0,1023), # AD4 .. AD6 + randint(0,1), randint(0,1), randint(0,1)) # IO1 .. IO3 else: i = self.epi.read(self.INSIZE) return (i[0] + (i[1]<<8), # AD0 diff --git a/software/modules/ModuleA.py b/software/modules/ModuleA.py index 8c6c599..acb7094 100644 --- a/software/modules/ModuleA.py +++ b/software/modules/ModuleA.py @@ -1,4 +1,8 @@ from PyQt4.QtGui import QWidget +from PyQt4.QtGui import QGraphicsScene +from PyQt4.QtGui import QPainterPath +from PyQt4.QtGui import QPen +from PyQt4.QtGui import QColor from PyQt4.QtCore import pyqtSlot from PyQt4.QtCore import SIGNAL from PyQt4.QtCore import QObject @@ -16,11 +20,46 @@ class ModuleAWidget(QWidget): self.timer = QTimer() QObject.connect(self.timer, SIGNAL("timeout()"), self.read_inputs) + self.scene = QGraphicsScene() + self.ui.graphU.setScene(self.scene) + + self.data = 100*[0.0] + def read_inputs(self): r = self.dev.read() - v = r[1]/1023.0 * 3.3 - self.ui.labelV.setText('%0.3f V' % v) - self.ui.progressV.setValue(1000*v) + u = r[1]/1023.0 * 3.3 + self.ui.labelU.setText('%0.3f V' % u) + self.ui.progressU.setValue(1000*u) + self.data.pop(0) + self.data.append(u) + + self.scene = QGraphicsScene() + self.scene.addLine(-10, 400-0, 610, 400-0) + self.scene.addLine(0, 400+10, 0, 400-410) + self.scene.addLine(-10, 400- 50, 10, 400- 50) + self.scene.addLine(-10, 400-100, 10, 400-100) + self.scene.addLine(-10, 400-150, 10, 400-150) + self.scene.addLine(-10, 400-200, 10, 400-200) + self.scene.addLine(-10, 400-250, 10, 400-250) + self.scene.addLine(-10, 400-300, 10, 400-300) + self.scene.addLine(-10, 400-350, 10, 400-350) + self.scene.addLine(-10, 400-400, 10, 400-400) + self.scene.addSimpleText('4.0').moveBy(-40, 0-10) + self.scene.addSimpleText('3.5').moveBy(-40, 50-10) + self.scene.addSimpleText('3.0').moveBy(-40, 100-10) + self.scene.addSimpleText('2.5').moveBy(-40, 150-10) + self.scene.addSimpleText('2.0').moveBy(-40, 200-10) + self.scene.addSimpleText('1.5').moveBy(-40, 250-10) + self.scene.addSimpleText('1.0').moveBy(-40, 300-10) + self.scene.addSimpleText('0.5').moveBy(-40, 350-10) + self.scene.addSimpleText('0.0').moveBy(-40, 400-10) + self.scene.addSimpleText('[U]').moveBy(-39, 430-10) + path = QPainterPath() + path.moveTo(0,400-self.data[0]*100) + for i in xrange(1,100): + path.lineTo(6*(i+1), 400-self.data[i]*100) + self.scene.addPath(path, QPen(QColor(0,0,255), 3)) + self.ui.graphU.setScene(self.scene) class ModuleA(): diff --git a/software/modules/ModuleA.ui b/software/modules/ModuleA.ui index c7be4f6..2995ab5 100644 --- a/software/modules/ModuleA.ui +++ b/software/modules/ModuleA.ui @@ -13,23 +13,23 @@ Form - + 80 10 - 691 - 481 + 701 + 511 - + 10 - 10 + 49 61 - 481 + 401 @@ -45,13 +45,13 @@ Qt::Vertical - + 10 - 500 + 460 61 - 21 + 61