return r;\r
Irq_Restore(state);\r
}\r
+\r
+static void Com_SetDynSignalLength(PduIdType ComRxPduId,PduLengthType TpSduLength) {\r
+ const ComIPdu_type *IPdu = GET_IPdu(ComRxPduId);\r
+ if (IPdu->ComIPduDynSignalRef == 0) {\r
+ return;\r
+ }\r
+ const ComSignal_type * const dynSignal = IPdu->ComIPduDynSignalRef;\r
+ Com_Arc_IPdu_type *Arc_IPdu = GET_ArcIPdu(ComRxPduId);\r
+ Arc_IPdu->Com_Arc_DynSignalLength = TpSduLength - (dynSignal->ComBitPosition/8);\r
+ return;\r
+}\r
BufReq_ReturnType Com_StartOfReception(PduIdType ComRxPduId, PduLengthType TpSduLength, PduLengthType* RxBufferSizePtr) {\r
PduLengthType ComIPduSize;\r
imask_t state;\r
if (ComIPduSize >= TpSduLength) {\r
Com_BufferPduState[ComRxPduId].locked = true;\r
*RxBufferSizePtr = ComIPduSize;\r
- Com_BufferPduState[ComRxPduId].locked = true;\r
+ Com_SetDynSignalLength(ComRxPduId,TpSduLength);\r
} else {\r
r = BUFREQ_OVFL;\r
}\r