Index: NVDataMgmt.c =================================================================== diff -u -rc4d599d1607e5999a4219505e83cf856cb40a25c -r3b70d6b53c78039aa9b7b2546a0137e906966519 --- NVDataMgmt.c (.../NVDataMgmt.c) (revision c4d599d1607e5999a4219505e83cf856cb40a25c) +++ NVDataMgmt.c (.../NVDataMgmt.c) (revision 3b70d6b53c78039aa9b7b2546a0137e906966519) @@ -8,7 +8,7 @@ * @file NVDataMgmt.c * * @author (last) Dara Navaei -* @date (last) 07-Mar-2024 +* @date (last) 09-May-2024 * * @author (original) Dara Navaei * @date (original) 12-Feb-2020 @@ -130,6 +130,7 @@ #ifdef _HD_ #define DEFAULT_BLOOD_LEAK_SET_POINT 20 ///< Blood leak default set point. #define DEFAULT_HEPARIN_PUMP_VOLTAGE 0.15F ///< Heparin pump default voltage. +#define DEFAULT_ENABLE_CHEM_DISINFECT 0 ///< Disable chemical disinfect in institutional record. #endif // DG specific defines @@ -937,9 +938,15 @@ BOOL scheduleStatus = enqueueSector0Records(); #ifdef _HD_ + MESSAGE_T institMsg; // Got new data for the EEPROM records, set the latest institutional record to treatment parameters to make sure // the treatment parameters have the record available all the time setNVInstitutionalRecordToTxParamsRecord( &hdInstitutionalGroup.hdInstitutionalRecord ); + + // Received new institutional record and it is valid, send it to the UI to be up to date + institMsg.hdr.msgID = 0; + institMsg.hdr.payloadLen = 0; + handleSendInstitutionalRecordToUI( &institMsg ); #endif // Signal that there is a new calibration record available. @@ -1522,6 +1529,21 @@ return status; } + +/*********************************************************************//** + * @brief + * The isChemDisinfectEnabledInInstitRecord returns the enable/disable + * status of the chemical disinfect in institutional record + * @details Inputs: hdInstitutionalGroup + * Output: none + * @return TRUE if chemical disinfect is enabled otherwise, FALSE + *************************************************************************/ +BOOL isChemDisinfectEnabledInInstitRecord( void ) +{ + BOOL status = ( DEFAULT_ENABLE_CHEM_DISINFECT == hdInstitutionalGroup.hdInstitutionalRecord.enableChemicalDisinfect ? FALSE : TRUE ); + + return status; +} #endif #ifdef _DG_ /*********************************************************************//** @@ -1865,6 +1887,14 @@ newCalStartTimer = getMSTimerCount(); isNewCalAvailable = TRUE; nvDataMgmtSelfTestResult = SELF_TEST_STATUS_PASSED; + +#ifdef _HD_ + MESSAGE_T institMsg; + // Received new institutional record and it is valid, send it to the UI to be up to date + institMsg.hdr.msgID = 0; + institMsg.hdr.payloadLen = 0; + handleSendInstitutionalRecordToUI( &institMsg ); +#endif } else { @@ -3367,7 +3397,7 @@ // CRC did not pass so set all values to default record->maxResidualFluid = RECORD_DEFAULT_CONST; record->normalFillVolume = RECORD_DEFAULT_CONST; - record->rsrvrUnfilledWeight = RECORD_DEFAULT_CONST; + record->rsrvrUnfilledWeight = EMPTY_RESERVOIR_WEIGHT_GRAMS; record->rsrvrVolume = RECORD_DEFAULT_CONST; record->calibrationTime = RECORD_DEFAULT_TIME; record->crc = crc16 ( (U08*)record, sizeof(DG_RESERVOIR_VOLUME_DATA_T) - sizeof(U16) ); @@ -3939,6 +3969,7 @@ hdInstitutionalGroup.hdInstitutionalRecord.maxHeparinDispRateMLPHR = getF32DefaultTreatmentParamEdge( TREATMENT_PARAM_HEPARIN_DISPENSE_RATE, FALSE ); hdInstitutionalGroup.hdInstitutionalRecord.minHeparinBolusVolumeML = getF32DefaultTreatmentParamEdge( TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME, TRUE ); hdInstitutionalGroup.hdInstitutionalRecord.maxHeparinBolusVolumeML = getF32DefaultTreatmentParamEdge( TREATMENT_PARAM_HEPARIN_BOLUS_VOLUME, FALSE ); + hdInstitutionalGroup.hdInstitutionalRecord.enableChemicalDisinfect = DEFAULT_ENABLE_CHEM_DISINFECT; hdInstitutionalGroup.hdInstitutionalRecord.calibrationTime = getRTCTimestamp(); hdInstitutionalGroup.hdInstitutionalRecord.crc = crc16 ( (U08*)&hdInstitutionalGroup.hdInstitutionalRecord, sizeof( HD_INSTITUTIONAL_RECORD_T ) - sizeof( U16 ) );