diff --git a/load_controller/profile_handler.py b/load_controller/profile_handler.py index 1ae92ff..6c00ef3 100644 --- a/load_controller/profile_handler.py +++ b/load_controller/profile_handler.py @@ -2,7 +2,8 @@ import enum import csv import time -from PySide6.QtCore import QObject, Signal, QTimer +from PySide6.QtCore import QObject, Signal, Slot, QTimer, QPointF +from PySide6.QtCharts import QLineSeries class ProfileState(enum.Enum): @@ -50,6 +51,14 @@ class ProfileHandler(QObject): self.profileChanged.emit(result) return result + @Slot(QLineSeries) + def fill_series(self, series: QLineSeries): + points = [] + for x, y in self._profile: + points.append(QPointF(x, y)) + series.replace(points) + pass + def start(self): assert self.state == ProfileState.STOPPED diff --git a/ui/main_window.qml b/ui/main_window.qml index a10e1d1..c8053c6 100644 --- a/ui/main_window.qml +++ b/ui/main_window.qml @@ -29,13 +29,8 @@ ApplicationWindow { } function onProfileChanged(data) { - profileSeries.clear(); - var last_x = 0; - for (var point of data) { - profileSeries.append(point[0], point[1]); - last_x = point[0]; - } - axisX.max = last_x; + profile_handler.fill_series(profileSeries); + axisX.max = data[data.length - 1][0]; axisX.applyNiceNumbers(); } }