2023-01-04 19:33:20 +01:00

39 lines
976 B
Python

import serial
import time
from PySide6.QtCore import QObject, Slot, QTimer
from .profile_handler import ProfileHandler
class Load(QObject):
dev: serial.Serial
_current: float
_timer: QTimer
_profile_handler: ProfileHandler
def __init__(self, uart_path: str, profile_handler: ProfileHandler):
super().__init__(None)
self.dev = serial.Serial(uart_path, 115200)
self._current = 0
self._profile_handler = profile_handler
self._profile_handler.currentChanged.connect(self._update_current)
self._timer = QTimer()
self._timer.timeout.connect(self._update_load)
self._timer.start(100)
@Slot()
def _update_current(self, current):
self._current = current
def _update_load(self):
curr_quants = round(self._current / 0.1)
assert curr_quants <= 0xFFFF
msb = curr_quants >> 8
lsb = curr_quants & 0xFF
self.dev.write(bytes((msb, lsb)))