/**
	******************************************************************************
	* @file
	* @author
	* @version
	* @date
	* @brief
	* @function List:
	******************************************************************************
	* @attention
	*
	*
	* <h2><center>&copy; COPYRIGHT 2021 </center></h2>
	******************************************************************************
	* @History:
	* @Author:
	* @Data:
	* @Version:
*/

#if !defined(CANTP_CFG_H)
#define CANTP_CFG_H

/*******************************************************************************
*   Includes
*******************************************************************************/
#include "CanIf.h"
#include "PduR_CanTp.h"

#define CANTP_VERSION_INFO_API               STD_OFF
#define CANTP_DEV_ERROR_DETECT               STD_OFF
#define CANTP_PROD_ERROR_DETECT              STD_ON
#define CANTP_TC                             STD_ON
#define CANTP_MAIN_FUNCTION_PERIOD           5u

#define CANTP_FILLPATTERN                   0xAAu	//沒有用到的值  填充成

#define CANTP_CHANNELS                              1u		//好像表示的是， 發和收 各一個通道；為了mainfunction  --可能就是物理通道相關的邏輯通道：


#define CANTP_NUM_RX_SDUS                   2u			//接收有兩 SDUS ，分別是功能和物理尋址
#define CANTP_NUM_TX_SDUS                   1u			//TX ，响應

#define CANTP_NUM_RX_CHANNELS                CANTP_CHANNELS 	//CANTP模塊 用於接收N-SDU的通道數  ？？為什麼是1  可不可以理解成/*CanIfRxPduHrhIdRef*/  //就是 CanHardwareObjectConfig的[0] 只收
#define CANTP_NUM_TX_CHANNELS                CANTP_CHANNELS  	//CANTP模塊 用於發送N-SDU的通道數  ？？為什麼是1

#define CanTp_CanInterruptDisable()     Can_DisableGlobalInterrupts()
#define CanTp_CanInterruptRestore()    Can_EnableGlobalInterrupts()

#define CanTp_CanTransmit(txSduIdx,pduInfo)    CanIf_Transmit(txSduIdx,pduInfo)
#define CanTp_CanCancelTransmit(txSduIdx)       CanIf_CancelTransmit(txSduIdx)

//以下幾個函數，相當於 調dcm的接口
#define CanTp_NUSDataIndication(rxSduIdx,canTpErrorCode)  {PduR_CanTpRxIndication(rxSduIdx,canTpErrorCode);CanTp_ChannelInit(CANTP_RXTPCHANNEL_ID(rxSduIdx));}

#define CanTp_NUSDataConfirm(txSduIdx,canTpErrorCode)       PduR_CanTpTxConfirmation(txSduIdx,canTpErrorCode)
#define CanTp_NUSDataFFIndication(rxSduIdx,length,bufferSizePtr)   PduR_CanTpStartOfReception(rxSduIdx,length,bufferSizePtr)

#define CanTp_NUSDataSFIndication(rxSduIdx,length,bufferSizePtr)   PduR_CanTpStartOfReception(rxSduIdx,length,bufferSizePtr)


#define CanTp_CopyRxData(rxSduIdx,pduInfo,bufferSizePtr)   PduR_CanTpCopyRxData(rxSduIdx,pduInfo,bufferSizePtr)

#define CanTp_CopyTxData(txSduIdx,pduInfo,NULL_PTR,bufferSizePtr)   PduR_CanTpCopyTxData(txSduIdx,pduInfo,NULL_PTR,bufferSizePtr)





/***************測試用的****************************/
//#define CAN_TP_DEBUG 1  //DEBUG 測試相關


//#define CAN_TP_IN_TEST  1   //TP層內部測試用

#endif /* CANTP_CFG_H */
