Commit 5fc0f602 authored by Gallacchi Mattia's avatar Gallacchi Mattia
Browse files

Add poetry for python interface

parent 6f801b10
Loading
Loading
Loading
Loading
+40 −5
Original line number Diff line number Diff line
# Quentin Rod for PI - MSE Computer Science
import sys
from PyQt6.QtWidgets import QApplication, QMainWindow, QWidget, QHBoxLayout, QVBoxLayout, QPushButton, QSlider, QLineEdit, QGroupBox, QTextEdit, QLabel
from PyQt6.QtCore import Qt
from PySide6.QtWidgets import QApplication, QMainWindow, QWidget, QHBoxLayout, QVBoxLayout, QPushButton, QSlider, QLineEdit, QGroupBox, QTextEdit, QLabel
from PySide6.QtCore import Qt
import serial
import os
import threading
from PyQt6.QtCore import pyqtSignal
from PyQt6.QtGui import QIcon
from PySide6.QtCore import Signal as pyqtSignal
from PySide6.QtGui import QIcon, QCloseEvent
import time

DEFAULT_TRIG_OFF_TIME=92000
DEFAULT_MIN_EXP_TIME=19
DEFAULT_FLASH_OFF=15000
DEFAULT_FLASH_ON=1000
DEFAULT_TRIG_SHIFT_TIME=1000

class SerialLogger(QWidget):
    sig_recv = pyqtSignal(str)
    def __init__(self, ser):
@@ -70,7 +76,6 @@ class Flasher():
    def flash_off(self, val):
        self._send_cmd("flash.off:" + str(val) +";")


flasher = None

class CommandWidget(QWidget):
@@ -140,6 +145,14 @@ class MainWindow(QMainWindow):
        self.on_button.clicked.connect(self.on_button_clicked)
        self.on_button.setChecked(False)
        self.on_button_clicked()

        self.reset_button = QPushButton("Reset", self)
        self.reset_button.setGeometry(200, 150, 100, 40)
        self.reset_button.setCheckable(True)
        self.reset_button.setMaximumWidth(50)
        self.reset_button.clicked.connect(self.reset_button_clicked)
        self.reset_button.setChecked(False)
        # self.on_button_clicked()
        #self.on_button.setChecked(False)

        self.trig_expo_widget = CommandWidget('Minimal exposure time (us)', self.trig_expo_cb, 0, 200, 19)
@@ -156,6 +169,7 @@ class MainWindow(QMainWindow):

        layout_cmd = QVBoxLayout()
        layout_cmd.addWidget(self.on_button, alignment= Qt.AlignmentFlag.AlignCenter)
        layout_cmd.addWidget(self.reset_button, alignment=Qt.AlignmentFlag.AlignCenter)
        layout_cmd.addWidget(self.trig_off_widget)
        layout_cmd.addWidget(self.flash_off_widget)
        layout_cmd.addWidget(self.flash_on_widget)
@@ -180,6 +194,24 @@ class MainWindow(QMainWindow):
        else:
            self.flasher.off()
            self.on_button.setText("On")

    def reset_button_clicked(self):

        self.trig_off_widget_cb(DEFAULT_TRIG_OFF_TIME)
        self.trig_off_widget.update_val(DEFAULT_TRIG_OFF_TIME)

        self.flash_off_widget_cb(DEFAULT_FLASH_OFF)
        self.flash_off_widget.update_val(DEFAULT_FLASH_OFF)

        self.flash_on_widget_cb(DEFAULT_FLASH_ON)
        self.flash_on_widget.update_val(DEFAULT_FLASH_ON)

        self.trig_shift_cb(DEFAULT_TRIG_SHIFT_TIME)
        self.trig_shift_widget.update_val(DEFAULT_TRIG_SHIFT_TIME)

        self.trig_expo_cb(DEFAULT_MIN_EXP_TIME)
        self.trig_expo_widget.update_val(DEFAULT_MIN_EXP_TIME)

    def trig_off_widget_cb(self, value):
        self.flasher.trig_off(value)
    def flash_off_widget_cb(self, value):
@@ -191,6 +223,9 @@ class MainWindow(QMainWindow):
    def trig_expo_cb(self, value):
        self.flasher.trig_expo(value)

    def closeEvent(self, ev=None):
        self.flasher.off()

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Please use : " + sys.argv[0] + " " + "[DEV_UART]")
+89 −0
Original line number Diff line number Diff line
[[package]]
name = "pyserial"
version = "3.5"
description = "Python Serial Port Extension"
category = "main"
optional = false
python-versions = "*"

[package.extras]
cp2110 = ["hidapi"]

[[package]]
name = "PySide6"
version = "6.7.2"
description = "Python bindings for the Qt cross-platform application and UI framework"
category = "main"
optional = false
python-versions = "<3.13,>=3.9"

[package.dependencies]
PySide6-Addons = "6.7.2"
PySide6-Essentials = "6.7.2"
shiboken6 = "6.7.2"

[[package]]
name = "PySide6-Addons"
version = "6.7.2"
description = "Python bindings for the Qt cross-platform application and UI framework (Addons)"
category = "main"
optional = false
python-versions = "<3.13,>=3.9"

