Loading qt_pixel.py 0 → 100644 +57 −0 Original line number Diff line number Diff line # Vyžaduje knihovny pyqtgraph a PySide6 from PySide6.QtWidgets import QApplication, QMainWindow from PySide6.QtCore import QTimer import pyqtgraph as pg import sys from random import randint import serial class MainWindow(QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.s = serial.Serial(f'{sys.argv[1]}', 115200) self.graphWidget = pg.PlotWidget() self.setCentralWidget(self.graphWidget) # mockup data, při první iteraci se vezmou nové self.x = list(range(128)) # 100 time points self.y = [randint(0,256) for _ in range(128)] # 100 data points self.graphWidget.setBackground('w') pen = pg.mkPen(color=(255, 0, 0)) self.data_line = self.graphWidget.plot(self.x, self.y, pen=pen) self.graphWidget.setXRange(min=0, max=127, padding=0) # Assuming x goes from 0 to 127 self.graphWidget.setYRange(min=0, max=256, padding=0) # Assuming y values are between 0 and 256 self.timer = QTimer() self.timer.setInterval(10) self.timer.timeout.connect(self.update_plot_data) self.timer.start() def update_plot_data(self): try: data = self.s.readline().decode('ascii').strip() data = map(int, data.split()) # Mělo by být 128, ale občas se může stát, že na začátku jen 64 nebo jiný. self.y = list(data) except Exception as e: # Close via ctrl+c # nefunguje print(e) self.s.close() self.data_line.setData(self.x, self.y) # Update the data. if (len(sys.argv) != 2): print("Usage: script.py /dev/ttyACM0") exit(1) app = QApplication(sys.argv) main = MainWindow() main.show() app.exec() Loading
qt_pixel.py 0 → 100644 +57 −0 Original line number Diff line number Diff line # Vyžaduje knihovny pyqtgraph a PySide6 from PySide6.QtWidgets import QApplication, QMainWindow from PySide6.QtCore import QTimer import pyqtgraph as pg import sys from random import randint import serial class MainWindow(QMainWindow): def __init__(self): super(MainWindow, self).__init__() self.s = serial.Serial(f'{sys.argv[1]}', 115200) self.graphWidget = pg.PlotWidget() self.setCentralWidget(self.graphWidget) # mockup data, při první iteraci se vezmou nové self.x = list(range(128)) # 100 time points self.y = [randint(0,256) for _ in range(128)] # 100 data points self.graphWidget.setBackground('w') pen = pg.mkPen(color=(255, 0, 0)) self.data_line = self.graphWidget.plot(self.x, self.y, pen=pen) self.graphWidget.setXRange(min=0, max=127, padding=0) # Assuming x goes from 0 to 127 self.graphWidget.setYRange(min=0, max=256, padding=0) # Assuming y values are between 0 and 256 self.timer = QTimer() self.timer.setInterval(10) self.timer.timeout.connect(self.update_plot_data) self.timer.start() def update_plot_data(self): try: data = self.s.readline().decode('ascii').strip() data = map(int, data.split()) # Mělo by být 128, ale občas se může stát, že na začátku jen 64 nebo jiný. self.y = list(data) except Exception as e: # Close via ctrl+c # nefunguje print(e) self.s.close() self.data_line.setData(self.x, self.y) # Update the data. if (len(sys.argv) != 2): print("Usage: script.py /dev/ttyACM0") exit(1) app = QApplication(sys.argv) main = MainWindow() main.show() app.exec()