Index: TD_WaterSample/interface.ui =================================================================== diff -u --- TD_WaterSample/interface.ui (revision 0) +++ TD_WaterSample/interface.ui (revision b7956d9f711ca0e030e6eda624c43b435136b14d) @@ -0,0 +1,106 @@ + + + ui_interface + + + + 0 + 0 + 370 + 90 + + + + &5 TD info/&A Water Sample + + + + + + + + + 0 + 0 + + + + + 350 + 0 + + + + + 10 + + + + color: rgb(238, 238, 236); +background-color: rgb(100, 1, 250); + + + XX : [0xXX00] : TD Water Sample + + + Qt::AlignCenter + + + + + + + + + + 100 + 0 + + + + Water Sample Result Request + + + + + + + + 0 + 0 + + + + + 75 + 0 + + + + + 100 + 16777215 + + + + false + + + QFrame::WinPanel + + + QFrame::Sunken + + + - + + + Qt::AlignCenter + + + + + + + + Index: TD_WaterSample/loader.py =================================================================== diff -u --- TD_WaterSample/loader.py (revision 0) +++ TD_WaterSample/loader.py (revision b7956d9f711ca0e030e6eda624c43b435136b14d) @@ -0,0 +1,74 @@ +""" + The TD Water Sample ui loader +""" +# Python +import os + +# Qt +from PySide2 import QtCore, QtWidgets +from PySide2.QtCore import Slot + +# parent +from engine.dynamicloader import DynamicLoader + +# plugin specific +from leahi_dialin.common.msg_defs import MsgIds, MsgFieldPositions +from leahi_dialin.protocols import CAN +from leahi_dialin.utils import conversions + +# hd Simulator +from leahi_dialin.ui.td_messaging import TD_Messaging + + +class Loader(DynamicLoader): + """ + The TD Water Sample ui loader + """ + + def __init__(self): + self.td_interface = TD_Messaging() + self.can_interface = self.td_interface.can_interface + super().__init__(os.path.dirname(__file__)) + self.index = 0 + + if self.can_interface is not None: + channel_id = CAN.DenaliChannels.ui_to_td_ch_id + request_message_id = MsgIds.MSG_ID_UI_WATER_SAMPLE_RESULT_REQUEST.value + self.can_interface.register_receiving_publication_function(channel_id, + request_message_id, + self.handle_request) + + + def _init_loader(self): + """ + finds and creates widgets + :return: none + """ + self.lbWaterSampleResult = self.find_widget(QtWidgets.QLabel , 'lbWaterSampleResult' ) + + + def _init_connections(self): + """ + initializes the widgets connections + :return: none + """ + + + @Slot() + def _init_widgets(self): + """ + initializes the widgets' properties + :return: none + """ + + + @Slot() + def handle_request(self, message, timestamp = 0.0): + """ + the slot for Valve data change + :return: none + """ + message = message['message'] + index = MsgFieldPositions.START_POS_FIELD_1 + val,index = conversions.bytearray_to_integer( message, index) + self.lbWaterSampleResult.setText("Fail" if val == 0 else "Pass")