Index: firmware/App/Modes/ModeFault.c =================================================================== diff -u -ra50b999266616eb3d0661846cd31bb395c8a7e12 -rc1e2dfcd544f59788ad1a58e1e8339a475ba4266 --- firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision a50b999266616eb3d0661846cd31bb395c8a7e12) +++ firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision c1e2dfcd544f59788ad1a58e1e8339a475ba4266) @@ -8,7 +8,7 @@ * @file ModeFault.c * * @author (last) Sean Nash -* @date (last) 23-Feb-2023 +* @date (last) 04-May-2023 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -73,6 +73,7 @@ requestAlarmLampPattern( LAMP_PATTERN_FAULT ); // in case we get here before LED POST can take alarm lamp out of manual control. doorClosedRequired( FALSE, FALSE ); syringeDetectionRequired( FALSE ); + setVenousBubbleDetectionEnabled( FALSE ); // Set user alarm recovery actions allowed in this mode setAlarmUserActionEnabled( ALARM_USER_ACTION_RESUME, FALSE ); Index: firmware/App/Modes/Prime.c =================================================================== diff -u -ra50b999266616eb3d0661846cd31bb395c8a7e12 -rc1e2dfcd544f59788ad1a58e1e8339a475ba4266 --- firmware/App/Modes/Prime.c (.../Prime.c) (revision a50b999266616eb3d0661846cd31bb395c8a7e12) +++ firmware/App/Modes/Prime.c (.../Prime.c) (revision c1e2dfcd544f59788ad1a58e1e8339a475ba4266) @@ -8,7 +8,7 @@ * @file Prime.c * * @author (last) Sean Nash -* @date (last) 14-Apr-2023 +* @date (last) 03-May-2023 * * @author (original) Quang Nguyen * @date (original) 08-Dec-2020 @@ -442,7 +442,7 @@ setValvePosition( VDI, VALVE_POSITION_C_CLOSE ); setValvePosition( VDO, VALVE_POSITION_C_CLOSE ); setValvePosition( VBA, VALVE_POSITION_C_CLOSE ); - setValvePosition( VBV, VALVE_POSITION_C_CLOSE ); + setValvePosition( VBV, VALVE_POSITION_B_OPEN ); // Allow fluid to get to VBA per DEN-14171 setValveAirTrap( STATE_OPEN ); signalDialOutPumpHardStop(); Index: firmware/App/Modes/SelfTests.c =================================================================== diff -u -r12708a04ae3365e11180182fc52d005c229a7bc6 -rc1e2dfcd544f59788ad1a58e1e8339a475ba4266 --- firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 12708a04ae3365e11180182fc52d005c229a7bc6) +++ firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision c1e2dfcd544f59788ad1a58e1e8339a475ba4266) @@ -941,26 +941,9 @@ { setOcclusionInstallLevel(); // Record occlusion pressure level after a new cartridge is installed doorClosedRequired( TRUE, TRUE ); -#ifndef _RELEASE_ - if ( SW_CONFIG_ENABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_DRY_SELF_TESTS ) ) - { - signalAllowDGFlushFills(); - signalAllowDGFillRes1(); - signalAllowDGFillRes2(); - state = DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE; - } - else -#endif - { -#ifndef _RELEASE_ - if ( SW_CONFIG_DISABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_AIR_PUMP ) ) // Allow res 1&2 fills now if air pump not disabled -#endif - { - signalAllowDGFillRes1(); - signalAllowDGFillRes2(); - } - state = DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE; - } + signalAllowDGFillRes1(); + signalAllowDGFillRes2(); + state = DRY_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE; } } @@ -1022,7 +1005,7 @@ *************************************************************************/ static DRY_SELF_TESTS_STATE_T handleDrySelfTestUsedCartridgeCheckState( void ) { - DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_USED_CARTRIDGE_CHECK_STATE; + DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_USED_CARTRIDGE_CHECK_STATE; BUBBLE_STATUS_T ADVBubbleStatus = getBubbleStatus( ADV ); SEND_EVENT_WITH_2_U32_DATA(HD_EVENT_DRY_SELF_TEST_CARTRIDGE_RESULT,(U32)ADVBubbleStatus,(U32)BUBBLE_DETECTED) @@ -1035,18 +1018,17 @@ } else { -#ifndef _RELEASE_ - if ( getSoftwareConfigStatus( SW_CONFIG_ENABLE_WORN_OUT_CARTRIDGE ) != SW_CONFIG_ENABLE_VALUE ) -#endif + if ( ( TRUE == getTestConfigStatus( TEST_CONFIG_USE_WORN_CARTRIDGE ) ) || ( TRUE == getTestConfigStatus( TEST_CONFIG_USE_WET_CARTRIDGE ) ) ) { - activateAlarmNoData( ALARM_ID_HD_INSTALL_NEW_CARTRIDGE ); + // If either of the test configurations are set go to loaded check + state = DRY_SELF_TESTS_CARTRIDGE_LOADED_CHECK_STATE; } -#ifndef _RELEASE_ - else + + if ( ( getTestConfigStatus( TEST_CONFIG_USE_WORN_CARTRIDGE ) != TRUE ) && ( getTestConfigStatus( TEST_CONFIG_USE_WET_CARTRIDGE ) != TRUE ) ) { - state = DRY_SELF_TESTS_CARTRIDGE_LOADED_CHECK_STATE; + // If we are using the worn cartridge or wet cartridge, it is not needed to alarm the user to install the new cartridge + activateAlarmNoData( ALARM_ID_HD_INSTALL_NEW_CARTRIDGE ); } -#endif } if ( TRUE == doesAlarmStatusIndicateStop() ) @@ -1079,6 +1061,12 @@ setValveAirTrap( STATE_OPEN ); pressureSelfTestPreNormalStartTime = getMSTimerCount(); state = DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_SETUP_STATE; + + if ( TRUE == getTestConfigStatus( TEST_CONFIG_USE_WORN_CARTRIDGE ) ) + { + dryPressureTestsCompleted = TRUE; + state = DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE; + } } if ( TRUE == doesAlarmStatusIndicateStop() ) @@ -1109,47 +1097,22 @@ } else { -#ifndef _RELEASE_ - if ( SW_CONFIG_ENABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_AIR_PUMP ) ) - { + if ( TRUE == didTimeout( pressureSelfTestPreNormalStartTime, PRE_NORMAL_PRESSURE_SELF_TEST_DELAY_MS ) ) + { // Record baseline pressures before pressurizing blood side circuit side of cartridge + previousNormalArterialPressure = getFilteredArterialPressure(); + previousNormalVenousPressure = getFilteredVenousPressure(); - // Wait for reservoirs to drain before starting this test - if ( ( getLoadCellWeight( LOAD_CELL_RESERVOIR_1_PRIMARY ) < MAX_EMPTY_RESERVOIR_WEIGHT_G ) && ( getLoadCellWeight( LOAD_CELL_RESERVOIR_2_PRIMARY ) < MAX_EMPTY_RESERVOIR_WEIGHT_G ) ) + // Check to see if sensor is within normal ranges before we execute pressure sensor tests + if ( ( fabs( previousNormalArterialPressure ) > PRESSURE_CHECK_START_PRESSURE_TOLERANCE_MMHG ) || + ( fabs( previousNormalVenousPressure ) > PRESSURE_CHECK_START_PRESSURE_TOLERANCE_MMHG ) ) { - if ( TRUE == didTimeout( pressureSelfTestPreNormalStartTime, PRE_NORMAL_PRESSURE_SELF_TEST_DELAY_MS ) ) - { - previousNormalArterialPressure = getFilteredArterialPressure(); - previousNormalVenousPressure = getFilteredVenousPressure(); - state = DRY_SELF_TESTS_PRESSURE_SENSORS_VENOUS_SETUP_STATE; - - // Check to see if sensor is within normal ranges before we execute pressure sensor tests - if ( ( fabs( previousNormalArterialPressure ) > PRESSURE_CHECK_START_PRESSURE_TOLERANCE_MMHG ) || ( fabs( previousNormalVenousPressure ) > PRESSURE_CHECK_START_PRESSURE_TOLERANCE_MMHG ) ) - { - SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_PRE_TREATMENT_DRY_PRESSURE_TEST_FAILURE, previousNormalArterialPressure, previousNormalVenousPressure ); - } - } + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_PRE_TREATMENT_DRY_PRESSURE_TEST_FAILURE, previousNormalArterialPressure, previousNormalVenousPressure ); } - } - else -#endif - { - if ( TRUE == didTimeout( pressureSelfTestPreNormalStartTime, PRE_NORMAL_PRESSURE_SELF_TEST_DELAY_MS ) ) - { // Record baseline pressures before pressurizing blood side circuit side of cartridge - previousNormalArterialPressure = getFilteredArterialPressure(); - previousNormalVenousPressure = getFilteredVenousPressure(); - - // Check to see if sensor is within normal ranges before we execute pressure sensor tests - if ( ( fabs( previousNormalArterialPressure ) > PRESSURE_CHECK_START_PRESSURE_TOLERANCE_MMHG ) || ( fabs( previousNormalVenousPressure ) > PRESSURE_CHECK_START_PRESSURE_TOLERANCE_MMHG ) ) - { - SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_PRE_TREATMENT_DRY_PRESSURE_TEST_FAILURE, previousNormalArterialPressure, previousNormalVenousPressure ); - } - else - { - state = DRY_SELF_TESTS_PRESSURE_SENSORS_VENOUS_SETUP_STATE; - } + else + { + state = DRY_SELF_TESTS_PRESSURE_SENSORS_VENOUS_SETUP_STATE; } } - } return state; @@ -1174,34 +1137,12 @@ } else { -#ifndef _RELEASE_ - if ( SW_CONFIG_DISABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_AIR_PUMP ) ) - { -#endif - setValvePosition( VDI, VALVE_POSITION_C_CLOSE ); -#ifndef _RELEASE_ - } - else - { - setValvePosition( VDI, VALVE_POSITION_B_OPEN ); - } -#endif + setValvePosition( VDI, VALVE_POSITION_C_CLOSE ); setValvePosition( VDO, VALVE_POSITION_C_CLOSE ); setValvePosition( VBA, VALVE_POSITION_B_OPEN ); setValvePosition( VBV, VALVE_POSITION_C_CLOSE ); setValveAirTrap( STATE_CLOSED ); -#ifndef _RELEASE_ - if ( SW_CONFIG_DISABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_AIR_PUMP ) ) - { -#endif - setAirPumpState( AIR_PUMP_STATE_ON ); -#ifndef _RELEASE_ - } - else - { - setDialInPumpTargetFlowRate( DIAL_IN_PUMP_PRESSURE_SELF_TEST_FLOW, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); - } -#endif + setAirPumpState( AIR_PUMP_STATE_ON ); pressureSelfTestVenousTestStartTime = getMSTimerCount(); } @@ -1219,23 +1160,12 @@ static DRY_SELF_TESTS_STATE_T handleDrySelfTestPressureSensorsVenousState( void ) { DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_PRESSURE_SENSORS_VENOUS; - F32 const venousPressure = getFilteredVenousPressure(); + F32 venousPressure = getFilteredVenousPressure(); // End the test when reaching target pressure or time out if ( VENOUS_PRESSURE_SELF_TEST_FIRST_PASS_LIMIT_MMHG <= venousPressure ) { -#ifndef _RELEASE_ - if ( SW_CONFIG_DISABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_AIR_PUMP ) ) - { -#endif setAirPumpState( AIR_PUMP_STATE_OFF ); -#ifndef _RELEASE_ - } - else - { - signalDialInPumpHardStop(); - } -#endif state = DRY_SELF_TESTS_PRESSURE_SENSORS_ARTERIAL_SETUP_STATE; } @@ -1298,8 +1228,8 @@ static DRY_SELF_TESTS_STATE_T handleDrySelfTestPressureSensorsArterialState( void ) { DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_PRESSURE_SENSORS_ARTERIAL; - F32 const arterialPressure = getFilteredArterialPressure(); - F32 const venousPressure = getFilteredVenousPressure(); + F32 arterialPressure = getFilteredArterialPressure(); + F32 venousPressure = getFilteredVenousPressure(); // End the test when reaching target pressure or time out // Test pass when reading positive arterial pressure and negative venous pressure @@ -1342,10 +1272,10 @@ static DRY_SELF_TESTS_STATE_T handleDrySelfTestPressureSensorsDecayState( void ) { DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_PRESSURE_SENSORS_DECAY_STATE; - F32 const arterialPressure = getFilteredArterialPressure(); - F32 const venousPressure = getFilteredVenousPressure(); - F32 arterialDecayDiff = 0; - F32 venousDecayDiff = 0; + F32 arterialPressure = getFilteredArterialPressure(); + F32 venousPressure = getFilteredVenousPressure(); + F32 arterialDecayDiff = 0.0F; + F32 venousDecayDiff = 0.0F; // update peak pressure value from pressurized state // if pressure continues to increase due to filter lag. @@ -1359,13 +1289,13 @@ peakVenousPressure = venousPressure; } - if ( ( TRUE == didTimeout( pressureSelfTestDecayStartTime, DECAY_PRESSURE_SELF_TEST_TIME ) ) ) + if ( TRUE == didTimeout( pressureSelfTestDecayStartTime, DECAY_PRESSURE_SELF_TEST_TIME ) ) { arterialDecayDiff = fabs( arterialPressure - peakArterialPressure ); venousDecayDiff = fabs( venousPressure - peakVenousPressure ); if ( ( arterialDecayDiff < ARTERIAL_DECAY_PRESSURE_DIFF_TOLERANCE_MMHG ) && - ( venousDecayDiff < VENOUS_DECAY_PRESSURE_DIFF_TOLERANCE_MMHG ) ) + ( venousDecayDiff < VENOUS_DECAY_PRESSURE_DIFF_TOLERANCE_MMHG ) ) { decayedArterialPressure = arterialPressure; decayedVenousPressure = venousPressure; @@ -1399,8 +1329,8 @@ static DRY_SELF_TESTS_STATE_T handleDrySelfTestPressureSensorsStabilityState( void ) { DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_PRESSURE_SENSORS_STABILITY_STATE; - F32 arterialStabilityDiff = 0; - F32 venousStabilityDiff = 0; + F32 arterialStabilityDiff = 0.0F; + F32 venousStabilityDiff = 0.0F; if ( ( TRUE == didTimeout( pressureSelfTestStabilityStartTime, STABILTY_PRESSURE_SELF_TEST_TIME ) ) ) { @@ -1442,36 +1372,18 @@ { DRY_SELF_TESTS_STATE_T state = DRY_SELF_TESTS_PRESSURE_SENSORS_NORMAL_STATE; - F32 const arterialPressureDiff = fabs( getFilteredArterialPressure() - previousNormalArterialPressure ); - F32 const venousPressureDiff = fabs( getFilteredVenousPressure() - previousNormalVenousPressure ); + F32 arterialPressureDiff = fabs( getFilteredArterialPressure() - previousNormalArterialPressure ); + F32 venousPressureDiff = fabs( getFilteredVenousPressure() - previousNormalVenousPressure ); -#ifndef _RELEASE_ - if ( SW_CONFIG_ENABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_AIR_PUMP ) ) + // open air trap after time threshold. + if ( TRUE == didTimeout( pressureSelfTestNormalizedStartTime, NORMALIZED_PRESSURE_SELF_TEST_VBT_TIMER ) ) { - // open VDI to Pos A after timer threshold - if ( TRUE == didTimeout( pressureSelfTestNormalizedStartTime, NORMALIZED_PRESSURE_SELF_TEST_VDI_TIMER ) ) - { - setValvePosition( VDI, VALVE_POSITION_A_INSERT_EJECT ); - } - // open air trap after time threshold. - if ( TRUE == didTimeout( pressureSelfTestNormalizedStartTime, NORMALIZED_PRESSURE_SELF_TEST_VBT_TIMERX ) ) - { - setValveAirTrap( STATE_OPEN ); - } + setValveAirTrap( STATE_OPEN ); } - else -#endif - { - // open air trap after time threshold. - if ( TRUE == didTimeout( pressureSelfTestNormalizedStartTime, NORMALIZED_PRESSURE_SELF_TEST_VBT_TIMER ) ) - { - setValveAirTrap( STATE_OPEN ); - } - } // After VBT opened, start looking to see if pressures normalize - if ( ( STATE_OPEN == getValveAirTrapStatus() ) && - ( arterialPressureDiff <= NORMAL_PRESSURE_DIFF_TOLERANCE_MMHG ) && ( venousPressureDiff <= NORMAL_PRESSURE_DIFF_TOLERANCE_MMHG ) ) + if ( ( STATE_OPEN == getValveAirTrapStatus() ) && ( arterialPressureDiff <= NORMAL_PRESSURE_DIFF_TOLERANCE_MMHG ) && + ( venousPressureDiff <= NORMAL_PRESSURE_DIFF_TOLERANCE_MMHG ) ) { dryPressureTestsCompleted = TRUE; state = DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE; @@ -1629,25 +1541,15 @@ selfTestsResumeRequested = FALSE; selfTestCartridgeSettleTime = getMSTimerCount(); -#ifndef _RELEASE_ - if ( SW_CONFIG_ENABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_DISABLE_DRY_SELF_TESTS ) ) + if ( TRUE == dryPressureTestsCompleted ) { doorClosedRequired( TRUE, TRUE ); state = DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE; } else -#endif - { // if we've completed pressure testing, resume to syringe pump prime state, otherwise go back to start of dry self-tests - if ( TRUE == dryPressureTestsCompleted ) - { - doorClosedRequired( TRUE, TRUE ); - state = DRY_SELF_TESTS_SYRINGE_PUMP_PRIME_STATE; - } - else - { - doorClosedRequired( FALSE, TRUE ); - state = DRY_SELF_TESTS_START_STATE; - } + { + doorClosedRequired( FALSE, TRUE ); + state = DRY_SELF_TESTS_START_STATE; } } Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -r83156b9098cc97a7402db4efba5320fac8284ce4 -rc1e2dfcd544f59788ad1a58e1e8339a475ba4266 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 83156b9098cc97a7402db4efba5320fac8284ce4) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision c1e2dfcd544f59788ad1a58e1e8339a475ba4266) @@ -7,8 +7,8 @@ * * @file SystemComm.c * -* @author (last) Dara Navaei -* @date (last) 07-Apr-2023 +* @author (last) Sean Nash +* @date (last) 04-May-2023 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -1745,8 +1745,8 @@ handleBloodPumpHardStopRequest( message ); break; - case MSG_ID_HD_SET_TEST_CONFIGURATION: - handleTestHDSetTestConfig( message ); + case MSG_ID_HD_ENABLE_VENOUS_BUBBLE_ALARM_DETECTION: + handleEnableVenousBubbleAlarmDetectionRequest( message ); break; case MSG_ID_HD_GET_TEST_CONFIGURATION: @@ -1761,6 +1761,10 @@ handleTestHDDialinCheckIn( message ); break; + case MSG_ID_HD_SET_TEST_CONFIGURATION: + handleTestHDSetTestConfig( message ); + break; + // The default cannot be reached in VectorCAST since the cases are run in a for loop default: // Unrecognized message ID received - ignore Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r83156b9098cc97a7402db4efba5320fac8284ce4 -rc1e2dfcd544f59788ad1a58e1e8339a475ba4266 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 83156b9098cc97a7402db4efba5320fac8284ce4) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision c1e2dfcd544f59788ad1a58e1e8339a475ba4266) @@ -8,7 +8,7 @@ * @file SystemCommMessages.c * * @author (last) Sean Nash -* @date (last) 13-Apr-2023 +* @date (last) 04-May-2023 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -4820,7 +4820,7 @@ U32 valve; memcpy( &valve, message->payload, sizeof(U32) ); - homeValve( (VALVE_T)valve ); + homeValve( (VALVE_T)valve, VALVE_FORCE_HOME, VALVE_NO_CARTRIDGE_PRESENT ); result = TRUE; } @@ -8027,6 +8027,7 @@ // Verify payload length if ( ( 0 == message->hdr.payloadLen ) && ( TRUE == isTestingActivated() ) ) { + result = TRUE; signalDialInPumpHardStop(); } @@ -8050,6 +8051,7 @@ // Verify payload length if ( ( 0 == message->hdr.payloadLen ) && ( TRUE == isTestingActivated() ) ) { + result = TRUE; signalDialOutPumpHardStop(); } @@ -8073,6 +8075,7 @@ // Verify payload length if ( ( 0 == message->hdr.payloadLen ) && ( TRUE == isTestingActivated() ) ) { + result = TRUE; signalBloodPumpHardStop(); } @@ -8082,35 +8085,29 @@ /*********************************************************************//** * @brief - * The handleTestHDSetTestConfig function handles a request to set the - * test configuration. + * The handleEnableVenousBubbleAlarmDetectionRequest function handles a + * request to enable/disable venous bubble alarm detection. * @details Inputs: none * @details Outputs: message handled - * @param message a pointer to the message to handle + * @param message : a pointer to the message to handle * @return none *************************************************************************/ -void handleTestHDSetTestConfig( MESSAGE_T *message ) +void handleEnableVenousBubbleAlarmDetectionRequest( MESSAGE_T *message ) { - BOOL status = FALSE; + BOOL result = FALSE; - if ( message->hdr.payloadLen == sizeof( TEST_CONFIG_PAYLOAD_T ) ) + // Verify payload length + if ( sizeof( BOOL ) == message->hdr.payloadLen ) { - TEST_CONFIG_PAYLOAD_T payload; + BOOL enabled; - memcpy( &payload, message->payload, sizeof( TEST_CONFIG_PAYLOAD_T ) ); - - if ( TRUE == payload.reset ) - { - status = resetTestConfig( (TEST_CONFIG_T)payload.config ); - } - else - { - status = setTestConfig( (TEST_CONFIG_T)payload.config ); - } + memcpy( &enabled, message->payload, sizeof( BOOL ) ); + result = TRUE; + setVenousBubbleDetectionEnabled( enabled ); } // Respond to request - sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, status ); + sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); } /*********************************************************************//** @@ -8181,4 +8178,37 @@ sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, status ); } +/*********************************************************************//** +* @brief +* The handleTestHDSetTestConfig function handles a request to set the +* test configuration. +* @details Inputs: none +* @details Outputs: message handled +* @param message a pointer to the message to handle +* @return none +*************************************************************************/ +void handleTestHDSetTestConfig( MESSAGE_T *message ) +{ + BOOL status = FALSE; + + if ( message->hdr.payloadLen == sizeof( TEST_CONFIG_PAYLOAD_T ) ) + { + TEST_CONFIG_PAYLOAD_T payload; + + memcpy( &payload, message->payload, sizeof( TEST_CONFIG_PAYLOAD_T ) ); + + if ( TRUE == payload.reset ) + { + status = resetTestConfig( (TEST_CONFIG_T)payload.config ); + } + else + { + status = setTestConfig( (TEST_CONFIG_T)payload.config ); + } + } + + // Respond to request + sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, status ); +} + /**@}*/ Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r83156b9098cc97a7402db4efba5320fac8284ce4 -rc1e2dfcd544f59788ad1a58e1e8339a475ba4266 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 83156b9098cc97a7402db4efba5320fac8284ce4) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision c1e2dfcd544f59788ad1a58e1e8339a475ba4266) @@ -7,8 +7,8 @@ * * @file SystemCommMessages.h * -* @author (last) Dara Navaei -* @date (last) 20-Mar-2023 +* @author (last) Sean Nash +* @date (last) 08-May-2023 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -968,8 +968,8 @@ // MSG_ID_HD_BLOOD_PUMP_HARD_STOP void handleBloodPumpHardStopRequest( MESSAGE_T *message ); -// MSG_ID_HD_SET_TEST_CONFIGURATION -void handleTestHDSetTestConfig( MESSAGE_T *message ); +// MSG_ID_HD_ENABLE_VENOUS_BUBBLE_ALARM_DETECTION +void handleEnableVenousBubbleAlarmDetectionRequest( MESSAGE_T *message ); // MSG_ID_HD_GET_TEST_CONFIGURATION void handleTestHDGetTestConfig( MESSAGE_T* message ); @@ -980,6 +980,9 @@ // MSG_ID_HD_DIALIN_CHECK_IN void handleTestHDDialinCheckIn( MESSAGE_T* message ); +// MSG_ID_HD_SET_TEST_CONFIGURATION +void handleTestHDSetTestConfig( MESSAGE_T *message ); + /**@}*/ #endif