Index: denali.pro =================================================================== diff -u -r28f3f8dd18981262995386d29d3c2ab31418bfc4 -r7710fea4486a639caaa3c510add0eac0bcd4ddcc --- denali.pro (.../denali.pro) (revision 28f3f8dd18981262995386d29d3c2ab31418bfc4) +++ denali.pro (.../denali.pro) (revision 7710fea4486a639caaa3c510add0eac0bcd4ddcc) @@ -54,6 +54,7 @@ sources/main.h \ sources/Threads.h \ sources/MainTimer.h \ + sources/AlarmGenerator.h \ sources/ApplicationPost.h \ \ # Controllers sources/ApplicationController.h \ @@ -67,9 +68,10 @@ sources/model/MDGDebugText.h \ sources/model/MHDDebugText.h \ \ # ---------- Models - Alarm - sources/model/hd/alarm/MAlarmCleared.h \ - sources/model/hd/alarm/MAlarmTriggered.h \ sources/model/hd/alarm/MAlarmStatusData.h \ + sources/model/hd/alarm/MAlarmTriggered.h \ + sources/model/hd/alarm/MAlarmCleared.h \ + sources/model/hd/alarm/MAlarmClearedCondition.h \ \ # ---------- Models - HD - Adjustment - In-Treatment sources/model/hd/adjustment/MTreatmentAdjustRequests.h \ sources/model/hd/adjustment/MTreatmentAdjustDurationResponse.h \ @@ -177,6 +179,7 @@ main.cpp \ sources/Threads.cpp \ sources/MainTimer.cpp \ + sources/AlarmGenerator.cpp \ sources/ApplicationPost.cpp \ \ # Controllers sources/ApplicationController.cpp \ @@ -189,9 +192,10 @@ sources/model/MTreatmentParametersResp.cpp \ sources/model/MDGDebugText.cpp \ \ # ---------- Models - Alarm - sources/model/hd/alarm/MAlarmCleared.cpp \ - sources/model/hd/alarm/MAlarmTriggered.cpp \ sources/model/hd/alarm/MAlarmStatusData.cpp \ + sources/model/hd/alarm/MAlarmTriggered.cpp \ + sources/model/hd/alarm/MAlarmCleared.cpp \ + sources/model/hd/alarm/MAlarmClearedCondition.cpp \ \ # ---------- Models - HD - Adjustment - In-Treatment sources/model/hd/adjustment/MTreatmentAdjustDurationResponse.cpp \ sources/model/hd/adjustment/MTreatmentAdjustBloodDialysateResponse.cpp \ Index: denali.pro.user =================================================================== diff -u -r09ebbdfde6927724e63442fcfc3e38093f75ce4a -r7710fea4486a639caaa3c510add0eac0bcd4ddcc --- denali.pro.user (.../denali.pro.user) (revision 09ebbdfde6927724e63442fcfc3e38093f75ce4a) +++ denali.pro.user (.../denali.pro.user) (revision 7710fea4486a639caaa3c510add0eac0bcd4ddcc) @@ -1,6 +1,6 @@ - + EnvironmentId Index: denali.qrc =================================================================== diff -u -r1d43ff790e6a3fb03d371bb5bde9c2d432d299b6 -r7710fea4486a639caaa3c510add0eac0bcd4ddcc --- denali.qrc (.../denali.qrc) (revision 1d43ff790e6a3fb03d371bb5bde9c2d432d299b6) +++ denali.qrc (.../denali.qrc) (revision 7710fea4486a639caaa3c510add0eac0bcd4ddcc) @@ -66,16 +66,16 @@ sources/gui/qml/components/RangeRect.qml sources/gui/qml/components/RangeBar.qml sources/gui/qml/components/Circle.qml - sources/gui/qml/components/CircleWithText.qml + sources/gui/qml/components/StepBullet.qml + sources/gui/qml/components/StepIndicator.qml sources/gui/qml/components/TimeText.qml sources/gui/qml/components/ProgressCircle.qml sources/gui/qml/components/Slider.qml sources/gui/qml/components/SliderCreateTreatment.qml sources/gui/qml/components/ConfirmTreatmentTable.qml sources/gui/qml/components/ConfirmTreatmentSubTable.qml - sources/gui/qml/components/SliderDoubleCreateTreatment.qml sources/gui/qml/components/GridSelection.qml - sources/gui/qml/components/TopMenuBarCreateTreatment.qml + sources/gui/qml/components/TitleBarCreateTreatment.qml sources/gui/qml/components/ProgressBarEx.qml sources/gui/qml/components/CloseButton.qml sources/gui/qml/components/ConfirmButton.qml @@ -111,12 +111,15 @@ sources/gui/qml/pages/treatment/TreatmentHome.qml sources/gui/qml/pages/treatment/TreatmentStack.qml - sources/gui/qml/pages/treatment/TreatmentCreate.qml - sources/gui/qml/pages/treatment/TreatmentBegin.qml - sources/gui/qml/pages/treatment/TreatmentConfirm.qml - sources/gui/qml/pages/treatment/TreatmentPrime.qml sources/gui/qml/pages/treatment/TreatmentStart.qml + + sources/gui/qml/pages/pretreatment/create/PreTreatmentCreate.qml + sources/gui/qml/pages/pretreatment/create/PreTreatmentUltrafiltration.qml + sources/gui/qml/pages/pretreatment/create/PreTreatmentConfirm.qml + sources/gui/qml/pages/pretreatment/create/PreTreatmentPrime.qml + sources/gui/qml/pages/pretreatment/create/PreTreatmentBase.qml + sources/gui/qml/pages/treatment/sections/TreatmentFlows.qml sources/gui/qml/pages/treatment/sections/TreatmentVitals.qml Index: sources/canbus/MessageDispatcher.cpp =================================================================== diff -u -r28f3f8dd18981262995386d29d3c2ab31418bfc4 -r7710fea4486a639caaa3c510add0eac0bcd4ddcc --- sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision 28f3f8dd18981262995386d29d3c2ab31418bfc4) +++ sources/canbus/MessageDispatcher.cpp (.../MessageDispatcher.cpp) (revision 7710fea4486a639caaa3c510add0eac0bcd4ddcc) @@ -321,22 +321,36 @@ void MessageDispatcher::onAdjustment(const AlarmSilenceRequestData &vData) { QVariantList mData; - mData += vData.state; + mData += vData.silence; onActionTransmit(GuiActionType::ID_AlarmSilenceReq, mData); } +/** + * \details This method transmits the User Action Denali message. + * \param vData - Data model contains User Action on the alarm dialog. + * \return void + */ +void MessageDispatcher::onAdjustment(const AlarmUserActionRequestData &vData) +{ + QVariantList mData; + mData += vData.action; + onActionTransmit(GuiActionType::ID_AlarmUserActionReq, mData); +} + /*! * \brief MessageDispatcher::onAdjustment * \details This method transmits the Alarm Acknowledge Request message. * \param vData - Data model contains the user acknowledge request information. * \return void */ -void MessageDispatcher::onAdjustment(const AlarmAcknowledgeRequestData &vData) +/* coco begin validated: Manually tested. This model class is a placeholder and there is no use case for this now. +void MessageDispatcher::onAdjustment(const AlarmClearedConditionRequestData &vData) { QVariantList mData; mData += vData.alarmID; - onActionTransmit(GuiActionType::ID_AlarmUserAckReq, mData); + onActionTransmit(GuiActionType::ID_AlarmClearedConditionReq, mData); } +coco end */ /*! * \brief MessageDispatcher::onAdjustment Index: sources/canbus/MessageDispatcher.h =================================================================== diff -u -r28f3f8dd18981262995386d29d3c2ab31418bfc4 -r7710fea4486a639caaa3c510add0eac0bcd4ddcc --- sources/canbus/MessageDispatcher.h (.../MessageDispatcher.h) (revision 28f3f8dd18981262995386d29d3c2ab31418bfc4) +++ sources/canbus/MessageDispatcher.h (.../MessageDispatcher.h) (revision 7710fea4486a639caaa3c510add0eac0bcd4ddcc) @@ -115,7 +115,9 @@ GuiActionType::ID_AdjustSalineReq , GuiActionType::ID_AdjustHeparinReq , GuiActionType::ID_AdjustPressuresLimitsReq , + GuiActionType::ID_AlarmUserActionReq , GuiActionType::ID_AlarmSilenceReq , + GuiActionType::ID_AlarmClearedConditionReq , }; public slots: Index: sources/canbus/MessageGlobals.h =================================================================== diff -u -r28f3f8dd18981262995386d29d3c2ab31418bfc4 -r7710fea4486a639caaa3c510add0eac0bcd4ddcc --- sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision 28f3f8dd18981262995386d29d3c2ab31418bfc4) +++ sources/canbus/MessageGlobals.h (.../MessageGlobals.h) (revision 7710fea4486a639caaa3c510add0eac0bcd4ddcc) @@ -75,8 +75,10 @@ {Gui::GuiActionType::ID_AlarmStatus , 4 * 4 + 2 }, // 4 parameters each 4bytes + 1 parameter 2bytes {Gui::GuiActionType::ID_AlarmTriggered , 1 * 4 }, // 1 parameter each 4bytes {Gui::GuiActionType::ID_AlarmCleared , 1 * 4 }, // 1 parameter each 4bytes - {Gui::GuiActionType::ID_AlarmSilenceReq , 1 * 4 }, // 1 parameter each 4bytes - {Gui::GuiActionType::ID_AlarmUserAckReq , 1 * 4 }, // 1 parameter each 4bytes + {Gui::GuiActionType::ID_AlarmClearedConditionReq , 1 * 4 }, // 1 parameter each 4bytes // the same message 63:0x3F00 + {Gui::GuiActionType::ID_AlarmClearedConditionRsp , 1 * 4 }, // 1 parameter each 4bytes // the same message 63:0x3F00 + {Gui::GuiActionType::ID_AlarmSilenceReq , 1 * 1 }, // 1 parameter each 1bytes + {Gui::GuiActionType::ID_AlarmUserActionReq , 1 * 4 }, // 1 parameter each 4bytes // ---- {Gui::GuiActionType::ID_StartTreatmentReq , 1 * 4 }, // 1 parameters each 4bytes Index: sources/canbus/MessageInterpreter.cpp =================================================================== diff -u -rc1111db9c22ad5a8d284f4f15e3d7ba824a2d54b -r7710fea4486a639caaa3c510add0eac0bcd4ddcc --- sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision c1111db9c22ad5a8d284f4f15e3d7ba824a2d54b) +++ sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 7710fea4486a639caaa3c510add0eac0bcd4ddcc) @@ -224,27 +224,29 @@ LOG_EVENT(mSenderID + QString("RawData")); break; - case Gui::GuiActionType::ID_PowerOff : INTERPRET_RECEIVED_MESSAGE(AdjustPowerOffRequestData ); break; + case Gui::GuiActionType::ID_PowerOff : INTERPRET_RECEIVED_MESSAGE(AdjustPowerOffRequestData ); break; // in-treatment - case Gui::GuiActionType::ID_AdjustDurationReq : INTERPRET_RECEIVED_MESSAGE(AdjustDurationRequestData ); break; - case Gui::GuiActionType::ID_AdjustBloodDialysateReq : INTERPRET_RECEIVED_MESSAGE(AdjustBloodDialysateRequestData ); break; - case Gui::GuiActionType::ID_AdjustPressuresLimitsReq : INTERPRET_RECEIVED_MESSAGE(AdjustPressuresLimitsRequestData ); break; - case Gui::GuiActionType::ID_AdjustSalineReq : INTERPRET_RECEIVED_MESSAGE(AdjustSalineRequestData ); break; - case Gui::GuiActionType::ID_AdjustHeparinReq : INTERPRET_RECEIVED_MESSAGE(AdjustHeparinRequestData ); break; + case Gui::GuiActionType::ID_AdjustDurationReq : INTERPRET_RECEIVED_MESSAGE(AdjustDurationRequestData ); break; + case Gui::GuiActionType::ID_AdjustBloodDialysateReq : INTERPRET_RECEIVED_MESSAGE(AdjustBloodDialysateRequestData ); break; + case Gui::GuiActionType::ID_AdjustPressuresLimitsReq : INTERPRET_RECEIVED_MESSAGE(AdjustPressuresLimitsRequestData ); break; + case Gui::GuiActionType::ID_AdjustSalineReq : INTERPRET_RECEIVED_MESSAGE(AdjustSalineRequestData ); break; + case Gui::GuiActionType::ID_AdjustHeparinReq : INTERPRET_RECEIVED_MESSAGE(AdjustHeparinRequestData ); break; // in-treatment - ultrafiltration - case Gui::GuiActionType::ID_AdjustUltrafiltrationInitReq : INTERPRET_RECEIVED_MESSAGE(AdjustUltrafiltrationInitRequestData ); break; - case Gui::GuiActionType::ID_AdjustUltrafiltrationStateReq : INTERPRET_RECEIVED_MESSAGE(AdjustUltrafiltrationStateRequestData ); break; - case Gui::GuiActionType::ID_AdjustUltrafiltrationEditReq : INTERPRET_RECEIVED_MESSAGE(AdjustUltrafiltrationEditRequestData ); break; - case Gui::GuiActionType::ID_AdjustUltrafiltrationConfirmReq : INTERPRET_RECEIVED_MESSAGE(AdjustUltrafiltrationConfirmRequestData); break; + case Gui::GuiActionType::ID_AdjustUltrafiltrationInitReq : INTERPRET_RECEIVED_MESSAGE(AdjustUltrafiltrationInitRequestData ); break; + case Gui::GuiActionType::ID_AdjustUltrafiltrationStateReq : INTERPRET_RECEIVED_MESSAGE(AdjustUltrafiltrationStateRequestData ); break; + case Gui::GuiActionType::ID_AdjustUltrafiltrationEditReq : INTERPRET_RECEIVED_MESSAGE(AdjustUltrafiltrationEditRequestData ); break; + case Gui::GuiActionType::ID_AdjustUltrafiltrationConfirmReq : INTERPRET_RECEIVED_MESSAGE(AdjustUltrafiltrationConfirmRequestData ); break; // pre-Treatment - case Gui::GuiActionType::ID_StartTreatmentReq : INTERPRET_RECEIVED_MESSAGE(StartTreatmentRequestData ); break; - case Gui::GuiActionType::ID_ConfirmTreatmentReq : INTERPRET_RECEIVED_MESSAGE(ConfirmTreatmentRequestData ); break; - case Gui::GuiActionType::ID_EndTreatmentReq : INTERPRET_RECVD_MT_MESSAGE(EndTreatmentRequestData ); break; - case Gui::GuiActionType::ID_CreateTreatmentReq : INTERPRET_RECEIVED_MESSAGE(AdjustTreatmentParametersRequestData ); break; + case Gui::GuiActionType::ID_StartTreatmentReq : INTERPRET_RECEIVED_MESSAGE(StartTreatmentRequestData ); break; + case Gui::GuiActionType::ID_ConfirmTreatmentReq : INTERPRET_RECEIVED_MESSAGE(ConfirmTreatmentRequestData ); break; + case Gui::GuiActionType::ID_EndTreatmentReq : INTERPRET_RECVD_MT_MESSAGE(EndTreatmentRequestData ); break; + case Gui::GuiActionType::ID_CreateTreatmentReq : INTERPRET_RECEIVED_MESSAGE(AdjustTreatmentParametersRequestData ); break; // alarms - case Gui::GuiActionType::ID_AlarmSilenceReq : INTERPRET_RECEIVED_MESSAGE(AlarmSilenceRequestData ); break; - case Gui::GuiActionType::ID_AlarmUserAckReq : INTERPRET_RECEIVED_MESSAGE(AlarmAcknowledgeRequestData ); break; - + case Gui::GuiActionType::ID_AlarmSilenceReq : INTERPRET_RECEIVED_MESSAGE(AlarmSilenceRequestData ); break; + case Gui::GuiActionType::ID_AlarmUserActionReq : INTERPRET_RECEIVED_MESSAGE(AlarmUserActionRequestData ); break; + // coco begin validated: Manually tested. This model class is a placeholder for the message 63(0x3F00) and there is no use case for this now. + case Gui::GuiActionType::ID_AlarmClearedConditionReq : INTERPRET_RECEIVED_MESSAGE(AlarmClearedConditionRequestData ); break; + // coco end default: QString mActionIdHexString = Format::toHexString(vActionId); LOG_DEBUG(mSenderID + tr("Unknown transmit Message with ID '%1'").arg(mActionIdHexString)); @@ -309,50 +311,53 @@ case Gui::GuiActionType::ID_CANBusFaultCount : ok = canbusFaultCountData (vMessage, vData); break; // TODO : implement notify<>() // ----- Datum - case Gui::GuiActionType::ID_TreatmentTime : ok = notify(vMessage, vData, Gui::GuiActionType::ID_TreatmentTime ); break; - case Gui::GuiActionType::ID_BloodFlow : ok = notify(vMessage, vData, Gui::GuiActionType::ID_BloodFlow ); break; - case Gui::GuiActionType::ID_DialysateInletFlow : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DialysateInletFlow ); break; - case Gui::GuiActionType::ID_DialysateOutletFlow : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DialysateOutletFlow ); break; - case Gui::GuiActionType::ID_TreatmentRanges : ok = notify(vMessage, vData, Gui::GuiActionType::ID_TreatmentRanges ); break; - case Gui::GuiActionType::ID_PressureOcclusion : ok = notify(vMessage, vData, Gui::GuiActionType::ID_PressureOcclusion ); break; - case Gui::GuiActionType::ID_TreatmentStates : ok = notify(vMessage, vData, Gui::GuiActionType::ID_TreatmentStates ); break; - case Gui::GuiActionType::ID_PrimingData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_PrimingData ); break; - case Gui::GuiActionType::ID_Saline : ok = notify(vMessage, vData, Gui::GuiActionType::ID_Saline ); break; - case Gui::GuiActionType::ID_Heparin : ok = notify(vMessage, vData, Gui::GuiActionType::ID_Heparin ); break; + case Gui::GuiActionType::ID_TreatmentTime : ok = notify(vMessage, vData, Gui::GuiActionType::ID_TreatmentTime ); break; + case Gui::GuiActionType::ID_BloodFlow : ok = notify(vMessage, vData, Gui::GuiActionType::ID_BloodFlow ); break; + case Gui::GuiActionType::ID_DialysateInletFlow : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DialysateInletFlow ); break; + case Gui::GuiActionType::ID_DialysateOutletFlow : ok = notify(vMessage, vData, Gui::GuiActionType::ID_DialysateOutletFlow ); break; + case Gui::GuiActionType::ID_TreatmentRanges : ok = notify(vMessage, vData, Gui::GuiActionType::ID_TreatmentRanges ); break; + case Gui::GuiActionType::ID_PressureOcclusion : ok = notify(vMessage, vData, Gui::GuiActionType::ID_PressureOcclusion ); break; + case Gui::GuiActionType::ID_TreatmentStates : ok = notify(vMessage, vData, Gui::GuiActionType::ID_TreatmentStates ); break; + case Gui::GuiActionType::ID_PrimingData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_PrimingData ); break; + case Gui::GuiActionType::ID_Saline : ok = notify(vMessage, vData, Gui::GuiActionType::ID_Saline ); break; + case Gui::GuiActionType::ID_Heparin : ok = notify(vMessage, vData, Gui::GuiActionType::ID_Heparin ); break; // ----- Events - case Gui::GuiActionType::ID_HDOperationModeData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_HDOperationModeData ); break; - case Gui::GuiActionType::ID_HDDebugText : ok = notify(vMessage, vData, Gui::GuiActionType::ID_HDDebugText ); break; + case Gui::GuiActionType::ID_HDOperationModeData : ok = notify(vMessage, vData, Gui::GuiActionType::ID_HDOperationModeData ); break; + case Gui::GuiActionType::ID_HDDebugText : ok = notify(vMessage, vData, Gui::GuiActionType::ID_HDDebugText ); break; - case Gui::GuiActionType::ID_Acknow : ok = true; break; // TODO : implement notify<>() - case Gui::GuiActionType::ID_PowerOff : ok = notify(vMessage, vData, Gui::GuiActionType::ID_PowerOff ); break; - case Gui::GuiActionType::ID_ShuttingDown : ok = true; LOG_EVENT("HD,ShuttingDown"); break; // TODO : implement notify<>() + case Gui::GuiActionType::ID_Acknow : ok = true; break; // TODO : implement notify<>() + case Gui::GuiActionType::ID_PowerOff : ok = notify(vMessage, vData, Gui::GuiActionType::ID_PowerOff ); break; + case Gui::GuiActionType::ID_ShuttingDown : ok = true; LOG_EVENT("HD,ShuttingDown"); break; // TODO : implement notify<>() + case Gui::GuiActionType::ID_CreateTreatmentRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_CreateTreatmentRsp ); break; - case Gui::GuiActionType::ID_AlarmTriggered : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AlarmTriggered ); break; - case Gui::GuiActionType::ID_AlarmCleared : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AlarmCleared ); break; - case Gui::GuiActionType::ID_AlarmStatus : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AlarmStatus ); break; - - case Gui::GuiActionType::ID_CreateTreatmentRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_CreateTreatmentRsp ); break; - // Adjustment Response Messages case Gui::GuiActionType::ID_AdjustDurationRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustDurationRsp ); break; case Gui::GuiActionType::ID_AdjustBloodDialysateRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustBloodDialysateRsp ); break; + case Gui::GuiActionType::ID_AdjustPressuresLimitsRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustPressuresLimitsRsp ); break; case Gui::GuiActionType::ID_AdjustSalineRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustSalineRsp ); break; case Gui::GuiActionType::ID_AdjustUltrafiltrationInitRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustUltrafiltrationInitRsp ); break; case Gui::GuiActionType::ID_AdjustUltrafiltrationStateRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustUltrafiltrationStateRsp ); break; - case Gui::GuiActionType::ID_AdjustPressuresLimitsRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustPressuresLimitsRsp ); break; case Gui::GuiActionType::ID_AdjustHeparinRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AdjustHeparinRsp ); break; // these need to be standard and use notify as well case Gui::GuiActionType::ID_AdjustUltrafiltrationEditRsp : ok = adjustUltrafiltrationEdit (vMessage, vData); break; // TODO : implement notify<>() case Gui::GuiActionType::ID_AdjustUltrafiltrationConfirmRsp : ok = adjustUltrafiltrationConfirm (vMessage, vData); break; // TODO : implement notify<>() - case Gui::GuiActionType::ID_StartTreatmentRsp : ok = notify (vMessage, vData, Gui::GuiActionType::ID_StartTreatmentRsp ); break; - case Gui::GuiActionType::ID_EndTreatmentRsp : ok = notify (vMessage, vData, Gui::GuiActionType::ID_EndTreatmentRsp ); break; + case Gui::GuiActionType::ID_StartTreatmentRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_StartTreatmentRsp ); break; + case Gui::GuiActionType::ID_EndTreatmentRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_EndTreatmentRsp ); break; + // Alarms + case Gui::GuiActionType::ID_AlarmStatus : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AlarmStatus ); break; + case Gui::GuiActionType::ID_AlarmTriggered : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AlarmTriggered ); break; + case Gui::GuiActionType::ID_AlarmCleared : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AlarmCleared ); break; + // coco begin validated: Manually tested. This model class is a placeholder for the message 63(0x3F00) and there is no use case for this now. + case Gui::GuiActionType::ID_AlarmClearedConditionRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AlarmClearedConditionRsp ); break; + // coco end + // unhandles messages: these will only be logged as received message // there has nothing been defined for these messages. - default : printUnhandled (vMessage ); break; + default : printUnhandled(vMessage); break; } return ok; Index: sources/gui/GuiGlobals.h =================================================================== diff -u -r3e5cdca5de3ac46619325bf1e37c572d729d5fa9 -r7710fea4486a639caaa3c510add0eac0bcd4ddcc --- sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision 3e5cdca5de3ac46619325bf1e37c572d729d5fa9) +++ sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision 7710fea4486a639caaa3c510add0eac0bcd4ddcc) @@ -75,18 +75,21 @@ ID_DGCheckIn = 0x0600, ID_KeepAlive = 0x0700, + // HD Data Messages ID_PowerOff = 0x0100, ID_ShuttingDown = 0x0E00, ID_TreatmentTime = 0x0D00, ID_BloodFlow = 0x0500, ID_DialysateInletFlow = 0x0800, ID_DialysateOutletFlow = 0x0B00, ID_TreatmentRanges = 0x1A00, // 26 - ID_PressureOcclusion = 0x0900, ID_TreatmentStates = 0x0F00, // 15 + ID_HDOperationModeData = 0x2500, // 37 + ID_PressureOcclusion = 0x0900, ID_Saline = 0x2F00, // 47 ID_Heparin = 0x4D00, // 77 + // Alarm Messages ID_AlarmStatus = 0x0200, ID_AlarmTriggered = 0x0300, ID_AlarmCleared = 0x0400, @@ -95,18 +98,18 @@ ID_AlarmSilenceReq = 0x3200, // 50 ID_AlarmUserActionReq = 0x4000, // 64 // there is no response since it is kind of the response to the ID_AlarmStatus from UI to HD + // Pre-Treatment Parameters ID_CreateTreatmentReq = 0x3500, // 53 ID_CreateTreatmentRsp = 0x3600, // 54 ID_StartTreatmentReq = 0x3800, // 56 ID_StartTreatmentRsp = 0x3900, // 57 - ID_ConfirmTreatmentReq = 0x3A00, // 58 + ID_ConfirmTreatmentReq = 0x3B00, // 59 ID_EndTreatmentReq = 0x3C00, // 60 ID_EndTreatmentRsp = 0x3D00, // 61 - ID_PrimingData = 0x4300, // 67 - ID_HDOperationModeData = 0x2500, // 37 + // DG Data Messages ID_DGROPumpData = 0x1F00, // 31 ID_DGPressuresData = 0x2000, // 32 ID_DGDrainPumpData = 0x2400, // 36 @@ -117,9 +120,27 @@ ID_DGLoadCellReadingsData = 0x0C00, // 12 ID_DGTemperaturesData = 0x2D00, // 45 + // In-Treatment Adjustables + ID_AdjustDurationReq = 0x1600, // 22 + ID_AdjustDurationRsp = 0x1B00, // 27 + ID_AdjustBloodDialysateReq = 0x1700, // 23 ID_AdjustBloodDialysateRsp = 0x1800, // 24 + ID_AdjustPressuresLimitsReq = 0x4600, // 70 + ID_AdjustPressuresLimitsRsp = 0x4700, // 71 + + ID_AdjustSalineReq = 0x1200, // 18 + ID_AdjustSalineRsp = 0x1400, // 20 + + ID_AdjustHeparinReq = 0x4B00, // 75 + ID_AdjustHeparinRsp = 0x4C00, // 76 + + + // Ultrafiltration: has also In-Treatment Adjustables but kept together + ID_AdjustUltrafiltrationInitReq = 0x4F00, // 79 + ID_AdjustUltrafiltrationInitRsp = 0x5000, // 80 + ID_AdjustUltrafiltrationStateReq = 0x1000, // 16 ID_AdjustUltrafiltrationStateRsp = 0x4100, // 65 @@ -128,18 +149,6 @@ ID_AdjustUltrafiltrationConfirmReq = 0x1500, // 21 ID_AdjustUltrafiltrationConfirmRsp = 0x2E00, // 46 - - ID_AdjustDurationReq = 0x1600, // 22 - ID_AdjustDurationRsp = 0x1B00, // 27 - - ID_AdjustSalineReq = 0x1200, // 18 - ID_AdjustSalineRsp = 0x1400, // 20 - - ID_AdjustPressuresLimitsReq = 0x4600, // 70 - ID_AdjustPressuresLimitsRsp = 0x4700, // 71 - - ID_AdjustHeparinReq = 0x4B00, // 75 - ID_AdjustHeparinRsp = 0x4C00, // 76 }; enum class GuiActionsData_Enum /*: quint8 QML doesn't support*/ { Index: sources/gui/qml/globals/Colors.qml =================================================================== diff -u -r1d43ff790e6a3fb03d371bb5bde9c2d432d299b6 -r7710fea4486a639caaa3c510add0eac0bcd4ddcc --- sources/gui/qml/globals/Colors.qml (.../Colors.qml) (revision 1d43ff790e6a3fb03d371bb5bde9c2d432d299b6) +++ sources/gui/qml/globals/Colors.qml (.../Colors.qml) (revision 7710fea4486a639caaa3c510add0eac0bcd4ddcc) @@ -111,7 +111,7 @@ readonly property color primingReady : "#438FEB" readonly property color createTreatmentActive : "#3d8eef" - readonly property color createTreatmentInactive : "#3e546e" + readonly property color createTreatmentInactive : backgroundRangeRect readonly property color createTreatmentNotReady : "#1f4974" readonly property color createTreatmentReady : "#438FEB" readonly property color createTreatmentTextNotReady : "#507090" Index: sources/gui/qml/globals/Variables.qml =================================================================== diff -u -r1d43ff790e6a3fb03d371bb5bde9c2d432d299b6 -r7710fea4486a639caaa3c510add0eac0bcd4ddcc --- sources/gui/qml/globals/Variables.qml (.../Variables.qml) (revision 1d43ff790e6a3fb03d371bb5bde9c2d432d299b6) +++ sources/gui/qml/globals/Variables.qml (.../Variables.qml) (revision 7710fea4486a639caaa3c510add0eac0bcd4ddcc) @@ -124,6 +124,8 @@ readonly property int bloodFlowResolution : 25 readonly property int dialysateFlowResolution : 50 readonly property int durationResolution : 15 // PRS346 + // Precision + readonly property int ultrafiltrationPrecision : 3 // Inline Blood Pressures // - Artrial @@ -160,6 +162,11 @@ readonly property string notSetVariableText : "__" + readonly property string preTreatmentStepLabelCreate : qsTr("CREATE" ) + readonly property string preTreatmentStepLabelConfirm : qsTr("CONFIRM" ) + readonly property string preTreatmentStepLabelPriming : qsTr("PRIME" ) + readonly property string preTreatmentStepLabelUltrafiltration : qsTr("BEGIN" ) + // Units // - Ultrafiltration readonly property string unitTextUltrafiltrationRate : qsTr("mL/min") @@ -171,9 +178,9 @@ readonly property string unitTextBloodPressure : qsTr("mmHg") readonly property string unitTextHeartBeat : qsTr("BPM" ) // - Fluid - readonly property string unitTextFluid : qsTr("mL") - readonly property string unitTextSaline : unitTextFluid - readonly property string unitTextHeparin : unitTextFluid + readonly property string unitTextFluid : qsTr("mL") + readonly property string unitTextSaline : unitTextFluid + readonly property string unitTextHeparin : unitTextFluid // - Create Treatment - readonly property string unitTextBPMeasurementInterval : qsTr("min") + readonly property string unitTextBPMeasurementInterval : qsTr("min") } Index: sources/gui/qml/main.qml =================================================================== diff -u -rd92f6ff5bc93e7043b1a57bb74bc78a959c63f22 -r7710fea4486a639caaa3c510add0eac0bcd4ddcc --- sources/gui/qml/main.qml (.../main.qml) (revision d92f6ff5bc93e7043b1a57bb74bc78a959c63f22) +++ sources/gui/qml/main.qml (.../main.qml) (revision 7710fea4486a639caaa3c510add0eac0bcd4ddcc) @@ -18,8 +18,8 @@ // Project // C++ imports -import Gui.View 0.1; -import Gui.Actions 0.1; +import Gui.View 0.1 +import Gui.Actions 0.1 // TODO : When Testing data on Setting screen is removed // This needs to be moved into the TreatmentFlows.qml @@ -143,73 +143,105 @@ } } - NotificationBar { id: _alarm_bar - - anchors.bottom: _mainMenu.top - level : vAlarmStatus.alarm_Priority - text : vAlarmStatus.text; - isSilenced: vAlarmStatus.alarm_Flag_alarmsSilenced; - - onClickedNotificationBar: { - updateAlarm(); - vAlarmStatus.onSetMinimize(false); - _alarm_bar.visible = false; - _alarm_dialog.visible = true; - } + // Alarms + function alarmMinimize() { + _alarmDialog .visible = false + _alarmListDialog.visible = false + _alarmBar .visible = true } + function alarmMaximize() { + _alarmDialog .visible = true + _alarmListDialog.visible = false + _alarmBar .visible = false + } + function alarmList() { + _alarmDialog .visible = false + _alarmListDialog.visible = true + _alarmBar .visible = false + } + function alarmHide() { + _alarmDialog .visible = false + _alarmListDialog.visible = false + _alarmBar .visible = false + } - function updateAlarm() { - _alarm_dialog.titleText = "Alarm"; - _alarm_dialog.description = vAlarmStatus.text; - _alarm_dialog.alarmID = vAlarmStatus.alarm_AlarmID; - [_alarm_dialog.backgroundColor, _alarm_dialog.textColor] = getRootTextFromAlarmLevel(vAlarmStatus.alarm_Priority); - [_alarm_dialog.titleBarBackground, _alarm_dialog.titleBarForeground] = getAlarmTopBarColors(vAlarmStatus.alarm_Priority); - _alarm_bar.backgroundColor = _alarm_dialog.titleBarBackground; + NotificationBar { id : _alarmBar + backgroundColor : _alarmDialog.backgroundColor + textColor : _alarmDialog.textColor + anchors.bottom : _mainMenu.top + text : vAlarmStatus.text; + isSilenced : vAlarmStatus.alarm_Flag_alarmsSilenced + timeout : vAlarmStatus.alarm_MuteTimeout - _alarm_dialog.isSilenced = vAlarmStatus.alarm_Flag_alarmsSilenced; - _alarm_bar.toggleSilence(vAlarmStatus.alarm_Flag_alarmsSilenced, vAlarmStatus.alarm_MuteTimeout); - _alarm_dialog.silenceBtn.visible = !vAlarmStatus.alarm_Flag_alarmsSilenced; + onMuteClicked : vAlarmStatus.doSilence() + onListClicked : alarmList() + onMaximizeClicked : alarmMaximize() + onClicked : alarmMaximize() } - NotificationDialog { id: _alarm_dialog - alarmID: -1 + // TODO : Later need to create a base Notification dialog class + // and inherit NotificationDialog and AlarmListDialog from that + // Beter be the NotificationDialog defined as parent + // and two separate dialogs by the names of AlarmDialog , AlarmListDlialog creatd. + // Same for the Notification Bar + NotificationDialog { id : _alarmDialog + // this will change later to the actual message text + // and the instruction would be in the dialog content + titleText : "Alarm" + description : vAlarmStatus.text + alarmID : vAlarmStatus.alarm_AlarmID + isSilenced : vAlarmStatus.alarm_Flag_alarmsSilenced + timeout : vAlarmStatus.alarm_MuteTimeout + okVisible : vAlarmStatus.alarm_Flag_UserMustAck + resumeVisible : ! vAlarmStatus.alarm_Flag_noResume + rinsebackVisible : ! vAlarmStatus.alarm_Flag_noRinseback + endVisible : ! vAlarmStatus.alarm_Flag_noEndTreatment - onClickedOkay: { - _alarm_dialog.visible = false; - _alarm_bar.visible = true; - vAlarmStatus.onRequestOkay(alarmID) + onMuteClicked : vAlarmStatus.doSilence () + onResumeClicked : vAlarmStatus.doUserActionResume () + onRinsebackClicked : vAlarmStatus.doUserActionRinseback() + onEndClicked : vAlarmStatus.doUserActionEnd () + onOkClicked : vAlarmStatus.doUserActionOk () + onMinimizeClicked : { + alarmMinimize() + // when user minimizes the alarm it can stay minimized until otherwize is set + // by the next alarm status received. + // see also the "Connections { target: vAlarmStatus" implementation + vAlarmStatus.alarm_KeepMinimized = true + // DEBUG: vAlarmStatus.doClearCondition() } + } - onClickedSilence: { - _alarm_dialog.visible = false; - _alarm_bar.visible = true; - vAlarmStatus.onRequestSilence(); - } + AlarmListDialog { id : _alarmListDialog + isSilenced : vAlarmStatus.alarm_Flag_alarmsSilenced + timeout : vAlarmStatus.alarm_MuteTimeout + onMuteClicked : vAlarmStatus.doSilence() + onMinimizeClicked : alarmMinimize() } // 9 - Others Text { // TEST : Application version should be moved into the information screen later. - color: Colors.textMain + color : Colors.textMain anchors { - right: parent.right - margins: 5 - bottom: parent.bottom + top : parent.top + left : parent.left + leftMargin : 10 } - horizontalAlignment: Text.AlignRight - verticalAlignment: Text.AlignBottom + horizontalAlignment : Text.AlignRight + verticalAlignment : Text.AlignBottom - height: Variables.mainMenuHeight - text: Qt.application.version + height : 15 + text : Qt.application.version font.pixelSize: 14 } Rectangle { // TEST : SD-Card not present should be handled with better indication(s). color : ! _GuiView.sdIsReady ? "red" : _GuiView.sdIsReadOnly ? "gray" : "green" anchors { - right : parent.right - bottom : parent.bottom - bottomMargin: 35 - rightMargin: 10 + top : parent.top + right : parent.right + topMargin : 5 + rightMargin : 5 } width : 25 height: 25 @@ -221,52 +253,6 @@ visible: true // ! _GuiView.sdIsReady || _GuiView.sdIsReadOnly } - function getRootTextFromAlarmLevel(level) { - let root_color = ""; - let text_color = ""; - switch (level) { - case GuiActions.ALARM_PRIORITY_HIGH: - root_color = Colors.textNotificationHighBg; - text_color = Colors.textNotificationHighFg; - break; - case GuiActions.ALARM_PRIORITY_MEDIUM: - root_color = Colors.textNotificationMedBg; - text_color = Colors.textNotificationMedFg; - break; - case GuiActions.ALARM_PRIORITY_LOW: - root_color = Colors.textNotificationLowBg; - text_color = Colors.textNotificationLowFg; - break; - default : // GuiActions.ALARM_PRIORITY_NONE - root_color = Colors.textNotificationNoneBg; - text_color = Colors.textNotificationNoneFg; - } - return [root_color, text_color]; - } - - function getAlarmTopBarColors(level) { - let background = ""; - let foreground = ""; - switch (level) { - case GuiActions.ALARM_PRIORITY_HIGH: - background = Colors.alarmTopBarHighBg; - foreground = Colors.alarmTopBarHighFg; - break; - case GuiActions.ALARM_PRIORITY_MEDIUM: - background = Colors.alarmTopBarMedBg; - foreground = Colors.alarmTopBarMedFg; - break; - case GuiActions.ALARM_PRIORITY_LOW: - background = Colors.alarmTopBarLowBg; - foreground = Colors.alarmTopBarLowFg; - break; - default : // GuiActions.ALARM_PRIORITY_NONE - background = Colors.alarmTopBarLowBg; - foreground = Colors.alarmTopBarLowFg; - } - return [background, foreground]; - } - Connections { target: vPowerOff onPoweroffTriggered: { switch (vpoweroff) { @@ -289,21 +275,37 @@ } Connections { target: vAlarmStatus - onRaiseAlarm: { - updateAlarm(); + onAlarm_Flag_noResumeChanged : vAlarmStatus.alarm_KeepMinimized = false + onAlarm_Flag_noRinsebackChanged : vAlarmStatus.alarm_KeepMinimized = false + onAlarm_Flag_noEndTreatmentChanged : vAlarmStatus.alarm_KeepMinimized = false + onAlarm_Flag_UserMustAckChanged : vAlarmStatus.alarm_KeepMinimized = false + onAlarm_AlarmIDChanged : vAlarmStatus.alarm_KeepMinimized = false + onAlarm_Flag_alarmsSilencedChanged : vAlarmStatus.alarm_KeepMinimized = vAlarmStatus.alarm_Flag_alarmsSilenced + onAlarm_PriorityChanged: { + [ + _alarmDialog.titleBarBackground, + _alarmDialog.titleBarForeground, + _alarmDialog.backgroundColor , + _alarmDialog.textColor , + ] = Colors.alarmPriorityColors(vAlarmStatus.alarm_Priority) + } - if (vAlarmStatus.minimizeAlarm) { - _alarm_dialog.visible = false; - _alarm_bar.visible = true; - } else { - _alarm_dialog.visible = true; - _alarm_bar.visible = false; + onDidAlarmRaise: { + let silenceMinimize = false + if (vAlarmStatus.alarm_Flag_alarmsSilenced && silenceMinimize) { + // this is the response to the silence request + // so the dialog should be closed when the request accepted + // if not then if can stay minimized nothing happens + // if can't stay minimized then it has to be shown + alarmMinimize() } + else { + if (! vAlarmStatus.alarm_KeepMinimized) { + alarmMaximize() + } + } } - onNoAlarm: { - _alarm_bar.visible = false; - _alarm_dialog.visible = false; - } + onDidAlarmEmpty: alarmHide() } } Index: sources/model/MModel.h =================================================================== diff -u -r28f3f8dd18981262995386d29d3c2ab31418bfc4 -r7710fea4486a639caaa3c510add0eac0bcd4ddcc --- sources/model/MModel.h (.../MModel.h) (revision 28f3f8dd18981262995386d29d3c2ab31418bfc4) +++ sources/model/MModel.h (.../MModel.h) (revision 7710fea4486a639caaa3c510add0eac0bcd4ddcc) @@ -21,6 +21,7 @@ #include "MAlarmStatusData.h" #include "MAlarmTriggered.h" #include "MAlarmCleared.h" +#include "MAlarmClearedCondition.h" #include "MTreatmentTimeData.h" #include "MTreatmentFlowsData.h" @@ -186,17 +187,19 @@ REGISTER_METATYPE( OutletFlowData ) \ REGISTER_METATYPE( TreatmentTimeData ) \ REGISTER_METATYPE( PressureOcclusionData ) \ - REGISTER_METATYPE( AlarmStatusData ) \ - REGISTER_METATYPE( AlarmStatusFlag ) \ REGISTER_METATYPE( PowerOffData ) \ REGISTER_METATYPE( TreatmentRangesData ) \ - REGISTER_METATYPE( AlarmTriggeredData ) \ - REGISTER_METATYPE( AlarmClearedData ) \ REGISTER_METATYPE( TreatmentStatesData ) \ REGISTER_METATYPE( TreatmentSalineData ) \ REGISTER_METATYPE( TreatmentHeparinData ) \ REGISTER_METATYPE( HDOperationModeData ) \ \ + REGISTER_METATYPE( AlarmStatusData ) \ + REGISTER_METATYPE( AlarmTriggeredData ) \ + REGISTER_METATYPE( AlarmClearedData ) \ + /* coco begin validated: Manually tested. This model class is a placeholder and there is no use case for this now. + REGISTER_METATYPE( AlarmClearedConditionData ) \ + coco end */ \ REGISTER_METATYPE( DGROPumpData ) \ REGISTER_METATYPE( DGPressuresData ) \ REGISTER_METATYPE( DGDrainPumpData ) \ @@ -215,9 +218,12 @@ REGISTER_METATYPE( StartTreatmentRequestData ) \ REGISTER_METATYPE( ConfirmTreatmentRequestData ) \ REGISTER_METATYPE( EndTreatmentRequestData ) \ - REGISTER_METATYPE( AlarmAcknowledgeRequestData ) \ - REGISTER_METATYPE( AlarmSilenceRequestData ) \ \ + REGISTER_METATYPE( AlarmSilenceRequestData ) \ + REGISTER_METATYPE( AlarmUserActionRequestData ) \ + /* coco begin validated: Manually tested. This model class is a placeholder and there is no use case for this now. + REGISTER_METATYPE( AlarmClearedConditionRequestData ) \ + coco end*/ \ REGISTER_METATYPE( AdjustBloodDialysateRequestData ) \ REGISTER_METATYPE( AdjustDurationRequestData ) \ REGISTER_METATYPE( AdjustUltrafiltrationInitRequestData ) \ @@ -264,16 +270,19 @@ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, OutletFlowData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, TreatmentTimeData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, PressureOcclusionData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AlarmStatusData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, PowerOffData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, TreatmentRangesData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AlarmTriggeredData ) \ - ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AlarmClearedData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, TreatmentStatesData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, TreatmentSalineData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, TreatmentHeparinData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, HDOperationModeData ) \ \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AlarmStatusData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AlarmTriggeredData ) \ + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AlarmClearedData ) \ + /* coco begin validated: Manually tested. This model class is a placeholder and there is no use case for this now. + ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, AlarmClearedConditionData ) \ + coco end */ \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DGROPumpData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DGPressuresData ) \ ACTION_RECEIVE_BRIDGE_CONNECTION(vSOURCE, DGDrainPumpData ) \ @@ -317,8 +326,12 @@ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustHeparinRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustPressuresLimitsRequestData ) \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AdjustTreatmentParametersRequestData ) \ - ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AlarmAcknowledgeRequestData ) \ + \ ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AlarmSilenceRequestData ) \ + ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AlarmUserActionRequestData ) \ + /* coco begin validated: Manually tested. This model class is a placeholder and there is no use case for this now. + ADJUST_TRANSMT_BRIDGE_CONNECTION(vSOURCE, AlarmClearedConditionRequestData ) \ + coco end */ \ //===============================================================================// /*! @@ -344,16 +357,19 @@ ACTION_RECEIVE_BRIDGE_DEFINITION( OutletFlowData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( TreatmentTimeData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( PressureOcclusionData ) \ - ACTION_RECEIVE_BRIDGE_DEFINITION( AlarmStatusData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( PowerOffData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( TreatmentRangesData ) \ - ACTION_RECEIVE_BRIDGE_DEFINITION( AlarmTriggeredData ) \ - ACTION_RECEIVE_BRIDGE_DEFINITION( AlarmClearedData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( TreatmentStatesData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( TreatmentSalineData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( TreatmentHeparinData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( HDOperationModeData ) \ \ + ACTION_RECEIVE_BRIDGE_DEFINITION( AlarmStatusData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( AlarmTriggeredData ) \ + ACTION_RECEIVE_BRIDGE_DEFINITION( AlarmClearedData ) \ + /* coco begin validated: Manually tested. This model class is a placeholder and there is no use case for this now. + ACTION_RECEIVE_BRIDGE_DEFINITION( AlarmClearedConditionData ) \ + coco end */ \ ACTION_RECEIVE_BRIDGE_DEFINITION( DGROPumpData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( DGPressuresData ) \ ACTION_RECEIVE_BRIDGE_DEFINITION( DGDrainPumpData ) \ @@ -396,8 +412,12 @@ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustHeparinRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustPressuresLimitsRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AdjustTreatmentParametersRequestData ) \ - ADJUST_TRANSMT_BRIDGE_DEFINITION( AlarmAcknowledgeRequestData ) \ + \ ADJUST_TRANSMT_BRIDGE_DEFINITION( AlarmSilenceRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION( AlarmUserActionRequestData ) \ + /* coco begin validated: Manually tested. This model class is a placeholder and there is no use case for this now. + ADJUST_TRANSMT_BRIDGE_DEFINITION( AlarmClearedConditionRequestData ) \ + coco end */ \ #define ADJUST_TRANSMT_MODEL_BRIDGE_DEFINITIONS_NOEMIT \ /* Request ----------------------- NoEmit -------------------------- */ \ @@ -414,8 +434,12 @@ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustHeparinRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustPressuresLimitsRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AdjustTreatmentParametersRequestData ) \ + \ ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AlarmSilenceRequestData ) \ - ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AlarmAcknowledgeRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AlarmUserActionRequestData ) \ + /* coco begin validated: Manually tested. This model class is a placeholder and there is no use case for this now. + ADJUST_TRANSMT_BRIDGE_DEFINITION_NOEMIT( AlarmClearedConditionRequestData ) \ + coco end */ \ #define ADJUST_TRANSMT_MODEL_BRIDGE_DEFINITIONS_PUBLIC \ /* Request ----------------------- public -------------------------- */ \ @@ -432,27 +456,33 @@ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( ConfirmTreatmentRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( EndTreatmentRequestData ) \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AdjustTreatmentParametersRequestData ) \ - ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AlarmAcknowledgeRequestData ) \ + \ ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AlarmSilenceRequestData ) \ + ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AlarmUserActionRequestData ) \ + /* coco begin validated: Manually tested. This model class is a placeholder and there is no use case for this now. + ADJUST_TRANSMT_BRIDGE_DEFINITION_PUBLIC( AlarmClearedConditionRequestData ) \ + coco end */ \ //===============================================================================// #define ACTION_RECEIVE_SIGNALS \ - /* Received signals */ \ + /* Received signals */ \ + /* NO RESPONSE message model here */ \ ACTION_RECEIVE_SIGNAL( BloodFlowData ) \ ACTION_RECEIVE_SIGNAL( DialysateFlowData ) \ ACTION_RECEIVE_SIGNAL( OutletFlowData ) \ ACTION_RECEIVE_SIGNAL( TreatmentTimeData ) \ ACTION_RECEIVE_SIGNAL( PressureOcclusionData ) \ - ACTION_RECEIVE_SIGNAL( AlarmStatusData ) \ ACTION_RECEIVE_SIGNAL( PowerOffData ) \ ACTION_RECEIVE_SIGNAL( TreatmentRangesData ) \ - ACTION_RECEIVE_SIGNAL( AlarmTriggeredData ) \ - ACTION_RECEIVE_SIGNAL( AlarmClearedData ) \ ACTION_RECEIVE_SIGNAL( TreatmentStatesData ) \ ACTION_RECEIVE_SIGNAL( TreatmentSalineData ) \ ACTION_RECEIVE_SIGNAL( TreatmentHeparinData ) \ ACTION_RECEIVE_SIGNAL( HDOperationModeData ) \ \ + ACTION_RECEIVE_SIGNAL( AlarmStatusData ) \ + ACTION_RECEIVE_SIGNAL( AlarmTriggeredData ) \ + ACTION_RECEIVE_SIGNAL( AlarmClearedData ) \ + ACTION_RECEIVE_SIGNAL( AlarmClearedConditionData ) \ ACTION_RECEIVE_SIGNAL( DGROPumpData ) \ ACTION_RECEIVE_SIGNAL( DGPressuresData ) \ ACTION_RECEIVE_SIGNAL( DGDrainPumpData ) \ Index: sources/model/hd/adjustment/MTreatmentAdjustRequests.h =================================================================== diff -u -r28f3f8dd18981262995386d29d3c2ab31418bfc4 -r7710fea4486a639caaa3c510add0eac0bcd4ddcc --- sources/model/hd/adjustment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision 28f3f8dd18981262995386d29d3c2ab31418bfc4) +++ sources/model/hd/adjustment/MTreatmentAdjustRequests.h (.../MTreatmentAdjustRequests.h) (revision 7710fea4486a639caaa3c510add0eac0bcd4ddcc) @@ -369,22 +369,22 @@ * \brief The MAlarmSilenceReq class * \details The model to request alarm silent * - * | MSG | CAN ID | M.Box | Type | Ack | Src | Dest | Description | - * |:---:|:------:|:-----:|:----:|:---:|:---:|:----:|:--------------------:| - * | | | | Req | Y | UI | HD | Alarm Silent Request | + * | MSG | CAN ID | M.Box | Type | Ack | Src | Dest | Description | + * |:----:|:------:|:-----:|:----:|:---:|:---:|:----:|:-----------------------:| + * |0x3200| 0x100 | 9 | Req | Y | UI | HD | Alarm (de)Silent Request | * * | Payload || * | || - * | #1:(U32) | TBD | + * | #1:(U08) | silence | * */ class MAlarmSilenceReq : public MModel { public: - quint8 state; + quint8 silence = 1; // coco begin validated : Has been validated manually. // This object is used statically for now, kept the logic for later usage. QString toString() { - return toString({state}); + return toString({silence}); } // coco end static QString toString(const QVariantList &vParameters) { @@ -393,31 +393,60 @@ }; /*! - * \brief The MAlarmAcknowledgeReq class + * \brief The MAlarmClearedConditionReq class * \details The model to tell HD an alarm has been acknowledged * - * | MSG | CAN ID | M.Box | Type | Ack | Src | Dest | Description | - * |:---:|:------:|:-----:|:----:|:---:|:---:|:----:|:-------------------------:| - * | 63 | 0x100 | N/A | Cmd | Y | UI | HD | Alarm Acknolwedge Request | + * | MSG | CAN ID | M.Box | Type | Ack | Src | Dest | Description | + * |:----:|:----------:|:-----:|:----:|:---:|:---:|:----:|:------------------------:| + * |0x3F00| 0x001,2,4 | N/A | Cmd | Y | UI | HD | Alarm Condition Cleared | * * | Payload || * | || * | #1:(U32) | \ref alarmID | * */ -class MAlarmAcknowledgeReq : public MModel { +// coco begin validated: Manually tested. This model class is a placeholder for the message 63(0x3F00) and there is no use case for this now. +class MAlarmClearedConditionReq : public MModel { public: - quint32 alarmID; + GuiAlarmID alarmID = GuiAlarmID::ALARM_ID_NO_ALARM; // coco begin validated : Has been validated manually. // This object is used statically for now, kept the logic for later usage. QString toString() { return toString({alarmID}); } // coco end + // coco begin validate : static QString toString(const QVariantList &vParameters) { - return MModel::toString("AlarmAcknowledgeRequest", vParameters); + return MModel::toString("AlarmCondition", vParameters); } }; +// coco end +/*! + * \brief The MAlarmUserActionReq class + * \details The model to tell HD an alarm action has been made by user + * + * | MSG | CAN ID | M.Box | Type | Ack | Src | Dest | Description | + * |:----:|:------:|:-----:|:----:|:---:|:---:|:----:|:------------------:| + * |0x4000| 0x100 | N/A | Cmd | Y | UI | HD | Alarm User Action | + * + * | Payload || + * | || + * | #1:(U32) | \ref action | + * + */ +class MAlarmUserActionReq : public MModel { +public: + GuiAlarmUserActions action; + // coco begin validated : Has been validated manually. + // This object is used statically for now, kept the logic for later usage. + QString toString() { + return toString({action}); + } + // coco end + static QString toString(const QVariantList &vParameters) { + return MModel::toString("AlarmUserAction", vParameters); + } +}; /*! * \brief The MStartTreatmentReq class @@ -605,4 +634,5 @@ typedef Model:: MEndTreatmentReq EndTreatmentRequestData; typedef Model:: MAdjustTreatmentParametersReq AdjustTreatmentParametersRequestData; typedef Model:: MAlarmSilenceReq AlarmSilenceRequestData; -typedef Model:: MAlarmAcknowledgeReq AlarmAcknowledgeRequestData; +typedef Model:: MAlarmClearedConditionReq AlarmClearedConditionRequestData; +typedef Model:: MAlarmUserActionReq AlarmUserActionRequestData;