SNIP_CLASSIC_STD_SECTION_8_5_4_4_IocReceive_IocRead
Wortlaut
8.5.4.4 IocReceive/IocRead
The IocRead API call is generated for "data" and the IocReceive API call is generated for "events".
[SWS_Os_00738] Definition of API function IocReceive_<IocId>
Upstream requirements: SRS_Os_80020
⌈
Service Name
IocReceive_<IocId>
Syntax
Std_ReturnType IocReceive_<IocId> (
<Data> OUT,
[uint16* numberOfBytesOUT]
)
Service ID [hex]
0x22
Sync/Async
Synchronous
Reentrancy
This function is generated individually for each receiver. The individual function is not reentrant
(if called from different runnable entities that belong to the same receiver), but different
functions can be called in parallel.
Parameters (in)
None
Parameters (inout)
None
OUT
Data reference to be filled with the received data element.
Parameters (out)
numberOfBytesOUT
(optional) data reference to be filled with the length of the
received data element in bytes.
Return value
Std_ReturnType
IOC_E_OK: Data was received successfully
IOC_E_NO_DATA: No data is available for reception.
IOC_E_LOST_DATA: This Overlayed Error indicates that the IOC
communication service refused an IOCSend request from sender
due to an internal buffer overflow. There is no error in the data
returned in parameter.
Description
Performs an "explicit" sender-receiver reception of data elements with "event" semantic for a
unidirectional communication between OS-Applications located on the same or on different
cores..
<IocId> is a unique identifier that references a unidirectional 1:1 or N:1 communication.
Available via
Ioc.h
⌋
[SWS_Os_91005] Definition of API function IocRead_<IocId>[_<ReceiverId>]
Upstream requirements: SRS_Os_80020
⌈
Service Name
IocRead_<IocId>[_<ReceiverId>]
Syntax
Std_ReturnType IocRead_<IocId>[_<ReceiverId>] (
<Data> OUT,
[uint16* numberOfBytesOUT]
)
Service ID [hex]
0x23
Sync/Async
Synchronous
Reentrancy
Non Reentrant This function is generated individually for each receiver. The individual function
is not reentrant (if called from different runnable entities that belong to the same receiver), but
different functions can be called in parallel.
Parameters (in)
None
Parameters (inout)
None
OUT
Data reference to be filled with the received data element.
Parameters (out)
numberOfBytesOUT
(optional) data reference to be filled with the length of the
received data element in bytes.
Return value
Std_ReturnType
IOC_E_OK: Data was received successfully
Description
Performs an "explicit" sender-receiver reception of data elements with "data" semantic for a
unidirectional communication between OS-Applications located on the same or on different
cores.
<IocId> is a unique identifier that references a unidirectional 1:1 or N:1 communication.
<ReceiverId> is used only in N:M communication. Together with <IocId>, it uniquely identifies
the receiver. It is separated from <IocId> with an underscore. If communication is different from
N:M it shall be omitted.
Available via
Ioc.h
⌋
General:
[SWS_Os_00739]
Upstream requirements: SRS_Os_80020
⌈A successful call to the IocReceive/IocRead function indicates that data has been
received successfully in the OUT <Data> given in parameter.
The IocReceive/IocRead function has to be generated in case of intra-core and
inter-core communication.⌋
[SWS_Os_00822]
Upstream requirements: SRS_Os_80020
⌈The IocReceive/IocRead resp.
IocReceiveGroup/IocReadGroup function
shall be wrapped with the memory allocation keywords mechanism
1
#define OS_START_SEC_<sadm>
2
#include "Os_MemMap.h"
3
4
<IocReceive, IocReceiveGroup , IocRead, IocReadGroup>
5
6
#define OS_STOP_SEC_<sadm>
7
#include "Os_MemMap.h"
where <sadm> is the shortName of the SwAddrMethod referenced by the OsMemoryMappingCodeLocationRef of the reading OsApplication configured in OsIocReceivingOsApplicationRef of the respective OsIocCommunication channel.c()
⌋
[SWS_Os_00740]
Upstream requirements: SRS_Os_80020
⌈If the OsIocReceiverPullCB attribute is defined with a callback function name, the
IOC shall call this function on the receiving core for each data transmission.⌋
Parameters:
[SWS_Os_00741]
Upstream requirements: SRS_Os_80020
⌈In case of "data" semantic the IocRead function shall always be able to deliver the
last available datum. In case of senders from different cores, the precision of the order
might be limited by the hardware and implementation.⌋
[SWS_Os_00742]
Upstream requirements: SRS_Os_80020
⌈The IocReceive/IocRead function shall guarantee upon returning from execution
that the reference given in parameter is safe for use.⌋
[SWS_Os_00803]
Upstream requirements: SRS_Os_80020
⌈The OUT <Data> parameter of the IocReceive/IocRead function shall be passed
as an pointer to the array base type for arrays and by reference for all other types.⌋
Returned values:
[SWS_Os_00743]
Upstream requirements: SRS_Os_80020
⌈The IocReceive/IocRead function shall return IOC_E_OK if the data was received
successfully in the OUT <Data> parameter.⌋
[SWS_Os_00744]
Upstream requirements: SRS_Os_80020
⌈In case of "event" semantic and if no data is available the function IocReceive shall
return IOC_E_NO_DATA.⌋
[SWS_Os_00745]
Upstream requirements: SRS_Os_80020
⌈In case of "event" semantic an IOC_E_LOST_DATAOverlayed Error shall be returned
by the IocReceive function if the IOC communication service refused an IocSend
request from sender due to an internal buffer overflow. There is no error in the data
returned in parameter.⌋
Versionen & Provenienz · Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.
Begründung & Zuweisungs-Evidenz
Cited verbatim in the snippet (deterministic citation).
Dokumenten-Herkunft & Rückverfolgbarkeit
| Spezifikations-Dokument | SWS_OS.pdf |
|---|---|
| Dokumentseite | Seite 225 |
| Ziel-Modul | std (classic) |
| Ziel-Anforderung | SWS_Std_00005 |
| Semantische Rolle | constitutive |
| Automatisierungs-Konfidenz | 0.95 |