Index: firmware/App/Services/AlarmMgmtTD.c =================================================================== diff -u -r395522dffef1348e176564925656012f529c1910 -rc4d738c0a43fc2efd83f05a2f139ecf361fc2777 --- firmware/App/Services/AlarmMgmtTD.c (.../AlarmMgmtTD.c) (revision 395522dffef1348e176564925656012f529c1910) +++ firmware/App/Services/AlarmMgmtTD.c (.../AlarmMgmtTD.c) (revision c4d738c0a43fc2efd83f05a2f139ecf361fc2777) @@ -889,6 +889,39 @@ } } } + +/*********************************************************************//** + * @brief + * The handleGetAlarmPropertiesRequest function processes a request + * to retrieve alarm properties and broadcasts the result. + * @details \b Inputs: message payload containing alarm ID + * @details \b Outputs: MSG_ID_TD_ALARM_TABLE_RESPONSE via CAN/PC interface + * @param message Pointer to MESSAGE_T containing the alarm ID request + * @return TRUE if alarm properties were successfully broadcasted. + * FALSE if payload length is invalid or alarm ID + * is out of range + *************************************************************************/ +BOOL handleGetAlarmPropertiesRequest( MESSAGE_T *message ) +{ + ALARM_ID_T alarmID; + BOOL result = FALSE; + + if ( message->hdr.payloadLen != sizeof(ALARM_ID_T) ) + { + return FALSE; + } + + memcpy( &alarmID, message->payload, sizeof(ALARM_ID_T) ); + + if ( alarmID < NUM_OF_ALARM_IDS ) + { + ALARM_T alarm = getAlarmProperties( alarmID ); + result = broadcastData( MSG_ID_TD_ALARM_PROPERTIES_RESPONSE, COMM_BUFFER_OUT_CAN_PC, + (U08*)&alarm, sizeof(ALARM_T) ); + } + + return result; +} /*********************************************************************//** * @brief Index: firmware/App/Services/AlarmMgmtTD.h =================================================================== diff -u -r9c833ef5623ce842267e284d958820ac0dc3a7fc -rc4d738c0a43fc2efd83f05a2f139ecf361fc2777 --- firmware/App/Services/AlarmMgmtTD.h (.../AlarmMgmtTD.h) (revision 9c833ef5623ce842267e284d958820ac0dc3a7fc) +++ firmware/App/Services/AlarmMgmtTD.h (.../AlarmMgmtTD.h) (revision c4d738c0a43fc2efd83f05a2f139ecf361fc2777) @@ -22,6 +22,7 @@ #include "AlarmDefs.h" #include "AlarmAudio.h" #include "AlarmLamp.h" +#include "AlarmMgmt.h" #include "AlarmMgmtSWFaults.h" #include "TestSupport.h" @@ -155,6 +156,7 @@ BOOL handleActiveAlarmListRequest( MESSAGE_T *message ); void handleResendActiveAlarmsRequest( void ); void handleAutoResumeAlarm( ALARM_ID_T alarm ); +BOOL handleGetAlarmPropertiesRequest( MESSAGE_T *message ); BOOL testSetAlarmStartTimeOverride( MESSAGE_T *message ); BOOL testClearAllAlarms( MESSAGE_T *message ); Index: firmware/App/Services/Messaging.c =================================================================== diff -u -r9c833ef5623ce842267e284d958820ac0dc3a7fc -rc4d738c0a43fc2efd83f05a2f139ecf361fc2777 --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision 9c833ef5623ce842267e284d958820ac0dc3a7fc) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision c4d738c0a43fc2efd83f05a2f139ecf361fc2777) @@ -216,6 +216,7 @@ { MSG_ID_TD_SYRINGE_PUMP_ADC_READ_COUNTER_OVERRIDE_REQUEST, &testSyringePumpADCReadCounterOverride }, { MSG_ID_TD_HEPARIN_BOLUS_TARGET_RATE_OVERRIDE_REQUEST, &testHeparinBolusTargetRateOverride }, { MSG_ID_TD_SYRINGE_PUMP_FORCE_SENSOR_CALIBRATION_REQUEST, &testCalibrateForceSensor }, + { MSG_ID_TD_GET_ALARM_PROPERTIES_REQUEST, &handleGetAlarmPropertiesRequest }, }; /// Number of entries in the message handling function lookup table.