Index: sources/canbus/messageinterpreter.cpp =================================================================== diff -u -rd3edfbd78f021082f37c7ee79a5a31a57b2808d4 -r595ed1fbe8066960afd4c8fea168208e81b173d9 --- sources/canbus/messageinterpreter.cpp (.../messageinterpreter.cpp) (revision d3edfbd78f021082f37c7ee79a5a31a57b2808d4) +++ sources/canbus/messageinterpreter.cpp (.../messageinterpreter.cpp) (revision 595ed1fbe8066960afd4c8fea168208e81b173d9) @@ -162,12 +162,7 @@ switch (vMessage.actionId) { // notice we are in receive mode case Gui::GuiActionType::PowerOff: { - quint8 mShowHide; - ok = getPowerOffData(vMessage, mShowHide); - if (ok) { - vData += mShowHide; - } - LOG_DATUM(QString("Power Off (%1)").arg(mShowHide)); + ok = powerOffData (vMessage, vData); break; } case Gui::GuiActionType::Acknow: @@ -179,42 +174,42 @@ break; case Gui::GuiActionType::BloodFlow: - ok = bloodFlowData (vMessage, vData); + ok = bloodFlowData (vMessage, vData); break; case Gui::GuiActionType::DialysateInletFlow: - ok = dialysateInletFlowData (vMessage, vData); + ok = dialysateInletFlowData (vMessage, vData); break; case Gui::GuiActionType::DialysateOutletFlow: - ok = dialysateOutletFlowData (vMessage, vData); + ok = dialysateOutletFlowData (vMessage, vData); break; case Gui::GuiActionType::TreatmentTime: - ok = treatmentTime (vMessage, vData); + ok = treatmentTime (vMessage, vData); break; case Gui::GuiActionType::AlarmStatus: - ok = alarmStatus (vMessage, vData); + ok = alarmStatus (vMessage, vData); break; case Gui::GuiActionType::AlarmTriggered: - printUnhandled (vMessage); + printUnhandled (vMessage); ok = true; break; case Gui::GuiActionType::AlarmCleared: - printUnhandled (vMessage); + printUnhandled (vMessage); ok = true; break; case Gui::GuiActionType::PressureOcclusion: - printUnhandled (vMessage); + printUnhandled (vMessage); ok = true; break; default: - printUnhandled (vMessage); + printUnhandled (vMessage); break; } return ok; @@ -246,24 +241,45 @@ * \details This is the method which interprets the PowerOff message data * in vMessage of type Message. * to its elements of data. - * \param vMessage - The vMessage of type Message which contains all the data, - * require to be interpreted. - * \param vShowHide - The return value of extracted fro + * \param vMessage - The vMessage of type Message which contains all the data, require to be interpreted. + * \param vData - The BloodFlow data * \return true if the data can be extracted as defined for PowerOff Message ID */ -bool MessageInterpreter::getPowerOffData(const Message &vMessage, quint8 &vShowHide) +bool MessageInterpreter::getPowerOffData(const Message &vMessage, Model::MPowerOff &vData) { - bool ok = true; - int l = vMessage.data.length(); - quint8 ix = static_cast(Gui::GuiActionIndx::PowerOff_ShowHide); - if (l >= ix + 1) { - quint8 tmp = vMessage.data[ix]; - vShowHide = tmp; - } else { + if ( vMessage.actionId != Gui::GuiActionType::PowerOff) { + return false; + } + if ( vMessage.data.length() < payloadLen[Gui::GuiActionType::PowerOff] ) { QString mActionIdHexString = Format::toHexString(vMessage.actionId); LOG_ERROR(tr("Incorrect data for Message ID (HD) '%1'").arg(mActionIdHexString)); - ok = false; + return false; } + + vData.fromByteArray(vMessage.data); + + return true; +} + +/*! + * \brief MessageInterpreter::bloodFlowData + * \details Used the getBloodFlowData method and converts each parameter + * in vData of type QVaranitList, to be used in the GUI + * Also logs the data + * \param vMessage - The message + * \param vData - the output data + * \return return value of the method getBloodFlowData + */ +bool MessageInterpreter::powerOffData(const Message &vMessage, QVariantList &vData) +{ + bool ok; + Model::MPowerOff mData; + ok = getPowerOffData(vMessage, mData); + LOG_DATUM(mData.toString()); + if (ok) { + mData.toVariantList(vData); + emit didActionReceive(mData.data()); + } return ok; } @@ -275,7 +291,7 @@ * \param vData - The BloodFlow data * \return true if the message can be successfully converted to the Blood Flow data elements. */ -bool MessageInterpreter::getBloodFlowData(const Message &vMessage, Model::BloodFlow &vData) +bool MessageInterpreter::getBloodFlowData(const Message &vMessage, Model::MBloodFlow &vData) { if ( vMessage.actionId != Gui::GuiActionType::BloodFlow ) { return false; @@ -303,7 +319,7 @@ bool MessageInterpreter::bloodFlowData(const Message &vMessage, QVariantList &vData) { bool ok; - Model::BloodFlow mData; + Model::MBloodFlow mData; ok = getBloodFlowData(vMessage, mData); LOG_DATUM(mData.toString()); if (ok) { @@ -368,7 +384,7 @@ * \param vData - The dialydate outlet flow data (ultrafiltration) * \return true if the message can be successfully converted to the Blood Flow data elements. */ -bool MessageInterpreter::getDialysateOutletFlowData(const Message &vMessage, Model::OutletFlow &vData) +bool MessageInterpreter::getDialysateOutletFlowData(const Message &vMessage, Model::MOutletFlow &vData) { if ( vMessage.actionId != Gui::GuiActionType::DialysateOutletFlow ) { return false; @@ -396,7 +412,7 @@ bool MessageInterpreter::dialysateOutletFlowData(const Message &vMessage, QVariantList &vData) { bool ok; - Model::OutletFlow mData; + Model::MOutletFlow mData; ok = getDialysateOutletFlowData(vMessage, mData); LOG_DATUM(mData.toString()); if (ok) { @@ -412,7 +428,7 @@ * \param vData - Treatment Time data * \return true if the message can be successfully converted to the Blood Flow data elements. */ -bool MessageInterpreter::getTreatmentTime( const Message &vMessage , Model::TreatmentTime &vData) +bool MessageInterpreter::getTreatmentTime( const Message &vMessage , Model::MTreatmentTime &vData) { if ( vMessage.actionId != Gui::GuiActionType::TreatmentTime ) { return false; @@ -440,7 +456,7 @@ bool MessageInterpreter::treatmentTime(const Message &vMessage, QVariantList &vData) { bool ok; - Model::TreatmentTime mData; + Model::MTreatmentTime mData; ok = getTreatmentTime(vMessage, mData); LOG_DATUM(mData.toString()); if (ok) { @@ -459,7 +475,7 @@ * \param vData - Alarm Status dta * \return true if the data can be extracted as defined for PowerOff Message ID */ -bool MessageInterpreter::getAlarmStatus(const Message &vMessage, Model::AlarmStatus &vData) +bool MessageInterpreter::getAlarmStatus(const Message &vMessage, Model::MAlarmStatus &vData) { if ( vMessage.actionId != Gui::GuiActionType::AlarmStatus ) { return false; @@ -486,7 +502,7 @@ */ bool MessageInterpreter::alarmStatus(const Message &vMessage, QVariantList &vData) { bool ok; - Model::AlarmStatus mData; + Model::MAlarmStatus mData; ok = getAlarmStatus(vMessage, mData); LOG_DATUM(mData.toString()); if (ok) {