Index: sources/canbus/messageacknowmodel.h =================================================================== diff -u -rb798668f16ad0967ab97e96f5f9a2cdd821e899f -r246bf68b01c9249f2a74dddbba67f49807937fa2 --- sources/canbus/messageacknowmodel.h (.../messageacknowmodel.h) (revision b798668f16ad0967ab97e96f5f9a2cdd821e899f) +++ sources/canbus/messageacknowmodel.h (.../messageacknowmodel.h) (revision 246bf68b01c9249f2a74dddbba67f49807937fa2) @@ -63,7 +63,7 @@ protected: /*! * \brief MessageAcknowModel::timerEvent - * \details This event handler has been overrode in here + * \details This event handler has been override in here * to receive timer events for the object * for the timer which has been set to _interval * emits the didFramesTransmit signal to retry transmitting the frames Index: sources/canbus/messagedispatcher.cpp =================================================================== diff -u -r90bcc276f2a879169fef20e9168711cf906c0e54 -r246bf68b01c9249f2a74dddbba67f49807937fa2 --- sources/canbus/messagedispatcher.cpp (.../messagedispatcher.cpp) (revision 90bcc276f2a879169fef20e9168711cf906c0e54) +++ sources/canbus/messagedispatcher.cpp (.../messagedispatcher.cpp) (revision 246bf68b01c9249f2a74dddbba67f49807937fa2) @@ -303,7 +303,7 @@ QByteArray mData; if (! _interpreter.interpretMessage(vActionId, vData, mData)) { - LOG_ERROR(tr("Incorrect Message, can't be interpreted")); // TODO : LOGGINF IMPROVEMENT + LOG_ERROR(tr("Incorrect Message, can't be interpreted, %1").arg(vActionId)); // TODO : LOGGINF IMPROVEMENT return; } Index: sources/canbus/messageinterpreter.cpp =================================================================== diff -u -r15de0cd12dad1ea5107c52e5ed89280bc9e29b1d -r246bf68b01c9249f2a74dddbba67f49807937fa2 --- sources/canbus/messageinterpreter.cpp (.../messageinterpreter.cpp) (revision 15de0cd12dad1ea5107c52e5ed89280bc9e29b1d) +++ sources/canbus/messageinterpreter.cpp (.../messageinterpreter.cpp) (revision 246bf68b01c9249f2a74dddbba67f49807937fa2) @@ -83,6 +83,15 @@ return true; } +bool MessageInterpreter::isDataLenValid(const Gui::GuiActionType &vActionId, const QVariantList &vData) +{ + if (vData.count() == 0) { + QString mActionIdHexString = Format::toHexString(vActionId); + LOG_ERROR(tr("Incorrect data for transmit Message with ID '%1'").arg(mActionIdHexString)); + return false; + } + return true; +} /*! * \brief MessageInterpreter::validateMessage * \details Validate the messgae by checking its type and data @@ -152,28 +161,24 @@ QString mSenderID = "UI,"; vPayload.clear(); - int count = vData.count(); + + if ( ! isDataLenValid(vActionId, vData)) return false; + switch (vActionId) { // notice we are in transmit mode - case Gui::GuiActionType::ID_PowerOff: - if (count) { - vPayload += vData[0].toUInt(); - } else { - QString mActionIdHexString = Format::toHexString(vActionId); - LOG_ERROR(tr("Incorrect data for transmit Message with ID '%1'").arg(mActionIdHexString)); - ok = false; - } - LOG_EVENT(mSenderID + QString("PowerOff," + QVariant(vData).toStringList().join(','))); - break; + case Gui::GuiActionType::ID_PowerOff: { + quint8 state = vData[0].toUInt(); + vPayload += state; + LOG_EVENT(AdjustPowerOffRequestData(state).toString()); + } + break; case Gui::GuiActionType::ID_KeepAlive: // Nothing needs to be done. // KeepAlive has No data. // Mentioned in the switch/case to be registered as a valid message. // // Note : added this line to be able to do the Fake Test - if (count) { - vPayload = Format::fromVariant(vData[0]); - } + vPayload = Format::fromVariant(vData[0]); LOG_EVENT(mSenderID + QString("CheckIn")); break; @@ -184,44 +189,33 @@ break; case Gui::GuiActionType::ID_RawData: - if (count) { - vPayload = Format::fromVariant(vData[0]); - } + vPayload = Format::fromVariant(vData[0]); + LOG_EVENT(mSenderID + QString("RawData")); break; case Gui::GuiActionType::ID_AdjustBloodDialysateReq: - if (count) { - vPayload = Format::fromVariant(vData); - } - LOG_EVENT(mSenderID + AdjustBloodDialysateRequestData::toString(vData)); + vPayload = Format::fromVariant(vData); + LOG_EVENT(AdjustBloodDialysateRequestData::toString(vData)); break; case Gui::GuiActionType::ID_AdjustDurationReq: - if (count) { - vPayload = Format::fromVariant(vData); - } - LOG_EVENT(mSenderID + AdjustDurationRequestData::toString(vData)); + vPayload = Format::fromVariant(vData); + LOG_EVENT(AdjustDurationRequestData::toString(vData)); break; case Gui::GuiActionType::ID_AdjustUltrafiltrationStateReq: - if (count) { - vPayload = Format::fromVariant(vData); - } - LOG_EVENT(mSenderID + AdjustUltrafiltrationStateRequestData::toString(vData)); + vPayload = Format::fromVariant(vData); + LOG_EVENT(AdjustUltrafiltrationStateRequestData::toString(vData)); break; case Gui::GuiActionType::ID_AdjustUltrafiltrationEditReq: - if (count) { - vPayload = Format::fromVariant(vData); - } - LOG_EVENT(mSenderID + AdjustUltrafiltrationEditRequestData::toString(vData)); + vPayload = Format::fromVariant(vData); + LOG_EVENT(AdjustUltrafiltrationEditRequestData::toString(vData)); break; case Gui::GuiActionType::ID_AdjustUltrafiltrationConfirmReq: - if (count) { - vPayload = Format::fromVariant(vData); - } - LOG_EVENT(mSenderID + AdjustUltrafiltrationConfirmRequestData::toString(vData)); + vPayload = Format::fromVariant(vData); + LOG_EVENT(AdjustUltrafiltrationConfirmRequestData::toString(vData)); break; default: @@ -360,7 +354,7 @@ // unhandles messages: these will only be logged as received message // there has nothing been defined for these messages. - default : + default: printUnhandled (vMessage); break; Index: sources/canbus/messageinterpreter.h =================================================================== diff -u -r15de0cd12dad1ea5107c52e5ed89280bc9e29b1d -r246bf68b01c9249f2a74dddbba67f49807937fa2 --- sources/canbus/messageinterpreter.h (.../messageinterpreter.h) (revision 15de0cd12dad1ea5107c52e5ed89280bc9e29b1d) +++ sources/canbus/messageinterpreter.h (.../messageinterpreter.h) (revision 246bf68b01c9249f2a74dddbba67f49807937fa2) @@ -45,6 +45,8 @@ bool isPayloadLenValid (const Message &vMessage, Gui::GuiActionType vType) const; bool isValidMessage (const Message &vMessage, Gui::GuiActionType vType) const; + bool isDataLenValid (const Gui::GuiActionType &vActionId, const QVariantList &vData); + void printUnhandled (const Message &vMessage ) const; bool prepareData (const Message &vMessage, Gui::GuiActionType vID, Model::MAbstract &vModel, QVariantList &vData); Index: sources/gui/qml/main.qml =================================================================== diff -u -r15de0cd12dad1ea5107c52e5ed89280bc9e29b1d -r246bf68b01c9249f2a74dddbba67f49807937fa2 --- sources/gui/qml/main.qml (.../main.qml) (revision 15de0cd12dad1ea5107c52e5ed89280bc9e29b1d) +++ sources/gui/qml/main.qml (.../main.qml) (revision 246bf68b01c9249f2a74dddbba67f49807937fa2) @@ -134,10 +134,10 @@ PowerOff { id: _powerOffDialog onAccepted: { - _GuiView.doActionTransmit(GuiActions.PowerOff, GuiActions.Accepted) + _GuiView.doActionTransmit(GuiActions.ID_PowerOff, GuiActions.Accepted) } onRejected: { - _GuiView.doActionTransmit(GuiActions.PowerOff, GuiActions.Rejected) + _GuiView.doActionTransmit(GuiActions.ID_PowerOff, GuiActions.Rejected) } } Index: sources/model/hd/adjustment/MTreatmentAdjustRequests.h =================================================================== diff -u -r15de0cd12dad1ea5107c52e5ed89280bc9e29b1d -r246bf68b01c9249f2a74dddbba67f49807937fa2 --- sources/model/hd/adjustment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision 15de0cd12dad1ea5107c52e5ed89280bc9e29b1d) +++ sources/model/hd/adjustment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision 246bf68b01c9249f2a74dddbba67f49807937fa2) @@ -35,10 +35,25 @@ class MModel { protected: static QString toString (const QString &vStringPrefix, const QVariant &vParameters) { - return QString(vStringPrefix + "," + vParameters.toStringList().join(',')); + QString senderID = "UI,"; + return QString(senderID + vStringPrefix + "," + vParameters.toStringList().join(',')); }; }; +class MAdjustPowerOffReq : public MModel { +public: + quint8 state; + QString toString() { + return toString({state}); + } + + explicit MAdjustPowerOffReq(quint8 vState) : state(vState) { } + + static QString toString(const QVariantList &vParameters) { + return MModel::toString("PowerOff", vParameters); + } +}; + class MAdjustBloodDialysateReq : public MModel { public: quint32 bloodFlow = 0; @@ -49,7 +64,7 @@ } static QString toString(const QVariantList &vParameters) { - return MModel::toString("Adjust Blood/Dialysate", vParameters); + return MModel::toString("AdjustBloodDialisate", vParameters); } }; @@ -61,7 +76,7 @@ return toString({duration}); } static QString toString(const QVariantList &vParameters) { - return MModel::toString("Adjust Duration", vParameters); + return MModel::toString("AdjustDuration", vParameters); } }; @@ -77,7 +92,7 @@ return toString({requestedState}); } static QString toString(const QVariantList &vParameters) { - return MModel::toString("Adjust Ultrafiltration State", vParameters); + return MModel::toString("AdjustUFState", vParameters); } }; @@ -89,7 +104,7 @@ return toString({volume}); } static QString toString(const QVariantList &vParameters) { - return MModel::toString("Adjust Ultrafiltration Edit", vParameters); + return MModel::toString("AdjustUFEdit", vParameters); } }; @@ -105,12 +120,13 @@ return toString({volume , option}); } static QString toString(const QVariantList &vParameters) { - return MModel::toString("Adjust Ultrafiltration Confirm", vParameters); + return MModel::toString("AdjustUFConfirm", vParameters); } }; } +typedef Model:: MAdjustPowerOffReq AdjustPowerOffRequestData; typedef Model:: MAdjustBloodDialysateReq AdjustBloodDialysateRequestData; typedef Model:: MAdjustDurationReq AdjustDurationRequestData; typedef Model:: MAdjustUltrafiltrationStateReq AdjustUltrafiltrationStateRequestData; Index: sources/model/hd/adjustment/MTreatmentAdjustUltrafiltrationConfirmResponse.h =================================================================== diff -u -r6ae83fa9a1a3204864fc5b50fe906ac09e9c1ea5 -r246bf68b01c9249f2a74dddbba67f49807937fa2 --- sources/model/hd/adjustment/MTreatmentAdjustUltrafiltrationConfirmResponse.h (.../MTreatmentAdjustUltrafiltrationConfirmResponse.h) (revision 6ae83fa9a1a3204864fc5b50fe906ac09e9c1ea5) +++ sources/model/hd/adjustment/MTreatmentAdjustUltrafiltrationConfirmResponse.h (.../MTreatmentAdjustUltrafiltrationConfirmResponse.h) (revision 246bf68b01c9249f2a74dddbba67f49807937fa2) @@ -30,7 +30,7 @@ friend class ::tst_models; public: - QString stringPrefix = "Adjust Ultrafiltration Confirm"; + QString stringPrefix = "AdjustUFConfirm"; struct Data { bool mAccepted = 0; /*!< Accepted value of type quint32 extracted out */ quint32 mReason = 0; /*!< Reason value of type quint32 extracted out */ Index: sources/model/hd/adjustment/MTreatmentAdjustUltrafiltrationEditResponse.h =================================================================== diff -u -r30f83b2813e68ae3c2806399bf808b642c215b67 -r246bf68b01c9249f2a74dddbba67f49807937fa2 --- sources/model/hd/adjustment/MTreatmentAdjustUltrafiltrationEditResponse.h (.../MTreatmentAdjustUltrafiltrationEditResponse.h) (revision 30f83b2813e68ae3c2806399bf808b642c215b67) +++ sources/model/hd/adjustment/MTreatmentAdjustUltrafiltrationEditResponse.h (.../MTreatmentAdjustUltrafiltrationEditResponse.h) (revision 246bf68b01c9249f2a74dddbba67f49807937fa2) @@ -32,7 +32,7 @@ friend class ::tst_models; public: - QString stringPrefix = "Adjust Ultrafiltration Edit"; + QString stringPrefix = "AdjustUFEdit"; struct Data : public MAdjustUltrafiltrationConfirmResponse::Data { qint32 mDurationDiff= 0; /*!< durationDiff value of type quint32 extracted out */ float mRateDiff = 0; /*!< rateDiff value of type float extracted out */ Index: sources/model/hd/data/MTreatmentOutletFlowData.h =================================================================== diff -u -r30f83b2813e68ae3c2806399bf808b642c215b67 -r246bf68b01c9249f2a74dddbba67f49807937fa2 --- sources/model/hd/data/MTreatmentOutletFlowData.h (.../MTreatmentOutletFlowData.h) (revision 30f83b2813e68ae3c2806399bf808b642c215b67) +++ sources/model/hd/data/MTreatmentOutletFlowData.h (.../MTreatmentOutletFlowData.h) (revision 246bf68b01c9249f2a74dddbba67f49807937fa2) @@ -40,7 +40,6 @@ } _data; public: - QString stringPrefix = "Dialysate Outlet Flow"; struct Data { float mRefUFVol = 0; /*!< Reference UF Volume value of type float extracted out */ float mMeasUFVol = 0; /*!< Measured UF Volume value of type float extracted out */