-
- from PyQt4 import QtCore, QtGui
- import pyqtgraph as pg
- import random
- import serial
- from collections import deque
- import sys
- import os
-
- ser = serial.Serial("COM3", 115200)
-
- def updateBPM(bpm):
- newString = ("HR:\n" + bpm)
- with open(os.path.join(os.path.dirname(__file__), "currentBPM.txt"), "w+") as bpmFile:
- bpmFile.write(newString)
-
- class MainWindow(QtGui.QMainWindow):
- def __init__(self, parent=None):
- super(MainWindow, self).__init__(parent)
- self.central_widget = QtGui.QStackedWidget()
- self.setCentralWidget(self.central_widget)
- self.login_widget = LoginWidget(self)
- self.login_widget.button.clicked.connect(self.plotter)
- self.central_widget.addWidget(self.login_widget)
-
- def plotter(self):
- self.data = deque(maxlen=450)
- self.curve = self.login_widget.plot.getPlotItem().plot()
- self.timer = QtCore.QTimer()
- self.timer.timeout.connect(self.updater)
- self.timer.start(0)
-
- def updater(self):
- while (ser.inWaiting()==0):
- pass
- try:
- data = str(ser.readline()).split(",")
- bpm = data[0][2:]
- cl = int(float(data[2][:-5]))
- except:
- return
- updateBPM(bpm)
- self.data.append(cl)
- self.curve.setData(self.data)
-
-
-
-
-
- class LoginWidget(QtGui.QWidget):
- def __init__(self, parent=None):
- super(LoginWidget, self).__init__(parent)
- layout = QtGui.QHBoxLayout()
- self.button = QtGui.QPushButton('Start Plotting')
- layout.addWidget(self.button)
- self.plot = pg.PlotWidget()
- layout.addWidget(self.plot)
- self.setLayout(layout)
-
- if __name__ == '__main__':
- app = QtGui.QApplication([])
- window = MainWindow()
- window.resize(1083,334)
- window.show()
- app.exec_()
-