/* * co_redundancy.h - contains defines for redundancy * * Copyright (c) 2022-2022 emotas embedded communication GmbH * *------------------------------------------------------------------- * $Id: $ *------------------------------------------------------------------- * * * */ /** * \brief defines for redundancy services * * \file co_redundancy.h - contains defines for redundancy services * */ #ifndef CO_REDUNDANCY_H #define CO_REDUNDANCY_H 1 #include #define LINE0 0 #define LINE1 1 typedef enum { REDUNDANCY_INFO_BUS_OFF, REDUNDANCY_INFO_BUS_ON, REDUNDANCY_INFO_TRANSMIT_TIMEOUT, REDUNDANCY_INFO_RECEIVE_TIMEOUT, REDUNDANCY_INFO_BUFFER_OVERRUN, } REDUNDANCY_INFO_T; /** \brief function pointer to redundancy indication * \param canLine - CAN line 0 or 1 * \param redundancyInfo - redundancy information * \param para - redundancy parameter depending on redundancy information * */ typedef void (* CO_EVENT_REDUNDANCY_T)(UNSIGNED8, REDUNDANCY_INFO_T, UNSIGNED16); /*lint !e960 customer specific parameter names */ /* redundancy functions */ #define CO_COMM_STATE_EVENT coRedcyCommStateEvent #define CO_QUEUE_GET_NEXT_TRANSMIT_MSG coRedcyQueueGetNextTransmitMessage #define CO_QUEUE_TRANSMITTED coRedcyQueueMsgTransmitted #define CO_QUEUE_GET_RECEIVE_BUFFER coRedcyQueueGetReceiveBuffer #define CO_QUEUE_RECEIVE_BUFFER_FILLED coRedcyQueueReceiveBufferIsFilled #define CODRV_CAN_DRIVER_HANDLER codrvRedcyCanDriverHandler #define CODRV_CAN_SET_FILTER codrvRedcyCanSetFilter /* driver used functions */ CO_CAN_TR_MSG_T *coRedcyQueueGetNextTransmitMessage(CO_LINE_DECL); void coRedcyQueueMsgTransmitted(UNSIGNED8 canLine, const CO_CAN_TR_MSG_T *pBuf); void coRedcyCommStateEvent(CO_LINE_DECL, CO_COMM_STATE_EVENT_T newEvent); UNSIGNED8 *coRedcyQueueGetReceiveBuffer(CO_LINE_DECL, UNSIGNED32 canId, UNSIGNED8 dataLen, UNSIGNED8 flags # ifdef CO_CAN_TIMESTAMP_SUPPORTED , CO_CAN_TIMESTAMP_T timestamp # endif /* CO_CAN_TIMESTAMP_SUPPORTED */ ); void coRedcyQueueReceiveBufferIsFilled(CO_LINE_DECL); /* public functions */ EXTERN_DECL RET_T codrvRedcyCanStartTransmission(void); EXTERN_DECL RET_T codrvRedcyCanFdInit(UNSIGNED16 bitRate, UNSIGNED16 dataBitRate); EXTERN_DECL RET_T codrvRedcyCanEnable(void); EXTERN_DECL RET_T codrvRedcyCanDisable(void); EXTERN_DECL void codrvRedcyCanDriverHandler(void); EXTERN_DECL RET_T codrvRedcyCanSetFilter(CO_LINE_DECL, CO_CAN_COB_T * pCanCob); EXTERN_DECL RET_T coEventRegister_REDUNDANCY(CO_EVENT_REDUNDANCY_T pFunction); #endif /* CO_REDUNDANCY_H */