}\r
#endif\r
for (int i = 0; i < J1939TP_CHANNEL_COUNT; i++) {\r
- int rxCount = 0;\r
- int txCount = 0;\r
- channelInfos[i].ChannelConfPtr = &(ConfigPtr->Channels[i]);\r
if (ConfigPtr->Channels[i].Direction == J1939TP_TX) {\r
- channelInfos[i].TxState = &(txChannelInfos[txCount]);\r
+ channelInfos[i].ChannelConfPtr = &(ConfigPtr->Channels[i]);\r
+ channelInfos[i].TxState = &(txChannelInfos[i]);\r
+ channelInfos[i].TxState->State = J1939TP_TX_IDLE;\r
channelInfos[i].RxState = 0;\r
- txCount++;\r
} else if (ConfigPtr->Channels[i].Direction == J1939TP_RX) {\r
+ channelInfos[i].ChannelConfPtr = &(ConfigPtr->Channels[i]);\r
channelInfos[i].TxState = 0;\r
- channelInfos[i].RxState = &(rxChannelInfos[rxCount]);\r
- rxCount++;\r
+ channelInfos[i].RxState = &(rxChannelInfos[i]);\r
+ channelInfos[i].RxState->State = J1939TP_RX_IDLE;\r
} else {\r
return; // unexpected\r
}\r
case J1939TP_TX_WAIT_DIRECT_SEND_CANIF_CONFIRM:\r
case J1939TP_TX_WAITING_FOR_CTS:\r
case J1939TP_TX_WAITING_FOR_END_OF_MSG_ACK:\r
+ case J1939TP_TX_WAIT_DT_CANIF_CONFIRM:\r
+ case J1939TP_TX_WAIT_RTS_CANIF_CONFIRM:\r
timer = J1939Tp_Internal_IncAndCheckTimer(&(ChannelInfoPtr->TxState->TimerInfo));\r
+ if (timer == J1939TP_EXPIRED) {\r
+ timer = J1939TP_NOT_EXPIRED;\r
+ ChannelInfoPtr->TxState->State = J1939TP_TX_IDLE;\r
+ if (ChannelInfoPtr->TxState->CurrentPgPtr != 0) {\r
+ J1939Tp_Internal_SendConnectionAbort(Channel->CmNPdu,ChannelInfoPtr->TxState->CurrentPgPtr->Pgn);\r
+ PduR_J1939TpTxConfirmation(ChannelInfoPtr->TxState->CurrentPgPtr->NSdu,NTFRSLT_E_NOT_OK);\r
+ }\r
+ }\r
break;\r
- default:\r
+ case J1939TP_TX_WAITING_FOR_T1_TIMEOUT:\r
+ timer = J1939Tp_Internal_IncAndCheckTimer(&(ChannelInfoPtr->TxState->TimerInfo));\r
+ if (timer == J1939TP_EXPIRED) {\r
+ timer = J1939TP_NOT_EXPIRED;\r
+ ChannelInfoPtr->TxState->State = J1939TP_TX_WAIT_DT_BAM_CANIF_CONFIRM;\r
+ J1939Tp_Internal_TxSessionStartTimer(ChannelInfoPtr->TxState,J1939TP_TX_CONF_TIMEOUT);\r
+ J1939Tp_Internal_SendDt(ChannelInfoPtr);\r
+\r
+ }\r
break;\r
+ default:\r
+ break;\r
}\r
- break;\r
- if (timer == J1939TP_EXPIRED) {\r
- ChannelInfoPtr->TxState->State = J1939TP_TX_IDLE;\r
- if (ChannelInfoPtr->TxState->CurrentPgPtr != 0) {\r
- J1939Tp_Internal_SendConnectionAbort(Channel->CmNPdu,ChannelInfoPtr->TxState->CurrentPgPtr->Pgn);\r
- PduR_J1939TpTxConfirmation(ChannelInfoPtr->TxState->CurrentPgPtr->NSdu,NTFRSLT_E_NOT_OK);\r
- }\r
- }\r
- return;\r
+\r
+ break;;\r
case J1939TP_RX:\r
switch (ChannelInfoPtr->RxState->State) {\r
case J1939TP_RX_WAIT_CTS_CANIF_CONFIRM:\r
case J1939TP_RX_RECEIVING_DT:\r
case J1939TP_RX_WAIT_ENDOFMSGACK_CANIF_CONFIRM:\r
- timer = J1939Tp_Internal_IncAndCheckTimer(&(ChannelInfoPtr->RxState->TimerInfo));\r
+ timer = J1939Tp_Internal_IncAndCheckTimer(&(ChannelInfoPtr->RxState->TimerInfo));\r
default:\r
break;\r
}\r
- default:\r
- break;\r
if (timer == J1939TP_EXPIRED) {\r
+ timer = J1939TP_NOT_EXPIRED;\r
ChannelInfoPtr->RxState->State = J1939TP_TX_IDLE;\r
- J1939Tp_Internal_SendConnectionAbort(Channel->FcNPdu,ChannelInfoPtr->TxState->CurrentPgPtr->Pgn);\r
- PduR_J1939TpRxIndication(ChannelInfoPtr->RxState->CurrentPgPtr->NSdu,NTFRSLT_E_NOT_OK);\r
+ if (Channel->Protocol == J1939TP_PROTOCOL_CMDT) {\r
+ J1939Tp_Internal_SendConnectionAbort(Channel->FcNPdu,ChannelInfoPtr->TxState->CurrentPgPtr->Pgn);\r
+ PduR_J1939TpRxIndication(ChannelInfoPtr->RxState->CurrentPgPtr->NSdu,NTFRSLT_E_NOT_OK);\r
+ }\r
}\r
- return;\r
+ default:\r
+ break;\r
}\r
}\r
}\r
PduIdType PduRSdu = ChannelInfoPtr->RxState->CurrentPgPtr->NSdu;\r
uint8 requestSize = DT_DATA_SIZE;\r
boolean lastMessage = false;\r
+ if (ChannelInfoPtr->RxState->State != J1939TP_RX_RECEIVING_DT) {\r
+ return;\r
+ }\r
if (J1939Tp_Internal_IsLastDt(ChannelInfoPtr->RxState)) {\r
lastMessage = true;\r
J1939Tp_Internal_DtPayloadSizeType receivedBytes = ChannelInfoPtr->RxState->TotalReceivedDtCount*DT_DATA_SIZE;\r
static inline void J1939Tp_Internal_RxIndication_Cm(PduInfoType* PduInfoPtr, J1939Tp_Internal_ChannelInfoType* ChannelInfoPtr) {\r
const J1939Tp_PgType* pg = 0;\r
J1939Tp_PgnType pgn = J1939Tp_Internal_GetPgn(&(PduInfoPtr->SduDataPtr[CM_PGN_BYTE_1]));\r
+ uint8 pf = J1939Tp_Internal_GetPf(pgn);\r
+ J1939Tp_ProtocolType protocol = J1939Tp_Internal_GetPf(pf);\r
if (J1939Tp_Internal_GetPgFromPgn(ChannelInfoPtr->ChannelConfPtr,pgn,&pg) != E_OK) {\r
return;\r
}\r
+ /** @req J1939TP0173 **/\r
+ if (protocol == J1939TP_PROTOCOL_BAM && pg->Channel->Protocol != protocol) {\r
+ return;\r
+ }\r
+ if (protocol == J1939TP_PROTOCOL_CMDT && pg->Channel->Protocol != protocol) {\r
+ J1939Tp_Internal_SendConnectionAbort(pg->Channel->CmNPdu,pgn);\r
+ }\r
uint8 Command = PduInfoPtr->SduDataPtr[CM_BYTE_CONTROL];\r
- switch (Command) {\r
- case RTS_CONTROL_VALUE:\r
- if (ChannelInfoPtr->RxState->State == J1939TP_RX_IDLE) {\r
- /** @req J1939TP0043**/\r
- J1939Tp_Internal_DtPayloadSizeType messageSize = 0;\r
- messageSize = J1939Tp_Internal_GetRtsMessageSize(PduInfoPtr);\r
- /** @req J1939TP0039**/\r
- PduLengthType* bufferSizePtr = 0;\r
- BufReq_ReturnType BufferRes = PduR_J1939TpStartOfReception(pg->NSdu,messageSize,bufferSizePtr);\r
- if (BufferRes != BUFREQ_OK) {\r
- return;\r
- }\r
- ChannelInfoPtr->RxState->TotalReceivedDtCount = 0;\r
- ChannelInfoPtr->RxState->TotalDtToReceiveCount = PduInfoPtr->SduDataPtr[RTS_BYTE_NUM_PACKETS];\r
- ChannelInfoPtr->RxState->TotalMessageSize = messageSize;\r
- ChannelInfoPtr->RxState->State = J1939TP_RX_WAIT_CTS_CANIF_CONFIRM;\r
- ChannelInfoPtr->RxState->CurrentPgPtr = pg;\r
- J1939Tp_Internal_SendCts(ChannelInfoPtr,PduInfoPtr);\r
- J1939Tp_Internal_RxSessionStartTimer(ChannelInfoPtr->RxState,J1939TP_TX_CONF_TIMEOUT);\r
- }\r
- break;\r
- default:\r
- break;\r
+ if (Command != BAM_CONTROL_VALUE || Command != RTS_CONTROL_VALUE) {\r
+ return;\r
+ }\r
+ if (ChannelInfoPtr->RxState->State != J1939TP_RX_IDLE) {\r
+ return;\r
}\r
+ /** @req J1939TP0043**/\r
+ J1939Tp_Internal_DtPayloadSizeType messageSize = 0;\r
+ messageSize = J1939Tp_Internal_GetRtsMessageSize(PduInfoPtr);\r
+ /** @req J1939TP0039**/\r
+ PduLengthType* bufferSizePtr = 0;\r
+ BufReq_ReturnType BufferRes = PduR_J1939TpStartOfReception(pg->NSdu,messageSize,bufferSizePtr);\r
+ if (BufferRes != BUFREQ_OK) {\r
+ return;\r
+ }\r
+ ChannelInfoPtr->RxState->TotalReceivedDtCount = 0;\r
+ ChannelInfoPtr->RxState->TotalDtToReceiveCount = PduInfoPtr->SduDataPtr[BAM_RTS_BYTE_NUM_PACKETS];\r
+ ChannelInfoPtr->RxState->TotalMessageSize = messageSize;\r
+ ChannelInfoPtr->RxState->CurrentPgPtr = pg;\r
+ if (Command == RTS_CONTROL_VALUE) {\r
+ ChannelInfoPtr->RxState->State = J1939TP_RX_WAIT_CTS_CANIF_CONFIRM;\r
+ J1939Tp_Internal_RxSessionStartTimer(ChannelInfoPtr->RxState,J1939TP_TX_CONF_TIMEOUT);\r
+ J1939Tp_Internal_SendCts(ChannelInfoPtr,PduInfoPtr);\r
+\r
+ } else if (Command == BAM_CONTROL_VALUE) {\r
+ J1939Tp_Internal_RxSessionStartTimer(ChannelInfoPtr->RxState,J1939TP_T2_TIMEOUT_MS);\r
+ ChannelInfoPtr->RxState->State = J1939TP_RX_RECEIVING_DT;\r
+ }\r
+\r
}\r
static inline void J1939Tp_Internal_RxIndication_ReverseCm(PduInfoType* PduInfoPtr, J1939Tp_Internal_ChannelInfoType* ChannelInfoPtr) {\r
const J1939Tp_PgType* pg = 0;\r
return (rxChannelInfo->TotalDtToReceiveCount == rxChannelInfo->TotalReceivedDtCount);\r
}\r
static inline void J1939Tp_Internal_TxConfirmation_TxChannel(J1939Tp_Internal_ChannelInfoType* ChannelInfoPtr, const J1939Tp_RxPduInfoType* RxPduInfo) {\r
+ J1939Tp_Internal_TxChannelStateType State = ChannelInfoPtr->TxState->State;\r
switch (RxPduInfo->PacketType ) {\r
case J1939TP_REVERSE_CM:\r
break;\r
case J1939TP_CM:\r
- if (ChannelInfoPtr->TxState->State == J1939TP_TX_WAIT_RTS_CANIF_CONFIRM) {\r
+ if (State == J1939TP_TX_WAIT_RTS_CANIF_CONFIRM) {\r
ChannelInfoPtr->TxState->State = J1939TP_TX_WAITING_FOR_CTS;\r
+ } else if (State == J1939TP_TX_WAIT_BAM_CANIF_CONFIRM) {\r
+ ChannelInfoPtr->TxState->State = J1939TP_TX_WAITING_FOR_T1_TIMEOUT;\r
+ J1939Tp_Internal_TxSessionStartTimer(ChannelInfoPtr->TxState,J1939TP_T1_TIMEOUT_MS);\r
}\r
break;\r
case J1939TP_DT:\r
- if (ChannelInfoPtr->TxState->State == J1939TP_TX_WAIT_DT_CANIF_CONFIRM) {\r
+ if (State == J1939TP_TX_WAIT_DT_CANIF_CONFIRM) {\r
ChannelInfoPtr->TxState->TotalSentDtCount++;\r
ChannelInfoPtr->TxState->SentDtCount++;\r
- if (J1939Tp_Internal_WaitForEndOfMsgAck(ChannelInfoPtr->TxState)) {\r
+ if (J1939Tp_Internal_LastDtSent(ChannelInfoPtr->TxState)) {\r
J1939Tp_Internal_TxSessionStartTimer(ChannelInfoPtr->TxState,J1939TP_T3_TIMEOUT_MS);\r
ChannelInfoPtr->TxState->State = J1939TP_TX_WAITING_FOR_END_OF_MSG_ACK;\r
} else if (J1939Tp_Internal_WaitForCts(ChannelInfoPtr->TxState)) {\r
J1939Tp_Internal_SendDt(ChannelInfoPtr);\r
}\r
}\r
+ else if (State == J1939TP_TX_WAIT_DT_BAM_CANIF_CONFIRM) {\r
+ ChannelInfoPtr->TxState->TotalSentDtCount++;\r
+ if (J1939Tp_Internal_LastDtSent(ChannelInfoPtr->TxState)) {\r
+ ChannelInfoPtr->TxState->State = J1939TP_TX_IDLE;\r
+ PduR_J1939TpTxConfirmation(ChannelInfoPtr->TxState->CurrentPgPtr->NSdu,NTFRSLT_OK);\r
+ } else {\r
+ ChannelInfoPtr->TxState->State = J1939TP_TX_WAITING_FOR_T1_TIMEOUT;\r
+ J1939Tp_Internal_TxSessionStartTimer(ChannelInfoPtr->TxState,J1939TP_T1_TIMEOUT_MS);\r
+ }\r
+ }\r
break;\r
case J1939TP_DIRECT:\r
- if (ChannelInfoPtr->TxState->State == J1939TP_TX_WAIT_DIRECT_SEND_CANIF_CONFIRM) {\r
+ if (State == J1939TP_TX_WAIT_DIRECT_SEND_CANIF_CONFIRM) {\r
ChannelInfoPtr->TxState->State = J1939TP_TX_IDLE;\r
PduR_J1939TpTxConfirmation(ChannelInfoPtr->TxState->CurrentPgPtr->NSdu, NTFRSLT_OK);\r
}\r
}\r
return E_NOT_OK;\r
}\r
-\r
+Std_ReturnType J1939Tp_CancelTransmitRequest(PduIdType TxSduId) {\r
+ /** @req J1939TP0179 **/\r
+ J1939Tp_Internal_PgInfoType* PgInfo;\r
+ if (J1939Tp_Internal_GetPg(TxSduId,&PgInfo) == E_NOT_OK) {\r
+ return E_NOT_OK;\r
+ }\r
+ PduR_J1939TpTxConfirmation(PgInfo->PgConfPtr->NSdu,NTFRSLT_E_CANCELATION_NOT_OK);\r
+ return E_OK;\r
+}\r
+Std_ReturnType J1939Tp_CancelReceiveRequest(PduIdType RxSduId) {\r
+ /** @req J1939TP0178 **/\r
+ J1939Tp_Internal_PgInfoType* PgInfo;\r
+ if (J1939Tp_Internal_GetPg(RxSduId,&PgInfo) == E_NOT_OK) {\r
+ return E_NOT_OK;\r
+ }\r
+ PduR_J1939TpTxConfirmation(PgInfo->PgConfPtr->NSdu,NTFRSLT_E_CANCELATION_NOT_OK);\r
+ return E_OK;\r
+}\r
/** @req J1939TP0096 */\r
Std_ReturnType J1939Tp_Transmit(PduIdType TxSduId, const PduInfoType* TxInfoPtr) {\r
#if J1939TP_DEV_ERROR_DETECT\r
}\r
#endif\r
J1939Tp_Internal_PgInfoType* PgInfo;\r
- //PgInfo = pgInfos;\r
+\r
if (J1939Tp_Internal_GetPg(TxSduId,&PgInfo) == E_NOT_OK) {\r
return E_NOT_OK;\r
}\r
const J1939Tp_PgType* Pg = PgInfo->PgConfPtr;\r
J1939Tp_Internal_ChannelInfoType* ChannelInfoPtr = PgInfo->ChannelInfoPtr;\r
+ /** @req J1939TP0101 **/\r
+ if (ChannelInfoPtr->TxState->State != J1939TP_TX_IDLE) {\r
+ return E_NOT_OK;\r
+ }\r
if (TxInfoPtr->SduLength <= 8) { // direct transmit\r
PduInfoType* ToSendTxInfoPtr;\r
PduR_J1939TpProvideTxBuffer(Pg->NSdu, &ToSendTxInfoPtr, TxInfoPtr->SduLength);\r
J1939Tp_ProtocolType protocol = J1939Tp_Internal_GetProtocol(pf);\r
switch (protocol) { /** @req J1939TP0039*/\r
case J1939TP_PROTOCOL_BAM:\r
+ ChannelInfoPtr->TxState->State = J1939TP_TX_WAIT_BAM_CANIF_CONFIRM;\r
+ ChannelInfoPtr->TxState->TotalMessageSize = TxInfoPtr->SduLength;\r
+ ChannelInfoPtr->TxState->TotalSentDtCount = 0;\r
+ ChannelInfoPtr->TxState->CurrentPgPtr = Pg;\r
+ J1939Tp_Internal_TxSessionStartTimer(ChannelInfoPtr->TxState,J1939TP_TX_CONF_TIMEOUT);\r
+ J1939Tp_Internal_SendBam(ChannelInfoPtr,TxInfoPtr);\r
break;\r
case J1939TP_PROTOCOL_CMDT:\r
ChannelInfoPtr->TxState->State = J1939TP_TX_WAIT_RTS_CANIF_CONFIRM;\r
}\r
return E_OK;\r
}\r
+static inline void J1939Tp_Internal_SendBam(J1939Tp_Internal_ChannelInfoType* ChannelInfoPtr,const PduInfoType* TxInfoPtr) {\r
+ uint8 cmBamData[BAM_RTS_SIZE];\r
+ cmBamData[BAM_RTS_BYTE_CONTROL] = BAM_CONTROL_VALUE;\r
+ cmBamData[BAM_RTS_BYTE_LENGTH_1] = (uint8)(TxInfoPtr->SduLength & 0x00FF);\r
+ cmBamData[BAM_RTS_BYTE_LENGTH_2] = (uint8)(TxInfoPtr->SduLength & 0xFF00);\r
+\r
+ J1939Tp_PgnType pgn = ChannelInfoPtr->TxState->CurrentPgPtr->Pgn;\r
+ cmBamData[BAM_RTS_BYTE_NUM_PACKETS] = J1939TP_Internal_GetNumDtPacketsToSend(TxInfoPtr->SduLength);\r
+ cmBamData[BAM_RTS_BYTE_SAE_ASSIGN] = 0xFF;\r
+ J1939Tp_Internal_SetPgn(&(cmBamData[BAM_RTS_BYTE_PGN_1]),pgn);\r
+\r
+ PduInfoType cmBamPdu;\r
+ cmBamPdu.SduLength = BAM_RTS_SIZE;\r
+ cmBamPdu.SduDataPtr = cmBamData;\r
+\r
+ CanIf_Transmit(ChannelInfoPtr->ChannelConfPtr->CmNPdu,&cmBamPdu);\r
+}\r
static inline uint16 J1939Tp_Internal_GetRtsMessageSize(PduInfoType* pduInfo) {\r
- return (((uint16)pduInfo->SduDataPtr[RTS_BYTE_LENGTH_1]) << 8) | pduInfo->SduDataPtr[RTS_BYTE_LENGTH_1];\r
+ return (((uint16)pduInfo->SduDataPtr[BAM_RTS_BYTE_LENGTH_1]) << 8) | pduInfo->SduDataPtr[BAM_RTS_BYTE_LENGTH_1];\r
}\r
\r
static inline boolean J1939Tp_Internal_WaitForCts(J1939Tp_Internal_TxChannelInfoType* TxChannelState) {\r
return TxChannelState->SentDtCount == TxChannelState->DtToSendBeforeCtsCount;\r
}\r
\r
-static inline boolean J1939Tp_Internal_WaitForEndOfMsgAck(J1939Tp_Internal_TxChannelInfoType* TxChannelState) {\r
+static inline uint8 J1939TP_Internal_GetNumDtPacketsToSend(uint16 messageSize) {\r
uint8 packetsToSend = 0;\r
- packetsToSend = (TxChannelState->TotalMessageSize)/DT_DATA_SIZE;\r
- if (TxChannelState->TotalMessageSize % DT_DATA_SIZE != 0) {\r
+ packetsToSend = messageSize/DT_DATA_SIZE;\r
+ if (messageSize % DT_DATA_SIZE != 0) {\r
packetsToSend = packetsToSend + 1;\r
}\r
- return packetsToSend == TxChannelState->TotalSentDtCount;\r
+ return packetsToSend;\r
+}\r
+static inline boolean J1939Tp_Internal_LastDtSent(J1939Tp_Internal_TxChannelInfoType* TxChannelState) {\r
+ return J1939TP_Internal_GetNumDtPacketsToSend(TxChannelState->TotalMessageSize) == TxChannelState->TotalSentDtCount;\r
}\r
\r
static inline Std_ReturnType J1939Tp_Internal_ConfGetPg(PduIdType NSduId, const J1939Tp_PgType* Pg) {\r
return J1939TP_NOT_EXPIRED;\r
}\r
static inline uint8 J1939Tp_Internal_GetPf(J1939Tp_PgnType pgn) {\r
- return (pgn && 0x0000FF00) >> 8;\r
+ return (uint8)(pgn >> 8);\r
}\r
static J1939Tp_ProtocolType J1939Tp_Internal_GetProtocol(uint8 pf) {\r
if (pf < 240) {\r
}\r
\r
static inline void J1939Tp_Internal_SendRts(J1939Tp_Internal_ChannelInfoType* ChannelInfoPtr, const PduInfoType* TxInfoPtr) {\r
- uint8 cmRtsData[RTS_SIZE];\r
- cmRtsData[RTS_BYTE_CONTROL] = 16;\r
- cmRtsData[RTS_BYTE_LENGTH_1] = (uint8)(TxInfoPtr->SduLength & 0x00FF);\r
- cmRtsData[RTS_BYTE_LENGTH_2] = (uint8)(TxInfoPtr->SduLength & 0xFF00);\r
- uint8 reminder = 0;\r
- if (TxInfoPtr->SduLength % J1939TP_PACKET_SIZE != 0) {\r
- reminder = 1;\r
- }\r
+ uint8 cmRtsData[BAM_RTS_SIZE];\r
+ cmRtsData[BAM_RTS_BYTE_CONTROL] = 16;\r
+ cmRtsData[BAM_RTS_BYTE_LENGTH_1] = (uint8)(TxInfoPtr->SduLength & 0x00FF);\r
+ cmRtsData[BAM_RTS_BYTE_LENGTH_2] = (uint8)(TxInfoPtr->SduLength & 0xFF00);\r
+\r
J1939Tp_PgnType pgn = ChannelInfoPtr->TxState->CurrentPgPtr->Pgn;\r
- cmRtsData[RTS_BYTE_NUM_PACKETS] = (TxInfoPtr->SduLength / J1939TP_PACKET_SIZE) + reminder;\r
- cmRtsData[RTS_BYTE_SAE_ASSIGN] = 0xFF;\r
- J1939Tp_Internal_SetPgn(&(cmRtsData[RTS_BYTE_PGN_1]),pgn);\r
+ cmRtsData[BAM_RTS_BYTE_NUM_PACKETS] = J1939TP_Internal_GetNumDtPacketsToSend(TxInfoPtr->SduLength);\r
+ cmRtsData[BAM_RTS_BYTE_SAE_ASSIGN] = 0xFF;\r
+ J1939Tp_Internal_SetPgn(&(cmRtsData[BAM_RTS_BYTE_PGN_1]),pgn);\r
\r
PduInfoType cmRtsPdu;\r
- cmRtsPdu.SduLength = RTS_SIZE;\r
+ cmRtsPdu.SduLength = BAM_RTS_SIZE;\r
cmRtsPdu.SduDataPtr = cmRtsData;\r
\r
CanIf_Transmit(ChannelInfoPtr->ChannelConfPtr->CmNPdu,&cmRtsPdu);\r
ctsData[CTS_BYTE_NEXT_PACKET] = CTS_START_SEQ_NUM;\r
ctsData[CTS_BYTE_SAE_ASSIGN_1] = 0xFF;\r
ctsData[CTS_BYTE_SAE_ASSIGN_2] = 0xFF;\r
- ctsData[CTS_BYTE_PGN_1] = RtsPduInfoPtr->SduDataPtr[RTS_BYTE_PGN_1];\r
- ctsData[CTS_BYTE_PGN_2] = RtsPduInfoPtr->SduDataPtr[RTS_BYTE_PGN_2];\r
- ctsData[CTS_BYTE_PGN_3] = RtsPduInfoPtr->SduDataPtr[RTS_BYTE_PGN_3];\r
+ ctsData[CTS_BYTE_PGN_1] = RtsPduInfoPtr->SduDataPtr[BAM_RTS_BYTE_PGN_1];\r
+ ctsData[CTS_BYTE_PGN_2] = RtsPduInfoPtr->SduDataPtr[BAM_RTS_BYTE_PGN_2];\r
+ ctsData[CTS_BYTE_PGN_3] = RtsPduInfoPtr->SduDataPtr[BAM_RTS_BYTE_PGN_3];\r
\r
CanIf_Transmit(ChannelInfoPtr->ChannelConfPtr->FcNPdu,&ctsInfo);\r
\r