/* BEGIN_FILE_HDR ******************************************************************************* * NOTICE * This software is the property of HiRain Technologies. Any information * contained in this doc should not be reproduced, or used, or disclosed * without the written authorization from HiRain Technologies. ******************************************************************************* * File Name : E2E_P01.h ******************************************************************************* * Project/Product : AUTOSAR R21-11 * Title : End-to-End protect module * Author : Hirain ******************************************************************************* * Description : The header file of the End-to-End module. * ******************************************************************************* * Limitations : None * ******************************************************************************* * ******************************************************************************* * Revision History: * Reference to Core C File ******************************************************************************* * END_FILE_HDR*/ /***************************************************************************** * E2E QAC Suppression *****************************************************************************/ /*PRQA S 3432 EOF*/ /* P2VAR and other macros in the Compiler conforms to AUTOSAR standard.There's no need to revise. */ /*PRQA S 4640,4641 EOF*/ /* Function, macrodefinition is named with a fixed requirement and does not make changes */ /*PRQA S 3614 EOF*/ /* According to the requirements of AUTOSAR Specification,when locating address segments in the files of each module,#include "E2E_MemMap.h" is required.Defined XXX_START_SEC_ will undefine in E2E_MemMap.h */ #ifndef E2E_P01_H #define E2E_P01_H /******************************************************************************* * Includes *******************************************************************************/ #include "E2E.h" /****************************************************************************** * Type define ******************************************************************************/ /*SWS_E2E_00200*/ typedef enum { E2E_P01_DATAID_BOTH = 0, E2E_P01_DATAID_ALT, E2E_P01_DATAID_LOW, E2E_P01_DATAID_NIBBLE } E2E_P01DataIDMode; /*SWS_E2E_00018*/ typedef struct { uint16 CounterOffset; uint16 CRCOffset; uint16 DataID; uint16 DataIDNibbleOffset; E2E_P01DataIDMode DataIDMode; uint16 DataLength; uint8 MaxDeltaCounterInit; uint8 MaxNoNewOrRepeatedData; uint8 SyncCounterInit; } E2E_P01ConfigType; /*SWS_E2E_00020*/ typedef struct { uint8 Counter; } E2E_P01ProtectStateType; /*SWS_E2E_00022*/ typedef enum { E2E_P01STATUS_OK = 0x00, E2E_P01STATUS_NONEWDATA = 0x01, E2E_P01STATUS_WRONGCRC = 0x02, E2E_P01STATUS_SYNC = 0x03, E2E_P01STATUS_INITIAL = 0x04, E2E_P01STATUS_REPEATED = 0x08, E2E_P01STATUS_OKSOMELOST = 0x20, E2E_P01STATUS_WRONGSEQUENCE = 0x40 } E2E_P01CheckStatusType; /*SWS_E2E_00021*/ typedef struct { uint8 LastValidCounter; uint8 MaxDeltaCounter; boolean WaitForFirstData; boolean NewDataAvailable; uint8 LostData; E2E_P01CheckStatusType Status; uint8 SyncCounter; uint8 NoNewOrRepeatedDataCounter; } E2E_P01CheckStateType; #define E2E_START_SEC_CODE #include "E2E_MemMap.h" /****************************************************************************** * API Declare ******************************************************************************/ extern FUNC(Std_ReturnType, E2E_CODE) E2E_P01ProtectInit ( P2VAR(E2E_P01ProtectStateType, AUTOMATIC, E2E_APPL_DATA) StatePtr ); extern FUNC(Std_ReturnType, E2E_CODE) E2E_P01Protect ( P2CONST(E2E_P01ConfigType, AUTOMATIC, E2E_APPL_CONST) ConfigPtr, P2VAR(E2E_P01ProtectStateType, AUTOMATIC, E2E_APPL_DATA) StatePtr, P2VAR(uint8, AUTOMATIC, E2E_APPL_DATA) DataPtr ); extern FUNC(Std_ReturnType, E2E_CODE)E2E_P01Check ( P2CONST(E2E_P01ConfigType, AUTOMATIC, E2E_APPL_CONST) Config, P2VAR(E2E_P01CheckStateType, AUTOMATIC, E2E_APPL_DATA) State, P2CONST(uint8, AUTOMATIC, E2E_APPL_DATA) Data ); extern FUNC(Std_ReturnType, E2E_CODE) E2E_P01CheckInit ( P2VAR(E2E_P01CheckStateType, AUTOMATIC, E2E_APPL_DATA) State ); extern FUNC(E2E_PCheckStatusType, E2E_CODE) E2E_P01MapStatusToSM ( Std_ReturnType CheckReturn, E2E_P01CheckStatusType Status, boolean profileBehavior ); #define E2E_STOP_SEC_CODE #include "E2E_MemMap.h" #endif/* E2E_P01_H */