read inputs in separate thread

This commit is contained in:
Pavol Rusnak 2011-04-23 20:00:44 +02:00
parent d4c3b1d9bf
commit 37a48eb7e6
3 changed files with 52 additions and 18 deletions

View file

@ -83,7 +83,7 @@ class Device:
return (randint(0,65535), # AD0 return (randint(0,65535), # AD0
randint(0,65535), randint(0,65535), randint(0,65535), # AD1 .. AD3 randint(0,65535), randint(0,65535), randint(0,65535), # AD1 .. AD3
randint(0,65535), randint(0,65535), randint(0,65535), # AD4 .. AD6 randint(0,65535), randint(0,65535), randint(0,65535), # AD4 .. AD6
randint(0,7)) # IO1 .. IO3 randint(0,1), randint(0,1), randint(0,1)) # IO1 .. IO3
else: else:
i = self.epi.read(self.INSIZE) i = self.epi.read(self.INSIZE)
return (i[0] + i[1]<<8, # AD0 return (i[0] + i[1]<<8, # AD0

View file

@ -2,6 +2,7 @@ from PyQt4.QtGui import QWidget
from PyQt4.QtCore import pyqtSlot from PyQt4.QtCore import pyqtSlot
from PyQt4.QtCore import SIGNAL from PyQt4.QtCore import SIGNAL
from PyQt4.QtCore import QObject from PyQt4.QtCore import QObject
from PyQt4.QtCore import QTimer
from ModuleDebugUi import Ui_ModuleDebug from ModuleDebugUi import Ui_ModuleDebug
from device import Device from device import Device
@ -25,7 +26,13 @@ class ModuleDebugWidget(QWidget):
QObject.connect(self.ui.pushPin2, SIGNAL("clicked(bool)"), self.on_pins_changed) QObject.connect(self.ui.pushPin2, SIGNAL("clicked(bool)"), self.on_pins_changed)
QObject.connect(self.ui.pushPin3, SIGNAL("clicked(bool)"), self.on_pins_changed) QObject.connect(self.ui.pushPin3, SIGNAL("clicked(bool)"), self.on_pins_changed)
self.dev = Device(True) # real device:
self.dev = Device()
# fake device:
# self.dev = Device(True)
self.timer = QTimer()
QObject.connect(self.timer, SIGNAL("timeout()"), self.read_inputs)
@pyqtSlot(int) @pyqtSlot(int)
def on_dialPWM1_valueChanged(self, val): def on_dialPWM1_valueChanged(self, val):
@ -109,7 +116,34 @@ class ModuleDebugWidget(QWidget):
@pyqtSlot(int) @pyqtSlot(int)
def on_dialInputFreq_valueChanged(self, val): def on_dialInputFreq_valueChanged(self, val):
print self.dev.read() self.timer.stop()
if val > 0:
self.timer.start(1000.0/val)
else:
self.ui.labelAD0.setText('AD0: -')
self.ui.labelAD1.setText('AD1: -')
self.ui.labelAD2.setText('AD2: -')
self.ui.labelAD3.setText('AD3: -')
self.ui.labelAD4.setText('AD4: -')
self.ui.labelAD5.setText('AD5: -')
self.ui.labelAD6.setText('AD6: -')
self.ui.labelIO1.setText('IO1: -')
self.ui.labelIO2.setText('IO2: -')
self.ui.labelIO3.setText('IO3: -')
def read_inputs(self):
r = self.dev.read()
self.ui.labelAD0.setText('AD0: ' + str(r[0]))
self.ui.labelAD1.setText('AD1: ' + str(r[1]))
self.ui.labelAD2.setText('AD2: ' + str(r[2]))
self.ui.labelAD3.setText('AD3: ' + str(r[3]))
self.ui.labelAD4.setText('AD4: ' + str(r[4]))
self.ui.labelAD5.setText('AD5: ' + str(r[5]))
self.ui.labelAD6.setText('AD6: ' + str(r[6]))
self.ui.labelIO1.setText('IO1: ' + str(r[7]))
self.ui.labelIO2.setText('IO2: ' + str(r[8]))
self.ui.labelIO3.setText('IO3: ' + str(r[9]))
class ModuleDebug(): class ModuleDebug():

View file

@ -662,10 +662,10 @@
</rect> </rect>
</property> </property>
<property name="minimum"> <property name="minimum">
<number>1</number> <number>0</number>
</property> </property>
<property name="maximum"> <property name="maximum">
<number>999</number> <number>1000</number>
</property> </property>
<property name="pageStep"> <property name="pageStep">
<number>10</number> <number>10</number>
@ -687,13 +687,13 @@
<string>1</string> <string>1</string>
</property> </property>
<property name="minimum"> <property name="minimum">
<number>1</number> <number>0</number>
</property> </property>
<property name="maximum"> <property name="maximum">
<number>999</number> <number>1000</number>
</property> </property>
<property name="value"> <property name="value">
<number>1</number> <number>0</number>
</property> </property>
<property name="maxLength" stdset="0"> <property name="maxLength" stdset="0">
<number>3</number> <number>3</number>
@ -709,7 +709,7 @@
</rect> </rect>
</property> </property>
<property name="text"> <property name="text">
<string>AD1: 0</string> <string>AD1: -</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="labelAD2"> <widget class="QLabel" name="labelAD2">
@ -722,7 +722,7 @@
</rect> </rect>
</property> </property>
<property name="text"> <property name="text">
<string>AD2: 0</string> <string>AD2: -</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="labelAD3"> <widget class="QLabel" name="labelAD3">
@ -735,7 +735,7 @@
</rect> </rect>
</property> </property>
<property name="text"> <property name="text">
<string>AD3: 0</string> <string>AD3: -</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="labelAD4"> <widget class="QLabel" name="labelAD4">
@ -748,7 +748,7 @@
</rect> </rect>
</property> </property>
<property name="text"> <property name="text">
<string>AD4: 0</string> <string>AD4: -</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="labelAD5"> <widget class="QLabel" name="labelAD5">
@ -761,7 +761,7 @@
</rect> </rect>
</property> </property>
<property name="text"> <property name="text">
<string>AD5: 0</string> <string>AD5: -</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="labelAD6"> <widget class="QLabel" name="labelAD6">
@ -774,7 +774,7 @@
</rect> </rect>
</property> </property>
<property name="text"> <property name="text">
<string>AD6: 0</string> <string>AD6: -</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="labelIO2"> <widget class="QLabel" name="labelIO2">
@ -787,7 +787,7 @@
</rect> </rect>
</property> </property>
<property name="text"> <property name="text">
<string>IO2: 0</string> <string>IO2: -</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="labelIO3"> <widget class="QLabel" name="labelIO3">
@ -800,7 +800,7 @@
</rect> </rect>
</property> </property>
<property name="text"> <property name="text">
<string>IO3: 0</string> <string>IO3: -</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="labelIO1"> <widget class="QLabel" name="labelIO1">
@ -813,7 +813,7 @@
</rect> </rect>
</property> </property>
<property name="text"> <property name="text">
<string>IO1: 0</string> <string>IO1: -</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="labelAD0"> <widget class="QLabel" name="labelAD0">
@ -826,7 +826,7 @@
</rect> </rect>
</property> </property>
<property name="text"> <property name="text">
<string>AD0: 0</string> <string>AD0: -</string>
</property> </property>
</widget> </widget>
</widget> </widget>