Commit 6053148f authored by Tiago Sarmento's avatar Tiago Sarmento

Merge branch 'ui_dev' of https://ohwr.org/project/hev into ui_dev

parents c3e03eed 4bc18ee0
Pipeline #1871 failed with stages
......@@ -393,6 +393,16 @@ class NativeUI(HEVClient, QMainWindow):
self.widgets.personal_display.update_status
)
# MCU Version Number
self.extra_handler.UpdateVersionNumber.connect(
self.widgets.version_display_widget.update_mcu_version
)
# Cumulative Operation Hours
self.extra_handler.UpdateUptimeHours.connect(
self.widgets.uptime_display_widget.update_uptime_hours
)
# Measurement Widgets should update when the data is changed.
for widget in (
self.widgets.normal_measurements.widget_list
......
......@@ -12,10 +12,13 @@ class ExtraHandler(PayloadHandler):
temporay - just to check new payloads make it through to nativeUI
"""
UpdateVersionNumber = Signal(str)
UpdateUptimeHours = Signal(str)
def __init__(self, *args, **kwargs):
super().__init__(["ALARM_MUTE", "BAD_THRESHOLD"], *args, **kwargs)
super().__init__(["ALARM_MUTE", "BAD_THRESHOLD", "EXPERT_INFO"], *args, **kwargs)
def active_payload(self, *args, name="Extra handler", **kwargs) -> int:
def active_payload(self, payload, *args, name="Extra handler", **kwargs) -> int:
"""
When the personal data is updated, extract those parameters needed for display
and emit the UpdatePersonalDisplay signal.
......@@ -26,4 +29,9 @@ class ExtraHandler(PayloadHandler):
# for key in ["name", "patient_id", "age", "sex", "height", "weight"]:
# outdict[key] = current_data[key]
# self.UpdatePersonalDisplay.emit(outdict)
if payload["type"] == "EXPERT_INFO":
data = self.get_db()
self.UpdateVersionNumber.emit("%s.%s.%s" % (data["version_major"], data["version_minor"], data["version_mpatch"]))
self.UpdateUptimeHours.emit("%s" % data["uptime_hrs"])
return 0
......@@ -66,7 +66,7 @@ def test_steady_state_measurements_from_gui(background_procs, native_ui, qtbot):
# wait for approx 1 min because it takes that
# long for the real dump data to start reading meaningful values.
qtbot.wait(60000)
qtbot.wait(90000)
# To store measurement readings read straight from the GUI
plateau_pressures = []
......
......@@ -411,6 +411,7 @@ class Layout:
# Create the system info tab
sysinfo_widgets = [
self.widgets.version_display_widget,
self.widgets.uptime_display_widget,
[self.widgets.maintenance, self.widgets.maintenance_time_display_widget],
self.widgets.update_time_display_widget,
]
......@@ -530,6 +531,7 @@ class Layout:
"""
tab_info = LocalisedQWidget()
tab_info_layout = QtWidgets.QVBoxLayout(tab_info)
tab_info_layout.addStretch()
for entry in widgets:
if isinstance(entry, list):
for widget in entry:
......
......@@ -44,6 +44,7 @@ from widget_library.info_display_widgets import (
VersionDisplayWidget,
MaintenanceTimeDisplayWidget,
UpdateTimeDisplayWidget,
UptimeDisplayWidget,
)
from widget_library.alarm_control_widget import AlarmControlWidget
from widget_library.chart_buttons_widget import ChartButtonsWidget
......@@ -454,12 +455,14 @@ class Widgets:
# Info Tab
self.version_display_widget = VersionDisplayWidget(NativeUI.colors)
self.uptime_display_widget = UptimeDisplayWidget(NativeUI.colors)
self.maintenance_time_display_widget = MaintenanceTimeDisplayWidget(
NativeUI.colors
)
self.update_time_display_widget = UpdateTimeDisplayWidget(NativeUI.colors)
self.widget_list = self.widget_list + [
self.version_display_widget,
self.uptime_display_widget,
self.maintenance_time_display_widget,
self.update_time_display_widget,
]
......
......@@ -19,6 +19,38 @@ import logging
from PySide2 import QtCore, QtWidgets
class UptimeDisplayWidget(QtWidgets.QLabel):
def __init__(self, colors, *args, **kwargs):
super().__init__(*args, **kwargs)
self.__cumulative_hours: str = "???"
self.setStyleSheet(
"background-color:" + colors["page_background"].name() + ";"
"border: none;"
"color:" + colors["page_foreground"].name() + ";"
)
self.__refresh_display()
def __refresh_display(self) -> int:
display_text = ""
display_text += "Cumulative Operational Time: %s Hours" % self.__cumulative_hours
self.setText(display_text)
return 0
@QtCore.Slot(str)
def update_uptime_hours(self, text: str) -> int:
self.__cumulative_hours = text
self.__refresh_display()
return 0
def localise_text(self, text: dict) -> int:
pass
class VersionDisplayWidget(QtWidgets.QLabel):
"""
Widget that displays the current version number.
......@@ -86,7 +118,7 @@ class VersionDisplayWidget(QtWidgets.QLabel):
return 0
@QtCore.Slot(str)
def update_mcu_version(self, hash: str) -> int:
def update_mcu_hash(self, hash: str) -> int:
"""
Update the value shown for the MCU hash
"""
......
......@@ -34,7 +34,11 @@ class TimePlotsWidget(QtWidgets.QWidget):
self.graph_widget = pg.GraphicsLayoutWidget()
layout.addWidget(self.graph_widget)
labelStyle = {"color": NativeUI.colors["page_foreground"], "font-size": "15pt"}
labelStyle = {
"color": NativeUI.colors["page_foreground"],
"font-size": "15pt",
"font-weight": "bold"
}
# Set up pressure - time plot
self.pressure_plot = self.graph_widget.addPlot()
......@@ -72,7 +76,7 @@ class TimePlotsWidget(QtWidgets.QWidget):
plot.showGrid(x=True, y=True)
plot.hideButtons()
l = plot.addLegend(offset=(-1, 1))
l.setFont(NativeUI.text_font)
l.setFont(NativeUI.value_font)
plot.setMouseEnabled(x=False, y=False)
plot.getAxis("bottom").setStyle(tickFont=NativeUI.text_font)
plot.getAxis("left").setStyle(tickFont=NativeUI.text_font)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment