\r
const ComSignal_type * Signal = GET_Signal(SignalId);\r
const ComIPdu_type *IPdu = GET_IPdu(Signal->ComIPduHandleId);\r
- if (isPduBufferLocked(getPduId(IPdu))) {\r
- return COM_BUSY;\r
- }\r
+\r
+ uint8 r = E_OK;\r
const void* pduDataPtr = 0;\r
if (IPdu->ComIPduSignalProcessing == DEFERRED && IPdu->ComIPduDirection == RECEIVE) {\r
pduDataPtr = IPdu->ComIPduDeferredDataPtr;\r
} else {\r
+ if (isPduBufferLocked(getPduId(IPdu))) {\r
+ r = COM_BUSY;\r
+ }\r
pduDataPtr = IPdu->ComIPduDataPtr;\r
}\r
Com_ReadSignalDataFromPduBuffer(\r
pduDataPtr,\r
IPdu->ComIPduSize);\r
\r
- return E_OK;\r
+ return r;\r
}\r
\r
uint8 Com_ReceiveDynSignal(Com_SignalIdType SignalId, void* SignalDataPtr, uint16* Length) {\r
imask_t state;\r
\r
Com_SignalType signalType = Signal->ComSignalType;\r
- if (signalType != UINT8_DYN || isPduBufferLocked(getPduId(IPdu))) {\r
+ if (signalType != UINT8_DYN) {\r
return COM_SERVICE_NOT_AVAILABLE;\r
}\r
\r
*Length = Arc_IPdu->Com_Arc_DynSignalLength;\r
}\r
uint8 startFromPduByte = (Signal->ComBitPosition) / 8;\r
-\r
+ uint8 r = E_OK;\r
const void* pduDataPtr = 0;\r
if (IPdu->ComIPduSignalProcessing == DEFERRED && IPdu->ComIPduDirection == RECEIVE) {\r
pduDataPtr = IPdu->ComIPduDeferredDataPtr;\r
} else {\r
+ if (isPduBufferLocked(getPduId(IPdu))) {\r
+ r = COM_BUSY;\r
+ }\r
pduDataPtr = IPdu->ComIPduDataPtr;\r
}\r
memcpy(SignalDataPtr, pduDataPtr + startFromPduByte, *Length);\r
\r
Irq_Restore(state);\r
\r
- return E_OK;\r
+ return r;\r
}\r
\r
uint8 Com_SendDynSignal(Com_SignalIdType SignalId, const void* SignalDataPtr, uint16 Length) {\r