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