Commit bd95b6e7 authored by Martin Klimeš's avatar Martin Klimeš ❄️
Browse files

Add Camera pixels visualizer using QT

parent 504af998
Loading
Loading
Loading
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()