Index: sources/canbus/MessageInterpreter.cpp =================================================================== diff -u -rd0a65109913c9f959d594615d3022c040123a008 -r5215e145a0f26a20c99e3f10af6ac8a9c3b67383 --- sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision d0a65109913c9f959d594615d3022c040123a008) +++ sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 5215e145a0f26a20c99e3f10af6ac8a9c3b67383) @@ -111,13 +111,18 @@ */ bool MessageInterpreter::isPayloadLenValid(const Message &vMessage, Gui::GuiActionType vType) const { + int len = vMessage.data.length(); QString mActionIdHexString = Format::toHexString(vMessage.actionId); if ( ! payloadLen.contains(vType) ) { LOG_DEBUG(QString("Undefined data length for received Message with ID '%1'").arg(mActionIdHexString)); return false; } - if ( vMessage.data.length() < payloadLen[vType] ) { - LOG_DEBUG(QString("Incorrect data length for received Message with ID '%1'").arg(mActionIdHexString)); + if ( len < payloadLen[vType] ) { + LOG_DEBUG(QString("Incorrect data length (%2 of %3) for received Message with ID '%1'") + .arg(mActionIdHexString) + .arg(len) + .arg(payloadLen[vType]) + ); return false; } return true; @@ -225,21 +230,25 @@ break; case Gui::GuiActionType::ID_PowerOff : INTERPRET_RECEIVED_MESSAGE(AdjustPowerOffRequestData ); break; + case Gui::GuiActionType::ID_AdjustVersionsReq : INTERPRET_RECVD_MT_MESSAGE(AdjustVersionsRequestData ); break; // in-treatment case Gui::GuiActionType::ID_AdjustDurationReq : INTERPRET_RECEIVED_MESSAGE(AdjustDurationRequestData ); break; case Gui::GuiActionType::ID_AdjustBloodDialysateReq : INTERPRET_RECEIVED_MESSAGE(AdjustBloodDialysateRequestData ); break; case Gui::GuiActionType::ID_AdjustPressuresLimitsReq : INTERPRET_RECEIVED_MESSAGE(AdjustPressuresLimitsRequestData ); break; case Gui::GuiActionType::ID_AdjustSalineReq : INTERPRET_RECEIVED_MESSAGE(AdjustSalineRequestData ); break; case Gui::GuiActionType::ID_AdjustHeparinReq : INTERPRET_RECEIVED_MESSAGE(AdjustHeparinRequestData ); break; // in-treatment - ultrafiltration - case Gui::GuiActionType::ID_AdjustUltrafiltrationInitReq : INTERPRET_RECEIVED_MESSAGE(AdjustUltrafiltrationInitRequestData ); break; - case Gui::GuiActionType::ID_AdjustUltrafiltrationStateReq : INTERPRET_RECEIVED_MESSAGE(AdjustUltrafiltrationStateRequestData ); break; - case Gui::GuiActionType::ID_AdjustUltrafiltrationEditReq : INTERPRET_RECEIVED_MESSAGE(AdjustUltrafiltrationEditRequestData ); break; - case Gui::GuiActionType::ID_AdjustUltrafiltrationConfirmReq : INTERPRET_RECEIVED_MESSAGE(AdjustUltrafiltrationConfirmRequestData); break; + case Gui::GuiActionType::ID_AdjustUltrafiltrationInitReq : INTERPRET_RECEIVED_MESSAGE(AdjustUltrafiltrationInitRequestData ); break; + case Gui::GuiActionType::ID_AdjustUltrafiltrationStateReq : INTERPRET_RECEIVED_MESSAGE(AdjustUltrafiltrationStateRequestData ); break; + case Gui::GuiActionType::ID_AdjustUltrafiltrationEditReq : INTERPRET_RECEIVED_MESSAGE(AdjustUltrafiltrationEditRequestData ); break; + case Gui::GuiActionType::ID_AdjustUltrafiltrationConfirmReq : INTERPRET_RECEIVED_MESSAGE(AdjustUltrafiltrationConfirmRequestData ); break; + // Post-Treatment + case Gui::GuiActionType::ID_AdjustRinsebackReq : INTERPRET_RECEIVED_MESSAGE(AdjustRinsebackRequestData ); break; + case Gui::GuiActionType::ID_AdjustRecirculateReq : INTERPRET_RECEIVED_MESSAGE(AdjustRecirculateRequestData ); break; + case Gui::GuiActionType::ID_AdjustTreatmentEndReq : INTERPRET_RECEIVED_MESSAGE(AdjustTreatmentEndRequestData ); break; // pre-Treatment case Gui::GuiActionType::ID_TreatmentStartReq : INTERPRET_RECEIVED_MESSAGE(TreatmentStartRequestData ); break; case Gui::GuiActionType::ID_TreatmentConfirmReq : INTERPRET_RECEIVED_MESSAGE(TreatmentConfirmRequestData ); break; - case Gui::GuiActionType::ID_TreatmentEndReq : INTERPRET_RECVD_MT_MESSAGE(TreatmentEndRequestData ); break; case Gui::GuiActionType::ID_TreatmentCreateReq : INTERPRET_RECEIVED_MESSAGE(AdjustTreatmentParametersRequestData ); break; // alarms case Gui::GuiActionType::ID_AlarmSilenceReq : INTERPRET_RECEIVED_MESSAGE(AlarmSilenceRequestData ); break; @@ -321,7 +330,10 @@ case Gui::GuiActionType::ID_PrimingData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_PrimingData ); break; case Gui::GuiActionType::ID_Saline : ok = notify(vMessage, vData, Gui::GuiActionType::ID_Saline ); break; case Gui::GuiActionType::ID_Heparin : ok = notify(vMessage, vData, Gui::GuiActionType::ID_Heparin ); break; - + case Gui::GuiActionType::ID_Rinseback : ok = notify(vMessage, vData, Gui::GuiActionType::ID_Rinseback ); break; + case Gui::GuiActionType::ID_Recirculate : ok = notify(vMessage, vData, Gui::GuiActionType::ID_Recirculate ); break; + case Gui::GuiActionType::ID_BloodPrime : ok = notify(vMessage, vData, Gui::GuiActionType::ID_BloodPrime ); break; + case Gui::GuiActionType::ID_HDAccelerometerData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_HDAccelerometerData ); break; // ----- Events case Gui::GuiActionType::ID_HDOperationModeData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_HDOperationModeData ); break; case Gui::GuiActionType::ID_HDDebugText : ok = notify(vMessage, vData, Gui::GuiActionType::ID_HDDebugText ); break; @@ -339,13 +351,16 @@ case Gui::GuiActionType::ID_AdjustUltrafiltrationInitRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustUltrafiltrationInitRsp ); break; case Gui::GuiActionType::ID_AdjustUltrafiltrationStateRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustUltrafiltrationStateRsp ); break; case Gui::GuiActionType::ID_AdjustHeparinRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustHeparinRsp ); break; + case Gui::GuiActionType::ID_AdjustRinsebackRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustRinsebackRsp ); break; + case Gui::GuiActionType::ID_AdjustRecirculateRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustRecirculateRsp ); break; + case Gui::GuiActionType::ID_AdjustTreatmentEndRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustTreatmentEndRsp ); break; + case Gui::GuiActionType::ID_AdjustHDVersionsRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustHDVersionsRsp ); break; // these need to be standard and use notify as well 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<>() case Gui::GuiActionType::ID_TreatmentStartRsp : ok = notify (vMessage, vData, Gui::GuiActionType::ID_TreatmentStartRsp ); break; - case Gui::GuiActionType::ID_TreatmentEndRsp : ok = notify (vMessage, vData, Gui::GuiActionType::ID_TreatmentEndRsp ); break; // Alarms case Gui::GuiActionType::ID_AlarmStatus : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AlarmStatus ); break; @@ -385,7 +400,7 @@ ok = true; LOG_EVENT(QString("DG,CheckIn," + QVariant(vData).toStringList().join(','))); break; - + // DG data messages case Gui::GuiActionType::ID_DGROPumpData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DGROPumpData ); break; case Gui::GuiActionType::ID_DGPressuresData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DGPressuresData ); break; case Gui::GuiActionType::ID_DGDrainPumpData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DGDrainPumpData ); break; @@ -396,7 +411,11 @@ case Gui::GuiActionType::ID_DGLoadCellReadingsData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DGLoadCellReadingsData); break; case Gui::GuiActionType::ID_DGTemperaturesData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DGTemperaturesData ); break; case Gui::GuiActionType::ID_DGDebugText : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DGDebugText ); break; + case Gui::GuiActionType::ID_DGAccelerometerData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DGAccelerometerData ); break; + // DG Response Messages + case Gui::GuiActionType::ID_AdjustDGVersionsRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustDGVersionsRsp ); break; + // unhandled messages: these will only be logged as received message // there has nothing been defined for these messages. default: