Index: sources/canbus/messageinterpreter.cpp =================================================================== diff -u -r6c59703781373f33cfec27eacf1f7e4ba1374626 -r35959dd708a5c4fdf02626306441e5a77e7f7782 --- sources/canbus/messageinterpreter.cpp (.../messageinterpreter.cpp) (revision 6c59703781373f33cfec27eacf1f7e4ba1374626) +++ sources/canbus/messageinterpreter.cpp (.../messageinterpreter.cpp) (revision 35959dd708a5c4fdf02626306441e5a77e7f7782) @@ -212,8 +212,7 @@ break; case Gui::GuiActionType::PressureOcclusion: - printUnhandled (vMessage); - ok = true; + ok = pressureOcclusionData (vMessage, vData); break; default: @@ -540,3 +539,34 @@ // Types::getBits(ba, i, flag, 32); // qDebug() << '@' << flag << flag.toString() << ba; } + +bool MessageInterpreter::getPressureOcclusionData(const Message &vMessage, Model::MPressureOcclusion &vData) +{ + if ( vMessage.actionId != Gui::GuiActionType::PressureOcclusion ) { + return false; + } + + if ( vMessage.data.length() < payloadLen[Gui::GuiActionType::PressureOcclusion] ) { + QString mActionIdHexString = Format::toHexString(vMessage.actionId); + LOG_ERROR(tr("Incorrect data for Message ID (HD) '%1'").arg(mActionIdHexString)); + return false; + } + + vData.fromByteArray(vMessage.data); + + return true; +} + +bool MessageInterpreter::pressureOcclusionData(const Message &vMessage, QVariantList &vData) +{ + bool ok; + Model::MPressureOcclusion mData; + ok = getPressureOcclusionData(vMessage, mData); + LOG_DATUM(mData.toString()); + + if (ok) { + mData.toVariantList(vData); + emit didActionReceive(mData.data()); + } + return ok; +}