Index: firmware/App/Services/AlarmMgmtTD.c =================================================================== diff -u -r036a75d76ab01912646a480b935d97187a231a19 -r51f42cd88bd9c50ed9096a2d1d8ff859a95aff95 --- firmware/App/Services/AlarmMgmtTD.c (.../AlarmMgmtTD.c) (revision 036a75d76ab01912646a480b935d97187a231a19) +++ firmware/App/Services/AlarmMgmtTD.c (.../AlarmMgmtTD.c) (revision 51f42cd88bd9c50ed9096a2d1d8ff859a95aff95) @@ -20,6 +20,7 @@ #include "mibspi.h" #include "AlarmMgmtTD.h" +#include "Bubbles.h" #include "CpldInterface.h" #include "Messaging.h" #include "OperationModes.h" @@ -688,40 +689,51 @@ * entries. * @details \b Message \b Sent: MSG_ID_TD_ACTIVE_ALARMS_LIST_REQUEST_RESPONSE * @details \b Inputs: alarmStatus, alarmIsActive[], ALARM_RANK_TABLE[] -* @details \b Outputs: sent active alarms list to UI -* @return none +* @details \b Outputs: none +* @return TRUE if request handled successfully, FALSE if not *************************************************************************/ -void handleActiveAlarmListRequest( void ) +BOOL handleActiveAlarmListRequest( MESSAGE_T *message ) { ACTIVE_ALARM_LIST_RESPONSE_PAYLOAD_T activeAlarmPayload; + BOOL result; U32 index; U32 activeAlarmListIndex = 0; - activeAlarmPayload.accepted = TRUE; - activeAlarmPayload.rejectionReason = (U32)REQUEST_REJECT_REASON_NONE; - // Blank alarm list initially for ( index = 0; index < MAX_ALARM_LIST_SIZE; index++ ) { activeAlarmPayload.activeAlarmList[ index ] = ALARM_ID_NO_ALARM; } - // Fill alarm list from (up to) 10 highest priority active alarms - if ( TRUE == isAnyAlarmActive() ) + if ( 0 == message->hdr.payloadLen ) { - for ( index = 0; index < NUM_OF_ALARM_IDS; index++ ) - { - ALARM_RANK_T ranks = getAlarmRank( index ); + activeAlarmPayload.accepted = TRUE; + activeAlarmPayload.rejectionReason = (U32)REQUEST_REJECT_REASON_NONE; - if ( ( TRUE == isAlarmActive( ranks.alarmID ) ) && ( activeAlarmListIndex < MAX_ALARM_LIST_SIZE ) ) + // Fill alarm list from (up to) 10 highest priority active alarms + if ( TRUE == isAnyAlarmActive() ) + { + for ( index = 0; index < NUM_OF_ALARM_IDS; index++ ) { - activeAlarmPayload.activeAlarmList[ activeAlarmListIndex ] = ranks.alarmID; - activeAlarmListIndex++; + ALARM_RANK_T ranks = getAlarmRank( index ); + + if ( ( TRUE == isAlarmActive( ranks.alarmID ) ) && ( activeAlarmListIndex < MAX_ALARM_LIST_SIZE ) ) + { + activeAlarmPayload.activeAlarmList[ activeAlarmListIndex ] = ranks.alarmID; + activeAlarmListIndex++; + } } } } + else + { + activeAlarmPayload.accepted = FALSE; + activeAlarmPayload.rejectionReason = (U32)REQUEST_REJECT_REASON_INVALID_REQUEST_FORMAT; + } -// TODO sendActiveAlarmsList( activeAlarmPayload ); + result = sendMessage( MSG_ID_TD_ACTIVE_ALARMS_LIST_REQUEST_RESPONSE, COMM_BUFFER_OUT_CAN_TD_2_UI, (U08*)(&activeAlarmPayload), sizeof( ACTIVE_ALARM_LIST_RESPONSE_PAYLOAD_T ) ); + + return result; } /*********************************************************************//** @@ -809,7 +821,7 @@ if ( CONFIRMATION_REQUEST_STATUS_ACCEPTED == getConfirmationRequestStatus( GENERIC_CONFIRM_ID_TREATMENT_END ) ) { // To avoid raising repeated alarm before reaching end treatment -// setVenousBubbleDetectionEnabled( FALSE ); + setVenousBubbleDetectionEnabled( H18_BBLD, FALSE ); clearAllRecoverableAlarms( ALARM_USER_ACTION_END_TREATMENT ); initiateAlarmAction( ALARM_ACTION_END_TREATMENT ); }