Index: firmware/App/Services/AlarmMgmtTD.c =================================================================== diff -u -r8345f0415ce34f2f47afcbf613a00216769f51c6 -rcda13e3e3b9219fbac05354d8d1f8a25f45276cb --- firmware/App/Services/AlarmMgmtTD.c (.../AlarmMgmtTD.c) (revision 8345f0415ce34f2f47afcbf613a00216769f51c6) +++ firmware/App/Services/AlarmMgmtTD.c (.../AlarmMgmtTD.c) (revision cda13e3e3b9219fbac05354d8d1f8a25f45276cb) @@ -7,8 +7,8 @@ * * @file AlarmMgmtTD.c * -* @author (last) Praneeth Bunne -* @date (last) 11-Jun-2026 +* @author (last) Santhosh Reddy +* @date (last) 06-Jul-2026 * * @author (original) Sean Nash * @date (original) 01-Aug-2024 @@ -892,8 +892,8 @@ } } } - -/*********************************************************************//** + +/*********************************************************************//** * @brief * The getAlarmStartTime function gets the start time of a given alarm. * @details \b Alarm: ALARM_ID_TD_SOFTWARE_FAULT if given alarm ID is invalid. @@ -1566,4 +1566,56 @@ return result; } +/*********************************************************************//** + * @brief + * The testGetAlarmPropertiesRequest function processes a request + * to retrieve alarm properties and broadcasts the result. + * @details \b Inputs: None + * @details \b Outputs: None + * @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 testGetAlarmPropertiesRequest( MESSAGE_T *message ) +{ + ALARM_ID_T alarmID; + BOOL result = FALSE; + + if ( message->hdr.payloadLen == sizeof( U32 ) ) + { + memcpy( &alarmID, message->payload, sizeof( ALARM_ID_T ) ); + + if ( alarmID < NUM_OF_ALARM_IDS ) + { + ALARM_PROP_T canMsg; + ALARM_T alarm = getAlarmProperties( alarmID ); + + canMsg.alarmPriority = (U08)alarm.alarmPriority; + canMsg.alarmSubRank = (U16)alarm.alarmSubRank; + canMsg.alarmSource = (U08)alarm.alarmSource; + canMsg.alarmIsFault = (U08)alarm.alarmIsFault; + canMsg.alarmIsDDFault = (U08)alarm.alarmIsDDFault; + canMsg.alarmStops = (U08)alarm.alarmStops; + canMsg.alarmConditionClearImmed = (U08)alarm.alarmConditionClearImmed; + canMsg.alarmNoClear = (U08)alarm.alarmNoClear; + canMsg.alarmNoResume = (U08)alarm.alarmNoResume; + canMsg.alarmNoRinseback = (U08)alarm.alarmNoRinseback; + canMsg.alarmNoEndTreatment = (U08)alarm.alarmNoEndTreatment; + canMsg.alarmBlockRinseback = (U08)alarm.alarmBlockRinseback; + canMsg.alarmBlockEndTx = (U08)alarm.alarmBlockEndTx; + canMsg.alarmNoBloodRecirc = (U08)alarm.alarmNoBloodRecirc; + canMsg.alarmNoDialysateRecirc = (U08)alarm.alarmNoDialysateRecirc; + canMsg.alarmAutoResume = (U08)alarm.alarmAutoResume; + canMsg.alarmClearOnly = (U08)alarm.alarmClearOnly; + canMsg.alarmTreatmentLog = (U08)alarm.alarmTreatmentLog; + canMsg.alarmID = (U16)alarm.alarmID; + + result = broadcastData( MSG_ID_TD_ALARM_PROPERTIES_RESPONSE, COMM_BUFFER_OUT_CAN_PC, (U08*)&canMsg, sizeof( ALARM_PROP_T ) ); + } + } + + return result; +} + /**@}*/