[package.dependencies]
PySide6-Essentials = "6.7.2"
shiboken6 = "6.7.2"

[[package]]
name = "PySide6-Essentials"
version = "6.7.2"
description = "Python bindings for the Qt cross-platform application and UI framework (Essentials)"
category = "main"
optional = false
python-versions = "<3.13,>=3.9"

[package.dependencies]
shiboken6 = "6.7.2"

[[package]]
name = "shiboken6"
version = "6.7.2"
description = "Python/C++ bindings helper module"
category = "main"
optional = false
python-versions = "<3.13,>=3.9"

[metadata]
lock-version = "1.1"
python-versions = ">=3.10,<3.13"
content-hash = "0f12e425a2789ff40a16c23f004e133a89e13b2091c2c549decd38f957bf5a65"

[metadata.files]
pyserial = [
    {file = "pyserial-3.5-py2.py3-none-any.whl", hash = "sha256:c4451db6ba391ca6ca299fb3ec7bae67a5c55dde170964c7a14ceefec02f2cf0"},
    {file = "pyserial-3.5.tar.gz", hash = "sha256:3c77e014170dfffbd816e6ffc205e9842efb10be9f58ec16d3e8675b4925cddb"},
]
PySide6 = [
    {file = "PySide6-6.7.2-cp39-abi3-macosx_11_0_universal2.whl", hash = "sha256:602debef9ec159b0db48f83b38a0e43e2dad3961f7d99f708d98620f04e9112b"},
    {file = "PySide6-6.7.2-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:15e7696a09072ee977f6e6179ab1e48184953df8417bcaa83cfadf0b79747242"},
    {file = "PySide6-6.7.2-cp39-abi3-manylinux_2_31_aarch64.whl", hash = "sha256:6e0acb471535de303f56e3077aa86f53496b4de659b99ecce80520bcee508a63"},
    {file = "PySide6-6.7.2-cp39-abi3-win_amd64.whl", hash = "sha256:f73ae0de77d67f51ca3ce8207b12d3a5fa0107d3d5b6e4aeb3b53ee842b0927a"},
]
PySide6-Addons = [
    {file = "PySide6_Addons-6.7.2-cp39-abi3-macosx_11_0_universal2.whl", hash = "sha256:90b995efce61058d995c603ea480a9a3054fe8206739dcbc273fc3b53d40650f"},
    {file = "PySide6_Addons-6.7.2-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:94b9bf6a2a4a7ac671e1776633e50d51326c86f4184f1c6e556f4dd5498fd52a"},
    {file = "PySide6_Addons-6.7.2-cp39-abi3-manylinux_2_31_aarch64.whl", hash = "sha256:22979b1aa09d9cf1d7a86c8a9aa0cb4791d6bd1cc94f96c5b6780c5ef8a9e34e"},
    {file = "PySide6_Addons-6.7.2-cp39-abi3-win_amd64.whl", hash = "sha256:ebf549eb25998665d8e4ec24014fbbd37bebc5ecdcb050b34db1e1c03e1bf81d"},
]
PySide6-Essentials = [
    {file = "PySide6_Essentials-6.7.2-cp39-abi3-macosx_11_0_universal2.whl", hash = "sha256:4d13666e796ec140ecfb432c4f3d7baef6dfafc11929985a83b22c0025532fb7"},
    {file = "PySide6_Essentials-6.7.2-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:a1a4c09f1e916b9cfe53151fe4a503a6acb1f6621ba28204d1bfe636f80d6780"},
    {file = "PySide6_Essentials-6.7.2-cp39-abi3-manylinux_2_31_aarch64.whl", hash = "sha256:9135513e1c4c6e2fbb1e4f9afcb3d42e54708b0d9ed870cb3213ea4874cafa1e"},
    {file = "PySide6_Essentials-6.7.2-cp39-abi3-win_amd64.whl", hash = "sha256:0111d5fa8cf826de3ca9d82fed54726cce116d57f454f88a6467578652032d69"},
]
shiboken6 = [
    {file = "shiboken6-6.7.2-cp39-abi3-macosx_11_0_universal2.whl", hash = "sha256:50c33ac6317b673a1eb97a9abaafccb162c4ba0c9ca658a8e449c49a8aadc379"},
    {file = "shiboken6-6.7.2-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:70e80737b27cd5d83504b373013b55e70462bd4a27217d919ff9a83958731990"},
    {file = "shiboken6-6.7.2-cp39-abi3-manylinux_2_31_aarch64.whl", hash = "sha256:98bedf9a15f1d8ba1af3e4d1e7527f7946ce36da541e08074fd9dc9ab5ff1adf"},
    {file = "shiboken6-6.7.2-cp39-abi3-win_amd64.whl", hash = "sha256:9024e6afb2af1568ebfc8a5d07e4ff6c8829f40923eeb28901f535463e2b6b65"},
]
+15 −0
Original line number Diff line number Diff line
[tool.poetry]
name = "ui"
version = "0.1.0"
description = ""
authors = ["mattia.gallacchi <mattia.gallacchi@he-arc.ch>"]
readme = "README.md"

[tool.poetry.dependencies]
python = ">=3.10,<3.13"
PySide6 = "^6.7.2"
pyserial = "^3.5"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"