123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308 |
- #ifdef __cplusplus
- extern "C"{
- #endif
- #include "Mcal.h"
- #include "OsIf.h"
- #include "Dem_stub.h"
- #define DEM_START_SEC_CODE
- #include "Dem_MemMap.h"
- boolean Dem_TestLastReportErrorStatus(Dem_EventIdType EventId, Dem_EventStatusType EventStatus)
- {
- boolean result = 0U;
- sint32 counterDown;
- uint32 counterUp;
- uint32 u32CoreId = (uint32)OsIf_GetCoreID();
-
- for(counterDown = (Dem_numEventErrors[u32CoreId] - 1); (sint32)0 <= counterDown; counterDown--)
- {
-
- if((EventId == Dem_EventId[u32CoreId][counterDown]) && (EventStatus == Dem_EventStatus[u32CoreId][counterDown]))
- {
-
- result = 1;
-
- for(counterUp = (uint32)counterDown; counterUp < (Dem_numEventErrors[u32CoreId] - 1);counterUp++)
- {
- Dem_EventId[u32CoreId][counterUp] = Dem_EventId[u32CoreId][(counterUp+1)];
- Dem_EventStatus[u32CoreId][counterUp] = Dem_EventStatus[u32CoreId][(counterUp+1)];
- }
-
- Dem_numEventErrors[u32CoreId]--;
-
- break;
- }
- }
- return result;
- }
- boolean Dem_TestNoError(void) {
- boolean result = 1U;
- uint32 counter;
- uint32 u32CoreId = (uint32)OsIf_GetCoreID();
- for(counter = 0;counter < Dem_numEventErrors[u32CoreId]; counter++)
- {
- if((DEM_EVENT_STATUS_FAILED == Dem_EventStatus[u32CoreId][counter]) || (DEM_EVENT_STATUS_PREFAILED == Dem_EventStatus[u32CoreId][counter]))
- {
- result = 0U;
-
- break;
- }
- }
- Dem_numEventErrors[u32CoreId] = 0;
- return result;
- }
- boolean Dem_TestLastReportErrorStatusPreExtData
- (
- Dem_EventIdType Dem_EventIdRaw,
- Dem_EventStatusType Dem_EventStatusRaw,
- uint8* Dem_pui8_PreExtData,
- uint8 Dem_PreExtDataSize
- )
- {
- boolean bRetValue = 1U;
- sint32 counterDown;
- uint32 counterUp;
- uint8 u8Counter;
- uint32 u32CoreId = (uint32)OsIf_GetCoreID();
-
- for(counterDown = (Dem_numEventErrors[u32CoreId] - 1); (sint32)0 <= counterDown; counterDown--)
- {
-
- if((Dem_EventIdRaw == Dem_EventId[u32CoreId][counterDown]) && (Dem_EventStatusRaw == Dem_EventStatus[u32CoreId][counterDown]))
- {
-
- for(u8Counter=0; u8Counter < Dem_PreExtDataSize; u8Counter++)
- {
-
- if (DEM_EXT_DATA_NOT_USED_U8 == Dem_pui8_PreExtData[u8Counter])
- continue;
-
- if (Dem_pui8_PreExtData[u8Counter] != Dem_au8ExtendedData[u32CoreId][u8Counter])
- {
- bRetValue = (boolean)FALSE;
- }
- }
-
- for(counterUp = (uint32)counterDown; counterUp < (Dem_numEventErrors[u32CoreId] - 1);counterUp++)
- {
- Dem_EventId[u32CoreId][counterUp] = Dem_EventId[u32CoreId][(counterUp+1)];
- Dem_EventStatus[u32CoreId][counterUp] = Dem_EventStatus[u32CoreId][(counterUp+1)];
- }
-
- Dem_numEventErrors[u32CoreId]--;
-
- break;
- }
- }
-
- for(u8Counter=0; u8Counter < DEM_MAX_EXTENDED_DATA_LENGTH_U8; u8Counter++)
- {
- Dem_au8ExtendedData[u32CoreId][u8Counter] = 0x0U;
- }
-
- return bRetValue;
- }
- void Dem_ClearEvents(void)
- {
- uint32 u32CoreId = (uint32)OsIf_GetCoreID();
-
- Dem_numEventErrors[u32CoreId] = 0U;
- }
- boolean Dem_GetEvent(uint32 IndexNumber, Dem_EventIdType* EventId, Dem_EventStatusType* EventStatus)
- {
- boolean result = 0;
- uint32 u32CoreId = (uint32)OsIf_GetCoreID();
- if(IndexNumber < Dem_numEventErrors[u32CoreId])
- {
- *EventId = Dem_EventId[u32CoreId][IndexNumber];
- *EventStatus = Dem_EventStatus[u32CoreId][IndexNumber];
- }
- else
- {
- result = 1;
- }
- return result;
- }
- uint32 Dem_GetEventCount(void)
- {
- uint32 u32CoreId = (uint32)OsIf_GetCoreID();
-
- return Dem_numEventErrors[u32CoreId];
- }
- boolean Dem_BufferOverflow(void)
- {
- uint32 u32CoreId = (uint32)OsIf_GetCoreID();
-
- return Dem_OverflowEvent[u32CoreId];
- }
- #define DEM_STOP_SEC_CODE
- #include "Dem_MemMap.h"
- #ifdef __cplusplus
- }
- #endif
|