Index: sources/drydemo/StateControllerTreatmentBroadcasts.cpp =================================================================== diff -u -rc52253ab5fc73e9b59d9cd99eada3d526d799987 -r38521851fd3271aa9a8965067d15daaba0db4b2e --- sources/drydemo/StateControllerTreatmentBroadcasts.cpp (.../StateControllerTreatmentBroadcasts.cpp) (revision c52253ab5fc73e9b59d9cd99eada3d526d799987) +++ sources/drydemo/StateControllerTreatmentBroadcasts.cpp (.../StateControllerTreatmentBroadcasts.cpp) (revision 38521851fd3271aa9a8965067d15daaba0db4b2e) @@ -76,50 +76,57 @@ _isBroadcastListReady = true; } -void StateController::handleTDPressureProcessAndBroadcastData(const Broadcast_Type BCType) +void StateController::handleTDPressureBroadcastData(const Broadcast_Type BCType) { static quint32 broadcastCounter = 10; - if (! _treatmentRcvdMessages[ID_UI_PRESSURE_LIMIT_WIDEN_RQST].isNull()){ - _treatmentRcvdMessages[ID_UI_PRESSURE_LIMIT_WIDEN_RQST].clear(); - // TODo address the increase per request - handleUIResponseMessage(ID_TD_PRESSURE_LIMIT_WIDEN_RESP, ACCEPT_VALUE); - } + // Arterial calculations + float arterialRandomMMHG = _randNumGenerator.generateDouble() * (_pressureVars.arterialMinLimitMMHG - _pressureVars.arterialMaxLimitMMHG) + + _pressureVars.arterialMaxLimitMMHG; + float arterialPevMMHG = _pressureVars.arterialRawMMHG[_pressureVars.arterialIndex]; - // TODO update the pressures - float h2ArtPresMMHG = 12.2; - float h14VenPresMMHG = 80.1; - quint32 presLimitState = 1; - qint32 h2ArtMinLimitMMHG = MIN_ART_PRES_LIMIT_MMHG; - qint32 h2ArtMaxLimitMMHG = MAX_ART_PRES_LIMIT_MMHG; - qint32 h14VenMinLimitMMGH = MIN_VEN_PRES_LIMIT_MMHG; - qint32 h14VenMaxLimitMMHG = MAX_VEN_PRES_LIMIT_MMHG; - float h2ArtLongFilterPresMMHG = -23.0; - float h14VenLongFilterPresMMHG = 67.5; - float tmpPresMMHG = 45.03; - float tmpLongFilter = 45.5; - float tmpMinLimitMMHG = MIN_TMP_PRES_LIMIT_MMHG; - float tmpMaxLimitMMHG = MAX_TMP_PRES_LIMIT_MMHG; - float h23BaroPresPSI = 14.2l; + _pressureVars.arterialRawMMHG[_pressureVars.arterialIndex] = arterialRandomMMHG; + _pressureVars.arterialRunningSumMMHG = _pressureVars.arterialRunningSumMMHG - arterialPevMMHG + arterialRandomMMHG; + _pressureVars.arterialIndex = (_pressureVars.arterialIndex < SHORT_MOVING_AVG_SIZE - 1 ? _pressureVars.arterialIndex + 1 : 0); + // Venous calculations + float venousRandomMMHG = _randNumGenerator.generateDouble() * (_pressureVars.venousMinLimitMMHG - _pressureVars.venousMaxLimitMMHG) + + _pressureVars.venousMaxLimitMMHG; + float venousPevMMHG = _pressureVars.venousRawMMHG[_pressureVars.venousIndex]; + _pressureVars.venousRawMMHG[_pressureVars.venousIndex] = venousRandomMMHG; + _pressureVars.venousRunningSumMMHG = _pressureVars.venousRunningSumMMHG - venousPevMMHG + venousRandomMMHG; + _pressureVars.venousIndex = (_pressureVars.venousIndex < SHORT_MOVING_AVG_SIZE - 1 ? _pressureVars.venousIndex + 1 : 0); + // TMP calculations + float tmpRandomMMHG = _randNumGenerator.generateDouble() * (_pressureVars.tmpMinLimitMMHG - _pressureVars.tmpMaxLimitMMHG) + + _pressureVars.tmpMaxLimitMMHG; + float tmpPevMMHG = _pressureVars.tmpRawMMHG[_pressureVars.tmpIndex]; + + _pressureVars.tmpRawMMHG[_pressureVars.tmpIndex] = tmpRandomMMHG; + _pressureVars.tmpRunningSumMMHG = _pressureVars.tmpRunningSumMMHG - tmpPevMMHG + tmpRandomMMHG; + _pressureVars.tmpIndex = (_pressureVars.tmpIndex < SHORT_MOVING_AVG_SIZE - 1 ? _pressureVars.tmpIndex + 1 : 0); + if ((++broadcastCounter % NUM_OF_COUNTS_TIMER_BC_EMIT != 0) && (BCType == BC_DELAYED)) { return; } + _pressureVars.arterialFilteredMMHG = _pressureVars.arterialRunningSumMMHG / static_cast(SHORT_MOVING_AVG_SIZE); + _pressureVars.venousFilteredMMHG = _pressureVars.venousRunningSumMMHG / static_cast(SHORT_MOVING_AVG_SIZE); + _pressureVars.tmpFilteredMMHG = _pressureVars.tmpRunningSumMMHG / static_cast(SHORT_MOVING_AVG_SIZE); + QVariantList msg; msg.append(static_cast(ID_TD_PRESSURE_DATA)); msg.append(Can_Id::eChlid_TD_Sync); - msg.append(h2ArtPresMMHG); - msg.append(h14VenPresMMHG); - msg.append(presLimitState); - msg.append(h2ArtMinLimitMMHG); - msg.append(h2ArtMaxLimitMMHG); - msg.append(h14VenMinLimitMMGH); - msg.append(h14VenMaxLimitMMHG); - msg.append(h2ArtLongFilterPresMMHG); - msg.append(h14VenLongFilterPresMMHG); - msg.append(tmpPresMMHG); - msg.append(tmpLongFilter); - msg.append(tmpMinLimitMMHG); - msg.append(tmpMaxLimitMMHG); - msg.append(h23BaroPresPSI); + msg.append(_pressureVars.arterialFilteredMMHG); + msg.append(_pressureVars.venousFilteredMMHG); + msg.append(_pressureVars.presLimitState); + msg.append(_pressureVars.arterialMinLimitMMHG); + msg.append(_pressureVars.arterialMaxLimitMMHG); + msg.append(_pressureVars.venousMinLimitMMHG); + msg.append(_pressureVars.venousMaxLimitMMHG); + msg.append(DEF_ART_LONG_FILT_PRES_MMHG); + msg.append(DEF_VEN_LONG_FILT_PRES_MMHG); + msg.append(_pressureVars.tmpFilteredMMHG); + msg.append(DEF_TMP_LONG_FILT_PRES_MMHG); + msg.append(_pressureVars.tmpMinLimitMMHG); + msg.append(_pressureVars.tmpMaxLimitMMHG); + msg.append(DEF_BARO_PRES_PSI); _isBroadcastListReady = false; _broadcastMessages.append(msg); _isBroadcastListReady = true;