Index: sources/view/hd/adjustment/common/VCommonAdjustmentVitals.cpp =================================================================== diff -u -rec7f919fdb70ff29a8de627937e4ad7008e59c1c -r2ef03b2ce51b4dc507f66e9671953a8e0824bde9 --- sources/view/hd/adjustment/common/VCommonAdjustmentVitals.cpp (.../VCommonAdjustmentVitals.cpp) (revision ec7f919fdb70ff29a8de627937e4ad7008e59c1c) +++ sources/view/hd/adjustment/common/VCommonAdjustmentVitals.cpp (.../VCommonAdjustmentVitals.cpp) (revision 2ef03b2ce51b4dc507f66e9671953a8e0824bde9) @@ -1,13 +1,13 @@ /*! * - * Copyright (c) 2021-2022 Diality Inc. - All Rights Reserved. + * Copyright (c) 2021-2024 Diality Inc. - All Rights Reserved. * \copyright * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * \file VCommonAdjustmentVitals.cpp * \author (last) Behrouz NematiPour - * \date (last) 05-Apr-2022 + * \date (last) 10-Jan-2024 * \author (original) Behrouz NematiPour * \date (original) 23-Jun-2021 * @@ -31,8 +31,8 @@ void View::VTreatmentVitals::initConnections() { ACTION_RECEIVE_BRIDGE_CONNECTION(_BluetoothInterface, UIBloodPressureData); - connect(this, SIGNAL( intervalChanged (const quint8 &)), - this, SLOT(onTimerChanged ( ))); + connect(this, SIGNAL( intervalChanged (const quint8 &)), + this, SLOT(onIntervalChanged ( ))); } /*! @@ -48,9 +48,10 @@ // adjustment_Accepted ( vData.mAccepted ); // adjustment_Reason ( vData.mReason ); + update_rt (vData.mSystolic, vData.mDiastolic, vData.mPulseRate); emit didTrigger(vData.mSystolic, vData.mDiastolic, vData.mPulseRate); // if the vitals is disabled it means Gui is probably in an incorrect state and is unable to handle the vital information. - LOG_EVENT_UI(tr("Vital received,%1,%2,%3") + LOG_APPED_UI(tr("Vital received,%1,%2,%3") .arg(vData.mSystolic ) .arg(vData.mDiastolic) .arg(vData.mPulseRate)); @@ -71,7 +72,7 @@ update(vSystolic, vDiastolic, vHeartRate); treatmentLog(); - LOG_EVENT_UI(tr("Vital Confirmed,%1,%2,%3") + LOG_APPED_UI(tr("Vital Confirmed,%1,%2,%3") .arg(_systolic ) .arg(_diastolic) .arg(_heartRate) @@ -85,7 +86,7 @@ */ void View::VTreatmentVitals::doSkip() { - LOG_EVENT_UI(tr("Vital Skipped")); + LOG_APPED_UI(tr("Vital Skipped")); timerReset(); } @@ -135,6 +136,21 @@ } /*! + * \brief View::VTreatmentVitals::update_rt + * \details The vital properties will only be updated if the user confirms the read values. + * But this ones are for debugging purposes and will be updated all the time in Real Time when the vitals received. + * \param vSystolic - Blood Pressure Systolic + * \param vDiastolic - Blood Pressure Diastolic + * \param vHeartRate - Heart Rate + */ +void View::VTreatmentVitals::update_rt(quint16 vSystolic, quint16 vDiastolic, quint16 vHeartRate) +{ + systolic__rt ( vSystolic ); + diastolic_rt ( vDiastolic ); + heartRate_rt ( vHeartRate ); +} + +/*! * \brief View::VTreatmentVitals::treatmentLog * \details Appends the vitals values to the treatment log list (for later store in the TxLog at the end of Tx) * \note the method update has to be called before calling this method to update the property values used in this method. @@ -155,23 +171,32 @@ */ void View::VTreatmentVitals::timerEvent(QTimerEvent *) { + if ( ! _timerId ) return; // No timer started or failed starting if ( ! _interval ) return; // if interval is 0/OFF return - _secCounter++; - if ( _secCounter % 60 ) return; // only check every minute + // DEBUG: qDebug() << __FUNCTION__ << _counter_sec << _counter_min << _interval << _timerId; + _counter_sec++; - if ( ! _timerCounter ) { + min_left(_counter_min ); + sec_left(60 - _counter_sec); + + countdown(QString("%1:%2").arg(_min_left,2,10,QChar('0')).arg(_sec_left,2,10,QChar('0'))); + + if ( _counter_sec % 60 ) return; // only check every minute + + if ( ! _counter_min ) { timerStop(); emit didTrigger(); } else { - _timerCounter--; - _secCounter = 0; + _counter_min--; + _counter_sec = 0; } } -void View::VTreatmentVitals::onTimerChanged() +void View::VTreatmentVitals::onIntervalChanged() { + // DEBUG: qDebug() << __FUNCTION__ << _counter_sec << _counter_min << _interval << _timerId; if ( _interval ) timerReset(); else timerStop (); // Timer stop is resetting timer too. } @@ -183,6 +208,10 @@ */ void View::VTreatmentVitals::timerStart() { + if ( _timerId ) killTimer(_timerId); // this typically should not happen. + if ( ! _interval ) return; // if interval is 0/OFF return + // DEBUG: qDebug() << __FUNCTION__ << _counter_sec << _counter_min << _interval << _timerId; + timerReset(); _timerId = startTimer(1000); // 1 sec interval which will used as 1 min in timerEvent (easier to debug) } @@ -191,12 +220,13 @@ { if ( _interval ) { // ( -1 ) :the interval is 0 based but if as an example we set the counter to 5 then 5 itself gets a minute to pass which makes it 6 min. - _timerCounter = _interval - 1; + _counter_min = _interval - 1; } else { // if _interval == 0, counter should set to 0 too not to -1 - _timerCounter = 0; + _counter_min = 0; } - _secCounter = 0; + _counter_sec = 0; + // DEBUG: qDebug() << __FUNCTION__ << _counter_sec << _counter_min << _interval << _timerId; } /*! @@ -205,6 +235,8 @@ */ void View::VTreatmentVitals::timerStop() { + if ( ! _timerId ) return; // No timer started or failed starting + // DEBUG: qDebug() << __FUNCTION__ << _counter_sec << _counter_min << _interval << _timerId; killTimer(_timerId); _timerId = 0; timerReset();