/*! * * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. * copyright * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, * IN PART OR IN WHOLE, * WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * file messageinterpreter.h * date 12/11/2019 * author Behrouz NematiPour * */ #pragma once // Qt #include // Project #include "messageglobals.h" namespace Can { /*! * \brief The MessageInterpreter class * \details This the class that interprets the messages to/from frames. * UI only understands GuiActionType and QVariantList data types * And CANBUS only understands QCanBusFrame with Hex values in QByteArrays * This is the class which interpret this data to/from. */ class MessageInterpreter : public QObject { Q_OBJECT void printUnhandled (const Message &vMessage); bool interpretMessage_HD (const Message &vMessage , QVariantList &vData) __attribute_warn_unused_result__; bool interpretMessage_DG (const Message &vMessage , QVariantList &vData) __attribute_warn_unused_result__; bool getPowerOffData (const Message &vMessage , quint8 &vShowHide) __attribute_warn_unused_result__; // ---- BloodFlowData bool getBloodFlowData (const Message &vMessage , Types::S32 &vFlowSetPoint , Types::F32 &vMeasuredFlow , Types::F32 &vRotorSpeed , Types::F32 &vMotorSpeed, Types::F32 &vMotorCtlSpeed , Types::F32 &vMotorCtlCurrent , Types::F32 &vPWMDtCycle) __attribute_warn_unused_result__; bool bloodFlowData (const Message &vMessage, QVariantList &vData) __attribute_warn_unused_result__; // ---- Dialysate FlowData bool getDialysateFlowData (const Message &vMessage , Types::S32 &vFlowSetPoint , Types::F32 &vMeasuredFlow , Types::F32 &vRotorSpeed , Types::F32 &vMotorSpeed, Types::F32 &vMotorCtlSpeed , Types::F32 &vMotorCtlCurrent , Types::F32 &vPWMDtCycle) __attribute_warn_unused_result__; bool dialysateFlowData (const Message &vMessage, QVariantList &vData) __attribute_warn_unused_result__; // ---- AlarmStatus bool getAlarmStatus (const Message &vMessage , Types::U32 &vState , Types::U32 &vTop , Types::U32 &vMuteTimeout , Types::U32 &vEscalatesIn , Types::Flags &vFlags ) __attribute_warn_unused_result__; bool alarmStatus (const Message &vMessage, QVariantList &vData) __attribute_warn_unused_result__; public: explicit MessageInterpreter(QObject *parent = nullptr); // interpret the data into GUI understandable Actions/Data bool interpretMessage(const Message &vMessage, QVariantList &vData) __attribute_warn_unused_result__; bool interpretMessage(const Gui::GuiActionType &vActionId, const QVariantList &vData, QByteArray &vPayload) __attribute_warn_unused_result__; signals: public slots: }; }