Index: sources/canbus/MessageInterpreter.cpp =================================================================== diff -u -r64d87d540594252e8039ab2595016d98f1e3cc28 -rb8dd541d377ad1e8d7b988ce0163d99bff53843f --- sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 64d87d540594252e8039ab2595016d98f1e3cc28) +++ sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision b8dd541d377ad1e8d7b988ce0163d99bff53843f) @@ -23,6 +23,7 @@ #include "format.h" using namespace Can; +using namespace Model; #define DEBUG_RECEIVE_SIGNAL(vID, vMODEL) //qDebug() << vID << vMODEL; @@ -253,11 +254,19 @@ LOG_EVENT(AlarmSilenceRequestData::toString(vData)); break; - default: + case Gui::GuiActionType::ID_CreateTreatmentReq: { + if ( ! length ) { logInvalidLength(vActionId); return false; } + vPayload = Format::fromVariant(vData); + MAdjustTreatmentParametersRequest params; + params.fromVariantList(vData); + LOG_EVENT(params.toString()); + } break; + + default: { QString mActionIdHexString = Format::toHexString(vActionId); LOG_DEBUG(mSenderID + tr("Unknown transmit Message with ID '%1'").arg(mActionIdHexString)); ok = false; - break; + } break; } return ok; @@ -350,7 +359,9 @@ case Gui::GuiActionType::ID_AdjustUltrafiltrationEditRsp : ok = adjustUltrafiltrationEdit (vMessage, vData); break; // TODO : implement notify<>() case Gui::GuiActionType::ID_AdjustUltrafiltrationConfirmRsp : ok = adjustUltrafiltrationConfirm (vMessage, vData); break; // TODO : implement notify<>() - // unhandled messages: these will only be logged as received message + case Gui::GuiActionType::ID_CreateTreatmentRsp : ok = createTreatmentRespData (vMessage, vData); break; + // unhandles messages: these will only be logged as received message + // there has nothing been defined for these messages. default : printUnhandled (vMessage ); break; } @@ -585,3 +596,26 @@ return ok; } + +/*! + * \brief MessageInterpreter::createTreatmentRespData + * Checks the validity of the create treatment response data. + * \param vMessage - The message + * \param vData - the output data + * \return true if ok, false otherwise + */ +bool MessageInterpreter::createTreatmentRespData(const Message &vMessage, QVariantList &vData) { + bool ok = false; + if ( ! isType (vMessage, Gui::GuiActionType::ID_CreateTreatmentRsp) ) return ok; + if ( ! isPayloadLenValid(vMessage, Gui::GuiActionType::ID_CreateTreatmentRsp) ) return ok; + + Model::MTreatmentParametersResponse mData; + ok = mData.fromByteArray(vMessage.data); + LOG_DATUM(mData.toString()); + + mData.toVariantList(vData); + emit didActionReceive(mData.data()); + + return ok; + +}