Index: sources/canbus/messageinterpreter.cpp =================================================================== diff -u -r5734e6289c18ec3cfe4749de8e3a6043f98dbcff -re591b135f821c1b1e13c2db8429dc63648c2452c --- sources/canbus/messageinterpreter.cpp (.../messageinterpreter.cpp) (revision 5734e6289c18ec3cfe4749de8e3a6043f98dbcff) +++ sources/canbus/messageinterpreter.cpp (.../messageinterpreter.cpp) (revision e591b135f821c1b1e13c2db8429dc63648c2452c) @@ -168,7 +168,7 @@ // coco begin validated: Is a placeholder and There is no definition/implementation of DG communication with UI. case eChlid_DG_UI: //case eChlid_DG_Alarm: - //case eChlid_DG_Sync: + case eChlid_DG_Sync: ok = interpretMessage_DG(vMessage, vData); break; @@ -192,7 +192,7 @@ QString mActionIdHexString = Format::toHexString(vMessage.actionId, false, eLenMessageIDDigits); QString logMessage = tr("Unhandled Message ID (HD)") + '\n' + QString("%1 # %2 %3") - .arg(vMessage.can_id, 3, 16, QChar('0')) + .arg(int(vMessage.can_id), 3, 16, QChar('0')) .arg(mActionIdHexString) .arg(QString(vMessage.data.toHex('.'))); LOG_ERROR(logMessage); @@ -215,8 +215,12 @@ { bool ok = false; vData.clear(); - + //qDebug() << vMessage.actionId; switch (vMessage.actionId) { // notice we are in receive mode + case Gui::GuiActionType::CanBUSFaultCount: + ok = canbusFaultCountData (vMessage, vData); + break; + case Gui::GuiActionType::PowerOff: { ok = powerOffData (vMessage, vData); break; @@ -316,10 +320,19 @@ */ bool MessageInterpreter::interpretMessage_DG(const Message &vMessage, QVariantList &vData) { - // coco begin validated: No data have been interpreted from DG yet - Q_UNUSED(vMessage ); - Q_UNUSED(vData ); - return false; + bool ok = false; + vData.clear(); + + switch (vMessage.actionId) { // notice we are in receive mode + case Gui::GuiActionType::LoadCellReadings: + ok = loadCellReadingsData (vMessage, vData); + break; + + default: + printUnhandled (vMessage); + break; + } + return ok; } // coco end @@ -668,7 +681,7 @@ } /*! - * \brief MessageInterpreter::getTreatmentRangesData + * \brief MessageInterpreter::treatmentRangesData * \details This method interprets Treatment Ranges message data * in vMessage of type Message. * \param vMessage - The vMessage of type Message which contains all the data, @@ -694,6 +707,60 @@ } /*! + * \brief MessageInterpreter::loadCellReadingsData + * \details This method interprets LoadCellReadings message data + * in vMessage of type Message. + * \param vMessage - The vMessage of type Message which contains all the data, + * require to be interpreted. + * \param vData - Load Cell Readings data + * \return true if the data can be extracted as defined for LoadCellReadings Message ID + */ +bool MessageInterpreter::loadCellReadingsData(const Message &vMessage, QVariantList &vData) +{ + // TODO : review other methods + bool ok = false; + if ( ! isType (vMessage, Gui::GuiActionType::LoadCellReadings) ) return ok; + if ( ! isPayloadLenValid(vMessage, Gui::GuiActionType::LoadCellReadings) ) return ok; + + Model::MLoadCellReadings mData; + ok = mData.fromByteArray(vMessage.data); + LOG_DATUM(mData.toString()); + + mData.toVariantList(vData); + emit didActionReceive(mData.data()); + + return ok; +} + +/*! + * \brief MessageInterpreter::loadCellReadingsData + * \details This method interprets LoadCellReadings message data + * in vMessage of type Message. + * \param vMessage - The vMessage of type Message which contains all the data, + * require to be interpreted. + * \param vData - Load Cell Readings data + * \return true if the data can be extracted as defined for LoadCellReadings Message ID + */ +bool MessageInterpreter::canbusFaultCountData(const Message &vMessage, QVariantList &vData) +{ + // TODO : review other methods + bool ok = false; + if ( ! isType (vMessage, Gui::GuiActionType::CanBUSFaultCount) ) return ok; + if ( ! isPayloadLenValid(vMessage, Gui::GuiActionType::CanBUSFaultCount) ) return ok; + + QVariantList mData; + if (vMessage.data.count()) { + int index = 0; + Types::U32 mCanBUSFaultCount; + ok = GetValue(vMessage.data, index, mCanBUSFaultCount); + if (ok) { + vData += mCanBUSFaultCount .value; + } + } + return ok; +} + +/*! * \brief MessageInterpreter::adjustBloodDialysateData * \details This method interprets AdjustBlood Dialysate Response message data * in vMessage of type Message.