Index: sources/canbus/messageinterpreter.cpp =================================================================== diff -u -red85c796c2e3bd73aeda374d9a109750bd7732e3 -rcb2101c6f2596d9131a5369420db345fe7125e71 --- sources/canbus/messageinterpreter.cpp (.../messageinterpreter.cpp) (revision ed85c796c2e3bd73aeda374d9a109750bd7732e3) +++ sources/canbus/messageinterpreter.cpp (.../messageinterpreter.cpp) (revision cb2101c6f2596d9131a5369420db345fe7125e71) @@ -83,21 +83,13 @@ return true; } -bool MessageInterpreter::isDataLenValid(const Gui::GuiActionType &vActionId, const QVariantList &vData) +void MessageInterpreter::logInvalidLength(const Gui::GuiActionType &vActionId) { - if (vActionId == Gui::GuiActionType::ID_KeepAlive) - return true; // This message is an exception which is also used to generate fake data and it has a variable length. - - if (payloadLen[vActionId] == 0) - return true; // Message with zero length data are ok as been defined - - if (vData.length()) return true; - QString mActionIdHexString = Format::toHexString(vActionId); - LOG_DEBUG(QString("Data length for transmit Message with ID '%1'Can't be 0") + LOG_DEBUG(QString("Incorrect data length for trsansmit Message with ID '%1'") .arg(mActionIdHexString)); - return false; } + /*! * \brief MessageInterpreter::validateMessage * \details Validate the messgae by checking its type and data @@ -184,59 +176,59 @@ QString mSenderID = "UI,"; vPayload.clear(); + int count = vData.length(); - if ( ! isDataLenValid(vActionId, vData)) return false; - switch (vActionId) { // notice we are in transmit mode - case Gui::GuiActionType::ID_PowerOff: { - quint8 state = vData[0].toUInt(); - vPayload += state; - LOG_EVENT(AdjustPowerOffRequestData(state).toString()); - } - break; + case Gui::GuiActionType::ID_Acknow: + break; // No data, Just registered + 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 - vPayload = Format::fromVariant(vData[0]); + if ( count ) { // this message has a variable length + vPayload = Format::fromVariant(vData[0]); + } LOG_EVENT(mSenderID + QString("CheckIn")); break; - case Gui::GuiActionType::ID_Acknow: - // Nothing needs to be done. - // Acknow has No data. - // Mentioned in the switch/case to be registered as a valid message. - break; - case Gui::GuiActionType::ID_RawData: - vPayload = Format::fromVariant(vData[0]); + if ( count ) { // this message has a variable length + vPayload = Format::fromVariant(vData[0]); + } LOG_EVENT(mSenderID + QString("RawData")); break; + case Gui::GuiActionType::ID_PowerOff: + if ( ! count ) { logInvalidLength(vActionId); return false; } + vPayload += Format::fromVariant(vData); + LOG_EVENT(AdjustPowerOffRequestData::toString(vData)); + break; + case Gui::GuiActionType::ID_AdjustBloodDialysateReq: + if ( ! count ) { logInvalidLength(vActionId); return false; } vPayload = Format::fromVariant(vData); LOG_EVENT(AdjustBloodDialysateRequestData::toString(vData)); break; case Gui::GuiActionType::ID_AdjustDurationReq: + if ( ! count ) { logInvalidLength(vActionId); return false; } vPayload = Format::fromVariant(vData); LOG_EVENT(AdjustDurationRequestData::toString(vData)); break; case Gui::GuiActionType::ID_AdjustUltrafiltrationStateReq: + if ( ! count ) { logInvalidLength(vActionId); return false; } vPayload = Format::fromVariant(vData); LOG_EVENT(AdjustUltrafiltrationStateRequestData::toString(vData)); break; case Gui::GuiActionType::ID_AdjustUltrafiltrationEditReq: + if ( ! count ) { logInvalidLength(vActionId); return false; } vPayload = Format::fromVariant(vData); LOG_EVENT(AdjustUltrafiltrationEditRequestData::toString(vData)); break; case Gui::GuiActionType::ID_AdjustUltrafiltrationConfirmReq: + if ( ! count ) { logInvalidLength(vActionId); return false; } vPayload = Format::fromVariant(vData); LOG_EVENT(AdjustUltrafiltrationConfirmRequestData::toString(vData)); break; Index: sources/canbus/messageinterpreter.h =================================================================== diff -u -r3aab84456cfbdc4c4f495975ba9b8968eb844309 -rcb2101c6f2596d9131a5369420db345fe7125e71 --- sources/canbus/messageinterpreter.h (.../messageinterpreter.h) (revision 3aab84456cfbdc4c4f495975ba9b8968eb844309) +++ sources/canbus/messageinterpreter.h (.../messageinterpreter.h) (revision cb2101c6f2596d9131a5369420db345fe7125e71) @@ -45,7 +45,7 @@ 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 logInvalidLength (const Gui::GuiActionType &vActionId); void printUnhandled (const Message &vMessage ) const; bool prepareData (const Message &vMessage, Gui::GuiActionType vID, Model::MAbstract &vModel, QVariantList &vData ); Index: sources/model/hd/adjustment/MTreatmentAdjustRequests.h =================================================================== diff -u -r246bf68b01c9249f2a74dddbba67f49807937fa2 -rcb2101c6f2596d9131a5369420db345fe7125e71 --- sources/model/hd/adjustment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision 246bf68b01c9249f2a74dddbba67f49807937fa2) +++ sources/model/hd/adjustment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision cb2101c6f2596d9131a5369420db345fe7125e71) @@ -37,7 +37,7 @@ static QString toString (const QString &vStringPrefix, const QVariant &vParameters) { QString senderID = "UI,"; return QString(senderID + vStringPrefix + "," + vParameters.toStringList().join(',')); - }; + } }; class MAdjustPowerOffReq : public MModel { Index: unittests/tst_logging.cpp =================================================================== diff -u -r3aab84456cfbdc4c4f495975ba9b8968eb844309 -rcb2101c6f2596d9131a5369420db345fe7125e71 --- unittests/tst_logging.cpp (.../tst_logging.cpp) (revision 3aab84456cfbdc4c4f495975ba9b8968eb844309) +++ unittests/tst_logging.cpp (.../tst_logging.cpp) (revision cb2101c6f2596d9131a5369420db345fe7125e71) @@ -75,16 +75,16 @@ LOG_DEBUG("2 - Error log has been created"); QString mContent; FileHandler::read(_Logger._logFileName, mContent); - QCOMPARE(mContent, "Error: , 2 - Error log has been created\n"); + QCOMPARE(mContent, ",2 - Error log has been created\n"); } void tst_logging::logUnknown() { emit Storage::Logger::I().didLog("4 - Datum log has been created", Storage::Logger::LogType::eLogType_Count); QString mContent; FileHandler::read(_Logger._logFileName, mContent); - QCOMPARE(mContent, "Error: , Incorrect type of logging\n" - "Error: , 4 - Datum log has been created\n"); + QCOMPARE(mContent, ",Incorrect type of logging 3\n" + ",4 - Datum log has been created\n"); } void tst_logging::logError_gDisableUnhandledReport_False() @@ -99,7 +99,7 @@ FileHandler::read(_Logger._logFileName, mContent); QStringList lines = mContent.split("\n"); QVERIFY(lines.count()); - QCOMPARE(lines.first(), "Error: , Unhandled Message ID (HD)"); + QCOMPARE(lines.first(), ",Unhandled Message ID (HD)"); } void tst_logging::logError_gDisableUnhandledReport_True() @@ -123,12 +123,12 @@ msg.actionId = Gui::GuiActionType::ID_TreatmentStates; msg.data = {}; QVariantList vData {}; - QVERIFY(iMsg.interpretMessage_HD(msg, vData)); + QVERIFY(! iMsg.interpretMessage_HD(msg, vData)); QString mContent; FileHandler::read(_Logger._logFileName, mContent); QStringList lines = mContent.split("\n"); QVERIFY(lines.count()); - QCOMPARE(lines.first(), "Error: , Unhandled Message ID (HD)"); + QCOMPARE(lines.first(), ",Incorrect data length for received Message with ID '0x0F00'"); } void tst_logging::setLogPath_F() Index: unittests/tst_logging.h =================================================================== diff -u -r15de0cd12dad1ea5107c52e5ed89280bc9e29b1d -rcb2101c6f2596d9131a5369420db345fe7125e71 --- unittests/tst_logging.h (.../tst_logging.h) (revision 15de0cd12dad1ea5107c52e5ed89280bc9e29b1d) +++ unittests/tst_logging.h (.../tst_logging.h) (revision cb2101c6f2596d9131a5369420db345fe7125e71) @@ -40,8 +40,8 @@ void init(); void logEvent(); - void logError(); void logDatum(); + void logError(); void logUnknown(); void logError_gDisableUnhandledReport_False(); Index: unittests/tst_messaging.cpp =================================================================== diff -u -r36740a3ee8e7164e70d8627b057624ec0ef1eb8f -rcb2101c6f2596d9131a5369420db345fe7125e71 --- unittests/tst_messaging.cpp (.../tst_messaging.cpp) (revision 36740a3ee8e7164e70d8627b057624ec0ef1eb8f) +++ unittests/tst_messaging.cpp (.../tst_messaging.cpp) (revision cb2101c6f2596d9131a5369420db345fe7125e71) @@ -76,7 +76,7 @@ msg.data = {}; Model::MPowerOff data; data.fromByteArray(msg.data); - QVERIFY( ! iMsg.powerOff(msg, data)); + QVERIFY( ! iMsg.interpretMessage(msg, data)); } /*! @@ -91,7 +91,7 @@ msg.data = {}; Model::MPowerOff data; data.fromByteArray(msg.data); - QVERIFY( ! iMsg.getPowerOffData(msg, data)); + QVERIFY( ! iMsg.interpretMessage(msg, data)); } /*! @@ -105,7 +105,7 @@ msg.actionId = Gui::GuiActionType::ID_PowerOff; msg.data = {}; QVariantList data; - QVERIFY( ! iMsg.powerOffData(msg, data)); + QVERIFY( ! iMsg.interpretMessage(msg, data)); } /*! @@ -120,7 +120,7 @@ msg.data = {}; Model::MBloodFlow data; data.fromByteArray(msg.data); - QVERIFY( ! iMsg.getBloodFlowData(msg, data)); + QVERIFY( ! iMsg.interpretMessage(msg, data)); } /*! @@ -135,7 +135,7 @@ msg.data = {}; Model::MBloodFlow data; data.fromByteArray(msg.data); - QVERIFY( ! iMsg.getBloodFlowData(msg, data)); + QVERIFY( ! iMsg.interpretMessage(msg, data)); } /*! @@ -149,7 +149,7 @@ msg.actionId = Gui::GuiActionType::ID_BloodFlow; msg.data = {}; QVariantList data; - QVERIFY( ! iMsg.bloodFlowData(msg, data)); + QVERIFY( ! iMsg.interpretMessage(msg, data)); QVERIFY( data.isEmpty()); } @@ -165,7 +165,7 @@ msg.data = {}; Model::MDialysateFlow data; data.fromByteArray(msg.data); - QVERIFY( ! iMsg.getDialysateInletFlowData(msg, data)); + QVERIFY( ! iMsg.interpretMessage(msg, data)); } /*! @@ -180,7 +180,7 @@ msg.data = {}; Model::MDialysateFlow data; data.fromByteArray(msg.data); - QVERIFY( ! iMsg.getDialysateInletFlowData(msg, data)); + QVERIFY( ! iMsg.interpretMessage(msg, data)); } /*! @@ -194,7 +194,7 @@ msg.actionId = Gui::GuiActionType::ID_DialysateInletFlow; msg.data = {}; QVariantList data; - QVERIFY( ! iMsg.dialysateInletFlowData(msg, data)); + QVERIFY( ! iMsg.interpretMessage(msg, data)); QVERIFY( data.isEmpty()); } @@ -210,7 +210,7 @@ msg.data = {}; Model::MOutletFlow data; data.fromByteArray(msg.data); - QVERIFY( ! iMsg.getDialysateOutletFlowData(msg, data)); + QVERIFY( ! iMsg.interpretMessage(msg, data)); } /*! @@ -225,7 +225,7 @@ msg.data = {}; Model::MOutletFlow data; data.fromByteArray(msg.data); - QVERIFY( ! iMsg.getDialysateOutletFlowData(msg, data)); + QVERIFY( ! iMsg.interpretMessage(msg, data)); } /*! @@ -239,7 +239,7 @@ msg.actionId = Gui::GuiActionType::ID_DialysateOutletFlow; msg.data = {}; QVariantList data; - QVERIFY( ! iMsg.dialysateOutletFlowData(msg, data)); + QVERIFY( ! iMsg.interpretMessage(msg, data)); QVERIFY( data.isEmpty()); } @@ -255,7 +255,7 @@ msg.data = {}; Model::MTreatmentTime data; data.fromByteArray(msg.data); - QVERIFY( ! iMsg.getTreatmentTime(msg, data)); + QVERIFY( ! iMsg.interpretMessage(msg, data)); } /*!