CLASSIC
Modul: frif
Rolle: constitutive
Konfidenz: 95%
SNIP_CLASSIC_FRIF_SECTION_8_3_18_FrIf_Transmit
Wortlaut
8.3.18 FrIf_Transmit
[SWS_FrIf_05033] Definition of API function FrIf_Transmit ⌈
Service Name
FrIf_Transmit
Syntax
Std_ReturnType FrIf_Transmit (
PduIdType TxPduId,
const PduInfoType* PduInfoPtr
)
Service ID [hex]
0x49
Sync/Async
Synchronous
Reentrancy
Reentrant for different PduIds. Non reentrant for the same PduId.
TxPduId
Identifier of the PDU to be transmitted
Parameters (in)
PduInfoPtr
Length of and pointer to the PDU data and pointer to MetaData.
Parameters (inout)
None
Parameters (out)
None
Return value
Std_ReturnType
E_OK: Transmit request has been accepted.
E_NOT_OK: Transmit request has not been accepted.
Description
Requests transmission of a PDU.
Available via
FrIf.h
⌋
[SWS_FrIf_05318] ⌈
FrIf_Transmit() shall return E_NOT_OK in case the FrIf’s state is FRIF_STATE_OFFLINE.⌋
[SWS_FrIf_05205] ⌈If parameter TxPduId of FrIf_Transmit has an invalid value and if
development error detection is enabled (i.e. FrIfDevErrorDetect equals ON), the function FrIf_Transmit shall report development error code FRIF_E_INV_TXPDUID to the
Det_ReportError service of the DET module.⌋
[SWS_FrIf_05207] ⌈If the parameter FrIfAllowedDynamicSduLength is set to false
and/or if the parameter FrIfImmediate is set to true for the passed TxPduId, the passed
SduDataPtr in parameter PduInfoPtr of FrIf_Transmit shall be checked for NULL_PTR
in case development error detection is enabled (i.e. FrIfDevErrorDetect equals ON). If
in this case the passed SduDataPtr equals NULL_PTR, the function FrIf_Transmit shall
report the development error code FRIF_E_PARAM_POINTER to the Det_ReportError
service of the DET module.
In case of decoupled transmission the PDU with index TxPduId is not yet passed
to the underlying FlexRay Driver module for transmission. FrIf only remembers the
PDU’s transmission request (increment TrigTxCounter 5) This decoupling mechanism
between the call of FrIf_Transmit() and the execution of the FrIfCommunicationAction
(see [ECUC_FrIf_06067]) has some implications:
• The upper layer BSW module may operate asynchronously to the FlexRay Communication System and thus may call FrIf_Transmit() at any point in time.
• The upper layer BSW module must permanently buffer the PDU’s payload date
and must be able to handle a call of its LSduR_FrIfTriggerTransmit() API service
at (from the BSW’s point of view) any arbitrary point in time.
⌋
[SWS_FrIf_05208] ⌈In case of immediate transmission the function FrIf_Transmit shall
pass the PDU (single PDU, no Update bit) to the underlying FlexRay Driver module
immediately for transmission.⌋
[SWS_FrIf_05757] ⌈"If parameter TxPduId is configured for an immediate PDU, and
if configuration parameter FrIfAllowDynamicLSduLength is set to FALSE, the provided length in PduInfoPtr shall be compared with the static configured length (see
[ECUC_FrIf_06054]).
If the length information does not match, FrIf_Transmit() shall return E_NOT_OK and
shall not perform the immediate PDU transmission. If development error detection is
enabled (i.e. FrIfDevErrorDetect equals ON), the function FrIf_Transmit() shall report
development error code FRIF_E_INV_PDULENGTH to the Det_ReportError service of
the DET module.⌋
[SWS_FrIf_05209] ⌈Caveats of FrIf_Transmit:
The FlexRay Interface module has
to be initialized with a call of FrIf_Init() before this API service may be called, see
[SWS_FrIf_05003]⌋
5Limited by static configuration see FrIfCounterLimit
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_FlexRayInterface.pdf |
|---|---|
| Dokumentseite | Seite 68 |
| Ziel-Modul | frif (classic) |
| Ziel-Anforderung | SWS_Std_00005 |
| Semantische Rolle | constitutive |
| Automatisierungs-Konfidenz | 0.95 |