Index: firmware/App/Common.h =================================================================== diff -u -r6b6b337c1c0e7dd7c1b7311a39596473d7214ee4 -r51c6a24b30643c8ce296ebfe1d703f289ffafe97 --- firmware/App/Common.h (.../Common.h) (revision 6b6b337c1c0e7dd7c1b7311a39596473d7214ee4) +++ firmware/App/Common.h (.../Common.h) (revision 51c6a24b30643c8ce296ebfe1d703f289ffafe97) @@ -92,6 +92,23 @@ #define MAKE_LONG_OF_WORDS(h,l) ((((U32)(h) << SHIFT_16_BITS_FOR_WORD_SHIFT) & MASK_OFF_LSW) | ((U32)(l) & MASK_OFF_MSW)) #define SIGN_FROM_12_BIT_VALUE(v) ((S16)(v) - 2048) +#define SET_ALARM_WITH_1_U32_DATA(a,d1) { \ + ALARM_DATA_T dat1; \ + dat1.dataType = ALARM_DATA_TYPE_U32; \ + dat1.data.uInt.data = (U32)(d1); \ + activateAlarm1Data( a, dat1 ); \ +} + +#define SET_ALARM_WITH_2_U32_DATA(a,d1,d2) { \ + ALARM_DATA_T dat1; \ + ALARM_DATA_T dat2; \ + dat1.dataType = ALARM_DATA_TYPE_U32; \ + dat1.data.uInt.data = (U32)(d1); \ + dat2.dataType = ALARM_DATA_TYPE_U32; \ + dat2.data.uInt.data = (U32)(d2); \ + activateAlarm2Data( a, dat1, dat2 ); \ +} + // **** VectorCAST Definitions **** #ifdef _VECTORCAST_ @@ -108,6 +125,9 @@ #endif +// include alarm mgmt header +#include "AlarmMgmt.h" + // include test support definitions and macros #include "TestSupport.h" Index: firmware/App/Controllers/AlarmLamp.c =================================================================== diff -u -r40bcef6aa65af6c93ce937c6c4aa2de13e8a78d3 -r51c6a24b30643c8ce296ebfe1d703f289ffafe97 --- firmware/App/Controllers/AlarmLamp.c (.../AlarmLamp.c) (revision 40bcef6aa65af6c93ce937c6c4aa2de13e8a78d3) +++ firmware/App/Controllers/AlarmLamp.c (.../AlarmLamp.c) (revision 51c6a24b30643c8ce296ebfe1d703f289ffafe97) @@ -156,7 +156,7 @@ } else { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 1, lampPattern ) } } @@ -228,8 +228,8 @@ break; default: + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 2, alarmLampSelfTestState ) result = SELF_TEST_STATUS_FAILED; - // TODO - s/w fault break; } Index: firmware/App/Controllers/BloodFlow.c =================================================================== diff -u -r6b6b337c1c0e7dd7c1b7311a39596473d7214ee4 -r51c6a24b30643c8ce296ebfe1d703f289ffafe97 --- firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision 6b6b337c1c0e7dd7c1b7311a39596473d7214ee4) +++ firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision 51c6a24b30643c8ce296ebfe1d703f289ffafe97) @@ -158,7 +158,7 @@ } else { - // TODO - s/w fault? + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 3, bloodPumpState ) } } @@ -213,7 +213,7 @@ break; default: - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 4, bloodPumpState ) break; } } @@ -403,7 +403,7 @@ break; default: - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 5, dir ) break; } } Index: firmware/App/Controllers/Buttons.c =================================================================== diff -u -reff7b1575f008f81b29ef906f6346fac6012d3ab -r51c6a24b30643c8ce296ebfe1d703f289ffafe97 --- firmware/App/Controllers/Buttons.c (.../Buttons.c) (revision eff7b1575f008f81b29ef906f6346fac6012d3ab) +++ firmware/App/Controllers/Buttons.c (.../Buttons.c) (revision 51c6a24b30643c8ce296ebfe1d703f289ffafe97) @@ -230,7 +230,7 @@ default: result = SELF_TEST_STATUS_FAILED; - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 6, buttonSelfTestState ) break; } @@ -336,7 +336,7 @@ // if stop button not consumed within a reasonable time, s/w fault if ( TRUE == didTimeout( stopButtonPendingTimer, STOP_BUTTON_PENDING_TIMEOUT ) ) { - // TODO - s/w fault + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 7 ) } } } Index: firmware/App/Drivers/InternalADC.c =================================================================== diff -u -rcb5c7321fae3036d7a3641ae49097b4b361270f5 -r51c6a24b30643c8ce296ebfe1d703f289ffafe97 --- firmware/App/Drivers/InternalADC.c (.../InternalADC.c) (revision cb5c7321fae3036d7a3641ae49097b4b361270f5) +++ firmware/App/Drivers/InternalADC.c (.../InternalADC.c) (revision 51c6a24b30643c8ce296ebfe1d703f289ffafe97) @@ -149,7 +149,7 @@ } else { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 8, adcRawReadingsCount ) } // start an adc channel group conversion @@ -176,7 +176,7 @@ } else { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 9, channel ) } return result; Index: firmware/App/Modes/ModeInitPOST.c =================================================================== diff -u -r40bcef6aa65af6c93ce937c6c4aa2de13e8a78d3 -r51c6a24b30643c8ce296ebfe1d703f289ffafe97 --- firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 40bcef6aa65af6c93ce937c6c4aa2de13e8a78d3) +++ firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 51c6a24b30643c8ce296ebfe1d703f289ffafe97) @@ -150,7 +150,7 @@ default: postState = POST_STATE_FAILED; - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 10, postState ) break; } } Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -reff7b1575f008f81b29ef906f6346fac6012d3ab -r51c6a24b30643c8ce296ebfe1d703f289ffafe97 --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision eff7b1575f008f81b29ef906f6346fac6012d3ab) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 51c6a24b30643c8ce296ebfe1d703f289ffafe97) @@ -116,7 +116,7 @@ // is requested new mode valid and legal at this time? if ( newMode >= MODE_NLEG ) { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 11, newMode ) newMode = currentMode; } @@ -169,7 +169,7 @@ default: currentMode = MODE_FAUL; - // TODO - trigger s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 12, currentMode ) break; } // end switch } @@ -193,7 +193,7 @@ } else { // invalid mode requested - // TODO - trigger s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 13, newMode ) } } @@ -292,7 +292,7 @@ transitionToPostTreatmentMode(); break; default: - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 14, newMode ) break; } } Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r6c801cb0b32cba0e754cb6b1b57c1a8bd4e2bcf7 -r51c6a24b30643c8ce296ebfe1d703f289ffafe97 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 6c801cb0b32cba0e754cb6b1b57c1a8bd4e2bcf7) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 51c6a24b30643c8ce296ebfe1d703f289ffafe97) @@ -20,7 +20,6 @@ #include "AlarmLamp.h" #include "SystemCommMessages.h" #include "Timers.h" -#include "AlarmMgmt.h" // ********** private definitions ********** @@ -177,7 +176,7 @@ } else { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 15, alarm ) } } @@ -204,7 +203,7 @@ } else { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 16, alarm ) } } @@ -232,7 +231,7 @@ } else { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 17, alarm ) } } @@ -266,11 +265,28 @@ } else { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 18, alarm ) } } /************************************************************************* + * @brief isAlarmActive + * The isAlarmActive function determines whether a given alarm is currently \n + * active. + * @details + * Inputs : alarmIsActive[] + * Outputs : none + * @param alarmID : ID of alarm to check + * @return TRUE if given alarm is active, FALSE if not + *************************************************************************/ +BOOL isAlarmActive( ALARM_ID_T alarm ) +{ + BOOL result = getAlarmActive( alarm ); + + return result; +} + +/************************************************************************* * @brief getAlarmActive * The getAlarmActive function gets the active state of a given alarm. * @details @@ -373,7 +389,7 @@ break; default: - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 19, alarmStatus.alarmsState ) break; } } Index: firmware/App/Services/AlarmMgmt.h =================================================================== diff -u -r6c801cb0b32cba0e754cb6b1b57c1a8bd4e2bcf7 -r51c6a24b30643c8ce296ebfe1d703f289ffafe97 --- firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision 6c801cb0b32cba0e754cb6b1b57c1a8bd4e2bcf7) +++ firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision 51c6a24b30643c8ce296ebfe1d703f289ffafe97) @@ -90,6 +90,7 @@ void activateAlarm1Data( ALARM_ID_T alarm, ALARM_DATA_T alarmData ); void activateAlarm2Data( ALARM_ID_T alarm, ALARM_DATA_T alarmData1, ALARM_DATA_T alarmData2 ); void clearAlarm( ALARM_ID_T alarm ); +BOOL isAlarmActive( ALARM_ID_T alarm ); BOOL testSetAlarmStateOverride( U32 alarmID, BOOL value ); BOOL testResetAlarmStateOverride( U32 alarmID ); Index: firmware/App/Services/CommBuffers.c =================================================================== diff -u -reff7b1575f008f81b29ef906f6346fac6012d3ab -r51c6a24b30643c8ce296ebfe1d703f289ffafe97 --- firmware/App/Services/CommBuffers.c (.../CommBuffers.c) (revision eff7b1575f008f81b29ef906f6346fac6012d3ab) +++ firmware/App/Services/CommBuffers.c (.../CommBuffers.c) (revision 51c6a24b30643c8ce296ebfe1d703f289ffafe97) @@ -119,12 +119,12 @@ { // release thread protection _enable_IRQ(); - // TODO - s/w fault? + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 20, len ) } } else // invalid buffer given { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 21, buffer ) } return result; @@ -180,12 +180,12 @@ } else // invalid peek size given { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 22, len ) } } else // invalid buffer given { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 23, buffer ) } return result; @@ -238,12 +238,12 @@ } else // invalid peek size given { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 24, len ) } } else // invalid buffer given { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 25, buffer ) } return numOfBytesPeeked; @@ -271,7 +271,7 @@ } else // invalid buffer { - // TODO - s/w fault. + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 26, buffer ) } return result; Index: firmware/App/Services/FPGA.c =================================================================== diff -u -rcb5c7321fae3036d7a3641ae49097b4b361270f5 -r51c6a24b30643c8ce296ebfe1d703f289ffafe97 --- firmware/App/Services/FPGA.c (.../FPGA.c) (revision cb5c7321fae3036d7a3641ae49097b4b361270f5) +++ firmware/App/Services/FPGA.c (.../FPGA.c) (revision 51c6a24b30643c8ce296ebfe1d703f289ffafe97) @@ -365,7 +365,7 @@ default: if ( fpgaState >= NUM_OF_FPGA_STATES ) { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 27, fpgaState ) } else { @@ -415,7 +415,7 @@ default: if ( fpgaState >= NUM_OF_FPGA_STATES ) { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 28, fpgaState ) } else { @@ -662,7 +662,7 @@ } else { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 29, bytes2Transmit ) } } @@ -702,7 +702,7 @@ } else { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 30, bytes2Receive ) } } @@ -742,7 +742,7 @@ } else { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 31, bytes2Transmit ) } } @@ -782,7 +782,7 @@ } else { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 32, bytes2Receive ) } } Index: firmware/App/Services/MsgQueues.c =================================================================== diff -u -reff7b1575f008f81b29ef906f6346fac6012d3ab -r51c6a24b30643c8ce296ebfe1d703f289ffafe97 --- firmware/App/Services/MsgQueues.c (.../MsgQueues.c) (revision eff7b1575f008f81b29ef906f6346fac6012d3ab) +++ firmware/App/Services/MsgQueues.c (.../MsgQueues.c) (revision 51c6a24b30643c8ce296ebfe1d703f289ffafe97) @@ -89,12 +89,12 @@ } else // msg queue is full { - // TODO - s/w fault? + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 33 ) } } else // invalid message queue { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 34, queue ) } return result; @@ -136,7 +136,7 @@ } else // invalid message queue { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 35, queue ) } return result; @@ -165,7 +165,7 @@ } else // invalid message queue { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 36, queue ) } return result; @@ -194,7 +194,7 @@ } else // invalid message queue { - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 37, queue ) } return result; Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r6c801cb0b32cba0e754cb6b1b57c1a8bd4e2bcf7 -r51c6a24b30643c8ce296ebfe1d703f289ffafe97 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 6c801cb0b32cba0e754cb6b1b57c1a8bd4e2bcf7) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 51c6a24b30643c8ce296ebfe1d703f289ffafe97) @@ -20,7 +20,6 @@ #include "Common.h" #include "AlarmLamp.h" -#include "AlarmMgmt.h" #include "BloodFlow.h" #include "Buttons.h" #include "MsgQueues.h" Index: firmware/App/Services/WatchdogMgmt.c =================================================================== diff -u -reff7b1575f008f81b29ef906f6346fac6012d3ab -r51c6a24b30643c8ce296ebfe1d703f289ffafe97 --- firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision eff7b1575f008f81b29ef906f6346fac6012d3ab) +++ firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision 51c6a24b30643c8ce296ebfe1d703f289ffafe97) @@ -173,7 +173,7 @@ default: result = SELF_TEST_STATUS_FAILED; - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_SOFTWARE_FAULT, 38, watchdogSelfTestState ) break; } Index: firmware/App/Tasks/TaskGeneral.c =================================================================== diff -u -r9982992ce63b422258a4fb83ec734a1f41625be2 -r51c6a24b30643c8ce296ebfe1d703f289ffafe97 --- firmware/App/Tasks/TaskGeneral.c (.../TaskGeneral.c) (revision 9982992ce63b422258a4fb83ec734a1f41625be2) +++ firmware/App/Tasks/TaskGeneral.c (.../TaskGeneral.c) (revision 51c6a24b30643c8ce296ebfe1d703f289ffafe97) @@ -18,7 +18,6 @@ #include "Common.h" #include "AlarmLamp.h" -#include "AlarmMgmt.h" #include "OperationModes.h" #include "SystemComm.h" #include "WatchdogMgmt.h" Index: firmware/App/TestSupport.h =================================================================== diff -u -r6b6b337c1c0e7dd7c1b7311a39596473d7214ee4 -r51c6a24b30643c8ce296ebfe1d703f289ffafe97 --- firmware/App/TestSupport.h (.../TestSupport.h) (revision 6b6b337c1c0e7dd7c1b7311a39596473d7214ee4) +++ firmware/App/TestSupport.h (.../TestSupport.h) (revision 51c6a24b30643c8ce296ebfe1d703f289ffafe97) @@ -120,7 +120,7 @@ } \ else \ { \ - /* TODO - s/w fault */ \ + activateAlarm( ALARM_ID_SOFTWARE_FAULT ); \ } \ return result; \ } @@ -176,7 +176,7 @@ } \ else \ { \ - /* TODO - s/w fault */ \ + activateAlarm( ALARM_ID_SOFTWARE_FAULT ); \ } \ return result; \ } \ @@ -194,7 +194,7 @@ } \ else \ { \ - /* TODO - s/w fault */ \ + activateAlarm( ALARM_ID_SOFTWARE_FAULT ); \ } \ return result; \ } Index: firmware/source/sys_main.c =================================================================== diff -u -r9982992ce63b422258a4fb83ec734a1f41625be2 -r51c6a24b30643c8ce296ebfe1d703f289ffafe97 --- firmware/source/sys_main.c (.../sys_main.c) (revision 9982992ce63b422258a4fb83ec734a1f41625be2) +++ firmware/source/sys_main.c (.../sys_main.c) (revision 51c6a24b30643c8ce296ebfe1d703f289ffafe97) @@ -63,7 +63,6 @@ #include "Common.h" #include "AlarmLamp.h" #include "BloodFlow.h" -#include "AlarmMgmt.h" #include "Buttons.h" #include "CommBuffers.h" #include "CPLD.h"