Index: sources/canbus/MessageInterpreter.cpp =================================================================== diff -u -re1821621effaef81c8d70f70c9524c024383f289 -r241eac15dc76293bbd5ed6a24dbd980af6897f7c --- sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision e1821621effaef81c8d70f70c9524c024383f289) +++ sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 241eac15dc76293bbd5ed6a24dbd980af6897f7c) @@ -37,6 +37,14 @@ LOG_EVENT(vMODEL::toString(vData)); \ DEBUG_RECEIVE_SIGNAL(0, typeid(vMODEL).name()) +// another version of the INTERPRET_RECEIVED_MESSAGE for empty messages +// same later improvements apply to this MACRO as well. +#define INTERPRET_RECVD_MT_MESSAGE(vMODEL) \ + if ( length ) { logInvalidLength(vActionId); return false; } \ + vPayload = Format::fromVariant(vData); \ + LOG_EVENT(vMODEL::toString(vData)); \ + DEBUG_RECEIVE_SIGNAL(0, typeid(vMODEL).name()) + /*! * \brief MessageInterpreter::MessageInterpreter * \details Constructor @@ -232,7 +240,7 @@ // pre-Treatment case Gui::GuiActionType::ID_StartTreatmentReq : INTERPRET_RECEIVED_MESSAGE(StartTreatmentRequestData ); break; case Gui::GuiActionType::ID_ConfirmTreatmentReq : INTERPRET_RECEIVED_MESSAGE(ConfirmTreatmentRequestData ); break; - case Gui::GuiActionType::ID_EndTreatmentReq : INTERPRET_RECEIVED_MESSAGE(EndTreatmentRequestData ); break; + case Gui::GuiActionType::ID_EndTreatmentReq : INTERPRET_RECVD_MT_MESSAGE(EndTreatmentRequestData ); break; case Gui::GuiActionType::ID_CreateTreatmentReq : INTERPRET_RECEIVED_MESSAGE(AdjustTreatmentParametersRequestData ); break; // alarms case Gui::GuiActionType::ID_AlarmSilenceReq : INTERPRET_RECEIVED_MESSAGE(AlarmSilenceRequestData ); break;