mirror of
https://github.com/brmlab/edubrm.git
synced 2025-06-09 05:14:01 +02:00
more fixes
This commit is contained in:
parent
1413db58fd
commit
19bd37a530
7 changed files with 285 additions and 58 deletions
|
@ -24,10 +24,8 @@ class ModuleAWidget(QWidget):
|
|||
|
||||
def read_inputs(self):
|
||||
r = self.dev.read()
|
||||
u = r[1]/1023.0 * 3.3 - 0.19
|
||||
if u < 0:
|
||||
u = 0
|
||||
self.dev.pwm(1, int(u*65536/3))
|
||||
u = r[1]/1023.0 * 3.3
|
||||
self.dev.pwm(1, int(u*65536.0/3.3))
|
||||
self.ui.labelU.setText('%0.3f V' % u)
|
||||
self.ui.progressU.setValue(1000*u)
|
||||
self.data.pop(0)
|
||||
|
@ -53,7 +51,7 @@ class ModuleAWidget(QWidget):
|
|||
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)
|
||||
self.scene.addSimpleText('[U/V]').moveBy(-39, 430-10)
|
||||
path = QPainterPath()
|
||||
path.moveTo(0,400-self.data[0]*100)
|
||||
for i in xrange(1,200):
|
||||
|
@ -70,6 +68,7 @@ class ModuleA():
|
|||
def start(self):
|
||||
self.widget.dev = Device()
|
||||
self.widget.timer.start(40)
|
||||
self.widget.data = 200*[0.0]
|
||||
|
||||
def stop(self):
|
||||
self.widget.timer.stop()
|
||||
|
|
BIN
software/modules/ModuleB-nobulb.png
Normal file
BIN
software/modules/ModuleB-nobulb.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.6 KiB |
|
@ -24,16 +24,14 @@ class ModuleBWidget(QWidget):
|
|||
self.scene_off.addPixmap(QPixmap('modules/ModuleB-off.png'))
|
||||
self.scene_on = QGraphicsScene()
|
||||
self.scene_on.addPixmap(QPixmap('modules/ModuleB-on.png'))
|
||||
self.scene_nobulb = QGraphicsScene()
|
||||
self.scene_nobulb.addPixmap(QPixmap('modules/ModuleB-nobulb.png'))
|
||||
self.ui.widgetImg.setScene(self.scene_nobat)
|
||||
|
||||
def read_inputs(self):
|
||||
r = self.dev.read()
|
||||
us = r[1]/1023.0 * 3.3 - 0.095
|
||||
if us < 0.0:
|
||||
us = 0.0
|
||||
uc = r[2]/1023.0 * 3.3 - 0.04
|
||||
if uc < 0.0:
|
||||
uc = 0.0
|
||||
us = r[1]/1023.0 * 3.3
|
||||
uc = r[2]/1023.0 * 3.3
|
||||
i = (us-uc)/18*1000
|
||||
if i < 0.0 or uc == 0.0:
|
||||
i = 0.0
|
||||
|
@ -43,8 +41,10 @@ class ModuleBWidget(QWidget):
|
|||
if us < 1.5:
|
||||
self.ui.widgetImg.setScene(self.scene_nobat)
|
||||
else:
|
||||
if uc < 1:
|
||||
if uc < 0.9:
|
||||
self.ui.widgetImg.setScene(self.scene_off)
|
||||
elif uc > 2.0:
|
||||
self.ui.widgetImg.setScene(self.scene_nobulb)
|
||||
else:
|
||||
self.ui.widgetImg.setScene(self.scene_on)
|
||||
|
||||
|
|
|
@ -20,10 +20,11 @@ class ModuleCWidget(QWidget):
|
|||
self.timer = QTimer()
|
||||
QObject.connect(self.timer, SIGNAL("timeout()"), self.read_inputs)
|
||||
|
||||
self.data1 = 200*[0.0]
|
||||
self.data2 = 200*[0.0]
|
||||
self.datau = 200*[0.0]
|
||||
self.datai = 200*[0.0]
|
||||
self.current = 0
|
||||
|
||||
self.mode = ['DC', 'L']
|
||||
self.mode = ['DC', 'C']
|
||||
|
||||
@pyqtSlot()
|
||||
def on_radioAC_clicked(self):
|
||||
|
@ -54,6 +55,7 @@ class ModuleCWidget(QWidget):
|
|||
def on_btnStart_clicked(self):
|
||||
self.ui.btnStart.setEnabled(False)
|
||||
self.ui.btnStop.setEnabled(True)
|
||||
self.current = 3.3
|
||||
if self.mode == ['DC', 'L']:
|
||||
self.dev.setout(1, 1)
|
||||
if self.mode == ['DC', 'C']:
|
||||
|
@ -65,6 +67,7 @@ class ModuleCWidget(QWidget):
|
|||
def on_btnStop_clicked(self):
|
||||
self.ui.btnStart.setEnabled(True)
|
||||
self.ui.btnStop.setEnabled(False)
|
||||
self.current = 0.0
|
||||
if self.mode == ['DC', 'L']:
|
||||
self.dev.setout(1, 0)
|
||||
if self.mode == ['DC', 'C']:
|
||||
|
@ -73,45 +76,55 @@ class ModuleCWidget(QWidget):
|
|||
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']:
|
||||
if self.mode == ['DC', 'L']: # AD6
|
||||
self.dev.switches(1<<5)
|
||||
self.dev.opamp(2, 5, 0)
|
||||
if self.mode == ['DC', 'C']: # AD5
|
||||
self.dev.switches(1<<4)
|
||||
self.dev.opamp(2, 4, 0)
|
||||
if self.mode == ['DC', 'LC']: # AD3
|
||||
self.dev.switches(1<<2)
|
||||
self.dev.opamp(2, 2, 0)
|
||||
|
||||
def setup_scene(self, scene):
|
||||
scene.addLine(-5, 200-0, 610, 200-0)
|
||||
scene.addLine(-5, 100-0, 605, 100-0)
|
||||
scene.addLine(0, 200+5, 0, 200-205)
|
||||
scene.addLine(-5, 200- 50, 10, 200- 50)
|
||||
scene.addLine(-5, 200-100, 10, 200-100)
|
||||
scene.addLine(-5, 200-150, 10, 200-150)
|
||||
scene.addSimpleText('4.0').moveBy(-40, 0-10)
|
||||
scene.addSimpleText('3.0').moveBy(-40, 50-10)
|
||||
scene.addSimpleText('2.0').moveBy(-40, 100-10)
|
||||
scene.addSimpleText('1.0').moveBy(-40, 150-10)
|
||||
scene.addSimpleText('0.0').moveBy(-40, 200-10)
|
||||
scene.addLine(-5, 200- 0, 5, 200- 0)
|
||||
scene.addLine(-5, 200- 50, 5, 200- 50)
|
||||
scene.addLine(-5, 200-100, 5, 200-100)
|
||||
scene.addLine(-5, 200-150, 5, 200-150)
|
||||
scene.addLine(-5, 200-200, 5, 200-200)
|
||||
|
||||
def tick_DC(self, u, i):
|
||||
self.data1.pop(0)
|
||||
self.data2.pop(0)
|
||||
self.data1.append(u)
|
||||
self.data2.append(i)
|
||||
self.datau.pop(0)
|
||||
self.datai.pop(0)
|
||||
self.datau.append(u)
|
||||
self.datai.append(i)
|
||||
self.scene1 = QGraphicsScene()
|
||||
self.scene2 = QGraphicsScene()
|
||||
self.setup_scene(self.scene1)
|
||||
self.setup_scene(self.scene2)
|
||||
self.scene1.addSimpleText('[U]').moveBy(-39, 220-10)
|
||||
self.scene2.addSimpleText('[I]').moveBy(-39, 220-10)
|
||||
self.scene1.addSimpleText('[U/V]').moveBy(-39, 220-10)
|
||||
self.scene2.addSimpleText('[I/mA]').moveBy(-39, 220-10)
|
||||
self.scene1.addSimpleText('+4.0').moveBy(-40, 0-10)
|
||||
self.scene1.addSimpleText('+2.0').moveBy(-40, 50-10)
|
||||
self.scene1.addSimpleText(' 0.0').moveBy(-40, 100-10)
|
||||
self.scene1.addSimpleText('-2.0').moveBy(-40, 150-10)
|
||||
self.scene1.addSimpleText('-4.0').moveBy(-40, 200-10)
|
||||
self.scene2.addSimpleText('+0.4').moveBy(-40, 0-10)
|
||||
self.scene2.addSimpleText('+0.2').moveBy(-40, 50-10)
|
||||
self.scene2.addSimpleText(' 0.0').moveBy(-40, 100-10)
|
||||
self.scene2.addSimpleText('-0.2').moveBy(-40, 150-10)
|
||||
self.scene2.addSimpleText('-0.4').moveBy(-40, 200-10)
|
||||
path = QPainterPath()
|
||||
path.moveTo(0,200-self.data1[0]*50)
|
||||
path.moveTo(0,100-self.datau[0]*25)
|
||||
for i in xrange(1,200):
|
||||
path.lineTo(3*(i+1), 200-self.data1[i]*50)
|
||||
path.lineTo(3*(i+1), 100-self.datau[i]*25)
|
||||
self.scene1.addPath(path, QPen(QColor(0,0,255), 3))
|
||||
path = QPainterPath()
|
||||
path.moveTo(0,200-self.data2[0]*50)
|
||||
path.moveTo(0,100-self.datai[0]*25)
|
||||
for i in xrange(1,200):
|
||||
path.lineTo(3*(i+1), 200-self.data2[i]*50)
|
||||
path.lineTo(3*(i+1), 100-self.datai[i]*25)
|
||||
self.scene2.addPath(path, QPen(QColor(0,0,255), 3))
|
||||
self.ui.graph1.setScene(self.scene1)
|
||||
self.ui.graph2.setScene(self.scene2)
|
||||
|
@ -121,7 +134,7 @@ class ModuleCWidget(QWidget):
|
|||
|
||||
if self.mode[0] == 'DC':
|
||||
u = r[0]/1023.0 * 3.3 # TODO: change this if we change opamp
|
||||
i = 1 # TODO: read real current
|
||||
i = self.current - r[0]/1023.0 * 3.3
|
||||
self.tick_DC(u, i)
|
||||
|
||||
class ModuleC():
|
||||
|
@ -134,6 +147,8 @@ class ModuleC():
|
|||
self.widget.dev = Device()
|
||||
self.widget.setup_hw()
|
||||
self.widget.timer.start(25)
|
||||
self.widget.datau = 200*[0.0]
|
||||
self.widget.datai = 200*[0.0]
|
||||
|
||||
def stop(self):
|
||||
self.widget.timer.stop()
|
||||
|
|
|
@ -87,7 +87,7 @@
|
|||
<property name="title">
|
||||
<string>Mode</string>
|
||||
</property>
|
||||
<widget class="QRadioButton" name="radioL">
|
||||
<widget class="QRadioButton" name="radioC">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
|
@ -96,27 +96,11 @@
|
|||
<height>26</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>L</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QRadioButton" name="radioC">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>60</y>
|
||||
<width>51</width>
|
||||
<height>26</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>C</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QRadioButton" name="radioLC">
|
||||
|
@ -135,6 +119,22 @@
|
|||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QRadioButton" name="radioL">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>60</y>
|
||||
<width>51</width>
|
||||
<height>26</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>L</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="btnStart">
|
||||
<property name="geometry">
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue