CLASSIC
Modul: fr
Rolle: constitutive
Konfidenz: 95%
SNIP_CLASSIC_FR_SECTION_8_4_11_Fr_TransmitTxLPdu
Wortlaut
8.4.11 Fr_TransmitTxLPdu
[SWS_Fr_00092] Definition of API function Fr_TransmitTxLPdu
Upstream requirements: SRS_Fr_05003, SRS_Fr_05024
⌈
Service Name
Fr_TransmitTxLPdu
Syntax
Std_ReturnType Fr_TransmitTxLPdu (
uint8 Fr_CtrlIdx,
uint16 Fr_LPduIdx,
const uint8* Fr_LSduPtr,
uint8 Fr_LSduLength,
Fr_SlotAssignmentType* Fr_SlotAssignmentPtr
)
Service ID [hex]
0x0b
Sync/Async
Asynchronous
Reentrancy
Non Reentrant for the same device
Fr_CtrlIdx
Index of FlexRay CC within the context of the FlexRay Driver.
Fr_LPduIdx
This index is used to uniquely identify a FlexRay frame.
Fr_LSduPtr
This reference points to a buffer where the assembled LSdu to be
transmitted within this LPdu is stored at.
Parameters (in)
Fr_LSduLength
Determines the length of the data (in Bytes) to be transmitted.
Parameters (inout)
None
Parameters (out)
Fr_SlotAssignmentPtr
This reference points to the memory location where the actual
cycle, slot ID, and channel of the frame identified by Fr_LPduIdx
shall be stored. A NULL_PTR indicates that the information is not
required by the caller.
Return value
Std_ReturnType
E_OK: API call finished successfully.
E_NOT_OK: API call aborted due to errors.
Description
Transmits data on the FlexRay network.
Available via
Fr.h
⌋
CC precondition for the function Fr_TransmitTxLPdu(): None.
[SWS_Fr_00224] ⌈The function Fr_TransmitTxLPdu() shall perform the following
tasks on FlexRay CC Fr_CtrIdx:
1. Figure out the physical resource (e.g., a buffer) mapped to the transmission of
the FlexRay frame identified by Fr_LPduIdx.
2. If FrExtendedLPduReporting is enabled and Fr_SlotAssignment is not
a NULL pointer, copy expected cycle and slot ID of the transmitted frame to
Fr_SlotAssignment.
3. If the transmit Lpdu supports dynamic payload length (configuration parameter FrIfAllowDynamicLSduLength is set to true), then the transmission
resource shall be reconfigured to match the payload length Fr_LsduLength
passed to the API. Note that the dynamic payload length is only applicable to
frames within the dynamic FlexRay segment.
4. Copy Fr_LsduLength bytes from address Fr_LsduPtr into the FlexRay CC’s
transmission resource and then activate it for transmission.
5. Return E_OK.
⌋
[SWS_Fr_00440]
Upstream requirements: SRS_Fr_05024
⌈If a transmit resource is shared between more than 1 Lpdu (using the reconfiguration mechanism of Fr_PrepareLPdu), then the function Fr_TransmitTxLPdu()
must ensure that the transmit resource is correctly configured to match the properties
of Fr_LpduIdx. This means that if a transmit operation (Fr_TransmitTxLPdu())
is called for a particular Fr_LpduIdx and the Lpdu shares a single buffer with another Lpdu, then it shall check at the time of service invocation whether the buffer is
configured according to the Lpdu to be processed.
The function Fr_TransmitTxLPdu() shall return E_NOT_OK and abort the function
execution if a wrong buffer configuration is detected.⌋
[SWS_Fr_00225] ⌈The Fr module shall ensure that the payload data is transmitted
on the FlexRay network in the same byte order as was passed by the parameter
Fr_LsduPtr in the function Fr_TransmitTxLPdu(). (first byte = lowest address,
last byte = highest address).⌋
[SWS_Fr_00223]
⌈If
the
function
Fr_TransmitTxLPdu()
is
able
to
and
detects
a
hardware
error
while
performing
the
requested
functionality,
then
it
shall
call
Dem_SetEventStatus()
(FR_E_CTRL_TESTRESULT,
DEM_EVENT_STATUS_FAILED) and return E_NOT_OK.⌋
[SWS_Fr_00218] ⌈If development error detection for the Fr module is enabled, and
if the function Fr_TransmitTxLPdu() is called before the successful initialization
of Fr, then the function Fr_TransmitTxLPdu() shall raise the development error
FR_E_INIT_FAILED.⌋
[SWS_Fr_00219] ⌈If development error detection for the Fr module is enabled,
then the function Fr_TransmitTxLPdu() shall check the validity of the parameter
Fr_CtrlIdx. If Fr_CtrlIdx is invalid, then the function Fr_TransmitTxLPdu()
shall raise the development error FR_E_INV_CTRL_IDX.⌋
[SWS_Fr_00220] ⌈If development error detection for the Fr module is enabled,
then the function Fr_TransmitTxLPdu() shall check the validity of the parameter
Fr_LpduIdx. If Fr_LpduIdx is invalid, then the function Fr_TransmitTxLPdu()
shall raise the development error FR_E_INV_LPDU_IDX.⌋
[SWS_Fr_00221] ⌈If development error detection for the Fr module is enabled,
then the function Fr_TransmitTxLPdu() shall check the validity of the parameter
Fr_LsduLength. If Fr_LsduLength is invalid, then the function Fr_TransmitTxLPdu() shall raise the development error FR_E_INV_LENGTH.⌋
[SWS_Fr_00222] ⌈If development error detection for the Fr module is enabled, then
the function Fr_TransmitTxLPdu() shall check whether the parameter Fr_LsduPtr
is a NULL pointer (NULL_PTR). If Fr_LsduPtr is a NULL pointer, then the function
Fr_TransmitTxLPdu() shall raise the development error FR_E_PARAM_POINTER.⌋
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_FlexRayDriver.pdf |
|---|---|
| Dokumentseite | Seite 53 |
| Ziel-Modul | fr (classic) |
| Ziel-Anforderung | SWS_Std_00005 |
| Semantische Rolle | constitutive |
| Automatisierungs-Konfidenz | 0.95 |