Index: sources/canbus/messagedispatcher.cpp =================================================================== diff -u -rb798668f16ad0967ab97e96f5f9a2cdd821e899f -ra7aa20b149cfc003091bfbf9a90e26eb0ae032d5 --- sources/canbus/messagedispatcher.cpp (.../messagedispatcher.cpp) (revision b798668f16ad0967ab97e96f5f9a2cdd821e899f) +++ sources/canbus/messagedispatcher.cpp (.../messagedispatcher.cpp) (revision a7aa20b149cfc003091bfbf9a90e26eb0ae032d5) @@ -95,7 +95,6 @@ connect(&_FrameInterface , SIGNAL(didFrameReceive (Can_Id , const QByteArray &)), this , SLOT( onFrameReceive (Can_Id , const QByteArray &))); - // From Message Acknow Model timer timeout. connect(&_MessageAcknowModel , SIGNAL(didFramesTransmit(Can_Id, Sequence, const FrameList &)), this , SLOT( onFramesTransmit(Can_Id, Sequence, const FrameList &))); @@ -104,7 +103,11 @@ this , SLOT( onFailedTransmit( Sequence ))); // From HD -> Message interpreter - ACTION_RECEIVE_INTERPRETER_CONNECTIONS +// ACTION_RECEIVE_INTERPRETER_CONNECTIONS + + // ---- Signal/Slots + ADJUST_TRANSMT_MODEL_BRIDGE_CONNECTIONS(_ApplicationController) + ACTION_RECEIVE_MODEL_BRIDGE_CONNECTIONS(_interpreter ) } /*! @@ -196,9 +199,7 @@ void MessageDispatcher::onFailedTransmit(Sequence vSequence) { // coco begin validated: Is a placeholder and has not beed implemented yet - Q_UNUSED(vSequence) - // may requires showing an alarm screen - // but we don't know yet. + emit didFailedTransmit(vSequence); } // coco end @@ -215,6 +216,75 @@ } /*! + * \brief MessageDispatcher::onAdjustment + * \details This method transmits the Blood/Dialysate Adjustment Denali message. + * \param vData - Data model contains Blood Flow Rate + and Dialysate Flow Rate + * \return void + */ +void MessageDispatcher::onAdjustment(const AdjustBloodDialysateRequestData &vData) +{ + QVariantList mData; + mData += vData.bloodFlow; + mData += vData.dialysateFlow; + onActionTransmit(GuiActionType::AdjustBloodDialysateReq, mData); +} + +/*! + * \brief MessageDispatcher::onAdjustment + * \details This method transmits the treatment duration Adjustment Denali message. + * \param vData - Data model contains treatment duration adjustment value in minuts + * \return void + */ +void MessageDispatcher::onAdjustment(const AdjustDurationRequestData &vData) +{ + QVariantList mData; + mData += vData.duration; + onActionTransmit(GuiActionType::AdjustDurationReq, mData); +} + +/*! + * \brief MessageDispatcher::onAdjustment + * \details This method transmits the Ultrafiltration State Adjustment Denali message. + * \param vData - Data model contains treatment ultrafiltration state adjustment + * \return void + */ +void MessageDispatcher::onAdjustment(const AdjustUltrafiltrationStateRequestData &vData) +{ + QVariantList mData; + mData += vData.requestedState; + actionTransmit(GuiActionType::AdjustUltrafiltrationStateReq, mData); +} + +/*! + * \brief MessageDispatcher::onAdjustment + * \details This method transmits the Ultrafiltration Adjustment Denali message. + * \param vData - Data model contains treatment ultrafiltration adjustment volume + * \return void + */ +void MessageDispatcher::onAdjustment(const AdjustUltrafiltrationEditRequestData &vData) +{ + QVariantList mData; + mData += vData.volume; + onActionTransmit(GuiActionType::AdjustUltrafiltrationEditReq, mData); +} + +/*! + * \brief MessageDispatcher::onAdjustment + * \details This method transmits the Ultrafiltration Adjustment User Selected Option Denali message. + * \param vData - Data model contains treatment ultrafiltration adjustment volume and user selected option. + * \return void + */ +void MessageDispatcher::onAdjustment(const AdjustUltrafiltrationConfirmRequestData &vData) +{ + QVariantList mData; + mData += vData.volume; + mData += vData.option; + onActionTransmit(GuiActionType::AdjustUltrafiltrationConfirmReq, mData); +} + + +/*! * \brief MessageDispatcher::actionTransmit * \details This method is called by slot MessageDispatcher::onActionTransmit * which emits didFrameTransmit on successful interpretation of the requested message @@ -311,14 +381,16 @@ bool ok = false; QVariantList mData; Sequence mSequence = vMessage.sequence; + // coco begin validated: Has been validated manually. If MessageInterpreter::interpretMessage fails, this also returns false if (_interpreter.interpretMessage(vMessage, mData)) { + // coco end ok = true; GuiActionType mActionId = vMessage.actionId; switch (mActionId) { case GuiActionType::Acknow: LOG_EVENT(tr("HD Ack Bak %1").arg(mSequence)); #ifdef DEBUG_ACKBACK_HD_TO_UI - qDebug() << tr(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ HD AckBak : %1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ").arg(mSequence); + qDebug() << tr(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ HD AckBak : %1 %2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ").arg(mSequence).arg(vMessage.actionId); #endif emit didAcknowReceive(mSequence); break; @@ -327,10 +399,13 @@ if (mSequence < 0) { LOG_EVENT(tr("HD Ack Req %1").arg(mSequence)); #ifdef DEBUG_ACKBACK_HD_TO_UI - qDebug() << tr(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ HD AckReq : %1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ").arg(mSequence); + qDebug() << tr(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ HD AckReq : %1 %2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ").arg(mSequence).arg(vMessage.actionId); #endif // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ UI AckBak is immediately handled at the same place. actionTransmit(GuiActionType::Acknow, {}, -mSequence); + #ifdef DEBUG_ACKBACK_HD_TO_UI + qDebug() << tr(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ UI AckBak : %1 %2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ").arg(-mSequence).arg(vMessage.actionId); + #endif } emit didActionReceive(mActionId, mData); break;