Index: firmware/App/Controllers/DGInterface.c =================================================================== diff -u -r9b6d9a0db373b39c3d04dd07516fde59b292bbc5 -r23fd84a12113578bb1d86fdfbc86701494a35cf1 --- firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision 9b6d9a0db373b39c3d04dd07516fde59b292bbc5) +++ firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision 23fd84a12113578bb1d86fdfbc86701494a35cf1) @@ -8,7 +8,7 @@ * @file DGInterface.c * * @author (last) Sean Nash -* @date (last) 14-Aug-2023 +* @date (last) 24-Aug-2023 * * @author (original) Sean * @date (original) 08-Apr-2020 @@ -99,11 +99,6 @@ static DG_RESERVOIR_ID_T dgActiveReservoir; ///< Latest active reservoir reported by the DG. static DG_RESERVOIR_ID_T dgActiveReservoirSet; ///< Active reservoir commanded. -static U32 dgReservoirFillVolumeTarget = 0; ///< Latest fill-to volume reported by the DG. -static U32 dgReservoirFillVolumeTargetSet = 0; ///< Fill-to volume commanded. -static U32 dgReservoirDrainVolumeTarget = 0; ///< Latest drain-to volume reported by the DG. -static U32 dgReservoirDrainVolumeTargetSet = 0; ///< Drain-to volume commanded. - static DG_DISINFECT_UI_STATES_T disinfectsStatus; ///< DG disinfects status. static DG_MIXING_RATIOS_T dgMixingRatios; ///< DG mixing ratios. static HEATERS_DATA_T dgHeatersData; ///< DG heaters data. @@ -134,10 +129,8 @@ dgTrimmerHeaterOn = FALSE; dgTrimmerTempSet = 0.0F; dgTrimmerTempCheckTimerCtr = 0; - dgActiveReservoirSet = DG_RESERVOIR_1; - dgActiveReservoir = DG_RESERVOIR_1; - dgReservoirFillVolumeTargetSet = 0; - dgReservoirDrainVolumeTargetSet = 0; + dgActiveReservoirSet = DG_RESERVOIR_2; + dgActiveReservoir = DG_RESERVOIR_2; dgDialysateTemp = 0.0F; dgCurrentOpMode = DG_MODE_INIT; dgSubMode = 0; @@ -469,7 +462,7 @@ * The getDialysateTemperature function gets the latest dialysate temperature. * @details Inputs: dgDialysateTemp * @details Outputs: none - * @return the current dialysate temperature + * @return the latest dialysate temperature *************************************************************************/ F32 getDialysateTemperature( void ) { @@ -478,6 +471,19 @@ /*********************************************************************//** * @brief + * The getRedundantDialysateTemperature function gets the latest redundant + * dialysate temperature. + * @details Inputs: dgRedundantDialysateTemp + * @details Outputs: none + * @return the latest redundant dialysate temperature + *************************************************************************/ +F32 getRedundantDialysateTemperature( void ) +{ + return dgRedundantDialysateTemp; +} + +/*********************************************************************//** + * @brief * The getHeatDisinfectTemperatureSensorValue function gets the latest * heat disinfect temperature sensor value. * @details Inputs: dgDialysateTemp @@ -505,7 +511,7 @@ /*********************************************************************//** * @brief * The getDGDisinfectsStates function returns the DG disinfects readings. - * @details Inputs: none + * @details Inputs: disinfectsStatus * @details Outputs: none * @return the current DG disinfects readings *************************************************************************/ @@ -518,7 +524,7 @@ * @brief * The getDGMixingRatios function returns the DG mixing ratios and the fill * prep time. - * @details Inputs: none + * @details Inputs: dgMixingRatios * @details Outputs: none * @return getDGMixingRatios which is the DG mixing ratios *************************************************************************/ @@ -598,8 +604,7 @@ * The setDGReservoirsData function sets the latest reservoir data * reported by the DG. * @details Inputs: none - * @details Outputs: dgActiveReservoir, dgReservoirFillVolumeTarget, - * dgReservoirDrainVolumeTarget, dgReservoirsDataFreshFlag + * @details Outputs: dgActiveReservoir, dgReservoirsDataFreshFlag * @param resID ID of active reservoir * @param fillVol Reservoir fill to volume reported by DG * @param drainVol Reservoir drain to volume reported by DG @@ -610,8 +615,6 @@ if ( resID < NUM_OF_DG_RESERVOIRS ) { dgActiveReservoir = resID; - dgReservoirFillVolumeTarget = fillVol; - dgReservoirDrainVolumeTarget = drainVol; } else { @@ -909,7 +912,6 @@ void cmdStartDGFill( U32 fillToVolMl, F32 targetFlowLPM ) { dgCmdResp[ DG_CMD_START_FILL ].commandID = DG_CMD_NONE; - dgReservoirFillVolumeTargetSet = fillToVolMl; sendDGFillCommand( DG_CMD_START, fillToVolMl, targetFlowLPM ); } @@ -924,7 +926,6 @@ void cmdStopDGFill( void ) { dgCmdResp[ DG_CMD_STOP_FILL ].commandID = DG_CMD_NONE; - dgReservoirFillVolumeTargetSet = 0; sendDGFillCommand( DG_CMD_STOP, 0, 0 ); } @@ -948,7 +949,6 @@ payload.tareLoadCells = tareLoadCell; payload.rinseConcentrateLines = rinse; payload.cmd = start; - dgReservoirDrainVolumeTargetSet = drainToVolMl; sendDGDrainCommand( &payload ); } Index: firmware/App/Controllers/DGInterface.h =================================================================== diff -u -r9b6d9a0db373b39c3d04dd07516fde59b292bbc5 -r23fd84a12113578bb1d86fdfbc86701494a35cf1 --- firmware/App/Controllers/DGInterface.h (.../DGInterface.h) (revision 9b6d9a0db373b39c3d04dd07516fde59b292bbc5) +++ firmware/App/Controllers/DGInterface.h (.../DGInterface.h) (revision 23fd84a12113578bb1d86fdfbc86701494a35cf1) @@ -7,8 +7,8 @@ * * @file DGInterface.h * -* @author (last) Dara Navaei -* @date (last) 06-Jun-2023 +* @author (last) Sean Nash +* @date (last) 08-Aug-2023 * * @author (original) Sean * @date (original) 08-Apr-2020 @@ -118,6 +118,7 @@ F32 getReservoirWeightLargeFilter( DG_RESERVOIR_ID_T resID ); F32 getReservoirBackupWeightLargeFilter( DG_RESERVOIR_ID_T resID ); F32 getDialysateTemperature( void ); +F32 getRedundantDialysateTemperature( void ); F32 getHeatDisinfectTemperatureSensorValue( void ); BOOL getTrimmerHeaterCommandedOn( void ); DG_DISINFECT_UI_STATES_T getDGDisinfectsStates( void ); Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r4828ff8bd5b5ff97f36de33101d8ca4b9e54bfa1 -r23fd84a12113578bb1d86fdfbc86701494a35cf1 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 4828ff8bd5b5ff97f36de33101d8ca4b9e54bfa1) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 23fd84a12113578bb1d86fdfbc86701494a35cf1) @@ -8,7 +8,7 @@ * @file SystemCommMessages.c * * @author (last) Michael Garthwaite -* @date (last) 15-Aug-2023 +* @date (last) 25-Aug-2023 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -2115,25 +2115,22 @@ *************************************************************************/ void handleAlarmTriggered( MESSAGE_T *message ) { - if ( message->hdr.payloadLen == ( sizeof( U32 ) + sizeof( U32 ) * 2 * 2 ) ) // 2 data records w/ 2 U32s each + if ( message->hdr.payloadLen == sizeof( ALARM_TRIGGERED_PAYLOAD_T ) ) { + ALARM_TRIGGERED_PAYLOAD_T payload; U08 *payloadPtr = message->payload; - U32 alarmID; - ALARM_DATA_T alm1, alm2; - memcpy( &alarmID, payloadPtr, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - memcpy( &alm1.dataType, payloadPtr, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - memcpy( &alm1.data, payloadPtr, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - memcpy( &alm2.dataType, payloadPtr, sizeof( U32 ) ); - payloadPtr += sizeof( U32 ); - memcpy( &alm2.data, payloadPtr, sizeof( U32 ) ); + memcpy( &payload, payloadPtr, sizeof( ALARM_TRIGGERED_PAYLOAD_T ) ); - if ( (ALARM_ID_T)alarmID < NUM_OF_ALARM_IDS ) + if ( (ALARM_ID_T)(payload.alarm) < NUM_OF_ALARM_IDS ) { - activateAlarm2Data( (ALARM_ID_T)alarmID, alm1, alm2 ); + ALARM_DATA_T alm1, alm2; + + alm1.dataType = (ALARM_DATA_TYPES_T)(payload.almDataType1); + alm1.data.uInt.data = payload.almData1; + alm2.dataType = (ALARM_DATA_TYPES_T)(payload.almDataType2); + alm2.data.uInt.data = payload.almData2; + activateAlarm2Data( (ALARM_ID_T)(payload.alarm), alm1, alm2, TRUE ); } } } @@ -4405,20 +4402,20 @@ *************************************************************************/ void handleTestArterialPressureOverrideRequest( MESSAGE_T *message ) { - TEST_OVERRIDE_PAYLOAD_T payload; + TEST_OVERRIDE_ARRAY_PAYLOAD_T payload; BOOL result = FALSE; // Verify payload length - if ( sizeof(TEST_OVERRIDE_PAYLOAD_T) == message->hdr.payloadLen ) + if ( sizeof( TEST_OVERRIDE_ARRAY_PAYLOAD_T ) == message->hdr.payloadLen ) { - memcpy( &payload, message->payload, sizeof(TEST_OVERRIDE_PAYLOAD_T) ); + memcpy( &payload, message->payload, sizeof( TEST_OVERRIDE_ARRAY_PAYLOAD_T ) ); if ( FALSE == payload.reset ) { - result = testSetArterialPressureOverride( payload.state.f32 ); + result = testSetArterialPressureOverride( payload.state.f32, payload.index ); } else { - result = testResetArterialPressureOverride(); + result = testResetArterialPressureOverride( payload.index ); } } @@ -4437,20 +4434,20 @@ *************************************************************************/ void handleTestVenousPressureOverrideRequest( MESSAGE_T *message ) { - TEST_OVERRIDE_PAYLOAD_T payload; + TEST_OVERRIDE_ARRAY_PAYLOAD_T payload; BOOL result = FALSE; // Verify payload length - if ( sizeof(TEST_OVERRIDE_PAYLOAD_T) == message->hdr.payloadLen ) + if ( sizeof( TEST_OVERRIDE_ARRAY_PAYLOAD_T ) == message->hdr.payloadLen ) { - memcpy( &payload, message->payload, sizeof(TEST_OVERRIDE_PAYLOAD_T) ); + memcpy( &payload, message->payload, sizeof( TEST_OVERRIDE_ARRAY_PAYLOAD_T ) ); if ( FALSE == payload.reset ) { - result = testSetVenousPressureOverride( payload.state.f32 ); + result = testSetVenousPressureOverride( payload.state.f32, payload.index ); } else { - result = testResetVenousPressureOverride(); + result = testResetVenousPressureOverride( payload.index ); } } @@ -6225,7 +6222,6 @@ TEST_OVERRIDE_ARRAY_PAYLOAD_T payload; BOOL result = FALSE; -#ifndef _RELEASE_ // Verify payload length if ( sizeof(TEST_OVERRIDE_ARRAY_PAYLOAD_T) == message->hdr.payloadLen ) { @@ -6239,7 +6235,6 @@ result = testResetValvesCurrentOverride( payload.index ); } } -#endif // Respond to request sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); @@ -8357,11 +8352,8 @@ *************************************************************************/ void handleTestHDDialinCheckIn( MESSAGE_T* message ) { - BOOL status = FALSE; - if ( 0 == message->hdr.payloadLen ) { - status = TRUE; setDialinCheckInTimeStamp(); } } @@ -8455,4 +8447,36 @@ sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); } +/*********************************************************************//** + * @brief + * The handleTestHDPendingACKOverrideRequest function handles a + * request to override pending ACKs. + * @details Inputs: none + * @details Outputs: message handled + * @param message : a pointer to the message to handle + * @return none + *************************************************************************/ +void handleTestHDPendingACKOverrideRequest( MESSAGE_T *message ) +{ + TEST_OVERRIDE_PAYLOAD_T payload; + BOOL result = FALSE; + + // Verify payload length + if ( sizeof( TEST_OVERRIDE_PAYLOAD_T ) == message->hdr.payloadLen ) + { + memcpy( &payload, message->payload, sizeof( TEST_OVERRIDE_PAYLOAD_T ) ); + if ( FALSE == payload.reset ) + { + result = testSetPendingACKOverride( payload.state.u32 ); + } + else + { + result = testResetPendingACKOverride(); + } + } + + // Respond to request + sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); +} + /**@}*/ Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r9b6d9a0db373b39c3d04dd07516fde59b292bbc5 -r23fd84a12113578bb1d86fdfbc86701494a35cf1 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 9b6d9a0db373b39c3d04dd07516fde59b292bbc5) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 23fd84a12113578bb1d86fdfbc86701494a35cf1) @@ -8,7 +8,7 @@ * @file SystemCommMessages.h * * @author (last) Michael Garthwaite -* @date (last) 15-Aug-2023 +* @date (last) 17-Aug-2023 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -1013,6 +1013,9 @@ // MSG_ID_HD_RAM_STATUS_OVERRIDE void handleTestHDRAMStatusOverrideRequest( MESSAGE_T* message ); +// MSG_ID_HD_CAN_RECEIVE_ACK_MESSAGE_OVERRIDE +void handleTestHDPendingACKOverrideRequest( MESSAGE_T* message ); + /**@}*/ #endif