From cb366284dd9129ec03466781a7c1fd15b4a11ac5 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Tue, 3 May 2011 20:09:51 +0200 Subject: [PATCH] finish DC part of module C --- software/modules/ModuleC.py | 116 +++++++++++++++++++------------- software/modules/ModuleC.ui | 29 ++++++++ software/modules/ModuleDebug.py | 1 - software/modules/ModuleDebug.ui | 3 + 4 files changed, 100 insertions(+), 49 deletions(-) diff --git a/software/modules/ModuleC.py b/software/modules/ModuleC.py index de488d1..febfa9a 100644 --- a/software/modules/ModuleC.py +++ b/software/modules/ModuleC.py @@ -25,6 +25,63 @@ class ModuleCWidget(QWidget): self.data3 = 100*[0.0] self.data4 = 100*[0.0] + self.mode = ['DC', 'L'] + + @pyqtSlot() + def on_radioAC_clicked(self): + self.mode[0] = 'AC' + self.setup_hw() + + @pyqtSlot() + def on_radioDC_clicked(self): + self.mode[0] = 'DC' + self.setup_hw() + + @pyqtSlot() + def on_radioL_clicked(self): + self.mode[1] = 'L' + self.setup_hw() + + @pyqtSlot() + def on_radioC_clicked(self): + self.mode[1] = 'C' + self.setup_hw() + + @pyqtSlot() + def on_radioLC_clicked(self): + self.mode[1] = 'LC' + self.setup_hw() + + @pyqtSlot() + def on_btnStart_clicked(self): + self.ui.btnStart.setEnabled(False) + self.ui.btnStop.setEnabled(True) + if self.mode == ['DC', 'L']: + self.dev.setout(1, 1) + if self.mode == ['DC', 'C']: + self.dev.setout(2, 1) + if self.mode == ['DC', 'LC']: + self.dev.setout(3, 1) + + @pyqtSlot() + def on_btnStop_clicked(self): + self.ui.btnStart.setEnabled(True) + self.ui.btnStop.setEnabled(False) + if self.mode == ['DC', 'L']: + self.dev.setout(1, 0) + if self.mode == ['DC', 'C']: + self.dev.setout(2, 0) + if self.mode == ['DC', 'LC']: + self.dev.setout(3, 0) + + def setup_hw(self): + if self.mode == ['DC', 'L']: + self.dev.switches(1<<0) + if self.mode == ['DC', 'C']: + self.dev.switches(1<<1) + if self.mode == ['DC', 'LC']: + self.dev.switches(1<<2) + def setup_scene(self, scene): scene.addLine(-5, 200-0, 260, 200-0) scene.addLine(0, 200+5, 0, 200-205) @@ -37,63 +94,25 @@ class ModuleCWidget(QWidget): scene.addSimpleText('1.0').moveBy(-40, 150-10) scene.addSimpleText('0.0').moveBy(-40, 200-10) - - def read_inputs(self): - r = self.dev.read() - i = r[6]/1023.0 * 3.3 - a = r[0]/1023.0 * 3.3 - b = r[1]/1023.0 * 3.3 - c = r[2]/1023.0 * 3.3 - + def tick_DC(self, u): self.data1.pop(0) - self.data2.pop(0) - self.data3.pop(0) - self.data4.pop(0) - self.data1.append(i) - self.data2.append(a) - self.data3.append(b) - self.data4.append(c) + self.data1.append(u) self.scene1 = QGraphicsScene() - self.scene2 = QGraphicsScene() - self.scene3 = QGraphicsScene() - self.scene4 = QGraphicsScene() self.setup_scene(self.scene1) - self.setup_scene(self.scene2) - self.setup_scene(self.scene3) - self.setup_scene(self.scene4) - - self.scene1.addSimpleText('[I]').moveBy(-39, 220-10) + self.scene1.addSimpleText('[U]').moveBy(-39, 220-10) path = QPainterPath() path.moveTo(0,200-self.data1[0]*50) for i in xrange(1,100): path.lineTo(2.5*(i+1), 200-self.data1[i]*50) self.scene1.addPath(path, QPen(QColor(0,0,255), 3)) - - self.scene2.addSimpleText('[A]').moveBy(-39, 220-10) - path = QPainterPath() - path.moveTo(0,200-self.data2[0]*50) - for i in xrange(1,100): - path.lineTo(2.5*(i+1), 200-self.data2[i]*50) - self.scene2.addPath(path, QPen(QColor(0,0,255), 3)) - - self.scene3.addSimpleText('[B]').moveBy(-39, 220-10) - path = QPainterPath() - path.moveTo(0,200-self.data3[0]*50) - for i in xrange(1,100): - path.lineTo(2.5*(i+1), 200-self.data3[i]*50) - self.scene3.addPath(path, QPen(QColor(0,0,255), 3)) - - self.scene4.addSimpleText('[C]').moveBy(-39, 220-10) - path = QPainterPath() - path.moveTo(0,200-self.data4[0]*50) - for i in xrange(1,100): - path.lineTo(2.5*(i+1), 200-self.data4[i]*50) - self.scene4.addPath(path, QPen(QColor(0,0,255), 3)) - self.ui.graph1.setScene(self.scene1) - self.ui.graph2.setScene(self.scene2) - self.ui.graph3.setScene(self.scene3) - self.ui.graph4.setScene(self.scene4) + + def read_inputs(self): + r = self.dev.read() + + if self.mode[0] == 'DC': + u = r[0]/1023.0 * 3.3 # change this if we change opamp + self.tick_DC(u) class ModuleC(): @@ -103,6 +122,7 @@ class ModuleC(): def start(self): self.widget.dev = Device() + self.widget.setup_hw() self.widget.timer.start(25) def stop(self): diff --git a/software/modules/ModuleC.ui b/software/modules/ModuleC.ui index 06655f5..0f83b1f 100644 --- a/software/modules/ModuleC.ui +++ b/software/modules/ModuleC.ui @@ -156,6 +156,35 @@ + + + + 10 + 240 + 81 + 31 + + + + Start + + + + + false + + + + 10 + 280 + 81 + 31 + + + + Stop + + diff --git a/software/modules/ModuleDebug.py b/software/modules/ModuleDebug.py index 6dcdd05..301b62b 100644 --- a/software/modules/ModuleDebug.py +++ b/software/modules/ModuleDebug.py @@ -27,7 +27,6 @@ class ModuleDebugWidget(QWidget): QObject.connect(self.ui.pushPin2, SIGNAL("clicked(bool)"), self.on_pins_changed) QObject.connect(self.ui.pushPin3, SIGNAL("clicked(bool)"), self.on_pins_changed) self.log = None - self.ui.pushLog.setEnabled(False) self.timer = QTimer() QObject.connect(self.timer, SIGNAL("timeout()"), self.read_inputs) diff --git a/software/modules/ModuleDebug.ui b/software/modules/ModuleDebug.ui index d008120..909393c 100644 --- a/software/modules/ModuleDebug.ui +++ b/software/modules/ModuleDebug.ui @@ -828,6 +828,9 @@ + + false + 210