Index: sources/canbus/messageinterpreter.cpp =================================================================== diff -u -r9392f5be540bb428dc64757ef2e50a4d4e5090a8 -r2fdeb1c461dde1b7b8bffcc5b814736190f98988 --- sources/canbus/messageinterpreter.cpp (.../messageinterpreter.cpp) (revision 9392f5be540bb428dc64757ef2e50a4d4e5090a8) +++ sources/canbus/messageinterpreter.cpp (.../messageinterpreter.cpp) (revision 2fdeb1c461dde1b7b8bffcc5b814736190f98988) @@ -140,14 +140,16 @@ types::F32 mMotorSpeed ; types::F32 mMotorCtlSpeed ; types::F32 mMotorCtlCurrent ; - ok = getBloodFlowData(vMessage, mFlowSetPoint, mMeasuredFlow, mRotorSpeed, mMotorSpeed, mMotorCtlSpeed, mMotorCtlCurrent); + types::F32 mPWMDtCycle ; + ok = getBloodFlowData(vMessage, mFlowSetPoint, mMeasuredFlow, mRotorSpeed, mMotorSpeed, mMotorCtlSpeed, mMotorCtlCurrent, mPWMDtCycle); if (ok) { vData += mFlowSetPoint .value; vData += mMeasuredFlow .value; vData += mRotorSpeed .value; vData += mMotorSpeed .value; vData += mMotorCtlSpeed .value; vData += mMotorCtlCurrent.value; + vData += mPWMDtCycle .value; } break; } @@ -204,9 +206,14 @@ * \param vMotorSpeed - Motor Speed value of type float extracted out * \param vMotorCtlSpeed - Motor Controller Speed value of type float extracted out * \param vMotorCtlCurrent - Motor Controller Current value of type float extracted out + * \param vPWMDtCycle - PWM Duty Cycle in % value of type float extracted out * \return true if the message can be successfully converted to the Blood Flow data elements. */ -bool MessageInterpreter::getBloodFlowData(const Message &vMessage, types::U32 &vFlowSetPoint, types::F32 &vMeasuredFlow, types::F32 &vRotorSpeed, types::F32 &vMotorSpeed, types::F32 &vMotorCtlSpeed, types::F32 &vMotorCtlCurrent) +bool MessageInterpreter::getBloodFlowData( + const Message &vMessage , + types::U32 &vFlowSetPoint , + types::F32 &vMeasuredFlow , types::F32 &vRotorSpeed , types::F32 &vMotorSpeed, + types::F32 &vMotorCtlSpeed , types::F32 &vMotorCtlCurrent , types::F32 &vPWMDtCycle) { if ( vMessage.actionId != GuiActionType::BloodFlow ) { return false; @@ -268,6 +275,14 @@ i++; } + p += 4; + j = 0; + while (i < p) { + vPWMDtCycle.bytes[j] = vMessage.data[i]; + j++; + i++; + } + return true; }