Diagnostic Communication Manager (DCM)
The DCM implements unified diagnostic services according to ISO 14229-1 (UDS) and ISO 15765-4 (OBD). It manages diagnostic sessions, security levels, and service routing.
Funktionen — Übersicht
void Dcm_Init (const Dcm_ConfigType* ConfigPtr);Service for basic initialization of DCM module.void Dcm_GetVersionInfo (Std_VersionInfoType* versionInfo);Returns the version information of this moduleStd_ReturnType Dcm_DemTriggerOnDTCStatus (uint32 DTC, Dem_UdsStatusByteType DTCStatusOld, Dem_UdsStatusByteType DTCStatusNew);Triggers on changes of the UDS status byte.Std_ReturnType Dcm_GetVin (uint8* Data);Function to get the VIN (as defined in SAE J1979-DA)void Dcm_BndMWriteBlockFinish (BndM_BlockIdType BlockId, BndM_ResultType result);Called by BndM to indicate that a block write operation has finished.Std_ReturnType Dcm_SetDeauthenticatedRole (uint16 connectionId, Dcm_AuthenticationRoleType deauthenticatedRole);Sets a new role used in deauthenticated state for that connection.Std_ReturnType Dcm_GetSecurityLevel (Dcm_SecLevelType* SecLevel);This function provides the active security level value.Std_ReturnType Dcm_GetSesCtrlType (Dcm_SesCtrlType* SesCtrlType);This function provides the active session control type value.Std_ReturnType Dcm_GetActiveProtocol (Dcm_ProtocolType* ActiveProtocolType, uint16* ConnectionId, uint16* TesterSourceAddress);This function returns the active UDS protocol detailsStd_ReturnType Dcm_ResetToDefaultSession (void);The call to this function allows the application to reset the current session to Default session.Std_ReturnType Dcm_TriggerOnEvent (uint8 RoeEventId);The call to this function allows to trigger an event linked to a ResponseOnEvent request.Std_ReturnType Dcm_SetActiveDiagnostic (boolean active);Allows to activate and deactivate the call of ComM_DCM_ActiveDiagnostic() function.BufReq_ReturnType Dcm_StartOfReception (PduIdType id, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);This function is called at the start of receiving an N-SDU.BufReq_ReturnType Dcm_CopyRxData (PduIdType id, const PduInfoType* info, PduLengthType* bufferSizePtr);This function is called to provide the received data of an I-PDU segment (N-PDU) to the upper layer.void Dcm_TpRxIndication (PduIdType id, Std_ReturnType result);Called after an I-PDU has been received via the TP API, the result indicates whether the transmission was successful or not.BufReq_ReturnType Dcm_CopyTxData (PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);This function is called to acquire the transmit data of an I-PDU segment (N-PDU).void Dcm_TpTxConfirmation (PduIdType id, Std_ReturnType result);This function is called after the I-PDU has been transmitted on its network, the result indicates whether the transmission was...void Dcm_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.void Dcm_ComM_NoComModeEntered (uint8 NetworkId);This call informs the Dcm module about a ComM mode change to COMM_NO_ COMMUNICATION.void Dcm_ComM_SilentComModeEntered (uint8 NetworkId);This call informs the Dcm module about a ComM mode change to COMM_SILENT_ COMMUNICATION.void Dcm_ComM_FullComModeEntered (uint8 NetworkId);This call informs the Dcm module about a ComM mode change to COMM_FULL_ COMMUNICATION.Std_ReturnType Dcm_CsmAsyncJobFinished (Csm_ResultType result);Can be called from Csm upon finishing an asynchronous job processing.Std_ReturnType Dcm_KeyMAsyncCertificateVerifyFinished (KeyM_CertificateIdType CertID, KeyM_CertificateStatusType Result);Can be called from Key upon finishing an asynchronous certificate verification.Dcm_ReturnReadMemoryType Dcm_ReadMemory (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint8* MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);The Dcm_ReadMemory callout is used to request memory data identified by the parameter memoryAddress and memorySize from the...Dcm_ReturnWriteMemoryType Dcm_WriteMemory (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, const uint8* MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);The Dcm_WriteMemory callout is used to write memory data identified by the parameter memoryAddress and memorySize.Std_ReturnType Dcm_SetProgConditions (Dcm_OpStatusType OpStatus, const Dcm_ProgConditionsType* ProgConditions);The Dcm_SetProgConditions callout allows the integrator to store relevant information prior to jumping to bootloader / jump...Dcm_EcuStartModeType Dcm_GetProgConditions (Dcm_ProgConditionsType* ProgConditions);The Dcm_GetProgConditions callout is called upon Dcm initialization and allows to determine if a response ($50 or $51) has to...Std_ReturnType Dcm_ProcessRequestAddFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Dcm_ProcessRequestDeleteFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Dcm_ProcessRequestReplaceFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Dcm_ProcessRequestReadFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Dcm_ProcessRequestReadDir (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint64* dirInfoLength, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Dcm_WriteFile (Dcm_OpStatusType OpStatus, uint64 DataLength, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Dcm_ReadFileOrDir (Dcm_OpStatusType OpStatus, uint64* DataLength, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.void Dcm_MainFunction (void);This service is used for processing the tasks of the main loop.Std_ReturnType Xxx_GetSeed (const uint8* SecurityAccessDataRecord, Dcm_OpStatusType OpStatus, uint8* Seed, Dcm_NegativeResponseCodeType* ErrorCode);Request to application for asynchronous provision of seed valueStd_ReturnType Xxx_GetSeed (Dcm_OpStatusType OpStatus, uint8* Seed, Dcm_NegativeResponseCodeType* ErrorCode);Request to application for asynchronous provision of seed valueStd_ReturnType Xxx_CompareKey (const uint8* Key, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);Request to application for asynchronous comparing key (DcmDspSecurityUsePort = USE_ ASYNCH_CLIENT_SERVER)Std_ReturnType Xxx_GetSecurityAttemptCounter (Dcm_OpStatusType OpStatus, uint8* AttemptCounter);Read the attempt counter for a specific security level from the applicationStd_ReturnType Xxx_SetSecurityAttemptCounter (Dcm_OpStatusType OpStatus, uint8 AttemptCounter);Set the attempt counter for a specific security level in the applicationStd_ReturnType Xxx_ReadData (uint8* Data);This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_SYNCH_CLIENT_SERVER.Std_ReturnType Xxx_ReadData (Dcm_OpStatusType OpStatus, uint8* Data);This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_ASYNCH_CLIENT_SERVER.Std_ReturnType Xxx_ReadData (Dcm_OpStatusType OpStatus, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_ASYNCH_CLIENT_SERVER.Std_ReturnType Xxx_WriteData (const uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);This function requests the application to write a data value of a DID.Std_ReturnType Xxx_WriteData (const uint8* Data, uint16 DataLength, Dcm_NegativeResponseCodeType* ErrorCode);This function requests the application to write a data value of a DID.Std_ReturnType Xxx_WriteData (const uint8* Data, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);This function requests the application to write a data value of a DID.Std_ReturnType Xxx_WriteData (const uint8* Data, uint16 DataLength, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);This function requests the application to write a data value of a DID.Std_ReturnType Xxx_ReadDataLength (uint16* DataLength);This function requests the application to return the data length in byte of a Data.Std_ReturnType Xxx_ReadDataLength (Dcm_OpStatusType OpStatus, uint16* DataLength);This function requests the application to return the data length in byte of a Data.Std_ReturnType Xxx_ConditionCheckRead (Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application if the conditions to read the Data are correct.Std_ReturnType Xxx_ConditionCheckRead (Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application if the conditions to read the Data are correct.Std_ReturnType Xxx_GetScalingInformation (uint8* ScalingInfo, Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application for the scaling information of a Data.Std_ReturnType Xxx_GetScalingInformation (Dcm_OpStatusType OpStatus, uint8* ScalingInfo, Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application for the scaling information of a Data.Std_ReturnType Xxx_ReturnControlToECU ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to return control to ECU of an IOControl.Std_ReturnType Xxx_ResetToDefault ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to reset an IOControl to default value.Std_ReturnType Xxx_ResetToDefault (Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to reset an IOControl to default value.Std_ReturnType Xxx_FreezeCurrentStateManager ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to freeze the current state of an IOControl.Std_ReturnType Xxx_FreezeCurrentStateManager (Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to freeze the current state of an IOControl.Std_ReturnType Xxx_ShortTermAdjustment (const uint8* ControlStateInfo, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to adjust the IO signal.Std_ReturnType Xxx_ShortTermAdjustment (const uint8* ControlStateInfo, uint16 DataLength, Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to adjust the IO signal.Std_ReturnType Xxx_IsDidAvailable (uint16 DID, Dcm_OpStatusType OpStatus, Dcm_DidSupportedType* supported);This function requests if a specific DID is available within the range or not.Std_ReturnType Xxx_ReadDidData (uint16 DID, uint8* Data, Dcm_OpStatusType OpStatus, uint16 DataLength, Dcm_NegativeResponseCodeType ErrorCode);This function requests to the application a data value of a DIDStd_ReturnType Xxx_WriteDidData (uint16 DID, const uint8* Data, Dcm_OpStatusType OpStatus, uint16 DataLength, Dcm_NegativeResponseCodeType ErrorCode);This function requests the application to write a data value of a DID.Std_ReturnType Xxx_ReadDidRangeDataLength (uint16 DID, Dcm_OpStatusType OpStatus, uint16* DataLength);This function requests the application to return the data length of a DID Range.Std_ReturnType Xxx_GetInfotypeValueData (Dcm_OpStatusType OpStatus, uint8* DataValueBuffer, uint8* DataValueBufferSize);The function provides the data related to the requested Infotype.Std_ReturnType Xxx_Start ([ DcmDspRoutineSignalType dataIn_1, ... DcmDspRoutineSignalType dataIn_n ], [ const uint8* dataInVar ], Manager Dcm_OpStatusType OpStatus, [ DcmDspRoutineSignalType dataOut_1, ... DcmDspRoutineSignalType dataOut_n ], [ uint8* dataOutVar ], [ uint16* currentDataLength ], Dcm_NegativeResponseCodeType ErrorCode); ⚠️This function requests to the application to start the execution of a routine.Std_ReturnType Xxx_StartConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);This function indicates the transmission of a response to a StartRoutine requestStd_ReturnType Xxx_Stop ([ DcmDspRoutineSignalType dataIn_1, ... DcmDspRoutineSignalType dataIn_n ], [ const uint8* dataInVar ], [ DcmDspRoutineSignalType dataOut_1, ... DcmDspRoutineSignalType dataOut_n ], [ uint8* dataOutVar ], [ uint16* currentDataLength ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to stop the execution of a routineStd_ReturnType Xxx_StopConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);This function indicates the transmission of a response to a StopRoutine requestStd_ReturnType Xxx_RequestResults (Dcm_OpStatusType OpStatus, [ DcmDspRoutineSignalType* dataIn_1, ... DcmDspRoutineSignalType* dataIn_n ], [ const uint8* dataInVar ], [ DcmDspRoutineSignalType* dataOut_1, ... DcmDspRoutineSignalType* dataOut_n ], [ uint8* dataOutVar ], [ uint16* variableDataLength ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application the result of a routine executionStd_ReturnType Xxx_RequestResultsConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);This function indicates the transmission of a response to a RequestRoutineResults requestStd_ReturnType Xxx_RequestControl (uint8* OutBuffer, const uint8* InBuffer);Invokes a TID-specific function taking a configured number of bytes as input and returing a fixed number of bytes as output.Std_ReturnType Xxx_StartProtocol (Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress, uint16 ConnectionId);This function allows the application to examine the environment conditions and enable/disable further processing of the protocol.Std_ReturnType Xxx_StopProtocol (Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress, uint16 ConnectionId);This function informs the application of the protocol stop.Std_ReturnType Xxx_Indication (uint8 SID, const uint8* RequestData, uint32 DataSize, uint8 ReqType, uint16 ConnectionId, Dcm_NegativeResponseCodeType* ErrorCode, Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress);This function indicates to the application that a service is about to be executed and allows the application to reject the...Std_ReturnType Xxx_Confirmation (uint8 SID, uint8 ReqType, uint16 ConnectionId, Dcm_ConfirmationStatusType ConfirmationStatus, Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress);This function confirms to the application the successful transmission or a transmission error of a diagnostic service.Std_ReturnType Xxx_ClearDTCCheckFnc (uint32 GoDTC, Dcm_NegativeResponseCodeType* ErrorCode);Callout function for condition check, manufacturer / supplier specific checks on the groupOf DTC, which is requested to clear.Std_ReturnType Xxx_ProcessRequestDownload (Dcm_OpStatusType OpStatus, uint8 DataFormatIdentifier, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint32* BlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Xxx_ProcessRequestTransferExit (Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Xxx_ProcessRequestUpload (Dcm_OpStatusType OpStatus, uint8 DataFormatIdentifier, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint32* BlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Dcm_ReturnReadMemoryType Xxx_ProcessTransferDataRead (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, Dcm_RequestDataArrayType MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);The ProcessTransferDataRead callout is used to request memory data identified by the parameter memoryAddress and memorySize...Dcm_ReturnWriteMemoryType Xxx_ProcessTransferDataWrite (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, const Dcm_RequestDataArrayType MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);The ProcessTransferDataWrite callout is used to write memory data identified by the parameter memoryAddress and memorySize.
Typen — Übersicht
enum Dcm_StatusTypeBase item type to transport status information.enum Dcm_CommunicationModeType Managerstruct Dcm_ConfigTypeThis type defines a data structure for the post build parameters of the DCM.Dcm_ReturnReadMemoryTypeReturn values of Callout Dcm_ReadMemoryDcm_ReturnWriteMemoryTypeReturn type of callout Dcm_WriteMemoryenum Dcm_EcuStartModeTypeAllows the DCM to know if a diagnostic response shall be sent in the case of a jump from bootloaderDcm_ProgConditionsTypeUsed in Dcm_SetProgConditions() to allow the integrator to store relevant information prior to jumping to bootloader / jump...Dcm_MsgItemTypeBase type for diagnostic message itemDcm_MsgTypeBase type for diagnostic message (request, positive or negative response)Dcm_MsgLenTypeLength of diagnostic message (request, positive or negative response).struct Dcm_MsgAddInfoTypeAdditional information on message request.Dcm_IdContextTypeThis message context identifier can be used to determine the relation between request and response confirmation.struct Dcm_MsgContextTypeThis data structure contains all information which is necessary to process a diagnostic message from request to response and...enum Dcm_ExtendedOpStatusTypeenum Dcm_OpStatusTypeenum Dcm_ConfirmationStatusTypeDcm_SecLevelTypeSecurity Level type definitionDcm_SesCtrlTypeSession type definition.Dcm_ProtocolTypeType Dcm_ProtocolType.Dcm_NegativeResponseCodeTypeType Dcm_NegativeResponseCodeType.Dcm_DataArrayTypeDcm_InfoTypeDcm_RequestDataArrayTypeDcm_InputOutputControlParameterTypeDcm_IOOperationResponseTypeDcm_DidSupportedTypeDcm_FileAndDirNameTypeDcm_ResponseDataArrayTypeDcm_AuthenticationRoleTypeDiagnosticSessionControlModeSwitchInterfaceA ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Diagnostic SessionEcuResetModeSwitchInterfaceA ModeSwitchInterface PPortPrototype used to notify SW-Cs about an upcoming ECU Reset and its typeModeRapidPowerShutDownModeSwitchInterfaceA ModeSwitchInterface PPortPrototype used to notify SW-Cs about the rapid power shut down modeControlDTCSettingModeSwitchInterfaceA ModeSwitchInterface PPortPrototype used to notify SW-Cs about the DTC Setting modeSecurityAccessModeSwitchInterfaceA ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Security LevelDcmDiagnosticSessionControlModeDeclarationGroup representing the different diagnostic sessions Further modes to be added:...DcmEcuResetModeDeclarationGroup representing the different ECU reset typesDcmModeRapidPowerShutDownModeDeclarationGroup representing the enable/disable state of rapid power shutdownDcmCommunicationControlModeDeclarationGroup representing the different communication control statesDcmControlDTCSettingModeDeclarationGroup representing the enable/disable state for DTC storageDcmResponseOnEventModeDeclarationGroup representing the state of a Response On EventDcmSecurityAccessModeDeclarationGroup representing the different diagnostic security levels Further modes to be added:...
Funktionen & Typen — Detailansicht
function Dcm_Init [SWS_Dcm_00037] 📄 PDF
void Dcm_Init (const Dcm_ConfigType* ConfigPtr);
Service for basic initialization of DCM module.
Die synchrone und nicht-reentrante Funktion Dcm_Init dient der grundlegenden Initialisierung des DCM-Moduls [SWS_Dcm_00037]. Sie nimmt über den Parameter ConfigPtr einen Zeiger auf das Konfigurationsset bei Post-Build-Varianten entgegen und besitzt keinen Rückgabewert [SWS_Dcm_00037]. Während der Ausführung initialisiert das Modul alle globalen DCM-Variablen mit den Werten aus der Konfiguration [SWS_Dcm_00334].
Im Rahmen des Initialisierungsablaufs werden verschiedene Funktionsbereiche und Zustände konfiguriert:
- DDDID-Verwaltung: Ist der Konfigurationsparameter
DcmDDDIDStorageaufFALSEgesetzt, initialisiert das DCM beim Hochlauf alle dynamisch definierten Datenbezeichner (DDDIDs) als nicht vorhanden [SWS_Dcm_00866]. Ist der Parameter aufTRUEgesetzt, werden die DDDID-Definitionen aus dem NvM wiederhergestellt [SWS_Dcm_00867]. - Response on Event (ROE): Das DCM überführt den Zustand jedes Ereignisses während
Dcm_Initin den Status 'ROE cleared' [SWS_Dcm_00872]. - Authentifizierungsstatus: Wenn
DcmDspAuthenticationPersistStateModeRuleRefnicht konfiguriert ist oder die referenzierte Modus-Regel zufalseausgewertet wird, versetzt das Modul alle Authentifizierungszustände in den Zustand 'deauthenticated' [SWS_Dcm_01480]. - Kommunikationsstatus: Nach Abschluss von
Dcm_Initsetzt das DCM den ParameterActiveDiagnosticauf 'DCM_COMM_ACTIVE' [SWS_Dcm_01069].
Hinsichtlich der Ausführungsumgebung ist festgelegt, dass Dcm_Init nicht reentrant ist [SWS_Dcm_00037]. Spezifische Fehlercodes sowie standardisierte Fehlermeldungen an DET oder DEM sind für diesen Initialisierungsdienst in der Schnittstellenspezifikation nicht ausgewiesen [SWS_Dcm_00037].
Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation generiert.
Implementer's Guide folgt (Komplexität I2)
function Dcm_GetVersionInfo [SWS_Dcm_00065] 📄 PDF
void Dcm_GetVersionInfo (Std_VersionInfoType* versionInfo);
Returns the version information of this module
function Dcm_DemTriggerOnDTCStatus [SWS_Dcm_00614] 📄 PDF
Std_ReturnType Dcm_DemTriggerOnDTCStatus (uint32 DTC, Dem_UdsStatusByteType DTCStatusOld, Dem_UdsStatusByteType DTCStatusNew);
Triggers on changes of the UDS status byte. Allows to trigger on ROE Event for subservice On DTCStatusChanged.
Verwendung
Die synchrone Schnittstelle Dcm_DemTriggerOnDTCStatus (Service-ID 0x2B) ist über den Header Dcm_Dem.h verfügbar und dient dazu, Änderungen des UDS-Statusbytes an das DCM zu melden [SWS_Dcm_00614]. Dies gestattet dem DCM das Auslösen von Response-on-Event-Ereignissen (ROE) für den Diagnosedienst-Subservice OnDTCStatusChanged [SWS_Dcm_00614]. Beim Aufruf nimmt die Funktion drei Eingabeparameter entgegen: den betroffenen Fehlercode DTC (uint32), den vorherigen Zustand DTCStatusOld (Dem_UdsStatusByteType) sowie den aktualisierten Zustand DTCStatusNew (Dem_UdsStatusByteType) [SWS_Dcm_00614]. Ein- und Ausgabeparameter existieren nicht [SWS_Dcm_00614].
Rückgabewerte und Fehlerbehandlung
Als Rückgabewert liefert die Funktion den Typ Std_ReturnType, wobei laut Spezifikation ausnahmslos E_OK zurückgegeben wird [SWS_Dcm_00614]. Spezifische Fehlercodes, Rückfallwerte oder gesonderte Benachrichtigungen an DEM oder DET sind für diesen Aufruf nicht ausgewiesen.
Nebenläufigkeit und Zusammenspiel
Die Funktion ist als reentrant eingestuft und verfügt über eine synchrone Ausführungssemantik [SWS_Dcm_00614]. Hinsichtlich des Zusammenspiels mit Diagnoseanforderungen gilt eine feste Randbedingung: Falls im DCM aktuell eine Anforderung zum Löschen des Ereignisspeichers (EventMemory) verarbeitet wird, muss das DCM eingehende Aufrufe des Callbacks Dcm_DemTriggerOnDTCStatus ignorieren [SWS_Dcm_01410].
Dieser Nutzungshinweis basiert auf den Spezifikationen des AUTOSAR-Classic-Releases R20-11.
Implementer's Guide folgt (Komplexität I2)
function Dcm_GetVin [SWS_Dcm_00950] 📄 PDF
Std_ReturnType Dcm_GetVin (uint8* Data);
Function to get the VIN (as defined in SAE J1979-DA)
function Dcm_BndMWriteBlockFinish [SWS_Dcm_91088] 📄 PDF
void Dcm_BndMWriteBlockFinish (BndM_BlockIdType BlockId, BndM_ResultType result);
Called by BndM to indicate that a block write operation has finished.
Die Funktion Dcm_BndMWriteBlockFinish dient als Benachrichtigungsschnittstelle des BndM an das DCM, um den Abschluss einer Block-Schreiboperation anzuzeigen [SWS_Dcm_91088]. Die Funktion ist in der Header-Datei Dcm.h deklariert, besitzt die Service-ID 0x7a, liefert keinen Rückgabewert (void) und wird synchron ausgeführt [SWS_Dcm_91088].
Die Schnittstelle erwartet zwei Übergabeparameter [SWS_Dcm_91088]:
BlockId(Typ:BndM_BlockIdType): Kennzeichnet den Block, dessen Schreibvorgang abgeschlossen wurde.result(Typ:BndM_ResultType): Übermittelt das Ergebnis der Schreiboperation an das DCM.
Das funktionale Zusammenspiel und das Verhalten im Fehlerfall sind an zuvor durch das DCM ausgelöste atomare BndM-Schreiboperationen gekoppelt:
- Wird
Dcm_BndMWriteBlockFinishmit dem Statusresult = E_OKaufgerufen, sendet das DCM eine positive Diagnoseantwort auf die ausstehende Anforderung [SWS_Dcm_01584]. - Wird die Funktion mit
result = E_NOT_OKaufgerufen, reagiert das DCM im Fehlerfall mit einer negativen Diagnoseantwort0x72(generalProgrammingFailure) [SWS_Dcm_01585].
Bezüglich der Nebenläufigkeit ist Dcm_BndMWriteBlockFinish als nicht reentrant (Non Reentrant) spezifiziert [SWS_Dcm_91088]. Aufrufer müssen folglich sicherstellen, dass die Funktion nicht parallel oder unterbrechend durch mehrere Kontexte aufgerufen wird.
Dieser Nutzungshinweis wurde von einer KI generiert und basiert auf der AUTOSAR-Spezifikation R20-11.
function Dcm_SetDeauthenticatedRole [SWS_Dcm_91069] 📄 PDF
Std_ReturnType Dcm_SetDeauthenticatedRole (uint16 connectionId, Dcm_AuthenticationRoleType deauthenticatedRole);
Sets a new role used in deauthenticated state for that connection. The set role is valid until the connection switches into authenticated state or the ECU is reset.
Verwendung und Aufrufkontext
Die Funktion Dcm_SetDeauthenticatedRole wird synchron und reentrant ausgeführt ([SWS_Dcm_91069]). Sie ermöglicht es einer Softwarekomponente, für eine durch connectionId identifizierte Verbindung eine neue Rolle deauthenticatedRole vom Typ Dcm_AuthenticationRoleType für den deauthentifizierten Zustand zuzuweisen ([SWS_Dcm_91069], [SWS_Dcm_01486]). Als Rückgabewert wird ausnahmslos E_OK geliefert ([SWS_Dcm_91069]).
Zustandsbedingungen und Fehlerbehandlung
Ein Aufruf wird vom DCM ausschließlich verarbeitet, wenn sich die Verbindung im deauthentifizierten Zustand (deauthenticated state) befindet ([SWS_Dcm_01487]). Da die Signatur keine alternativen Fehlerwerte vorsieht und stets E_OK zurückgibt ([SWS_Dcm_91069]), dürfte ein Aufruf außerhalb dieses Zustands vermutlich ohne Fehlermeldung verworfen werden. Frage Q-6f14770eae6ce896 (offen) Spezifische DET- oder DEM-Ereignisse sind in der Spezifikation nicht definiert.
Gültigkeitsdauer und Lebenszyklus
Wird die Rolle für den deauthentifizierten Zustand erfolgreich übernommen ([SWS_Dcm_01486]), bleibt diese Zuweisung temporär bestehen:
- Die gesetzte Rolle wird verworfen, sobald die Verbindung in den authentifizierten Zustand (authenticated state) wechselt ([SWS_Dcm_01488]).
- Die Gültigkeit endet spätestens bei einem Reset des Steuergeräts ([SWS_Dcm_91069]).
Dieser Nutzungshinweis wurde automatisch auf Basis der AUTOSAR-Spezifikation generiert.
Implementer's Guide folgt (Komplexität I2)
function Dcm_GetSecurityLevel [SWS_Dcm_00338] 📄 PDF
Std_ReturnType Dcm_GetSecurityLevel (Dcm_SecLevelType* SecLevel);
This function provides the active security level value.
Die synchrone und reentrante Funktion Dcm_GetSecurityLevel fragt die aktuell aktive Sicherheitsstufe des DCM ab und stellt diese bereit [SWS_Dcm_00338]. Die Funktion ist über den Header Dcm.h deklariert und übergibt den ermittelten Statuswert über den Ausgabeparameter SecLevel vom Typ Dcm_SecLevelType* an den Aufrufer. Als Rückgabewert wird laut Spezifikation ausnahmslos E_OK zurückgeliefert [SWS_Dcm_00338].
Die Ermittlung der internen Sicherheitsstufe basiert auf dem vom Tester im Rahmen des Dienstes SecurityAccess übermittelten Parameter SecurityAccessType gemäß der festen Umrechnungsformel SecurityLevel = (SecurityAccessType + 1) / 2 [SWS_Dcm_00338].
Im Zusammenspiel mit der übergeordneten Diagnosedienstverarbeitung greift unter anderem das DSP-Submodul auf diesen Wert zurück: Empfängt das Modul eine konfigurierte Anfrage mit dem Subfunktionstyp „requestSeed“ (ungerader Wert) und ist die zugehörige Zugriffsebene laut Dcm_GetSecurityLevel bereits aktiv, setzt das DSP-Submodul den Seed-Inhalt auf 0x00 [SWS_Dcm_00323].
Hinsichtlich Nebenläufigkeit und Fehlerbehandlung ist die Funktion als reentrant definiert [SWS_Dcm_00338]. Da keine spezifischen Fehlercodes oder DET-Prüfungen spezifiziert sind und stets E_OK zurückgegeben wird, dürfte keine Nullzeigerprüfung stattfinden; Aufrufer müssen daher vermutlich stets einen gültigen Zeiger auf Speicherplatz für SecLevel übergeben. Frage Q-5402d82ac0151b22 (offen)
Dieser Text wurde von einer KI erstellt. Angaben können unvollständig sein; maßgeblich ist die AUTOSAR-Spezifikation.
Implementer's Guide folgt (Komplexität I1)
function Dcm_GetSesCtrlType [SWS_Dcm_00339] 📄 PDF
Std_ReturnType Dcm_GetSesCtrlType (Dcm_SesCtrlType* SesCtrlType);
This function provides the active session control type value.
function Dcm_GetActiveProtocol [SWS_Dcm_00340] 📄 PDF
Std_ReturnType Dcm_GetActiveProtocol (Dcm_ProtocolType* ActiveProtocolType, uint16* ConnectionId, uint16* TesterSourceAddress);
This function returns the active UDS protocol details
function Dcm_ResetToDefaultSession [SWS_Dcm_00520] 📄 PDF
Std_ReturnType Dcm_ResetToDefaultSession (void);
The call to this function allows the application to reset the current session to Default session. Example: Automatic termination of an extended diagnostic session upon exceeding of a speed limit.
Die synchrone Funktion Dcm_ResetToDefaultSession ermöglicht es der Applikation, die aktive Diagnosesitzung in die Standard-Sitzung (Default Session) zurückzusetzen [SWS_Dcm_00520]. Ein typischer Anwendungsfall ist die automatische Beendigung einer erweiterten Diagnosesitzung, sobald ein Fahrzeug eine vorgegebene Geschwindigkeitsschwelle überschreitet [SWS_Dcm_00520].
Verwendung und Fehlerbehandlung
-
Schnittstelle und Parameter: Die Funktion ist über
Dcm.hmit der Service-ID0x2averfügbar, besitzt die SignaturStd_ReturnType Dcm_ResetToDefaultSession (void)und erfordert keine Übergabeparameter [SWS_Dcm_00520]. -
Rückgabewert und Fehler: Als Rückgabetyp wird
Std_ReturnTypezurückgeliefert, wobei ausnahmslos der WertE_OKzurückgegeben wird [SWS_Dcm_00520]. Spezifische Fehlercodes, DET-Laufzeitprüfungen oder DEM-Ereignisse sind in den Anforderungen für diesen Aufruf nicht spezifiziert.
Nebenläufigkeit und Zusammenspiel
Die Ausführung erfolgt synchron und ist als reentrant deklariert [SWS_Dcm_00520].
Neben dem eigentlichen Sitzungswechsel stößt Dcm_ResetToDefaultSession zwingend einen Moduswechsel für den ModeDeclarationGroupPrototype DcmDiagnosticSessionControl an [SWS_Dcm_01062]. Hierbei ruft die Funktion intern SchM_Switch_<bsnp>_DcmDiagnosticSessionControl(RTE_MODE_DcmDiagnosticSessionControl_DCM_DEFAULT_SESSION) auf, um die Systemumgebung über den Wechsel in die Standard-Sitzung zu benachrichtigen [SWS_Dcm_01062].
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation von AUTOSAR Classic R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
function Dcm_TriggerOnEvent [SWS_Dcm_00521] 📄 PDF
Std_ReturnType Dcm_TriggerOnEvent (uint8 RoeEventId);
The call to this function allows to trigger an event linked to a ResponseOnEvent request. On the function call, the DCM will execute the associated service if the corresponding Mode of the Roe EventId is 'ROE started'.
Die synchrone Funktion Dcm_TriggerOnEvent (Service-ID 0x2D), bereitgestellt über den Header Dcm.h, dient dem Auslösen eines Ereignisses, das mit einer ResponseOnEvent-Anforderung (ROE) verknüpft ist [SWS_Dcm_00521].
Aufruf und Funktionsweise
Der Aufrufer übergibt als einzigen Parameter RoeEventId (Eingabeparameter vom Typ uint8), welcher das auszulösende Ereignis identifiziert; Ein- oder Ausgabeparameter existieren nicht [SWS_Dcm_00521]. Sobald die Funktion aufgerufen wird, prüft das DCM den Zustand des Ereignisses: Ist das übergebene RoeEvent aktiv, löst das DCM das entsprechende Ereignis aus [SWS_Dcm_00920]. Das DCM führt den mit dem Ereignis assoziierten Dienst aus, sofern der zugehörige Modus der RoeEventId auf ‚ROE started‘ steht [SWS_Dcm_00521].
Rückgabewerte und Validierung
Der Aufruf liefert synchron einen Status vom Typ Std_ReturnType zurück, der über die Gültigkeit des Parameters Auskunft gibt [SWS_Dcm_00521]:
E_OK: Der übergebene Wert fürRoeEventIdist gültig [SWS_Dcm_00521].E_NOT_OK: Der Wert vonRoeEventIdist ungültig [SWS_Dcm_00521].
Nebenläufigkeit und Eigenschaften
Die Schnittstelle ist als reentrant spezifiziert [SWS_Dcm_00521]. Sie kann somit nebenläufig aufgerufen werden, um Ereignisse synchron an das DCM zu melden [SWS_Dcm_00521].
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
function Dcm_SetActiveDiagnostic [SWS_Dcm_01068] 📄 PDF
Std_ReturnType Dcm_SetActiveDiagnostic (boolean active);
Allows to activate and deactivate the call of ComM_DCM_ActiveDiagnostic() function.
function Dcm_StartOfReception [SWS_Dcm_00094] 📄 PDF
BufReq_ReturnType Dcm_StartOfReception (PduIdType id, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);
This function is called at the start of receiving an N-SDU. The N-SDU might be fragmented into multiple N-PDUs (FF with one or more following CFs) or might consist of a single N-PDU (SF). The service shall provide the currently available maximum buffer size when invoked with TpSdu Length equal to 0. This function might be called in interrupt context.
Die synchrone und reentrante Funktion Dcm_StartOfReception ([SWS_Dcm_00094]) wird von einem Transportprotokollmodul zu Beginn des Empfangs einer N-SDU aufgerufen – sowohl bei Einzelnachrichten (Single Frame, SF) als auch bei segmentierten Nachrichten (First Frame, FF). Sie kann im Interrupt-Kontext aufgerufen werden ([SWS_Dcm_00094]). Der Aufruf bewirkt unter anderem das Stoppen des S3Server-Timers bei Beginn des Empfangs ([SWS_Dcm_00141]).
Über info werden Nutzdaten und Metadaten übergeben; bei generischen Verbindungen werden hierüber unter anderem SOURCE_ADDRESS_16 gespeichert ([SWS_Dcm_00848]) sowie TARGET_ADDRESS_16 geprüft ([SWS_Dcm_01347]). Ist weder Payload noch Metadatum vorhanden, wird NULL_PTR übergeben ([SWS_Dcm_00094]). Über bufferSizePtr meldet die Funktion den verfügbaren Puffer zur Berechnung der Block Size (BS) zurück ([SWS_Dcm_00094]). Bei erfolgreicher Annahme liefert sie BUFREQ_OK, woraufhin Folgedaten über Dcm_CopyRxData kopiert werden ([SWS_Dcm_00443]).
Fehler- und Ablehnungsfälle werden über den Rückgabewert signalisiert:
BUFREQ_E_OVFL: Wird zurückgegeben, wenn die angeforderte LängeTpSduLengthgrößer als der im DCM verfügbare Puffer ist ([SWS_Dcm_00094], [SWS_Dcm_00444]).bufferSizePtrbleibt unverändert ([SWS_Dcm_00094]).BUFREQ_E_NOT_OK: Wird zurückgegeben, wennTpSduLengthgleich 0 ist ([SWS_Dcm_00642]) oder eine laufende Anforderung auf derselben Verbindung blockiert ([SWS_Dcm_00557]). Bei einer anderen Verbindung entscheidet der ParameterDcmDslDiagRespOnSecondDeclinedRequest, ob mitBUFREQ_E_NOT_OKabgewiesen ([SWS_Dcm_00790]) oder mitBUFREQ_OKakzeptiert wird ([SWS_Dcm_00788]). Nebenläufige TesterPresent-Anfragen werden ebenfalls mitBUFREQ_OKquittiert ([SWS_Dcm_00557]).
Dieser Text wurde von einer KI erstellt. Alle Angaben basieren ausschließlich auf dem AUTOSAR-R20-11-Spezifikationsauszug.
Implementer's Guide folgt (Komplexität I2)
function Dcm_CopyRxData [SWS_Dcm_00556] 📄 PDF
BufReq_ReturnType Dcm_CopyRxData (PduIdType id, const PduInfoType* info, PduLengthType* bufferSizePtr);
This function is called to provide the received data of an I-PDU segment (N-PDU) to the upper layer. Each call to this function provides the next part of the I-PDU data. The size of the remaining buffer is written to the position indicated by bufferSizePtr. This function might be called in interrupt context.
Verwendung
Die synchrone Funktion Dcm_CopyRxData wird aufgerufen, um empfangene Daten eines I-PDU-Segments (N-PDU) an die obere Schicht im DCM zu übergeben [SWS_Dcm_00556]. Jeder Aufruf stellt den nächsten Teil der I-PDU-Daten bereit [SWS_Dcm_00556]. Über den Parameter id wird die empfangene I-PDU identifiziert [SWS_Dcm_00556]. Der Zeiger info stellt über SduDataPtr den Quellpuffer sowie über SduLength die Anzahl der zu kopierenden Bytes bereit [SWS_Dcm_00556]. Nach Abschluss des Kopiervorgangs wird die verbleibende freie Puffergröße im DCM über bufferSizePtr zurückgemeldet [SWS_Dcm_00556], [SWS_Dcm_00443].
Wird Dcm_CopyRxData mit einer SduLength von 0 aufgerufen, dient dies der reinen Pufferabfrage [SWS_Dcm_00556]. In diesem Fall darf SduDataPtr ein NULL_PTR sein; die Funktion gibt BUFREQ_OK zurück und trägt die verbleibende Größe des Empfangspuffers in bufferSizePtr ein [SWS_Dcm_00556], [SWS_Dcm_00996].
Zusammenspiel
Vor dem Kopieren muss Dcm_StartOfReception mit BUFREQ_OK abgeschlossen worden sein; nachfolgende Aufrufe von Dcm_CopyRxData kopieren die Daten aus dem bereitgestellten Puffer in den DCM-Puffer und aktualisieren bufferSizePtr [SWS_Dcm_00443].
Fehlerbehandlung
Die Funktion gibt den Status als BufReq_ReturnType zurück: BUFREQ_OK bestätigt das erfolgreiche Kopieren oder die Pufferabfrage, während BUFREQ_E_NOT_OK anzeigt, dass aufgrund eines Fehlers keine Daten kopiert wurden [SWS_Dcm_00556], [SWS_Dcm_00996].
Nebenläufigkeit und Einschränkungen
Dcm_CopyRxData ist reentrant spezifiziert und darf im Interrupt-Kontext aufgerufen werden [SWS_Dcm_00556]. Die Schnittstelle wird über Dcm.h bereitgestellt [SWS_Dcm_00556].
Dieser Verwendungshinweis wurde von einer KI auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
function Dcm_TpRxIndication [SWS_Dcm_00093] 📄 PDF
void Dcm_TpRxIndication (PduIdType id, Std_ReturnType result);
Called after an I-PDU has been received via the TP API, the result indicates whether the transmission was successful or not. This function might be called in interrupt context.
Verwendung und Aufrufkontext
Die synchrone Funktion Dcm_TpRxIndication wird nach dem Empfang einer I-PDU über die TP-API aufgerufen, typischerweise durch das Modul PduR [SWS_Dcm_00093], [SWS_Dcm_00112]. Sie übergibt die PDU-Identifikation (id) sowie das Empfangsergebnis (result) und liefert keinen Rückgabewert zurück [SWS_Dcm_00093]. Da die Funktion reentrant ist und im Interrupt-Kontext aufgerufen werden darf, müssen Aufrufer und Modulzustände für entsprechende Nebenläufigkeit ausgelegt sein [SWS_Dcm_00093].
Verhalten bei fehlerhaftem Empfang
Wird Dcm_TpRxIndication mit einem Ergebniswert aufgerufen, der von E_OK abweicht, darf das Modul Dcm den der referenzierten I-PDU zugewiesenen Puffer nicht auswerten [SWS_Dcm_00344].
Zusammenspiel der Submodule
Das Submodul DSL leitet empfangene Daten ausschließlich dann an das Submodul DSD weiter, wenn der Aufruf mit dem Parameterwert result = E_OK erfolgt ist [SWS_Dcm_00111]. Für Diagnoseanfragen gelten dabei spezifische Regeln:
- Handelt es sich bei der erfolgreich empfangenen Anfrage (
Result = E_OK) um den BefehlTesterPresentmit gesetztemsuppressPosRspMsgIndicationBit(SID0x3E, Subfunktion0x80), setzt das DSL-Submodul den Session-Timeout-TimerS3Serverzurück [SWS_Dcm_00112]. - In diesem Fall wird die Anfrage durch das DSL-Submodul nicht zur weiteren Interpretation an das DSD-Submodul weitergeleitet [SWS_Dcm_00113].
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR Classic R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Dcm_CopyTxData [SWS_Dcm_00092] 📄 PDF
BufReq_ReturnType Dcm_CopyTxData (PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);
This function is called to acquire the transmit data of an I-PDU segment (N-PDU). Each call to this function provides the next part of the I-PDU data unless retry->TpDataState is TP_ DATARETRY. In this case the function restarts to copy the data beginning at the offset from the current position indicated by retry->TxTpDataCnt. The size of the remaining data is written to the position indicated by availableDataPtr. This function might be called in interrupt context.
Verwendung und Semantik
Die synchrone und reentrante Funktion Dcm_CopyTxData wird von Modulen der unteren Schicht (wie Transportprotokollen) aufgerufen, um Daten eines I-PDU-Segments (N-PDU) für die Übertragung abzurufen [SWS_Dcm_00092]. Über den Parameter info übergibt der Aufrufer den Zielpuffer SduDataPtr und die gewünschte Bytelänge SduLength. Ein Wert von 0 für SduLength kann genutzt werden, um Statusänderungen über retry zu signalisieren oder die Menge verfügbarer Daten abzufragen; SduDataPtr darf in diesem Fall ein NULL_PTR sein [SWS_Dcm_00092]. Über availableDataPtr meldet das DCM die verbleibende Bytezahl im Sendepuffer, die von TP-Modulen zur Bestimmung nachfolgender Segmentgrößen verwendet werden kann und die Zahl der noch zu sendenden Bytes nicht überschreiten darf [SWS_Dcm_00092], [SWS_Dcm_00350].
Pufferverwaltung und Übertragungswiederholung
Über den Parameter retry wird die Quittierung oder Wiederholung von Daten gesteuert [SWS_Dcm_00092]:
- Ist
retryeinNULL_PTR, dürfen die Daten direkt nach dem Kopiervorgang aus dem Puffer entfernt werden [SWS_Dcm_00092]. - Bei
TP_CONFPENDINGmüssen zuvor kopierte Daten für eine eventuelle Fehlerbehebung im TP-Puffer verbleiben [SWS_Dcm_00092]. TP_DATACONFbestätigt alle vor diesem Aufruf kopierten Daten zur Freigabe [SWS_Dcm_00092].TP_DATARETRYkopiert Daten ab dem OffsetTxTpDataCntrelativ zur aktuellen Position erneut [SWS_Dcm_00092].
Rückgabewerte und Fehlerbehandlung
Wurden die Daten erfolgreich und vollständig kopiert, gibt die Funktion BUFREQ_OK zurück [SWS_Dcm_00092], [SWS_Dcm_00346]. Sind nicht genügend Sendedaten verfügbar, wird kein Kopiervorgang durchgeführt und BUFREQ_E_BUSY zurückgegeben; die untere Schicht kann den Aufruf später wiederholen [SWS_Dcm_00092]. Schlägt die Anfrage fehl, liefert die Funktion BUFREQ_E_NOT_OK [SWS_Dcm_00092]. In diesem Fall ist die Sendeanforderung aus PduR_DcmTransmit() noch nicht abgeschlossen; erst ein abschließender Aufruf von Dcm_TpTxConfirmation beendet den Vorgang und ermöglicht neue Übertragungen [SWS_Dcm_00350].
Nebenläufigkeit
Die Funktion ist reentrant und darf auch im Interrupt-Kontext aufgerufen werden [SWS_Dcm_00092].
Dieser Nutzungshinweis basiert auf den Spezifikationen der AUTOSAR-Classic-Plattform Release R20-11.
Implementer's Guide folgt (Komplexität I2)
function Dcm_TpTxConfirmation [SWS_Dcm_00351] 📄 PDF
void Dcm_TpTxConfirmation (PduIdType id, Std_ReturnType result);
This function is called after the I-PDU has been transmitted on its network, the result indicates whether the transmission was successful or not. This function might be called in interrupt context.
Die Callback-Funktion Dcm_TpTxConfirmation ([SWS_Dcm_00351]) wird von der unteren Transportschicht synchron aufgerufen, nachdem eine diagnostische I-PDU auf dem Netzwerk übertragen wurde. Über den Parameter id wird die betroffene I-PDU identifiziert, während result den Erfolg oder Misserfolg des Sendevorgangs meldet ([SWS_Dcm_00351]). Die Funktion besitzt keinen Rückgabewert, ist reentrant und darf explizit im Interrupt-Kontext ausgeführt werden ([SWS_Dcm_00351]).
Beim Aufruf von Dcm_TpTxConfirmation führt das DCM-Modul zentrale Bereinigungs- und Statusübergänge durch:
- Der zugeordnete Sendepuffer wird entsperrt ([SWS_Dcm_00352]).
- Laufende Fehlerüberwachungen wie Page-Buffer-Timeouts sowie
P2ServerMax- undP2*ServerMax-Timeouts werden gestoppt ([SWS_Dcm_00353]). - Die seit dem Empfang (
Dcm_TpRxIndication) blockierteDcmPduIdder Verbindung wird freigegeben, sodass nachfolgende Anforderungen empfangen werden können ([SWS_Dcm_00241]). - Das aktuelle Protokoll wird durch die Bestätigung der DSL-Antwort nicht beendet (kein Aufruf von
xxx_StopProtocol) ([SWS_Dcm_00624]).
Im Fehlerfall (wenn result einen Fehler anzeigt oder ein Abbruch nach einem fehlgeschlagenen Dcm_CopyTxData bestätigt wird) verlangt [SWS_Dcm_00350] zwingend diesen abschließenden Aufruf, um den Sendeauftrag formell abzuschließen und neue Übertragungen via PduR_DcmTransmit() zu ermöglichen. Bei einer fehlerhaften Bestätigung darf das DSD-Submodul die Diagnoseantwort nicht erneut senden ([SWS_Dcm_00118]).
Zusätzlich markiert die Bestätigung einer Antwort (ungleich NRC 0x78) den regulären Abschluss eines Diagnose-Requests ([SWS_Dcm_01378]). Nach der Bestätigung einer positiven Antwort auf einen EcuReset ignoriert das DCM während der Reset-Verarbeitung alle weiteren Anfragen ([SWS_Dcm_00834]).
Dieser Text wurde von einer KI erstellt; die Richtigkeit kann nicht garantiert werden.
Implementer's Guide folgt (Komplexität I2)
function Dcm_TxConfirmation [SWS_Dcm_01092] 📄 PDF
void Dcm_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);
The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU. This function might be called in interrupt context.
Verwendung
Die synchrone Schnittstelle Dcm_TxConfirmation (Service-ID 0x40, deklariert in Dcm.h) wird gemäß [SWS_Dcm_01092] durch das unterlagerte Kommunikationsschnittstellenmodul aufgerufen, um das Senden einer PDU zu bestätigen oder das Fehlschlagen der Übertragung zu melden. Die Funktion besitzt keinen Rückgabewert und verarbeitet zwei Eingangsparameter:
TxPduId: Bezeichner (PduIdType) der gesendeten PDU.result: Status der Übertragung (Std_ReturnType). Gültige Werte sindE_OKbei erfolgreicher Übertragung sowieE_NOT_OK, falls die Übertragung der PDU gescheitert ist.
Fehlerbehandlung und Statusrückmeldung
Das Ergebnis der Übertragung wird dem DCM direkt über den Parameter result signalisiert ([SWS_Dcm_01092]). Spezifische DET- oder DEM-Fehlermeldungen sind im bereitgestellten Spezifikationsauszug für diese Funktion nicht definiert.
Nebenläufigkeit und Aufrufkontext
Hinsichtlich der Reentranz ist Dcm_TxConfirmation reentrant für Aufrufe mit unterschiedlichen PDU-IDs, jedoch nicht reentrant für dieselbe TxPduId ([SWS_Dcm_01092]). Zu beachten ist, dass der Aufruf durch das unterlagerte Modul im Interrupt-Kontext erfolgen kann ([SWS_Dcm_01092]).
Zusammenspiel
Im Fall einer periodischen Übertragung (PeriodicTransmission) wird das DCM gemäß [SWS_Dcm_01073] über Dcm_TxConfirmation aufgerufen, um das jeweilige Sendeergebnis mitgeteilt zu bekommen.
Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation für R20-11 erstellt.
Implementer's Guide folgt (Komplexität I1)
function Dcm_ComM_NoComModeEntered [SWS_Dcm_00356] 📄 PDF
void Dcm_ComM_NoComModeEntered (uint8 NetworkId);
This call informs the Dcm module about a ComM mode change to COMM_NO_ COMMUNICATION.
Die synchrone und reentrante Funktion Dcm_ComM_NoComModeEntered (Service-ID 0x21) informiert das DCM-Modul über den Wechsel eines Kommunikationsnetzwerks in den Zustand COMM_NO_COMMUNICATION [SWS_Dcm_00356]. Die Schnittstelle wird über den Header Dcm_ComM.h bereitgestellt, besitzt keinen Rückgabewert und identifiziert das betroffene Netzwerk über den Eingangsparameter NetworkId vom Typ uint8 [SWS_Dcm_00356].
Mit dem Aufruf schaltet das DCM jegliche Kommunikation auf dem angegebenen Netzwerk ab, sodass sowohl der Empfang als auch das Senden von Nachrichten vollständig deaktiviert werden [SWS_Dcm_00148]. Dies schließt folgende Übertragungsarten verbindlich ein:
- Unterbindung von ResponseOnEvent-Übertragungen [SWS_Dcm_00149],
- Deaktivierung periodischer Übertragungen über
ReadDataByPeriodicIdentifier(periodicId) [SWS_Dcm_00150] sowie - Abschaltung normaler Übertragungen [SWS_Dcm_00151].
Infolgedessen darf das DCM-Modul nach Ausführung von Dcm_ComM_NoComModeEntered für diesen Kontext nicht mehr die PduR-Funktion PduR_DcmTransmit() aufrufen [SWS_Dcm_00152].
Wird die Funktion mit einer NetworkId aufgerufen, die keinem im DCM über den Konfigurationsparameter DcmDslProtocolComMChannelRef referenzierten ComM-Kanal entspricht, führt das DCM-Modul keinerlei Aktionen durch und kehrt unverzüglich zurück [SWS_Dcm_01324].
Dieser Text wurde von einer KI erstellt und durch autodocs qualitätsgesichert.
Implementer's Guide folgt (Komplexität I2)
function Dcm_ComM_SilentComModeEntered [SWS_Dcm_00358] 📄 PDF
void Dcm_ComM_SilentComModeEntered (uint8 NetworkId);
This call informs the Dcm module about a ComM mode change to COMM_SILENT_ COMMUNICATION.
Die synchrone und reentrante Funktion Dcm_ComM_SilentComModeEntered ([SWS_Dcm_00358]) dient dazu, das DCM-Modul über den Wechsel eines Kommunikationsnetzwerks in den Zustand COMM_SILENT_COMMUNICATION zu informieren. Die Schnittstelle besitzt die Service-ID 0x22, liefert keinen Rückgabewert und erwartet als Eingangsparameter NetworkId den Bezeichner des betroffenen Netzwerks ([SWS_Dcm_00358]). Sie wird über die Header-Datei Dcm_ComM.h zur Verfügung gestellt ([SWS_Dcm_00358]).
Sobald dieser Aufruf erfolgt, muss das DCM sämtliche Sendeaktivitäten auf dem betroffenen Netzwerkkanal vollständig einstellen ([SWS_Dcm_00153]). Dies beinhaltet im Detail folgende Maßnahmen:
- die Deaktivierung aller normalen Übertragungen ([SWS_Dcm_00156]),
- das Unterbinden von Response-on-Event-Übertragungen ([SWS_Dcm_00154]) sowie
- das Deaktivieren periodischer Aussendungen im Rahmen von
ReadDataByPeriodicIdentifier([SWS_Dcm_00155]).
Hinsichtlich der Fehlerbehandlung und Randbedingungen ist festgelegt, dass das DCM ohne jede weitere Aktion zurückkehren muss, falls die übergebene NetworkId einem ComM-Kanal entspricht, der im DCM nicht über den Konfigurationsparameter DcmDslProtocolComMChannelRef referenziert wird ([SWS_Dcm_01325]). Spezifische Entwicklungsfehler oder Fehlerrückgabewerte sind für diesen Aufruf nicht spezifiziert.
Interpretation: Der Aufruf dürfte typischerweise durch das Modul ComM erfolgen, sobald der Übergang in den stillen Kommunikationsmodus vollzogen wird. Frage Q-fc9b6303ae0c0e41 (offen)
Dieser Nutzungshinweis wurde durch ein KI-System generiert und stützt sich ausschließlich auf die AUTOSAR-Spezifikation R20-11.
Implementer's Guide folgt (Komplexität I2)
function Dcm_ComM_FullComModeEntered [SWS_Dcm_00360] 📄 PDF
void Dcm_ComM_FullComModeEntered (uint8 NetworkId);
This call informs the Dcm module about a ComM mode change to COMM_FULL_ COMMUNICATION.
Die synchrone und reentrante Funktion Dcm_ComM_FullComModeEntered wird über die Header-Datei Dcm_ComM.h bereitgestellt und informiert das DCM-Modul über den Wechsel eines Kommunikationsnetzwerks in den Zustand COMM_FULL_COMMUNICATION [SWS_Dcm_00360]. Als Eingabeparameter dient NetworkId, welche das vom Moduswechsel betroffene Netzwerk identifiziert [SWS_Dcm_00360].
Durch den Aufruf wird jegliche Kommunikation für dieses Netzwerk aktiviert, sodass sowohl der Nachrichtenempfang als auch das Senden freigegeben sind [SWS_Dcm_00157]. Dies schließt folgende Übertragungsarten ein:
- normale Übertragungen [SWS_Dcm_00161],
- Response-on-Event-Übertragungen [SWS_Dcm_00159] sowie
- periodische Übertragungen mittels
ReadDataByPeriodicIdentifier[SWS_Dcm_00160].
Sobald Dcm_ComM_FullComModeEntered aufgerufen wurde, verarbeitet das DCM die internen Funktionen DslInternal_ResponseOnOneDataByPeriodicId() und DslInternal_ResponseOnOneEvent() ohne Einschränkungen [SWS_Dcm_00162]. Im zeitlichen Ablauf muss das DCM diesen Aufruf abwarten, bevor die Übertragung einer Diagnoseantwort eingeleitet wird; die Wartezeit darf ab dem Zeitpunkt des Anfrageeingangs nicht länger als P2ServerMax sein [SWS_Dcm_01142].
Im Fehlerfall, wenn die übergebene NetworkId einen ComM-Kanal betrifft, der im DCM nicht konfiguriert ist (Parameter DcmDslProtocolComMChannelRef), kehrt die Funktion unmittelbar und ohne weitere Aktionen zurück [SWS_Dcm_01326].
Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Dcm_CsmAsyncJobFinished [SWS_Dcm_91076] 📄 PDF
Std_ReturnType Dcm_CsmAsyncJobFinished (Csm_ResultType result);
Can be called from Csm upon finishing an asynchronous job processing. The integrator will configure this name as callback function within the Csm ECUC configuration for asynchronous jobs. Only one such callback is available, the Dcm detects the job that has finished by evaluating the job parameter. API availability: This API will be available only if ({ecuc(Dcm/Dcm Dsp/DcmDspAuthentication/DcmDspAuthenticationConnection} != null).
Verwendung und Semantik
Die synchrone und reentrante Callback-Funktion Dcm_CsmAsyncJobFinished wird vom Crypto Service Manager (CSM) aufgerufen, sobald eine asynchrone Auftragsverarbeitung abgeschlossen ist [SWS_Dcm_91076]. Als Eingabeparameter nimmt sie über result vom Typ Csm_ResultType das Ergebnis des beendeten CSM-Jobs entgegen [SWS_Dcm_91076]. Als Rückgabewert liefert die Funktion stets E_OK zurück [SWS_Dcm_91076].
Konfiguration und Randbedingungen
Integratoren müssen den Namen dieser Funktion in der ECUC-Konfiguration des CSM als Callback für asynchrone Jobs konfigurieren [SWS_Dcm_91076]. Für das DCM steht ausschließlich ein einziger solcher Callback zur Verfügung; die Identifikation des beendeten Auftrags erfolgt laut Spezifikation durch Auswertung des Job-Parameters [SWS_Dcm_91076]. Da die C-Funktionssignatur jedoch lediglich result übergibt, dürfte das DCM den zugehörigen Auftrag intern über den Transaktionszustand der laufenden Authentifizierung ermitteln. Frage Q-04ad1d5fb514f467 (offen)
Die Schnittstelle steht nur zur Verfügung, wenn in der Konfiguration der Parameter DcmDspAuthenticationConnection gesetzt ist (ungleich null) [SWS_Dcm_91076]. Spezifische Fehlerbehandlungen oder DET-Meldungen sind für diesen Aufruf nicht spezifiziert, da der Rückgabewert unveränderlich E_OK ist [SWS_Dcm_91076].
Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
function Dcm_KeyMAsyncCertificateVerifyFinished [SWS_Dcm_91077] 📄 PDF
Std_ReturnType Dcm_KeyMAsyncCertificateVerifyFinished (KeyM_CertificateIdType CertID, KeyM_CertificateStatusType Result);
Can be called from Key upon finishing an asynchronous certificate verification. The integrator will configure this name as callback function within the KeyM ECUC configuration for asynchronous jobs. Only one such callback is available, the Dcm detects the certificate that has finished by evaluating the certId parameter. API availability: This API will be available only if ({ecuc(Dcm/DcmDsp/DcmDspAuthentication/DcmDspAuthenticationConnection} != null).
Die synchrone und reentrante Callback-Funktion Dcm_KeyMAsyncCertificateVerifyFinished wird vom Modul KeyM nach Abschluss einer asynchronen Zertifikatsverifizierung aufgerufen [SWS_Dcm_91077]. Sie informiert das DCM über den Abschluss sowie das Resultat des Prüfvorgangs und liefert als Rückgabewert stets E_OK [SWS_Dcm_91077].
Parameter und Funktionsweise
CertID: Kennung des Zertifikats, dessen Verifizierung abgeschlossen wurde. Anhand dieses Identifikators ermittelt das DCM, welcher Prüfauftrag beendet wurde [SWS_Dcm_91077].Result: Rückgabewert und Status des asynchronen Verifizierungsauftrags aus dem KeyM [SWS_Dcm_91077].
Konfiguration und Randbedingungen
Integratoren müssen diesen Funktionsnamen in der ECUC-Konfiguration des KeyM als Callback für asynchrone Jobs konfigurieren [SWS_Dcm_91077]. Da für diese Benachrichtigung nur ein einziger Callback bereitsteht, ist das DCM darauf angewiesen, das jeweilige Zertifikat über den Parameter CertID aufzulösen [SWS_Dcm_91077].
Die Schnittstelle steht ausschließlich zur Verfügung, wenn der Konfigurationsparameter DcmDspAuthenticationConnection im Pfad Dcm/DcmDsp/DcmDspAuthentication konfiguriert ist (!= null) [SWS_Dcm_91077]. Besondere Fehlercodes oder DET-Meldungen sind für diesen Aufruf nicht spezifiziert [SWS_Dcm_91077].
Dieser Nutzungshinweis wurde automatisiert generiert.
Implementer's Guide folgt (Komplexität I2)
function Dcm_ReadMemory [SWS_Dcm_00539] 📄 PDF
Dcm_ReturnReadMemoryType Dcm_ReadMemory (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint8* MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);
The Dcm_ReadMemory callout is used to request memory data identified by the parameter memoryAddress and memorySize from the UDS request message. This service is needed for the implementation of UDS services: • ReadMemoryByAddress • RequestUpload • ReadDataByIdentifier (in case of Dynamical DID defined by memory address) • TransferData
Die Callout-Funktion Dcm_ReadMemory ([SWS_Dcm_00539]), deklariert in Dcm_Externals.h, dient dem DCM zum Auslesen von Server-Speicherdaten anhand von Startadresse (MemoryAddress) und Bytegröße (MemorySize). Die Funktion wird für die UDS-Dienste ReadMemoryByAddress (0x23) ([SWS_Dcm_00495]), ReadDataByIdentifier (0x22) für dynamische DIDs im Adressbereich 0xF200 bis 0xF3FF ([SWS_Dcm_00653]), RequestUpload sowie TransferData benötigt ([SWS_Dcm_00539]). Wird der Parameter MemoryIdentifier nicht verwendet, muss er auf 0 gesetzt werden ([SWS_Dcm_00539]).
Die Schnittstelle ist asynchron und nicht reentrant ([SWS_Dcm_00539]). Der Aufrufstatus wird über OpStatus mit den Werten DCM_INITIAL, DCM_PENDING, DCM_CANCEL oder DCM_FORCE_RCRRP_OK übergeben. Solange der Lesevorgang andauert, gibt die Funktion DCM_READ_PENDING zurück ([SWS_Dcm_00985]). Liefert der Aufruf DCM_READ_FORCE_RCRRP zurück, stößt das DCM unverzüglich das Senden einer RCR-RP-Nachricht (NRC 0x78) an und pausiert weitere Aufrufe bis zur Sendebestätigung ([SWS_Dcm_00839]). Nach Bestätigung der RCR-RP ruft das DCM die Funktion aus Dcm_MainFunction erneut mit OpStatus = DCM_FORCE_RCRRP_OK auf ([SWS_Dcm_00840]).
Im Erfolgsfall werden die ausgelesenen Daten in den Puffer MemoryData geschrieben und DCM_READ_OK zurückgegeben ([SWS_Dcm_00539], [SWS_Dcm_00985]). Schlägt die Operation fehl, liefert die Funktion DCM_READ_FAILED zurück und setzt ErrorCode. Das DCM sendet daraufhin eine negative Antwort mit dem entsprechenden NRC-Wert ([SWS_Dcm_00644]).
Automatisch generierter Nutzungshinweis auf Basis der AUTOSAR-Spezifikation.
Implementer's Guide folgt (Komplexität I2)
function Dcm_WriteMemory [SWS_Dcm_00540] 📄 PDF
Dcm_ReturnWriteMemoryType Dcm_WriteMemory (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, const uint8* MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);
The Dcm_WriteMemory callout is used to write memory data identified by the parameter memoryAddress and memorySize. This service is needed for the implementation of UDS services : • WriteMemoryByAddress • RequestDownload • TransferData
Die in Dcm_Externals.h deklarierte Callout-Funktion Dcm_WriteMemory wird vom DCM asynchron und nicht-reentrant aufgerufen, um Speicherdaten anhand von Startadresse und Bytegröße zu schreiben [SWS_Dcm_00540]. Sie dient der Implementierung der UDS-Dienste WriteMemoryByAddress (0x3D), RequestDownload und TransferData [SWS_Dcm_00540]. Beim Empfang von WriteMemoryByAddress ruft das DCM den Callout erst nach Prüfung der Anfrage auf [SWS_Dcm_00491].
Zur Steuerung des Ablaufs wird OpStatus übergeben (mögliche Werte: DCM_INITIAL, DCM_PENDING, DCM_CANCEL oder DCM_FORCE_RCRRP_OK) [SWS_Dcm_00540]. Die Parameter MemoryAddress und MemorySize bestimmen den Zielspeicherbereich, während MemoryData auf den Diagnosepuffer des DCM zeigt [SWS_Dcm_00540]. Werden MemoryIdentifier oder MemoryAddress (beispielsweise bei komprimierten Daten) nicht genutzt, müssen diese auf 0 gesetzt werden [SWS_Dcm_00540].
Der Rückgabewert Dcm_ReturnWriteMemoryType [SWS_Dcm_00986] definiert die weitere Verarbeitung im DCM:
DCM_WRITE_OK: Der Schreibvorgang war erfolgreich [SWS_Dcm_00540], [SWS_Dcm_00986].DCM_WRITE_PENDING: Die Operation ist noch nicht abgeschlossen und erfordert Folgeaufrufe [SWS_Dcm_00540], [SWS_Dcm_00986].DCM_WRITE_FORCE_RCRRP: Das DCM initiiert unverzüglich das Senden einer Response Pending (NRC 0x78) und setzt weitere Aufrufe bis zur Sendebestätigung aus [SWS_Dcm_00837]. Danach erfolgt der Neuaufruf ausDcm_MainFunctionmitDCM_FORCE_RCRRP_OK[SWS_Dcm_00838].DCM_WRITE_FAILED: Bei einem Fehler sendet das DCM eine negative Antwort mit dem über den AusgabeparameterErrorCodeübergebenen NRC-Wert [SWS_Dcm_00540], [SWS_Dcm_00643].
Dieser Text wurde von einer KI basierend auf der Spezifikation AUTOSAR Classic R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Dcm_SetProgConditions [SWS_Dcm_00543] 📄 PDF
Std_ReturnType Dcm_SetProgConditions (Dcm_OpStatusType OpStatus, const Dcm_ProgConditionsType* ProgConditions);
The Dcm_SetProgConditions callout allows the integrator to store relevant information prior to jumping to bootloader / jump due to ECUReset request. The context parameter are defined in Dcm_ProgConditionsType.
Die Callout-Funktion Dcm_SetProgConditions ermöglicht dem Integrator das persistente Sichern relevanter Informationen vor einem Wechsel in den Bootloader oder einem Reset infolge einer ECUReset-Anforderung [SWS_Dcm_00543]. Die relevanten Kontextdaten werden über einen Zeiger auf die Struktur Dcm_ProgConditionsType übergeben, welche unter anderem Verbindungs- und Tester-Quelladressen, Dienst- und Subfunktions-IDs sowie Steuerungs-Flags wie ReprogramingRequest und ResponseRequired bündelt [SWS_Dcm_00988]. Bei Empfang eines UDS-Dienstes 0x10 mit Subfunktion 0x02 setzt das DCM diese Flags und ruft die Schnittstelle auf [SWS_Dcm_01182].
Der Aufruf erfolgt asynchron und ist nicht reentrant (Non Reentrant) [SWS_Dcm_00543]. Über den Parameter OpStatus werden die Zustände DCM_INITIAL, DCM_PENDING, DCM_CANCEL oder DCM_FORCE_RCRRP_OK gesteuert [SWS_Dcm_00543]. Sofern die Ausführung andauert und die Funktion DCM_E_PENDING zurückgibt, ruft das DCM die Schnittstelle im nächsten Hauptfunktionszyklus erneut auf, um das Setzen abzuschließen [SWS_Dcm_00543], [SWS_Dcm_01184]. Mittels DCM_E_FORCE_RCRRP kann die Übertragung einer Response-Pending-Antwort (NRC 0x78) erzwungen werden [SWS_Dcm_00543]. Abhängig von der Konfiguration erfolgt der Aufruf durch das DCM erst nach erfolgreicher Übertragung von NRC 0x78 [SWS_Dcm_00535].
Wurden die Bedingungen fehlerfrei gesetzt und liefert das Callout E_OK zurück, stößt das DCM den Moduswechsel des ModeDeclarationGroupPrototype DcmEcuReset nach EXECUTE an [SWS_Dcm_00719], [SWS_Dcm_01163], [SWS_Dcm_01180]. Kann der Zustand hingegen nicht gesichert werden und antwortet die Funktion mit E_NOT_OK, unterbleiben der Reset sowie der Bootloader-Sprung, der Moduswechsel wird unterbunden und das DCM sendet die negative Antwort NRC 0x22 (Conditions not correct) [SWS_Dcm_00715], [SWS_Dcm_01181].
Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation AUTOSAR Classic Release R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Dcm_GetProgConditions [SWS_Dcm_00544] 📄 PDF
Dcm_EcuStartModeType Dcm_GetProgConditions (Dcm_ProgConditionsType* ProgConditions);
The Dcm_GetProgConditions callout is called upon Dcm initialization and allows to determine if a response ($50 or $51) has to be sent. The context parameters are defined in Dcm_Prog ConditionsType.
Die Callout-Funktion Dcm_GetProgConditions mit der Service-ID 0x62 wird während der Initialisierung des DCM aufgerufen, um festzustellen, ob eine ausstehende Diagnoseantwort auf Dienst $50 oder $51 gesendet werden muss [SWS_Dcm_00544]. Die Deklaration der Schnittstelle wird über die Header-Datei Dcm_Externals.h bereitgestellt [SWS_Dcm_00544].
Verwendung und Parameter
Die Funktionsausführung erfolgt synchron, wobei keine regulären Eingabe- oder Ein-/Ausgabeparameter übergeben werden [SWS_Dcm_00544]:
- Ausgabeparameter: Über den Zeiger
ProgConditionsvom TypDcm_ProgConditionsType*liefert der Callout die Bedingungen zurück, unter denen der vorherige Sprung aus dem Bootloader angefordert wurde [SWS_Dcm_00544]. Die relevanten Kontextparameter sind im DatentypDcm_ProgConditionsTypehinterlegt [SWS_Dcm_00544]. - Rückgabewert: Die Funktion gibt einen Statuswert vom Typ
Dcm_EcuStartModeTypean den Aufrufer zurück [SWS_Dcm_00544].
Nebenläufigkeit und Fehlerbehandlung
Die Funktion ist als nicht reentrant (Non Reentrant) eingestuft und darf daher nicht nebenläufig ausgeführt werden [SWS_Dcm_00544]. Für diesen Callout sind in der Schnittstellenspezifikation keine spezifischen Fehlercodes für DET oder DEM definiert [SWS_Dcm_00544].
Dieser Nutzungshinweis wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
function Dcm_ProcessRequestAddFile [SWS_Dcm_91078] 📄 PDF
Std_ReturnType Dcm_ProcessRequestAddFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x01 (AddFile).
Die Callout-Funktion Dcm_ProcessRequestAddFile wird vom DCM aufgerufen, um den Dienst RequestFileTransfer mit der Betriebsart 0x01 (AddFile) zu initiieren ([SWS_Dcm_91078]). Sie ist über Dcm_Externals.h verfügbar, besitzt die Service-ID 0x72 und ist als nicht reentrant (Non Reentrant) sowie asynchron spezifiziert ([SWS_Dcm_91078]).
Die Steuerung des asynchronen Aufrufablaufs erfolgt über den Parameter OpStatus:
DCM_INITIAL: Alle Eingangsparameter sind gültig. Hierzu zählen Dateipfad und -name (filePathAndNamemitfilePathAndNameLength), das BytedataFormatIdentifier(High-Nibble für Kompression, Low-Nibble für Verschlüsselung) sowie die unkomprimierte und komprimierte Dateigröße (fileSizeUncompressed,fileSizeCompressed) ([SWS_Dcm_91078]).DCM_PENDING,DCM_CANCELundDCM_FORCE_RCRRP_OK: In diesen Folgeaufrufen sind sämtliche Eingangsparameter auf0x00gesetzt ([SWS_Dcm_91078]).
Als Rückgabewerte liefert die Funktion E_OK bei erfolgreicher Ausführung, DCM_E_PENDING bei andauernder Bearbeitung oder DCM_E_FORCE_RCRRP, wenn die Applikation das Senden einer vorläufigen Antwort (NRC 0x78) anfordert ([SWS_Dcm_91078], [SWS_Dcm_91086]). Im Erfolgsfall definiert maxNumberOfBlockLength die maximal zulässige Blocklänge künftiger TransferData-Nachrichten ohne SID und Block-Zähler ([SWS_Dcm_91078]).
Im Fehlerfall liefert die Funktion E_NOT_OK zurück. In diesem Fall muss über den Parameter ErrorCode ein negativer Antwortcode (NRC) übergeben werden, den das DCM in einer negativen Diagnoseantwort an den Client sendet ([SWS_Dcm_91078]). Ist die Konfiguration DcmRequestFileTransferUsePort aktiviert, wird diese Funktionalität alternativ als Port-Operation ProcessRequestAddFile des Interfaces RequestFileTransfer bereitgestellt ([SWS_Dcm_91086]).
Dieser Nutzungshinweis wurde automatisch auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Dcm_ProcessRequestDeleteFile [SWS_Dcm_91079] 📄 PDF
Std_ReturnType Dcm_ProcessRequestDeleteFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x02 (DeleteFile). Manager
Verwendung und Aufrufsemantik
Die Callout-Funktion Dcm_ProcessRequestDeleteFile wird vom DCM aufgerufen, um im Rahmen des Diagnose-Dienstes RequestFileTransfer das Löschen einer Datei (modeOfOperation = 0x02) auf dem Server zu initiieren [SWS_Dcm_91079]. Die Funktion ist in Dcm_Externals.h deklariert und arbeitet asynchron sowie nicht reentrant (Non Reentrant) [SWS_Dcm_91079].
Die Übergabe und Auswertung erfolgt anhand des Parameters OpStatus:
DCM_INITIAL: Zeigt den Start der Operation an. Hierbei sind alle Eingangsparameter gültig;filePathAndNameübergibt den Speicherort und Namen der zu löschenden Datei, dessen Bytelänge überfilePathAndNameLengthspezifiziert ist [SWS_Dcm_91079].DCM_PENDING,DCM_CANCELoderDCM_FORCE_RCRRP_OK: Bei fortlaufender Verarbeitung oder Abbruch sind alle Eingangsparameter auf0x00gesetzt [SWS_Dcm_91079].
Als Rückgabewerte liefert die Funktion E_OK bei erfolgreicher Durchführung, DCM_E_PENDING, falls die Ausführung noch andauert und weitere Aufrufe benötigt, oder DCM_E_FORCE_RCRRP, wenn die Applikation das Senden einer Zwischennachricht mit NRC 0x78 (Response Pending) anfordert [SWS_Dcm_91079], analog zum Dienst RequestFileTransfer [SWS_Dcm_91086].
Fehlerbehandlung
Schlägt die Verarbeitung fehl, gibt die Funktion E_NOT_OK zurück. In diesem Fall muss über den Ausgabeparameter ErrorCode ein negativer Antwortcode bereitgestellt werden, den das DCM als negative Rückmeldung (NRC) an den Tester übermittelt [SWS_Dcm_91079].
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR Classic R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Dcm_ProcessRequestReplaceFile [SWS_Dcm_91080] 📄 PDF
Std_ReturnType Dcm_ProcessRequestReplaceFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x03 (ReplaceFile).
Die Callout-Funktion Dcm_ProcessRequestReplaceFile wird vom DCM aufgerufen, um einen Diagnoseprozess für RequestFileTransfer mit der Betriebsart 0x03 (ReplaceFile) zu initiieren [SWS_Dcm_91080]. Die Funktion ist als nicht reentrant (Non Reentrant) und asynchron definiert und wird über den Header Dcm_Externals.h bereitgestellt [SWS_Dcm_91080].
Die Steuerung des asynchronen Verarbeitungsablaufs erfolgt über den Parameter OpStatus:
- Beim Initialaufruf mit
DCM_INITIALübergibt das DCM alle Eingabeparameter gültig, darunter Pfad und Dateiname (filePathAndNamemit LängenangabefilePathAndNameLength), die Kennung für Kompression und Verschlüsselung (dataFormatIdentifier) sowie die unkomprimierte und komprimierte Dateigröße (fileSizeUncompressed,fileSizeCompressed) [SWS_Dcm_91080]. - Bei Folgeaufrufen oder einem Abbruch (
DCM_PENDING,DCM_CANCEL,DCM_FORCE_RCRRP_OK) sind alle In-Parameter auf0x00gesetzt [SWS_Dcm_91080]. - Im Erfolgsfall gibt die Funktion über den Out-Parameter
maxNumberOfBlockLengthdie maximale Nutzdatenlänge für nachfolgendeTransferData-Anfragen (ohne SID und Blockfolgezähler) an das DCM zurück [SWS_Dcm_91080].
Als Rückgabewerte sind E_OK bei erfolgreicher Ausführung, DCM_E_PENDING bei noch andauernder Bearbeitung sowie DCM_E_FORCE_RCRRP zum Anfordern einer Response-Pending-Rückmeldung (NRC 0x78) vorgesehen [SWS_Dcm_91080], [SWS_Dcm_91086]. Schlägt die Ausführung fehl, gibt die Funktion E_NOT_OK zurück und weist dem Parameter ErrorCode den entsprechenden negativen Diagnoseantwortcode (NRC) zu, den das DCM an den Tester übermittelt [SWS_Dcm_91080].
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Dcm_ProcessRequestReadFile [SWS_Dcm_91081] 📄 PDF
Std_ReturnType Dcm_ProcessRequestReadFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x04 (ReadFile).
Die Callout-Funktion Dcm_ProcessRequestReadFile wird vom DCM aufgerufen, um einen File-Transfer-Prozess (Service RequestFileTransfer) mit der Betriebsart ReadFile (modeOfOperation 0x04) zu starten [SWS_Dcm_91081]. Die Funktion ist im Header Dcm_Externals.h deklariert, arbeitet asynchron und ist nicht reentrant (Non Reentrant) [SWS_Dcm_91081].
Der Aufruf erfolgt über den Statusparameter OpStatus: Beim Initialaufruf DCM_INITIAL sind alle Eingabeparameter gültig, während sie bei Folgeaufrufen mit DCM_PENDING, DCM_CANCEL oder DCM_FORCE_RCRRP_OK auf 0x00 gesetzt werden [SWS_Dcm_91081]. Die Anwendung erhält Pfad und Dateinamen über filePathAndName (Länge in filePathAndNameLength), das Format zur Kompression und Verschlüsselung über dataFormatIdentifier sowie die Dateigrößen über fileSizeUncompressed und fileSizeCompressed [SWS_Dcm_91081]. Als Ausgabeparameter muss die Anwendung maxNumberOfBlockLength mit der maximalen Byte-Anzahl für nachfolgende TransferData-Antworten (ohne SID und Block-Sequenzzähler) belegen [SWS_Dcm_91081].
Als Rückgabewerte von Std_ReturnType sind E_OK bei erfolgreicher Ausführung, DCM_E_PENDING bei noch andauernder asynchroner Verarbeitung oder DCM_E_FORCE_RCRRP zur Anforderung einer „Response Pending“-Antwort (NRC 0x78) definiert [SWS_Dcm_91081]. Schlägt die Operation fehl, liefert sie E_NOT_OK; in diesem Fall übermittelt das DCM eine negative Antwort mit dem im Ausgabeparameter ErrorCode gesetzten NRC-Wert an den Tester [SWS_Dcm_91081]. Das Zusammenspiel entspricht der allgemeinen Abwicklung des Dienstes RequestFileTransfer, wie er analog für andere Dateioperationen wie ProcessRequestAddFile konfiguriert wird [SWS_Dcm_91086].
Dieser Text wurde durch ein KI-System generiert und stützt sich ausschließlich auf die Spezifikation AUTOSAR Classic R20-11.
Implementer's Guide folgt (Komplexität I2)
function Dcm_ProcessRequestReadDir [SWS_Dcm_91082] 📄 PDF
Std_ReturnType Dcm_ProcessRequestReadDir (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint64* dirInfoLength, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x05 (ReadDir).
Verwendung
Die Callout-Funktion Dcm_ProcessRequestReadDir wird über die Header-Datei Dcm_Externals.h deklariert und vom DCM aufgerufen, um den Dienst RequestFileTransfer mit dem Betriebsmodus 0x05 (ReadDir) asynchron zu starten [SWS_Dcm_91082]. Der Verarbeitungsfortschritt wird über den Übergabeparameter OpStatus gesteuert [SWS_Dcm_91082]. Beim Erstaufruf mit DCM_INITIAL übergibt das DCM den Pfad bzw. Namen über filePathAndName zusammen mit der Byte-Länge filePathAndNameLength [SWS_Dcm_91082]. Bei nachfolgenden Aufrufen oder bei einem Abbruch (DCM_PENDING, DCM_CANCEL, DCM_FORCE_RCRRP_OK) sind alle Eingangsparameter auf 0x00 gesetzt [SWS_Dcm_91082].
Als Ausgabewerte muss die Anwendung die Größe der Verzeichnisdaten über dirInfoLength und die maximal zulässige Blockgröße für nachfolgende Übertragungen über maxNumberOfBlockLength bereitstellen [SWS_Dcm_91082]. Neben E_OK bei erfolgreicher Ausführung kann die Funktion DCM_E_PENDING zurückgeben, wenn die Operation noch andauert, oder DCM_E_FORCE_RCRRP, um das Senden einer Zwischenantwort (NRC 0x78) zu veranlassen [SWS_Dcm_91082].
Fehlerbehandlung
Tritt ein Fehler auf, muss die Funktion E_NOT_OK zurückgeben. In diesem Fall liest das DCM den Parameter ErrorCode aus und übermittelt dessen Wert als negativen Antwortcode (NRC) an den Tester [SWS_Dcm_91082]. Spezifische DET- oder DEM-Meldungen sind für die Schnittstelle nicht vorgesehen; Fehlerprüfungen des übergebenen Pfads dürften daher vollständig der anwendungsspezifischen Implementierung obliegen. Frage Q-278dbc3db7b4363b (offen)
Nebenläufigkeit und Zusammenspiel
Die Funktion ist als nicht reentrant (Non Reentrant) spezifiziert und darf folglich nicht nebenläufig für mehrere Diagnoseanfragen aufgerufen werden [SWS_Dcm_91082]. Sie ist Teil der Schnittstellengruppe des Dienstes RequestFileTransfer, dessen Anbindung über Konfigurationsparameter beeinflusst werden kann [SWS_Dcm_91086].
Dieser Verwendungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Dcm_WriteFile [SWS_Dcm_91083] 📄 PDF
Std_ReturnType Dcm_WriteFile (Dcm_OpStatusType OpStatus, uint64 DataLength, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function. DCM shall call this function when data is received using UDS service Transfer Data if there's an ongoing RequestFileTransfer process started with 0x01 (AddFile) or 0x03 (ReplaceFile).
Verwendung und Aufrufkontext
Die Callout-Funktion Dcm_WriteFile wird vom DCM aufgerufen, wenn über den UDS-Dienst TransferData (0x36) Daten empfangen werden und ein zuvor mittels RequestFileTransfer mit den Modi 0x01 (AddFile) oder 0x03 (ReplaceFile) gestarteter Download-Prozess aktiv ist [SWS_Dcm_01444]. Die Schnittstelle ist über Dcm_Externals.h verfügbar [SWS_Dcm_91083].
Die Parameterbelegung hängt vom Fortschrittsstatus OpStatus ab [SWS_Dcm_91083]:
DCM_INITIAL: Alle Eingangsparameter sind gültig. Der ZeigerDataverweist auf die zu schreibenden Nutzdaten, undDataLengthgibt deren Bytelänge an. Der Wert vonDataLengthüberschreitet nicht die zuvor beiDcm_ProcessRequestFileTransferausgehandelte maximale Blocklänge (NumberOfBlockLength).DCM_PENDING,DCM_CANCELundDCM_FORCE_RCRRP_OK: Alle Eingangsparameter sind auf0x00gesetzt.
Asynchrone Semantik und Rückgabewerte
Die Funktion arbeitet asynchron und nicht-reentrant (Non Reentrant) [SWS_Dcm_91083]. Sie liefert folgende Statuswerte:
E_OK: Der Schreibvorgang wurde erfolgreich abgeschlossen.DCM_E_PENDING: Die Verarbeitung ist noch nicht beendet und erfordert weitere Aufrufe.DCM_E_FORCE_RCRRP: Die Applikation fordert das Senden einer Warteantwort (Response Pending, NRC 0x78) an.E_NOT_OK: Die Operation ist fehlgeschlagen.
Fehlerbehandlung
Gibt Dcm_WriteFile den Wert E_NOT_OK zurück, sendet das DCM-Modul eine negative UDS-Antwort, deren NRC dem über den Ausgabeparameter ErrorCode bereitgestellten Wert entspricht [SWS_Dcm_91083].
Dieser Text wurde durch ein KI-gestütztes System erzeugt und unterliegt der Belegpflicht anhand der AUTOSAR-Spezifikation.
Implementer's Guide folgt (Komplexität I2)
function Dcm_ReadFileOrDir [SWS_Dcm_91085] 📄 PDF
Std_ReturnType Dcm_ReadFileOrDir (Dcm_OpStatusType OpStatus, uint64* DataLength, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function. DCM shall call this function when data shall be sent as a response to UDS service TransferData if there's an ongoing RequestFileTransfer process started with 0x04 (ReadFile) or 0x05 (ReadDir).
Die Callout-Funktion Dcm_ReadFileOrDir wird vom DCM-Modul aufgerufen, wenn im Rahmen eines laufenden Datei- oder Verzeichnis-Uploads (zuvor gestartet via UDS-Dienst RequestFileTransfer mit Modus 0x04 für ReadFile oder 0x05 für ReadDir) eine formatkonforme Anfrage für den UDS-Dienst TransferData (0x36) eingeht [SWS_Dcm_01445]. Die Funktion dient dazu, die als Antwort an den Client zu sendenden Daten bereitzustellen [SWS_Dcm_91085]. Die Schnittstellendeklaration ist über den Header Dcm_Externals.h verfügbar [SWS_Dcm_91085].
Die Ausführung erfolgt asynchron und ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_Dcm_91085]. Das Zusammenspiel und die Parameterbelegung hängen vom übergebenen Betriebsstatus ab:
- Betriebsstatus (
OpStatus): Beim initialen Aufruf mitDCM_INITIALsind alle Eingangsparameter gültig. Bei Folge- oder Abbruchaufrufen mitDCM_PENDING,DCM_CANCELoderDCM_FORCE_RCRRP_OKsind alle Eingangsparameter auf0x00gesetzt [SWS_Dcm_91085]. - Puffer und Blocklänge: Der Parameter
DataLengthübergibt eingangsseitig die maximal zulässige Blocklänge (entsprechend dem dem Client gemeldeten WertmaxNumberOfBlockLength) und gibt ausgangsseitig die tatsächlich inDatabereitgestellte Bytelänge zurück, die den Eingangswert nicht überschreiten darf [SWS_Dcm_91085]. Interpretation: ObwohlDatain der Schnittstelle formal als In-Parameter deklariert ist, dürfte er zur Übergabe der auszulesenden Nutzdaten dienen. Frage Q-53de8a0bdbc4a2b4 (offen) - Rückgabewerte: Die Operation liefert
E_OKbei erfolgreicher Datenbereitstellung,DCM_E_PENDINGbei noch nicht abgeschlossener Verarbeitung oderDCM_E_FORCE_RCRRP, wenn die Applikation das Versenden einer Zwischenmeldung (Response Pending, NRC 0x78) erzwingen möchte [SWS_Dcm_91085].
Schlägt die Verarbeitung in der Applikation fehl, wird E_NOT_OK zurückgegeben. In diesem Fehlerfall übermittelt das DCM-Modul eine negative UDS-Antwort (NRC) an den Client, deren Fehlercode dem im Ausgabeparameter ErrorCode gesetzten Wert entspricht [SWS_Dcm_91085].
Dieser Text wurde von einer KI generiert und dient als Orientierungshilfe. Maßgeblich sind die offiziellen AUTOSAR-Spezifikationen.
Implementer's Guide folgt (Komplexität I2)
function Dcm_MainFunction [SWS_Dcm_00053] 📄 PDF
void Dcm_MainFunction (void);
This service is used for processing the tasks of the main loop.
Die Funktion Dcm_MainFunction dient der Abarbeitung der zentralen Aufgaben der Hauptschleife des Diagnostic Communication Managers ([SWS_Dcm_00053]). Sie besitzt die Signatur void Dcm_MainFunction(void) und liefert keine Rückgabewerte. Da sie über den Header SchM_Dcm.h bereitgestellt wird, dürfte ihr Aufruf vermutlich zyklisch im Kontext einer Scheduler-Task der Basissoftware erfolgen. Frage Q-e083a72aae447ab5 (offen)
Eine wesentliche Aufgabe ist die Steuerung und zyklusübergreifende Weiterführung asynchroner Abläufe:
- Liefert eine Operation mit
Dcm_OpStatusTypeden RückgabewertDCM_E_PENDING, ruft das DCM die Operation bei jedem Aufruf vonDcm_MainFunctionmitOpStatus = DCM_PENDINGerneut auf, solange dieser Status anhält ([SWS_Dcm_00530]). - Gibt
Dem_ClearDTC()den StatusDEM_PENDINGzurück, wird die Funktion im nächsten Zyklus vonDcm_MainFunctionerneut aufgerufen; das DCM sendet bei Bedarf NRC 78 (ResponsePending) ([SWS_Dcm_00703]). - Aufrufe von
Dem_SetDTCFilter()mit gesetztem ParameterFilterForFault-DetectionCountermüssen zwingend im Kontext vonDcm_MainFunctionerfolgen ([SWS_Dcm_00519]). - Nach Bestätigung einer RCR-RP-Übertragung ruft das DCM Operationen wie
Dcm_WriteMemoryoderDcm_ReadMemoryausDcm_MainFunctionerneut mitOpStatus = DCM_FORCE_RCRRP_OKauf ([SWS_Dcm_00529], [SWS_Dcm_00838], [SWS_Dcm_00840]). - Wird bei
Xxx_GetSecurityAttemptCounterder WertDCM_E_PENDINGgemeldet, wird der Aufruf unterbrochen und im nächsten Zyklus fortgesetzt ([SWS_Dcm_01351]); bei Überschreiten des konfigurierten Timeouts bricht das DCM die anhängige Operation mitOpStatus = DCM_CANCELab ([SWS_Dcm_01352]).
Dieser Nutzungshinweis wurde automatisch auf Basis der AUTOSAR-Spezifikation generiert.
Implementer's Guide folgt (Komplexität I2)
function Xxx_GetSeed [SWS_Dcm_01151] 📄 PDF
Std_ReturnType Xxx_GetSeed (const uint8* SecurityAccessDataRecord, Dcm_OpStatusType OpStatus, uint8* Seed, Dcm_NegativeResponseCodeType* ErrorCode);
Request to application for asynchronous provision of seed value
Die Funktion Xxx_GetSeed (bereitgestellt über Dcm_Externals.h) dient der asynchronen Bereitstellung eines Seed-Werts durch die Applikation für das DCM-Modul [SWS_Dcm_01151]. Sie wird aufgerufen, sobald eine UDS-Anfrage des Dienstes SecurityAccess (0x27) mit dem Subfunktionstyp „requestSeed“ empfangen wird und die angeforderte Sicherheitsstufe noch nicht aktiv ist [SWS_Dcm_00862], [SWS_Dcm_00324].
Aufrufkontext und Parameter
Die Schnittstelle ist als nicht reentrant (Non Reentrant) definiert und operiert asynchron [SWS_Dcm_01151]:
SecurityAccessDataRecord: Zeiger auf zusätzliche Eingangsdaten zur Seed-Berechnung; die Mindestgröße beträgt ein Byte gemäßDcmDspSecurityADRSize[SWS_Dcm_01151].OpStatus: Gibt den aktuellen Status der asynchronen Operation an [SWS_Dcm_01151].Seed: Ausgabepointer, über den die Applikation den berechneten Seed bereitstellt [SWS_Dcm_01151].ErrorCode: Ausgabeparameter zur Rückgabe eines negativen Fehlercodes (NRC) [SWS_Dcm_01151].
Rückgabewerte und Fehlerbehandlung
E_OK: Der Seed wurde erfolgreich ermittelt und bereitgestellt [SWS_Dcm_01151].DCM_E_PENDING: Die Berechnung ist noch nicht abgeschlossen; zur Fertigstellung sind Folgeberechnungen bzw. -aufrufe notwendig [SWS_Dcm_01151].E_NOT_OK: Die Anfrage schlug fehl. In diesem Fall sendet das DCM-Modul eine negative UDS-Antwort mit dem im ParameterErrorCodeübergebenen NRC-Wert [SWS_Dcm_01151], [SWS_Dcm_00659].
Integrationshinweise
Je nach Konfiguration von DcmDspSecurityUsePort erfolgt die Anbindung als C-Funktion bei USE_ASYNCH_FNC (referenziert über DcmDspSecurityGetSeedFnc) [SWS_Dcm_00862] oder als Rte-Operation bei USE_ASYNCH_CLIENT_SERVER [SWS_Dcm_00324]. Sofern keine zusätzlichen Zugangsdaten übergeben werden müssen, kommt die alternative Funktionssignatur ohne den Parameter SecurityAccessDataRecord zum Einsatz [SWS_Dcm_91003].
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR CP R20-11 erstellt.
Implementer's Guide folgt (Komplexität I2)
function Xxx_GetSeed [SWS_Dcm_91003] 📄 PDF
Std_ReturnType Xxx_GetSeed (Dcm_OpStatusType OpStatus, uint8* Seed, Dcm_NegativeResponseCodeType* ErrorCode);
Request to application for asynchronous provision of seed value
Die Funktion Xxx_GetSeed dient als asynchrone Schnittstelle des Moduls DCM an die Applikation, um im Rahmen des UDS-Dienstes SecurityAccess (0x27) bei einer Anfrage vom Typ „requestSeed“ einen Seed-Wert bereitzustellen [SWS_Dcm_91003], [SWS_Dcm_00862]. Der Aufruf erfolgt durch das DCM-DSP-Submodul, sofern die Sicherheitsstufe noch nicht aktiv ist und die Konfiguration USE_ASYNCH_CLIENT_SERVER oder USE_ASYNCH_FNC vorsieht [SWS_Dcm_00324], [SWS_Dcm_00862].
Die Schnittstelle ist asynchron und nicht reentrant (Non Reentrant) ausgeführt [SWS_Dcm_91003]. Die Steuerung des Verarbeitungsfortschritts erfolgt über den Eingangsparameter OpStatus (Typ Dcm_OpStatusType) [SWS_Dcm_91003]. Als Rückgabewerte sind E_OK bei erfolgreicher Bereitstellung, E_NOT_OK im Fehlerfall sowie DCM_E_PENDING definiert, wenn die Seed-Generierung noch andauert und weitere Aufrufe erforderlich sind [SWS_Dcm_91003]. Der generierte Wert wird über den Zeiger Seed (Inout/Out-Puffer) übergeben [SWS_Dcm_91003].
Schlägt die Operation fehl und Xxx_GetSeed liefert E_NOT_OK zurück, muss das DCM-Modul eine negative Antwort (NRC) mit dem Fehlercode versenden, der über den Ausgabeparameter ErrorCode (Dcm_NegativeResponseCodeType) gesetzt wurde [SWS_Dcm_91003], [SWS_Dcm_00659]. Deklariert ist der Dienst über den Header Dcm_Externals.h [SWS_Dcm_91003].
Dieser Text wurde von einer KI basierend auf dem AUTOSAR-Standard R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Xxx_CompareKey [SWS_Dcm_91004] 📄 PDF
Std_ReturnType Xxx_CompareKey (const uint8* Key, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);
Request to application for asynchronous comparing key (DcmDspSecurityUsePort = USE_ ASYNCH_CLIENT_SERVER)
Die Funktion Xxx_CompareKey wird vom Diagnostic Communication Manager ([SWS_Dcm_91004]) asynchron und nicht-reentrant aufgerufen, um einen empfangenen Schlüssel im Rahmen des UDS-Dienstes SecurityAccess (0x27, Subfunktion sendKey) gegen die interne Logik der Applikation abzugleichen ([SWS_Dcm_00863]). Sie kommt zum Einsatz, wenn der Zugriffsstatus noch nicht aktiv ist, die Seed-Anfrage erfolgreich war und der Konfigurationsparameter DcmDspSecurityUsePort auf USE_ASYNCH_CLIENT_SERVER gesetzt ist ([SWS_Dcm_00324]) bzw. laut [SWS_Dcm_00863] die Funktionsschnittstelle über USE_ASYNCH_FNC/DcmDspSecurityCompareKeyFnc konfiguriert wurde. Deklariert ist die Schnittstelle in Dcm_Externals.h ([SWS_Dcm_91004]).
Die Übergabe umfasst den zu prüfenden Schlüsselzeiger Key, den aktuellen Operationsstatus OpStatus (vom Typ Dcm_OpStatusType) sowie den Zeiger ErrorCode für den im Fehlerfall auszugebenden negativen Antwortcode ([SWS_Dcm_91004]). Als Rückgabewerte sind spezifiziert:
E_OK: Schlüsselprüfung erfolgreich ([SWS_Dcm_91004]).DCM_E_PENDING: Prüfung noch nicht abgeschlossen; weitere Aufrufe durch das DCM-Modul zur Beendigung sind erforderlich ([SWS_Dcm_91004]).E_NOT_OK: Verarbeitung nicht erfolgreich. Der DCM sendet daraufhin eine negative UDS-Antwort mit dem inErrorCodegesetzten NRC, ohne den internen Sicherheitslevel zu verändern oder den Fehlversuchszähler (AttemptCounter) zu erhöhen ([SWS_Dcm_01150]).DCM_E_COMPARE_KEY_FAILED: Schlüssel stimmt nicht überein ([SWS_Dcm_91004]).
Schlägt der Schlüsselvergleich fehl (DCM_E_COMPARE_KEY_FAILED), wird bei konfiguriertem DcmDspSecurityNumAttDelay der AttemptCounter inkrementiert ([SWS_Dcm_01397]). Liegt der Zähler unterhalb des Grenzwerts, sendet der DCM den NRC 0x35 (InvalidKey) ([SWS_Dcm_00660]). Erreicht oder überschreitet die Anzahl der Fehlversuche das konfigurierte Limit DcmDspSecurityNumAttDelay, startet der DCM den SecurityDelayTimer mit der Zeitdauer DcmDspSecurityDelayTime und sendet den NRC 0x36 (exceededNumberOfAttempts) ([SWS_Dcm_01349]). In beiden Fällen verbleibt der Sicherheitslevel unverändert.
Dieser Nutzungshinweis wurde automatisiert generiert und basiert auf den Spezifikationen des AUTOSAR Classic R20-11 DCM-Moduls.
Implementer's Guide folgt (Komplexität I3)
function Xxx_GetSecurityAttemptCounter [SWS_Dcm_01152] 📄 PDF
Std_ReturnType Xxx_GetSecurityAttemptCounter (Dcm_OpStatusType OpStatus, uint8* AttemptCounter);
Read the attempt counter for a specific security level from the application
Die asynchrone und nicht-reentrante Funktion [SWS_Dcm_01152] liest bei der Initialisierung des DCM den aktuellen Fehlversuchszähler für eine konfigurierte Sicherheitsstufe aus der Applikation aus. Der Aufruf erfolgt für jeden Eintrag in DcmDspSecurityRow, bei dem der Konfigurationsparameter DcmDspSecurityAttemptCounterEnabled auf TRUE gesetzt ist [SWS_Dcm_01154].
Die Ablaufsteuerung wird über den Parameter OpStatus mit den Werten DCM_INITIAL, DCM_PENDING oder DCM_CANCEL geführt [SWS_Dcm_01152]. Gibt die Funktion DCM_E_PENDING zurück, unterbricht das DCM die Aufrufkette und setzt sie im darauffolgenden Zyklus von Dcm_MainFunction() fort [SWS_Dcm_01351]. Wird die nach dem ersten Zyklus konfigurierte Zeitüberwachung DcmDspSecurityMaxAttemptCounterReadoutTime überschritten, bricht das DCM den noch ausstehenden Vorgang mit DCM_CANCEL ab [SWS_Dcm_01352].
Im Erfolgsfall liefert die Schnittstelle E_OK und übergibt den Zählerstand über den Ausgabeparameter AttemptCounter [SWS_Dcm_01152]. Gibt der Aufruf E_NOT_OK zurück, setzt das DCM den Zähler automatisch auf den für diese Sicherheitsstufe konfigurierten Wert DcmDspSecurityNumAttDelay [SWS_Dcm_01156].
Solange nicht alle Zählerwerte endgültig ermittelt oder abgebrochen wurden, weist das DCM jede Anfrage auf SecurityAccess (0x27) zum Anfordern eines Seeds mit dem negativen Antwortcode conditionsNotCorrect (0x22) ab [SWS_Dcm_01354]. Nach Abschluss der Abfragekette prüft das DCM die Zählerwerte: Erreicht oder überschreitet mindestens ein Zähler den Schwellenwert DcmDspSecurityNumAttDelay, startet das DCM den SecurityDelayTimer mit dem höheren Wert aus DcmDspSecurityDelayTimeOnBoot und DcmDspSecurityDelayTime [SWS_Dcm_01355].
Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation R20-11 erstellt.
Implementer's Guide folgt (Komplexität I2)
function Xxx_SetSecurityAttemptCounter [SWS_Dcm_01153] 📄 PDF
Std_ReturnType Xxx_SetSecurityAttemptCounter (Dcm_OpStatusType OpStatus, uint8 AttemptCounter);
Set the attempt counter for a specific security level in the application
Die Funktion Xxx_SetSecurityAttemptCounter dient dazu, den Versuchszähler für eine spezifische Sicherheitsstufe in der Applikation zu setzen ([SWS_Dcm_01153]). Sie wird über den Header Dcm_Externals.h bereitgestellt.
Aufruf und Semantik
Die Ausführung erfolgt asynchron und ist als nicht reentrant (Non Reentrant) spezifiziert ([SWS_Dcm_01153]). Der Aufruf steuert den Ablauf über den Parameter OpStatus mit den Werten DCM_INITIAL, DCM_PENDING oder DCM_CANCEL. Der neue Zählerwert wird über den Eingangsparameter AttemptCounter (uint8) übergeben.
Rückgabewerte und Fehlerbehandlung
Als Rückgabetyp wird Std_ReturnType verwendet ([SWS_Dcm_01153]):
E_OK: Die Anforderung wurde erfolgreich abgeschlossen.E_NOT_OK: Die Ausführung war nicht erfolgreich.DCM_E_PENDING: Die Verarbeitung ist noch nicht beendet; weitere Aufrufe zur Fertigstellung sind erforderlich.
Wird eine laufende asynchrone Operation abgebrochen, übergibt das DCM den Status DCM_CANCEL ([SWS_Dcm_01153]).
Zusammenspiel und Randbedingungen
Das DCM-Modul ruft Xxx_SetSecurityAttemptCounter auf, sobald es den Versuchszähler verändert hat, um die Applikation über die Aktualisierung zu benachrichtigen ([SWS_Dcm_01155]). Dies setzt voraus, dass der Konfigurationsparameter DcmDspSecurityAttemptCounterEnabled für die zugehörige DcmDspSecurityRow auf TRUE konfiguriert ist ([SWS_Dcm_01155]). Da die Schnittstelle nicht reentrant ist, muss die Applikation eine nebenläufige Ausführung für dieselbe Instanz ausschließen ([SWS_Dcm_01153]).
Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Xxx_ReadData [SWS_Dcm_00793] 📄 PDF
Std_ReturnType Xxx_ReadData (uint8* Data);
This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_SYNCH_CLIENT_SERVER.
Die synchrone Funktion Xxx_ReadData fordert von der Applikation den aktuellen Datenwert eines DID oder PID an, wenn der Konfigurationsparameter DcmDspDataUsePort auf USE_DATA_SYNCH_CLIENT_SERVER eingestellt ist [SWS_Dcm_00793]. Die Schnittstelle wird über den Header Dcm_Externals.h bereitgestellt und besitzt die Service-ID 0x34 [SWS_Dcm_00793]. Die aufgerufene Applikation kopiert die angeforderten Nutzdaten direkt in den übergebenen Puffer Data [SWS_Dcm_00793].
Hinsichtlich des Rückgabewerts ist festgelegt, dass der Aufruf ausnahmslos E_OK zurückliefert [SWS_Dcm_00793]. Spezifische Fehlercodes, negative Rückmeldungen oder DET-/DEM-Meldungen sind für diese Signatur nicht spezifiziert. Interpretation: Ein Fehlschlagen der Datenbereitstellung ist auf dieser Schnittstellenebene vermutlich nicht vorgesehen, da im Gegensatz zur asynchronen Variante [SWS_Dcm_91005] weder ein Parameter ErrorCode für negative Antwortcodes (NRC) noch Rückgabewerte wie E_NOT_OK oder DCM_E_PENDING existieren. Frage Q-adcf0171ecfd37c4 (offen)
Bezüglich Nebenläufigkeit und Randbedingungen ist die Funktion als nicht reentrant (Non Reentrant) spezifiziert und arbeitet vollständig synchron [SWS_Dcm_00793]. Das Zusammenspiel mit Diagnoseanfragen erfolgt in mehreren Szenarien:
- Beim Empfang einer OBD-Service-$01-Anfrage mit Nicht-Verfügbarkeits-PIDs ruft das DCM die jeweils konfigurierten
Xxx_ReadData-Funktionen für alle Daten des PIDs auf, um die Antwortwerte zu erfassen [SWS_Dcm_00408]. - Bei einer UDS-Anfrage des Dienstes 0x22 (ReadDataByIdentifier) mit Nicht-Verfügbarkeits-Identifiern ruft das DCM die Funktionen für alle Daten des
OBDDataIdentifier[SWS_Dcm_01380] sowie desOBDInfoTypeDataIdentifier[SWS_Dcm_01389] auf. - Wird hingegen ein asynchrones Verhalten benötigt, greifen die separaten Signaturen mit
OpStatusgemäß [SWS_Dcm_91006] bzw. [SWS_Dcm_91005].
Dieser Text wurde von einer KI erstellt und basiert ausschließlich auf den Spezifikationen des Release R20-11.
Implementer's Guide folgt (Komplexität I2)
function Xxx_ReadData [SWS_Dcm_91006] 📄 PDF
Std_ReturnType Xxx_ReadData (Dcm_OpStatusType OpStatus, uint8* Data);
This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_ASYNCH_CLIENT_SERVER.
Die Funktion Xxx_ReadData dient dazu, Datenwerte eines DID oder PID asynchron von der Anwendung abzufragen, sofern der Parameter DcmDspDataUsePort auf USE_DATA_ASYNCH_CLIENT_SERVER konfiguriert ist ([SWS_Dcm_91006]). Sie wird über die Header-Datei Dcm_Externals.h deklariert ([SWS_Dcm_91006]).
Beim Aufruf steuert der Parameter OpStatus (Typ Dcm_OpStatusType) den Fortschritt der laufenden Operation, während über den Zeiger Data (Typ uint8*) der Ausgabepuffer übergeben wird, in den die angeforderten Daten zu kopieren sind ([SWS_Dcm_91006]). Als Rückgabewerte sind E_OK bei erfolgreichem Abschluss und DCM_E_PENDING definiert, sofern die Verarbeitung noch andauert und weitere Aufrufe zur Fertigstellung benötigt ([SWS_Dcm_91006]).
Das DCM-Modul bindet diese Funktion in folgende Diagnoseabläufe ein:
- Beim Empfang eines OBD Service $01 liest das DCM die aktuellen PID-Werte (ausgenommen Verfügbarkeits-PIDs) über die konfigurierten
Xxx_ReadData-Funktionen ein ([SWS_Dcm_00408]). - Bei UDS Service 0x22 (
ReadDataByIdentifier) ruft das DCM die Funktion für OBDDataIdentifier ([SWS_Dcm_01380]) und OBDInfoTypeDataIdentifier ([SWS_Dcm_01389]) auf.
Hinsichtlich der Ausführung ist die Funktion als nicht reentrant (Non Reentrant) spezifiziert ([SWS_Dcm_91006]). Im Gegensatz zur synchronen Schnittstelle ([SWS_Dcm_00793]) oder der asynchronen Variante mit zusätzlichem ErrorCode-Parameter ([SWS_Dcm_91005]) sieht diese Funktionsausprägung keine direkte Rückgabe eines negativen Antwortcodes vor.
Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.
Implementer's Guide folgt (Komplexität I3)
function Xxx_ReadData [SWS_Dcm_91005] 📄 PDF
Std_ReturnType Xxx_ReadData (Dcm_OpStatusType OpStatus, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_ASYNCH_CLIENT_SERVER.
Die Funktion Xxx_ReadData fordert von der Applikation asynchron den Datenwert eines DID oder PID an, sofern der Konfigurationsparameter DcmDspDataUsePort auf USE_DATA_ASYNCH_CLIENT_SERVER eingestellt ist [SWS_Dcm_91005]. Die Funktionsdeklaration wird über die Schnittstellendatei Dcm_Externals.h bereitgestellt [SWS_Dcm_91005].
Die Schnittstelle besitzt folgende Aufruf- und Ablaufcharakteristika:
- Semantik und Parameter: Der Eingabeparameter
OpStatussteuert den Fortschritt der laufenden Operation [SWS_Dcm_91005]. Bei erfolgreichem Abschluss werden die angeforderten Nutzdaten in den AusgabepufferDatakopiert undE_OKzurückgegeben [SWS_Dcm_91005]. Benötigt die Applikation weitere Bearbeitungszeit, signalisiert sieDCM_E_PENDING, woraufhin Folgebeschaltungen erforderlich sind [SWS_Dcm_91005]. - Fehlerbehandlung: Schlägt die Operation fehl und gibt
E_NOT_OKzurück, wertet das DCM-Modul den AusgabeparameterErrorCodeaus und sendet eine negative Diagnoseantwort mit diesem NRC-Code [SWS_Dcm_91005]. - Nebenläufigkeit: Die Funktion ist als nicht reentrant (
Non Reentrant) definiert [SWS_Dcm_91005]. Interpretation: Die wiederholten Aufrufe bei anhängiger Bearbeitung dürften sequenziell im Zyklus der DCM-Hauptverarbeitung erfolgen. Frage Q-541226d5f242f7c2 (offen) - Zusammenspiel: Das DCM-Modul ruft die Funktion bei Anfragen des OBD Service $01 für Nicht-Verfügbarkeits-PIDs [SWS_Dcm_00408] sowie beim UDS Service ReadDataByIdentifier (0x22) für
OBDDataIdentifier[SWS_Dcm_01380] undOBDInfoTypeDataIdentifier[SWS_Dcm_01389] auf. Im Vergleich zur synchronen Variante [SWS_Dcm_00793] oder asynchronen Schnittstellen ohne NRC-Parameter [SWS_Dcm_91006] ermöglicht diese Signatur eine spezifische negative Fehlerübermittlung.
Dieser Text wurde von einer KI erstellt und basiert ausschließlich auf den Spezifikationsanforderungen des AUTOSAR-Releases R20-11.
Implementer's Guide folgt (Komplexität I3)
function Xxx_WriteData [SWS_Dcm_00794] 📄 PDF
Std_ReturnType Xxx_WriteData (const uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);
This function requests the application to write a data value of a DID.
Verwendung
Die Funktion Xxx_WriteData wird vom Diagnostic Communication Manager (DCM) aufgerufen, um die Applikation zum Schreiben eines DID-Datenwerts (Data Identifier) aufzufordern ([SWS_Dcm_00794]). Die Deklaration wird über den Header Dcm_Externals.h bereitgestellt. Der Aufruf erfolgt synchron unter der Service-ID 0x51 ([SWS_Dcm_00794]).
Parameter und Rückgabewerte:
Data(in): Zeiger auf den Puffer mit den zu schreibenden Nutzdaten ([SWS_Dcm_00794]).ErrorCode(out): Zeiger auf die Variable, in die bei einem Fehlschlag der negative Diagnosecode (NRC) einzutragen ist ([SWS_Dcm_00794]).- Rückgabewert (
Std_ReturnType):E_OKsignalisiert erfolgreiches Schreiben,E_NOT_OKdas Fehlschlagen der Operation ([SWS_Dcm_00794]).
Fehlerbehandlung
Gibt die Funktion E_NOT_OK zurück, liest das DCM-Modul den Parameter ErrorCode aus und sendet eine negative Diagnoseantwort mit diesem NRC-Code ([SWS_Dcm_00794]).
Nebenläufigkeit und Einschränkungen
Die Funktion ist als nicht reentrant (Non Reentrant) spezifiziert ([SWS_Dcm_00794]) und darf nicht nebenläufig ausgeführt werden.
Zusammenspiel
Da kein Längenparameter existiert, dürfte diese Variante für DIDs mit fester Datenlänge vorgesehen sein. Frage Q-ebc074ac1cb66aaa (offen) Für DIDs mit variabler Länge stellt AUTOSAR die synchrone Signatur mit dem Parameter DataLength bereit ([SWS_Dcm_91007]). Zudem existieren für langwierige Abläufe asynchrone Varianten mit OpStatus und möglicher Rückgabe von DCM_E_PENDING, sowohl mit fester Datenlänge ([SWS_Dcm_91008]) als auch mit variablem Längenparameter ([SWS_Dcm_91009]).
Dieser Text wurde von einer KI auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Xxx_WriteData [SWS_Dcm_91007] 📄 PDF
Std_ReturnType Xxx_WriteData (const uint8* Data, uint16 DataLength, Dcm_NegativeResponseCodeType* ErrorCode);
This function requests the application to write a data value of a DID.
Die Callback-Funktion Xxx_WriteData dient dazu, die Applikation zum Schreiben des Datenwerts eines Data Identifier (DID) aufzufordern [SWS_Dcm_91007]. Die Schnittstelle ist über den Header Dcm_Externals.h deklariert und besitzt die Service-ID 0x52 [SWS_Dcm_91007]. Der Aufruf erfolgt synchron und ist als nicht reentrant (Non Reentrant) spezifiziert, weshalb keine nebenläufigen Aufrufe für dieselbe Funktion erfolgen dürfen [SWS_Dcm_91007].
An Parametern empfängt die Funktion den Puffer Data mit den zu schreibenden Nutzdaten sowie DataLength mit der Längenangabe in Bytes [SWS_Dcm_91007]. Als Rückgabewert liefert sie den Typ Std_ReturnType mit E_OK bei erfolgreicher Ausführung oder E_NOT_OK im Fehlerfall [SWS_Dcm_91007]. Schlägt die Operation fehl und gibt E_NOT_OK zurück, muss das DCM-Modul eine negative Antwort an den Diagnosetester senden; dabei entspricht der Negative Response Code (NRC) dem über den Zeigerparameter ErrorCode übermittelten Wert [SWS_Dcm_91007].
Im Gesamtsystem stellt [SWS_Dcm_91007] die synchrone Variante für DIDs mit expliziter Längenangabe dar. Ergänzend dazu existiert mit [SWS_Dcm_00794] (Service-ID 0x51) eine synchrone Variante ohne den Parameter DataLength. Für längere Schreibvorgänge sieht der Standard asynchrone Schnittstellen vor: [SWS_Dcm_91008] (Service-ID 0x35) ohne Längenangabe sowie [SWS_Dcm_91009] (Service-ID 0x3e) mit DataLength. Beide asynchronen Funktionen werden über OpStatus gesteuert und können neben E_OK und E_NOT_OK auch DCM_E_PENDING zurückgeben [SWS_Dcm_91008] [SWS_Dcm_91009].
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR Classic Release R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Xxx_WriteData [SWS_Dcm_91008] 📄 PDF
Std_ReturnType Xxx_WriteData (const uint8* Data, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);
This function requests the application to write a data value of a DID.
Verwendung
Die Funktion Xxx_WriteData fordert die Applikation auf, den Datenwert eines Data Identifiers (DID) zu schreiben [SWS_Dcm_91008]. Sie ist in der Header-Datei Dcm_Externals.h deklariert und besitzt eine asynchrone Ausführungssemantik mit der Service-ID 0x35 [SWS_Dcm_91008].
Die Parameter und Rückgabewerte gliedern sich wie folgt [SWS_Dcm_91008]:
Data(IN): Zeiger auf den Puffer, der die zu schreibenden Daten enthält.OpStatus(IN): Status der aktuellen Operation zur Steuerung des asynchronen Aufrufablaufs.ErrorCode(OUT): Zeiger auf den Fehlercode (NRC), der im Fehlerfall gesetzt wird.- Rückgabewert (
Std_ReturnType):E_OKbestätigt den erfolgreichen Schreibvorgang,E_NOT_OKmeldet einen Fehlschlag undDCM_E_PENDINGzeigt an, dass die Operation noch andauert und weitere Aufrufe zur Fertigstellung benötigt.
Fehlerbehandlung und Nebenläufigkeit
Gibt der Aufruf den Wert E_NOT_OK zurück, muss das DCM-Modul eine negative Antwort mit dem im Ausgabeparameter ErrorCode übergebenen NRC-Wert versenden [SWS_Dcm_91008]. Die Funktion ist als nicht reentrant spezifiziert [SWS_Dcm_91008], sodass gleichzeitige oder überlappende Aufrufe für dieselbe Instanz unzulässig sind.
Zusammenspiel und Varianten
Diese Schnittstelle nach [SWS_Dcm_91008] deckt den asynchronen Schreibzugriff ohne separaten Längenparameter ab. AUTOSAR definiert hierzu verwandte Varianten im DCM: eine synchrone Signatur ohne Längenangabe [SWS_Dcm_00794] sowie Signaturen mit zusätzlichem Parameter DataLength für synchrone [SWS_Dcm_91007] und asynchrone Abläufe [SWS_Dcm_91009].
Dieser Nutzungshinweis wurde durch ein KI-System auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Xxx_WriteData [SWS_Dcm_91009] 📄 PDF
Std_ReturnType Xxx_WriteData (const uint8* Data, uint16 DataLength, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);
This function requests the application to write a data value of a DID.
Verwendung und Semantik
Die Funktion Xxx_WriteData fordert die Applikation dazu auf, den Datenwert eines Data Identifier (DID) zu schreiben [SWS_Dcm_91009]. Sie wird über die Header-Datei Dcm_Externals.h deklariert und besitzt die Service-ID 0x3e [SWS_Dcm_91009]. Die Ausführung erfolgt asynchron (Asynchronous), wozu folgende Parameter übergeben werden:
Data(in): Zeiger auf den Puffer mit den zu schreibenden Nutzdaten [SWS_Dcm_91009].DataLength(in): Länge der zu schreibenden Daten in Byte [SWS_Dcm_91009].OpStatus(in): Operationsstatus (Dcm_OpStatusType) zur Steuerung des asynchronen Verarbeitungsfortschritts [SWS_Dcm_91009].ErrorCode(out): Zeiger zur Aufnahme eines negativen Antwortcodes (NRC) im Fehlerfall [SWS_Dcm_91009].
Als Rückgabewerte vom Typ Std_ReturnType sind E_OK (Schreibanforderung erfolgreich abgeschlossen), E_NOT_OK (Anforderung fehlgeschlagen) sowie DCM_E_PENDING definiert [SWS_Dcm_91009]. Der Status DCM_E_PENDING signalisiert, dass der Vorgang noch nicht beendet ist und weitere Folgeaufrufe zur Fertigstellung erforderlich sind [SWS_Dcm_91009]. Interpretation: Das DCM dürfte die Funktion bei Rückgabe von DCM_E_PENDING mit fortgeführtem OpStatus solange zyklisch erneut aufrufen, bis ein finales Ergebnis vorliegt. Frage Q-fdbd734dab052f5c (offen)
Fehlerbehandlung und Nebenläufigkeit
Gibt die Funktion den Wert E_NOT_OK zurück, muss über den Parameter ErrorCode der entsprechende Fehlercode bereitgestellt werden; das DCM-Modul sendet daraufhin eine negative Antwort mit diesem NRC-Wert [SWS_Dcm_91009]. Spezifische DET- oder DEM-Meldungen sind im Payload für diese Schnittstelle nicht definiert. Hinsichtlich Nebenläufigkeit ist die Funktion als nicht reentrant (Non Reentrant) spezifiziert [SWS_Dcm_91009].
Zusammenspiel und Schnittstellenvarianten
Die Signatur [SWS_Dcm_91009] deckt asynchrone Schreibzugriffe mit expliziter Längenangabe ab. Im DCM existieren weitere Varianten von Xxx_WriteData:
- Synchrone Ausführung ohne Längenangabe: [SWS_Dcm_00794] (Service-ID
0x51). - Synchrone Ausführung mit Längenangabe: [SWS_Dcm_91007] (Service-ID
0x52). - Asynchrone Ausführung ohne Längenangabe: [SWS_Dcm_91008] (Service-ID
0x35).
Hinweis: Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Classic-Spezifikation für Release R20-11 erstellt.
Implementer's Guide folgt (Komplexität I2)
function Xxx_ReadDataLength [SWS_Dcm_00796] 📄 PDF
Std_ReturnType Xxx_ReadDataLength (uint16* DataLength);
This function requests the application to return the data length in byte of a Data.
Verwendung
Mit der Funktion Xxx_ReadDataLength fordert das DCM-Modul die Applikation auf, die Datenlänge eines Datums in Byte zu ermitteln und zurückzuliefern [SWS_Dcm_00796]. Die Schnittstelle ist im Header Dcm_Externals.h deklariert und besitzt die Service-ID 0x36 [SWS_Dcm_00796]. Die Abfrage wird synchron ausgeführt [SWS_Dcm_00796]. Über den Ausgabeparameter DataLength vom Typ uint16* übergibt die Applikation die Bytelänge der zu lesenden Daten an das DCM [SWS_Dcm_00796]. Eingangs- oder Ein-/Ausgangsparameter sind nicht definiert [SWS_Dcm_00796]. Als Rückgabewert liefert die Funktion stets E_OK vom Typ Std_ReturnType [SWS_Dcm_00796].
Nebenläufigkeit und Einschränkungen
Die Schnittstelle ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_Dcm_00796]. Da die Funktion synchron arbeitet und nach Spezifikation stets E_OK meldet, sind für diesen Aufruf keine spezifischen Fehlercodes oder abweichenden Statusrückgaben vorgesehen [SWS_Dcm_00796].
Zusammenspiel
Neben der synchronen Funktion existiert eine gleichnamige asynchrone Variante mit der Service-ID 0x4c, die ebenfalls über Dcm_Externals.h bereitgestellt wird [SWS_Dcm_91010]. Während die synchrone Fassung [SWS_Dcm_00796] ohne Operationsstatus auskommt, verlangt das asynchrone Gegenstück den Eingangsparameter OpStatus vom Typ Dcm_OpStatusType [SWS_Dcm_91010]. Zudem kann die asynchrone Schnittstelle neben E_OK den Rückgabewert DCM_E_PENDING liefern, falls die Anfrage noch nicht abgeschlossen ist und weitere Aufrufe zur Fertigstellung benötigt [SWS_Dcm_91010].
Dieser Text wurde von einer KI generiert und dient als Orientierungshilfe. Verbindlich sind die Vorgaben der jeweiligen AUTOSAR-Spezifikation.
Implementer's Guide folgt (Komplexität I1)
function Xxx_ReadDataLength [SWS_Dcm_91010] 📄 PDF
Std_ReturnType Xxx_ReadDataLength (Dcm_OpStatusType OpStatus, uint16* DataLength);
This function requests the application to return the data length in byte of a Data.
Die Funktion [SWS_Dcm_91010] (Service-ID 0x4c) fordert die Applikation auf, die Datenlänge eines Datenelements in Byte zu ermitteln. Sie ist im Header Dcm_Externals.h deklariert und dient dem Diagnostic Communication Manager (DCM) zur flexiblen Längenabfrage von Diagnosedaten.
Verwendung und Semantik
Beim Aufruf übergibt das DCM-Modul den aktuellen Fortschritt über den Eingangsparameter OpStatus vom Typ Dcm_OpStatusType ([SWS_Dcm_91010]). Das Ergebnis der Abfrage schreibt die Applikation in den Ausgabeparameter DataLength (Typ uint16*). Ist die Datenlänge nicht unmittelbar verfügbar, signalisiert die Funktion über den Rückgabewert DCM_E_PENDING, dass die Bearbeitung andauert und weitere Aufrufe erforderlich sind ([SWS_Dcm_91010]). Sobald das Ergebnis bereitsteht, meldet die Applikation den Abschluss mit E_OK zurück.
Nebenläufigkeit und Einschränkungen
Gemäß Spezifikation ist die Funktion als nicht reentrant eingestuft ([SWS_Dcm_91010]), weshalb gleichzeitige Aufrufe durch das DCM ausgeschlossen werden müssen. Da die Spezifikation keine spezifischen Fehlerwerte außer DCM_E_PENDING vorsieht, dürfte das DCM bei Rückgabe von E_OK stets von einer gültig gesetzten Bytegröße ausgehen. Frage Q-e7ecd3a518e2cbcb (offen)
Zusammenspiel
Die asynchrone Schnittstelle [SWS_Dcm_91010] unterscheidet sich von der verwandten synchronen Variante [SWS_Dcm_00796] (Service-ID 0x36). Letztere besitzt keinen Parameter OpStatus, wird synchron ausgeführt und liefert die Länge stets unmittelbar mit E_OK zurück. [SWS_Dcm_91010] erlaubt es der Applikation hingegen, zeitintensive Berechnungen asynchron über mehrere Aufrufzyklen zu strecken.
Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation erstellt.
Implementer's Guide folgt (Komplexität I2)
function Xxx_ConditionCheckRead [SWS_Dcm_00797] 📄 PDF
Std_ReturnType Xxx_ConditionCheckRead (Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application if the conditions to read the Data are correct.
Die synchrone Callout-Funktion Xxx_ConditionCheckRead wird über die Header-Datei Dcm_Externals.h bereitgestellt und dient dazu, bei der Applikation abzufragen, ob die Bedingungen für das Auslesen der Diagnosedaten erfüllt sind [SWS_Dcm_00797].
Die Schnittstelle besitzt keine Eingangsparameter und signalisiert den Status der Prüfung über den Rückgabewert vom Typ Std_ReturnType [SWS_Dcm_00797]:
E_OK: Die Prüfung war erfolgreich, die Bedingungen zum Lesen der Daten sind erfüllt [SWS_Dcm_00797].E_NOT_OK: Die Prüfung schlug fehl, das Auslesen ist nicht zulässig [SWS_Dcm_00797].
Liefert die Funktion E_NOT_OK zurück, sendet das DCM-Modul eine negative Antwort (Negative Response) mit dem Fehlercode, den die Applikation über den Ausgabeparameter ErrorCode (Typ Dcm_NegativeResponseCodeType*) übergeben hat [SWS_Dcm_00797].
Hinsichtlich der Nebenläufigkeit ist die Funktion als nicht reentrant (Non Reentrant) spezifiziert und wird mit der Service-ID 0x49 synchron ausgeführt [SWS_Dcm_00797]. Die Prüfung dürfte anwendungsseitig daher unmittelbar ohne blockierende Wartezeiten ausgewertet werden, um eine Verzögerung des synchronen DCM-Aufrufers zu vermeiden. Frage Q-ada29c78c29d961e (offen)
In Abgrenzung zu dieser synchronen Operation definiert [SWS_Dcm_91011] eine asynchrone Variante unter der Service-ID 0x37. Diese verwendet zusätzlich den Eingangsparameter OpStatus (Typ Dcm_OpStatusType) und kann neben E_OK und E_NOT_OK auch DCM_E_PENDING zurückgeben, wenn Folgeschritte zur Beendigung der Prüfung notwendig sind [SWS_Dcm_91011].
Dieser Nutzungshinweis wurde automatisch auf Basis der AUTOSAR-Spezifikation R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
function Xxx_ConditionCheckRead [SWS_Dcm_91011] 📄 PDF
Std_ReturnType Xxx_ConditionCheckRead (Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application if the conditions to read the Data are correct.
Verwendung und Semantik
Die Funktion Xxx_ConditionCheckRead wird über die Header-Datei Dcm_Externals.h bereitgestellt und dient dazu, bei der Anwendungssoftware abzufragen, ob die Bedingungen zum Auslesen der Diagnosedaten erfüllt sind [SWS_Dcm_91011]. Die Ausführung erfolgt unter der Service-ID 0x37 asynchron [SWS_Dcm_91011]. Über den Eingangsparameter OpStatus (Typ Dcm_OpStatusType) wird der aktuelle Status der laufenden Operation übergeben [SWS_Dcm_91011].
Rückgabewerte und Fehlerbehandlung
Als Rückgabewert liefert die Funktion einen Status vom Typ Std_ReturnType [SWS_Dcm_91011]:
E_OK: Die Anfrage war erfolgreich und die Lesebedingungen sind erfüllt [SWS_Dcm_91011].E_NOT_OK: Die Prüfung schlug fehl [SWS_Dcm_91011]. In diesem Fall muss die Anwendung über den AusgabeparameterErrorCodeeinen negativen Antwortcode (NRC) vom TypDcm_NegativeResponseCodeTypesetzen; das DCM-Modul sendet daraufhin eine negative Antwort mit diesem NRC [SWS_Dcm_91011].DCM_E_PENDING: Die Prüfung ist noch nicht abgeschlossen, sodass weitere Aufrufe zur Fertigstellung erforderlich sind [SWS_Dcm_91011].
Nebenläufigkeit und Abgrenzung
Die Schnittstelle ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_Dcm_91011]. Im Unterschied zu dieser asynchronen Variante definiert [SWS_Dcm_00797] unter der Service-ID 0x49 eine synchrone Signatur ohne OpStatus-Parameter, welche ausschließlich E_OK oder E_NOT_OK zurückliefert [SWS_Dcm_00797].
Dieser Nutzungshinweis wurde von einer KI auf Basis der AUTOSAR-R20-11-Spezifikation generiert.
Implementer's Guide folgt (Komplexität I2)
function Xxx_GetScalingInformation [SWS_Dcm_00798] 📄 PDF
Std_ReturnType Xxx_GetScalingInformation (uint8* ScalingInfo, Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application for the scaling information of a Data.
function Xxx_GetScalingInformation [SWS_Dcm_91012] 📄 PDF
Std_ReturnType Xxx_GetScalingInformation (Dcm_OpStatusType OpStatus, uint8* ScalingInfo, Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application for the scaling information of a Data.
Die asynchrone Schnittstelle Xxx_GetScalingInformation wird über den Header Dcm_Externals.h bereitgestellt und dient dazu, Skalierungsinformationen eines Datenelements aus der Applikation anzufordern [SWS_Dcm_91012]. Das DCM-Modul ruft diese Funktion auf, sobald eine Diagnoseanfrage für den UDS-Dienst ReadScalingByIdentifier empfangen wird, und zwar für jedes Datum, das für die angefragte DID konfiguriert ist [SWS_Dcm_00394].
Parameter und Rückgabewerte
Die Funktion definiert folgende Parameter und Semantik [SWS_Dcm_91012]:
OpStatus(in): Übergibt den aktuellen Status der laufenden Operation.ScalingInfo(out): Puffer zur Aufnahme der Skalierungsinformationen (scalingByteundscalingByteExtension).ErrorCode(out): Nimmt den negativen Antwortcode auf, falls die Operation fehlschlägt.
Als Rückgabewerte sind E_OK bei erfolgreichem Abschluss, E_NOT_OK bei einem Fehler sowie DCM_E_PENDING spezifiziert, falls die Bearbeitung noch nicht abgeschlossen ist und weitere Aufrufe zur Fertigstellung benötigt [SWS_Dcm_91012].
Fehlerbehandlung und Nebenläufigkeit
Gibt der Aufruf E_NOT_OK zurück, muss das DCM-Modul eine negative Antwort versenden, deren NRC dem über den Ausgabeparameter ErrorCode bereitgestellten Wert entspricht [SWS_Dcm_91012]. Die Funktion ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_Dcm_91012]. Interpretation: Ob diese asynchrone Funktion mit OpStatus oder die alternativ spezifizierte synchrone Variante ohne OpStatus [SWS_Dcm_00798] aufgerufen wird, dürfte von der Konfiguration der jeweiligen DID abhängen. Frage Q-c4054a798f17a52c (offen)
Dieser Text wurde von einer KI erstellt; die Richtigkeit und Vollständigkeit der Angaben kann nicht garantiert werden.
Implementer's Guide folgt (Komplexität I2)
function Xxx_ReturnControlToECU [SWS_Dcm_01285] 📄 PDF
Std_ReturnType Xxx_ReturnControlToECU ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application to return control to ECU of an IOControl.
Die Funktion Xxx_ReturnControlToECU wird über den Header Dcm_Externals.h bereitgestellt und fordert die Applikation auf, die Kontrolle über eine Ein-/Ausgabesteuerung (IOControl) an das Steuergerät zurückzugeben [SWS_Dcm_01285]. Der Aufruf erfolgt synchron und ist als nicht reentrant spezifiziert [SWS_Dcm_01285].
Parameter und Varianten
Die Funktionssignatur hängt von der Konfiguration der externen Steuermaske ab [SWS_Dcm_01285]:
- Ist
DcmDspDidControlMaskaufDCM_CONTROLMASK_EXTERNALgesetzt und beträgt die Maskengröße bis zu vier Byte (DcmDspDidControlMaskSize <= 0x04), wird der EingabeparametercontrolMaskvom TypDcm_ControlMask_{DID}Typeübergeben [SWS_Dcm_01285]. - Beträgt die Maskengröße fünf oder mehr Byte (
DcmDspDidControlMaskSize >= 0x05), wird stattdessen der ZeigercontrolMask2vom Typuint8*verwendet [SWS_Dcm_01285]. - Über den Ausgangsparameter
ErrorCode(TypDcm_NegativeResponseCodeType*) übermittelt die Funktion im Fehlerfall den spezifischen negativen Antwortcode (NRC) an das DCM [SWS_Dcm_01285].
Rückgabewerte und Fehlerbehandlung
Die Funktion liefert den Status Std_ReturnType zurück. Bei erfolgreicher Rückgabe der Kontrolle meldet die Applikation E_OK [SWS_Dcm_01285]. Schlägt die Operation fehl, muss die Funktion E_NOT_OK zurückgeben; in diesem Fall sendet das DCM-Modul eine negative Antwort mit dem in ErrorCode hinterlegten NRC an den Diagnosetester [SWS_Dcm_01285].
Zusammenspiel und Aufrufkontext
Das DCM ruft die konfigurierte Funktionsschnittstelle (Parameter DcmDspDataReturnControlToEcuFnc) auf, wenn DcmDspDataUsePort auf USE_DATA_SYNCH_FNC, USE_DATA_ASYNCH_FNC oder USE_DATA_ASYNCH_FNC_ERROR konfiguriert ist [SWS_Dcm_01435]. Neben regulären Diagnoseaktionen wird Xxx_ReturnControlToECU vom DCM insbesondere aufgerufen, wenn eine aktive IO-Steuerungssequenz abgebrochen werden muss [SWS_Dcm_01435].
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation generiert.
Implementer's Guide folgt (Komplexität I1)
function Xxx_ResetToDefault [SWS_Dcm_01286] 📄 PDF
Std_ReturnType Xxx_ResetToDefault ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application to reset an IOControl to default value.
Die synchrone Funktionsschnittstelle Xxx_ResetToDefault wird über den Header Dcm_Externals.h bereitgestellt und dient dazu, eine Applikation zum Zurücksetzen einer I/O-Steuerung (IOControl) auf den Standardwert aufzufordern [SWS_Dcm_01286].
Aufrufkontext und Parameter
Die Funktion besitzt die Service-ID 0x4d, arbeitet synchron und ist als nicht reentrant spezifiziert [SWS_Dcm_01286]. In Abhängigkeit von der konfigurierten Größe der externen Steuermaske wird einer von zwei alternativen Eingangsparametern übergeben:
controlMask(TypDcm_ControlMask_{DID}Type) kommt zum Einsatz, wennDcmDspDataUsePortaufUSE_DATA_SYNCH_FNCkonfiguriert ist,DcmDspDidControlMaskaufDCM_CONTROLMASK_EXTERNALsteht undDcmDspDidControlMaskSizehöchstens0x04beträgt [SWS_Dcm_01286].controlMask2(Typuint8*) wird verwendet, wenn unter identischen RandbedingungenDcmDspDidControlMaskSizegrößer oder gleich0x05konfiguriert ist [SWS_Dcm_01286].
Rückgabewerte und Fehlerbehandlung
Konnte das Zurücksetzen erfolgreich durchgeführt werden, liefert die Funktion E_OK zurück [SWS_Dcm_01286]. Schlägt die Operation fehl, muss E_NOT_OK zurückgegeben werden. In diesem Fall belegt die Applikation den Ausgabeparameter ErrorCode (Typ Dcm_NegativeResponseCodeType*) mit dem entsprechenden negativen Antwortcode (NRC), welchen das DCM-Modul als negative Rückmeldung an den Tester übermittelt [SWS_Dcm_01286].
Zusammenspiel und Abgrenzung
Ist das System für asynchrone Schnittstellenabwicklungen über USE_DATA_ASYNCH_FNC oder USE_DATA_ASYNCH_FNC_ERROR ausgelegt, kommt anstelle dieser synchronen Funktion die asynchrone Variante mit dem zusätzlichen Parameter OpStatus und der Service-ID 0x3c zum Einsatz [SWS_Dcm_01314].
Dieser Text wurde von einer KI generiert und basiert auf den Spezifikationen von AUTOSAR Classic R20-11.
Implementer's Guide folgt (Komplexität I1)
function Xxx_ResetToDefault [SWS_Dcm_01314] 📄 PDF
Std_ReturnType Xxx_ResetToDefault (Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application to reset an IOControl to default value.
Die asynchrone Funktion [SWS_Dcm_01314] fordert die Applikation auf, eine Ein-/Ausgabesteuerung (IOControl) auf ihren Standardwert zurückzusetzen. Sie ist in Dcm_Externals.h deklariert und besitzt die Service-ID 0x3c. Über den Parameter OpStatus wird der Fortschritt der Operation gesteuert. Bei noch nicht abgeschlossener Verarbeitung liefert die Funktion DCM_E_PENDING zurück, während ein erfolgreicher Abschluss mit E_OK bestätigt wird.
Abhängig von der Konfiguration und der Maskengröße (DcmDspDidControlMaskSize bis 4 Byte oder ab 5 Byte) wird bei externer Maskierung zusätzlich controlMask bzw. controlMask2 übergeben [SWS_Dcm_01314]. Schlägt die Rücksetzung fehl, gibt die Funktion E_NOT_OK zurück. In diesem Fall muss über den Ausgabeparameter ErrorCode ein negativer Antwortcode (NRC) übergeben werden, den das DCM-Modul als negative Response an den Tester sendet [SWS_Dcm_01314].
Die Funktion ist nicht reentrant (Non Reentrant) spezifiziert [SWS_Dcm_01314]. Sie kommt zum Einsatz, wenn DcmDspDataUsePort auf USE_DATA_ASYNCH_FNC oder USE_DATA_ASYNCH_FNC_ERROR gesetzt ist. Für synchrone Schnittstellenkonfigurationen (USE_DATA_SYNCH_FNC) existiert alternativ die synchrone Variante ohne OpStatus [SWS_Dcm_01286].
Dieser Text wurde von einer KI erstellt und basiert auf dem Spezifikationsstand von AUTOSAR R20-11.
Implementer's Guide folgt (Komplexität I2)
function Xxx_FreezeCurrentStateManager [SWS_Dcm_01290] 📄 PDF
Std_ReturnType Xxx_FreezeCurrentState ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application to freeze the current state of an IOControl.
Verwendung
Die synchrone Funktion Xxx_FreezeCurrentState (im Elementkatalog als Xxx_FreezeCurrentStateManager geführt) dient dazu, eine Applikation zum Einfrieren des aktuellen Zustands einer Ein- oder Ausgabesteuerung (IOControl) aufzufordern [SWS_Dcm_01290]. Die Funktion ist über die Header-Datei Dcm_Externals.h verfügbar und besitzt die Service-ID 0x4a AUTOSAR_SWS_DiagnosticCommunicationManager S. 279. (Interpretation: Das Präfix Xxx dürfte dabei als Platzhalter für das jeweilige Anwendungsmodul stehen.) Frage Q-f8c864cda732acc2 (offen)
Die Schnittstellenparameter richten sich nach der Konfiguration der externen Steuermaske (DcmDspDidControlMask auf DCM_CONTROLMASK_EXTERNAL) [SWS_Dcm_01290]:
controlMask(Eingabe, TypDcm_ControlMask_{DID}Type): Wird übergeben, wenn die MaskengrößeDcmDspDidControlMaskSizekleiner oder gleich 4 Byte (<= 0x04) konfiguriert ist.controlMask2(Eingabe, Typuint8*): Kommt stattdessen zum Einsatz, wenn die Maskengröße mindestens 5 Byte (=> 0x05) umfasst.ErrorCode(Ausgabe, TypDcm_NegativeResponseCodeType*): Zeiger zur Aufnahme eines negativen Antwortcodes bei Fehlern.
Fehlerbehandlung und Rückgabewerte
Die Funktion liefert als Std_ReturnType entweder E_OK bei erfolgreicher Ausführung oder E_NOT_OK, wenn die Anforderung nicht erfolgreich war [SWS_Dcm_01290]. Tritt ein Fehler auf und wird E_NOT_OK zurückgegeben, muss die Applikation im Parameter ErrorCode einen spezifischen negativen Antwortcode (NRC) eintragen; das DCM-Modul sendet daraufhin eine negative Diagnoseantwort mit diesem NRC-Code AUTOSAR_SWS_DiagnosticCommunicationManager S. 279.
Nebenläufigkeit und Einschränkungen
Die Operation ist als nicht-reentrant (Non Reentrant) spezifiziert [SWS_Dcm_01290]. Aufrufer müssen sicherstellen, dass Aufrufe für dieselbe Instanz synchron und ohne gleichzeitige Überlappung abgearbeitet werden.
Dieser Text wurde von einer KI erstellt und dient als Orientierungshilfe. Verbindlich ist die AUTOSAR-Spezifikation.
Implementer's Guide folgt (Komplexität I1)
function Xxx_FreezeCurrentStateManager [SWS_Dcm_01315] 📄 PDF
Std_ReturnType Xxx_FreezeCurrentState (Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application to freeze the current state of an IOControl.
Verwendung und Aufrufkontext
Die asynchrone Funktion Xxx_FreezeCurrentState wird vom DCM-Modul aufgerufen, um bei der Anwendungssoftware das Einfrieren des aktuellen Zustands einer Ein-/Ausgabesteuerung (IOControl) anzufordern [SWS_Dcm_01315]. Die Deklaration wird über den Header Dcm_Externals.h bereitgestellt [SWS_Dcm_01315].
Parameter und Steuermasken
Der Aufruf erfolgt mit folgenden Parametern [SWS_Dcm_01315]:
OpStatus: Übermittelt den aktuellen Status der asynchronen Operation (Dcm_OpStatusType).controlMaskbzw.controlMask2: Wenn die Steuermaske extern konfiguriert ist (DcmDspDidControlMask == DCM_CONTROLMASK_EXTERNAL) und die asynchrone Funktionsschnittstelle genutzt wird, übergibt das DCM abhängig vonDcmDspDidControlMaskSizebei bis zu 4 Bytes den ParametercontrolMask(vom TypDcm_ControlMask_{DID}Type) und ab 5 Bytes den ZeigercontrolMask2(uint8*).ErrorCode: Zeiger aufDcm_NegativeResponseCodeTypezur Rückgabe eines Fehlercodes.
Rückgabewerte und Fehlerbehandlung
Die Funktion liefert einen Status vom Typ Std_ReturnType zurück [SWS_Dcm_01315]:
E_OK: Das Einfrieren des Zustands wurde erfolgreich abgeschlossen.DCM_E_PENDING: Die Anforderung ist noch in Bearbeitung und erfordert Folgebeschickungen.E_NOT_OK: Die Operation ist fehlgeschlagen. In diesem Fall sendet das DCM eine negative Diagnoseantwort mit dem überErrorCodegesetzten NRC-Wert.
Nebenläufigkeit
Die Schnittstelle ist als nicht reentrant (Non Reentrant) definiert und bedarf daher einer synchronisierten Bearbeitung pro Steuerinstanz [SWS_Dcm_01315].
Dieser Text wurde von einer KI erstellt und nach redaktionellen Vorgaben kuratiert.
Implementer's Guide folgt (Komplexität I2)
function Xxx_ShortTermAdjustment [SWS_Dcm_00802] 📄 PDF
Std_ReturnType Xxx_ShortTermAdjustment (const uint8* ControlStateInfo, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application to adjust the IO signal.
Die synchrone Funktion Xxx_ShortTermAdjustment fordert die Anwendung auf, ein bestimmtes I/O-Signal temporär anzupassen [SWS_Dcm_00802]. Sie wird über den Header Dcm_Externals.h bereitgestellt und besitzt die Service-ID 0x50 [SWS_Dcm_00802].
Über den Zeiger ControlStateInfo erhält die Funktion die Steuerzustandsinformationen aus dem Parameter ControlOptionRecord der Diagnoseanforderung InputOutputControlByIdentifier [SWS_Dcm_00802]. Ist eine externe Steuermaske konfiguriert (DcmDspDidControlMask == DCM_CONTROLMASK_EXTERNAL), wird abhängig von DcmDspDidControlMaskSize zusätzlich entweder controlMask (bis 4 Byte) vom Typ Dcm_ControlMask_{DID}Type oder controlMask2 (ab 5 Byte) als uint8* übergeben [SWS_Dcm_00802].
Als Rückgabewert liefert die Operation Std_ReturnType [SWS_Dcm_00802]:
E_OK: Die Anpassung des I/O-Signals wurde erfolgreich ausgeführt [SWS_Dcm_00802].E_NOT_OK: Die Anpassung schlug fehl [SWS_Dcm_00802]. In diesem Fall muss die Anwendung über den AusgabeparameterErrorCodeeinen spezifischen negativen Antwortcode (Dcm_NegativeResponseCodeType) setzen, den das DCM-Modul in der negativen Diagnoseantwort an den Tester zurücksendet [SWS_Dcm_00802].
Die Funktion ist nicht reentrant (Non Reentrant) und wird synchron aufgerufen [SWS_Dcm_00802]. Diese synchrone Variante wird verwendet, wenn das Datenelement für synchrone Funktionsaufrufe konfiguriert ist (DcmDspDataUsePort == USE_DATA_SYNCH_FNC) [SWS_Dcm_00802]. Für asynchron konfigurierte Ports (USE_DATA_ASYNCH_FNC oder USE_DATA_ASYNCH_FNC_ERROR) existiert hingegen die asynchrone Variante mit Service-ID 0x55 und erweitertem Parametersatz einschließlich OpStatus und DataLength [SWS_Dcm_01316].
Dieser Text wurde von einer KI erstellt und basiert auf AUTOSAR R20-11.
Implementer's Guide folgt (Komplexität I2)
function Xxx_ShortTermAdjustment [SWS_Dcm_01316] 📄 PDF
Std_ReturnType Xxx_ShortTermAdjustment (const uint8* ControlStateInfo, uint16 DataLength, Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application to adjust the IO signal.
Verwendung und Aufrufkontext
Die Funktion [SWS_Dcm_01316] wird vom Diagnostic Communication Manager (DCM) aufgerufen und über Dcm_Externals.h bereitgestellt. Sie fordert die Applikation asynchron dazu auf, ein IO-Signal im Rahmen des Diagnosedienstes InputOutputControlByIdentifier anzupassen. Die Steuerdaten werden über den Zeiger ControlStateInfo (aus dem Parameter ControlOptionRecord) übergeben, ergänzt um die Bytelänge DataLength. Der Ablauf wird über OpStatus gesteuert: Solange die Anpassung andauert, gibt die Anwendung DCM_E_PENDING zurück; nach erfolgreichem Abschluss meldet sie E_OK.
Varianten und Maskenparameter
Bei externer Konfiguration der Kontrollmaske (DCM_CONTROLMASK_EXTERNAL) werden zusätzliche Parameter übergeben [SWS_Dcm_01316]:
- Ist die Maskengröße kleiner oder gleich 4 Byte, wird
controlMaskvom TypDcm_ControlMask_{DID}Typeübergeben. - Beträgt die Maskengröße mindestens 5 Byte, wird stattdessen
controlMask2als Zeiger aufuint8übergeben.
Fehlerbehandlung und Nebenläufigkeit
Schlägt die Signalsteuerung fehl, liefert die Funktion E_NOT_OK zurück und setzt über den Zeiger ErrorCode den negativen Antwortcode (NRC), welchen der DCM in der negativen Antwort übermittelt [SWS_Dcm_01316]. Die Funktion ist als nicht-reentrant spezifiziert.
Zusammenspiel und Abgrenzung
Die Schnittstelle wird genutzt, wenn der DID-Datenport auf USE_DATA_ASYNCH_FNC oder USE_DATA_ASYNCH_FNC_ERROR und der Datentyp auf UINT8_DYN konfiguriert ist [SWS_Dcm_01316]. Sie unterscheidet sich von der synchronen Variante [SWS_Dcm_00802], welche weder OpStatus noch DataLength verwendet und für synchrone Ports bei statischen Datentypen bestimmt ist.
Dieser Text wurde automatisch von einem KI-Kurations-Assistenten auf Basis der AUTOSAR-Spezifikation R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Xxx_IsDidAvailable [SWS_Dcm_00803] 📄 PDF
Std_ReturnType Xxx_IsDidAvailable (uint16 DID, Dcm_OpStatusType OpStatus, Dcm_DidSupportedType* supported);
This function requests if a specific DID is available within the range or not.
Die Funktion Xxx_IsDidAvailable dient zur asynchronen Prüfung, ob ein angeforderter Diagnostic Identifier (DID) innerhalb eines definierten DID-Bereichs verfügbar ist [SWS_Dcm_00803]. Sie wird über den Header Dcm_Externals.h bereitgestellt und besitzt die Service-ID 0x53 [SWS_Dcm_00803].
Verwendung und Parameter
Der Aufruf erfolgt mit folgenden Parametern [SWS_Dcm_00803]:
DID(In): Der abzufragende Kennungswert des DID [SWS_Dcm_00803].OpStatus(In): Der aktuelle Status der Operation zur Steuerung des asynchronen Ablaufs [SWS_Dcm_00803].supported(Out): Zeigt an, ob der DID im Bereich verfügbar ist;DCM_DID_SUPPORTEDbedeutet Unterstützung, währendDCM_DID_NOT_SUPPORTEDdie Nichtunterstützung anzeigt [SWS_Dcm_00803].
Asynchrone Semantik und Rückgabewerte
Da die Funktion asynchron ausgeführt wird, erfordert die Ermittlung unter Umständen mehrere Aufrufschritte [SWS_Dcm_00803]. Der Rückgabewert DCM_E_PENDING signalisiert, dass die Anfrage noch nicht abgeschlossen ist und weitere Aufrufe zur Fertigstellung nötig sind [SWS_Dcm_00803]. Der Rückgabewert E_OK wird gemeldet, wenn die Prüfung abgeschlossen ist [SWS_Dcm_00803] (Interpretation: Vermutlich schließt E_OK die Abfrage ab, woraufhin der Parameter supported das gültige Ergebnis enthält). Frage Q-22c62d306a7ac4f1 (offen)
Nebenläufigkeit und Einschränkungen
Die Schnittstelle ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_Dcm_00803]. Parallele Aufrufe für denselben oder andere DIDs innerhalb derselben Instanz sind daher unzulässig.
Dieser Text wurde von einer KI erstellt und basiert ausschließlich auf den Spezifikationsdaten aus AUTOSAR Classic R20-11.
Implementer's Guide folgt (Komplexität I2)
function Xxx_ReadDidData [SWS_Dcm_00804] 📄 PDF
Std_ReturnType Xxx_ReadDidData (uint16 DID, uint8* Data, Dcm_OpStatusType OpStatus, uint16 DataLength, Dcm_NegativeResponseCodeType ErrorCode);
This function requests to the application a data value of a DID
Verwendung und Parameterschnittstelle
Die Funktion Xxx_ReadDidData (Service-ID 0x40) ist über Dcm_Externals.h verfügbar und fordert von der Applikation die Datenwerte eines Diagnose-Identifikators (DID) an [SWS_Dcm_00804]. Die Übergabe und Rückmeldung erfolgt über folgende Parameter:
DID: Kennung des angeforderten Data Identifiers [SWS_Dcm_00804].Data: Zeiger auf den Puffer, in den die gelesenen Nutzdaten kopiert werden müssen [SWS_Dcm_00804].OpStatus: Fortschritts- bzw. Operationsstatus der aktuellen Anforderung [SWS_Dcm_00804].DataLength: Länge der zu lesenden Daten [SWS_Dcm_00804].ErrorCode: Ausgabeparameter zur Aufnahme eines negativen Antwortcodes (NRC) [SWS_Dcm_00804].
Asynchrone Semantik und Rückgabewerte
Die Funktion ist als asynchron (Asynchronous) definiert und liefert einen Status vom Typ Std_ReturnType zurück [SWS_Dcm_00804]:
E_OK: Das Auslesen der Daten war erfolgreich [SWS_Dcm_00804].DCM_E_PENDING: Die Anfrage ist noch nicht abgeschlossen; zur Fertigstellung sind weitere Aufrufe erforderlich [SWS_Dcm_00804].E_NOT_OK: Die Operation war nicht erfolgreich [SWS_Dcm_00804].
Fehlerbehandlung und Nebenläufigkeit
Liefert die Applikation für Xxx_ReadDidData den Rückgabewert E_NOT_OK, sendet das DCM-Modul eine negative Antwort mit dem über den Parameter ErrorCode gesetzten NRC-Code an den Diagnosetester [SWS_Dcm_00804]. Die Funktion ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_Dcm_00804]. Interpretation: Aufgrund der asynchronen Abwicklung mit DCM_E_PENDING dürfte der Aufruf typischerweise im zyklischen Task-Kontext des DCM erfolgen. Frage Q-5e41e9fb7dc261b9 (offen)
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation in SWS_Dcm_00804 generiert.
Implementer's Guide folgt (Komplexität I2)
function Xxx_WriteDidData [SWS_Dcm_00805] 📄 PDF
Std_ReturnType Xxx_WriteDidData (uint16 DID, const uint8* Data, Dcm_OpStatusType OpStatus, uint16 DataLength, Dcm_NegativeResponseCodeType ErrorCode);
This function requests the application to write a data value of a DID.
Die Funktion Xxx_WriteDidData wird vom Modul DCM aufgerufen, um die Applikation zum Schreiben des Datenwerts eines DID aufzufordern [SWS_Dcm_00805]. Die Deklaration ist über den Header Dcm_Externals.h verfügbar [SWS_Dcm_00805].
Aufruf und Semantik
Der Aufruf erfolgt asynchron und ist als nicht reentrant (Non Reentrant) definiert [SWS_Dcm_00805]. Beim Aufruf werden folgende Parameter übergeben [SWS_Dcm_00805]:
DID: Kennung des zu schreibenden Datenbezeichners.Data: Zeiger auf den Puffer mit den zu schreibenden Daten.OpStatus: Status der aktuellen Operation.DataLength: Länge der zu schreibenden Daten in Bytes.ErrorCode: Ausgabeparameter für den negativen Antwortcode (NRC).
Rückgabewerte und Fehlerbehandlung
Als Rückgabewert liefert die Funktion Std_ReturnType mit folgenden Bedeutungen [SWS_Dcm_00805]:
E_OK: Der Schreibauftrag wurde erfolgreich ausgeführt.DCM_E_PENDING: Die Operation ist noch nicht abgeschlossen; zur Fertigstellung sind weitere Aufrufe erforderlich.E_NOT_OK: Die Operation war nicht erfolgreich. In diesem Fall sendet das DCM-Modul eine negative Antwort mit dem im AusgabeparameterErrorCodeübergebenen NRC-Wert.
Dieser Text wurde von einer KI auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Xxx_ReadDidRangeDataLength [SWS_Dcm_01271] 📄 PDF
Std_ReturnType Xxx_ReadDidRangeDataLength (uint16 DID, Dcm_OpStatusType OpStatus, uint16* DataLength);
This function requests the application to return the data length of a DID Range.
Die Funktion Xxx_ReadDidRangeDataLength dient dazu, die Anwendungssoftware zur Rückgabe der Datenlänge für einen DID-Bereich (DID Range) aufzufordern [SWS_Dcm_01271]. Sie ist Bestandteil des AUTOSAR-Moduls Dcm, besitzt die Service-ID 0x5e und wird über die Header-Datei Dcm_Externals.h zur Verfügung gestellt [SWS_Dcm_01271].
Der Aufruf erfolgt mit asynchroner Semantik (Asynchronous) über die folgenden Schnittstellenparameter [SWS_Dcm_01271]:
DID(IN,uint16): Kennzeichnet den konkreten Daten-Identifier (Data ID value) des angefragten DID-Bereichs [SWS_Dcm_01271].OpStatus(IN,Dcm_OpStatusType): Gibt den aktuellen Verarbeitungsstatus der laufenden Operation an [SWS_Dcm_01271].DataLength(OUT,uint16*): Zeiger auf die Länge der Daten, die gelesen oder geschrieben werden sollen [SWS_Dcm_01271].
Der Rückgabewert vom Typ Std_ReturnType signalisiert das Ergebnis der Längenabfrage [SWS_Dcm_01271]:
E_OK: Die Anfrage war erfolgreich und die ermittelte Länge liegt bereit [SWS_Dcm_01271].E_NOT_OK: Die Anfrage war nicht erfolgreich [SWS_Dcm_01271].DCM_E_PENDING: Die Ausführung ist noch nicht abgeschlossen und erfordert weitere Folgeaufrufe zur Fertigstellung [SWS_Dcm_01271].
Bezüglich der Nebenläufigkeit ist die Schnittstelle als nicht reentrant (Non Reentrant) festgelegt [SWS_Dcm_01271].
Nutzungshinweis generiert auf Basis der Spezifikation von DCM in AUTOSAR Classic R20-11.
Implementer's Guide folgt (Komplexität I2)
function Xxx_GetInfotypeValueData [SWS_Dcm_91014] 📄 PDF
Std_ReturnType Xxx_GetInfotypeValueData (Dcm_OpStatusType OpStatus, uint8* DataValueBuffer, uint8* DataValueBufferSize);
The function provides the data related to the requested Infotype.
Die asynchrone Schnittstelle Xxx_GetInfotypeValueData wird vom DCM-Modul aufgerufen, sobald eine Diagnoseanfrage für den OBD Service $09 empfangen wird und der angeforderte InfoType kein Verfügbarkeits-InfoType („availability InfoType“) ist [SWS_Dcm_00423]. Um die Daten bereitzustellen, ruft das DCM alle für diesen InfoType konfigurierten Funktionen auf und führt die Werte als Antwort auf Service $09 zusammen [SWS_Dcm_00423]. Die Deklaration ist über Dcm_Externals.h verfügbar [SWS_Dcm_91014].
Die Übergabe und Rückmeldung der Daten erfolgt über definierte Puffer- und Statusparameter [SWS_Dcm_91014]:
OpStatus(in): Zeigt den aktuellen Fortschrittsstatus der laufenden Operation an.DataValueBuffer(out): Puffer zur Aufnahme der spezifischen InfoType-Nutzdaten.DataValueBufferSize(inout): Enthält beim Aufruf die maximal beschreibbare Puffergröße in Byte und wird von der aufgerufenen Funktion mit der tatsächlichen Anzahl geschriebener Datenbytes belegt.
Als asynchrone Funktion liefert sie E_OK bei erfolgreichem Abschluss, E_NOT_OK bei Fehlern oder DCM_E_PENDING, falls die Operation noch nicht abgeschlossen ist und weitere Aufrufe zur Fertigstellung benötigt [SWS_Dcm_91014]. Da die Funktion als nicht reentrant (Non Reentrant) spezifiziert ist, dürfen keine nebenläufigen Aufrufe für dieselbe Funktion erfolgen [SWS_Dcm_91014].
Dieser Text wurde von einer KI generiert und dient als Orientierungshilfe. Maßgeblich ist die offizielle AUTOSAR-Spezifikation.
Implementer's Guide folgt (Komplexität I2)
function Xxx_Start [SWS_Dcm_01203] 📄 PDF
Std_ReturnType Xxx_Start ([ DcmDspRoutineSignalType dataIn_1, ... DcmDspRoutineSignalType dataIn_n ], [ const uint8* dataInVar ], Manager Dcm_OpStatusType OpStatus, [ DcmDspRoutineSignalType dataOut_1, ... DcmDspRoutineSignalType dataOut_n ], [ uint8* dataOutVar ], [ uint16* currentDataLength ], Dcm_NegativeResponseCodeType ErrorCode); ⚠️
This function requests to the application to start the execution of a routine.
Die Funktion Xxx_Start wird über die Header-Datei Dcm_Externals.h deklariert und fordert die Anwendungssoftware auf, die Ausführung einer Diagnose-Routine zu starten [SWS_Dcm_01203]. Das Modul DCM ruft diese Funktion auf, sobald eine UDS-Dienstanforderung für RoutineControl (0x31) mit der Unterfunktion startRoutine empfangen und erfolgreich verifiziert wurde [SWS_Dcm_00400], oder wenn eine RoutineControl-Anforderung mit einer Nicht-Verfügbarkeits-OBDTestId eingeht [SWS_Dcm_01392].
Die Schnittstelle unterstützt feste sowie variable Datenformate und wird asynchron betrieben [SWS_Dcm_01203]:
- Eingabeparameter: Feste Eingabesignale
dataIn_1bisdataIn_noder variable Daten über das BytefelddataInVarsowie der OperationsstatusOpStatus[SWS_Dcm_01203]. - Ausgabeparameter: Feste Ausgangssignale
dataOut_1bisdataOut_noder variable AusgangsdatendataOutVarsowie der FehlercodeErrorCodefür negative Antwortmeldungen [SWS_Dcm_01203]. - Längenparameter: Der Ein- und Ausgabeparameter
currentDataLengthtransportiert bei variabler Datenlänge die Anzahl der Nutzbytes indataInVarbzw.dataOutVar[SWS_Dcm_01203]. - Rückgabewerte:
E_OKbestätigt den erfolgreichen Start,E_NOT_OKmeldet einen Fehlschlag,DCM_E_PENDINGsignalisiert noch andauernde Bearbeitungsschritte undDCM_E_FORCE_RCRRPfordert das vorzeitige Senden einer Pending-Rückmeldung (NRC 0x78) an [SWS_Dcm_01203].
Bezüglich der Nebenläufigkeit ist Xxx_Start als nicht reentrant (Non Reentrant) definiert [SWS_Dcm_01203]. Bei asynchronen Abläufen mit dem Rückgabewert DCM_E_PENDING ruft das DCM-Modul die Funktion zyklisch mit fortgeführtem OpStatus erneut auf, bis der Vorgang abgeschlossen ist [SWS_Dcm_01203].
Wird die Operation erfolgreich mit E_OK beendet, sendet das DCM-Modul eine positive UDS-Antwort mit den über dataOut bereitgestellten Daten als routineStatusRecord zurück [SWS_Dcm_00401]. Schlägt die Ausführung mit E_NOT_OK fehl, übermittelt das DCM eine negative Antwort mit dem im Parameter ErrorCode spezifizierten NRC [SWS_Dcm_01203]. Im Kontext von OBD-Routinen führt ein Rückgabewert ungleich E_OK zum Senden von NRC 0x22 [SWS_Dcm_01394].
Dieser Text wurde von einer KI generiert und dient der Orientierung. Maßgeblich ist ausschließlich die AUTOSAR-Spezifikation.
Implementer's Guide folgt (Komplexität I2)
function Xxx_StartConfirmation [SWS_Dcm_91016] 📄 PDF
Std_ReturnType Xxx_StartConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);
This function indicates the transmission of a response to a StartRoutine request
Verwendung
Die Funktion Xxx_StartConfirmation zeigt gemäß [SWS_Dcm_91016] die Übertragung einer Antwort auf eine vorangegangene StartRoutine-Anforderung verbindlich an. Die Schnittstelle ist in der Header-Datei Dcm_Externals.h deklariert und besitzt eine synchrone Ausführungssemantik ([SWS_Dcm_91016]). Als einziger Eingangsparameter wird ConfirmationStatus vom Typ Dcm_ConfirmationStatusType übergeben, der den Bestätigungsstatus der Routineübertragung beschreibt. Zusätzliche Ein- und Ausgabeparameter existieren laut Spezifikation nicht ([SWS_Dcm_91016]).
Fehlerbehandlung und Rückgabewerte
Als Rückgabewert liefert die Funktion einen Statuswert vom Typ Std_ReturnType ([SWS_Dcm_91016]). Dabei bestätigt der Wert E_OK die erfolgreiche Durchführung der Anforderung, wohingegen E_NOT_OK eine nicht erfolgreiche Verarbeitung signalisiert. Spezifische Fehlercodes oder explizite Meldungen an das Development Error Tracer (DET) oder Diagnostic Event Manager (DEM) sind für diese Funktion im Payload nicht definiert.
Nebenläufigkeit und Einschränkungen
Hinsichtlich der Nebenläufigkeit ist Xxx_StartConfirmation als nicht reentrant (Non Reentrant) klassifiziert ([SWS_Dcm_91016]). Dies erfordert vom Aufrufer, dass konkurrierende oder überlappende Ausführungen strikt vermieden werden. Interpretation: Die Funktion dürfte vom DCM aufgerufen werden, um die anwendungsseitige Routine-Implementierung über den Abschluss des Sendevorgangs zu benachrichtigen. Frage Q-be2dafd63bf2a9a5 (offen)
Dieser Text wurde von einer KI erstellt und basiert auf dem AUTOSAR-Standard Release R20-11.
Implementer's Guide folgt (Komplexität I2)
function Xxx_Stop [SWS_Dcm_01204] 📄 PDF
Std_ReturnType Xxx_Stop ([ DcmDspRoutineSignalType dataIn_1, ... DcmDspRoutineSignalType dataIn_n ], [ const uint8* dataInVar ], [ DcmDspRoutineSignalType dataOut_1, ... DcmDspRoutineSignalType dataOut_n ], [ uint8* dataOutVar ], [ uint16* currentDataLength ], Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application to stop the execution of a routine
Verwendung
Die Funktion [SWS_Dcm_01204] wird vom DCM aufgerufen, um die Ausführung einer laufenden Diagnose-Routine in der Applikation zu beenden. Der Aufruf erfolgt im Rahmen des UDS-Dienstes RoutineControl (0x31) mit der Subfunktion stopRoutine, sobald die erforderlichen Vorprüfungen erfolgreich abgeschlossen sind [SWS_Dcm_00402]. Die Schnittstelle besitzt die Service-ID 0x5c und ist über die Header-Datei Dcm_Externals.h deklariert [SWS_Dcm_01204].
Parameter und Rückgabewerte
Abhängig von der Konfiguration der Routine übergibt das DCM feste oder variable Eingabedaten (dataIn_1 bis dataIn_n bzw. dataInVar) und Pufferreferenzen für Ausgabedaten (dataOut_1 bis dataOut_n bzw. dataOutVar) [SWS_Dcm_01204], [SWS_Dcm_00402]. Bei variabler Datenlänge enthält currentDataLength die Byteanzahl der Ein- bzw. Ausgabedaten [SWS_Dcm_01204]. Als Rückgabewerte von Std_ReturnType sind festgelegt:
E_OK: Routine erfolgreich beendet; das DCM übermittelt eine positive UDS-Antwort mit den erzeugten Ausgabedaten als routineStatusRecord [SWS_Dcm_01204], [SWS_Dcm_00403].E_NOT_OK: Abbruch der Routine fehlgeschlagen; das DCM sendet eine negative UDS-Antwort mit dem inErrorCodehinterlegten NRC [SWS_Dcm_01204].DCM_E_PENDING: Operation ist noch in Bearbeitung; das DCM ruft die Funktion zur Fertigstellung erneut auf [SWS_Dcm_01204].DCM_E_FORCE_RCRRP: Die Applikation fordert das DCM zur Übertragung einer Pending-Antwort (NRC 0x78) auf [SWS_Dcm_01204].
Nebenläufigkeit und Einschränkungen
Die Operation ist als asynchron und nicht reentrant (Non Reentrant) spezifiziert [SWS_Dcm_01204]. Tritt bei der Ausführung ein Fehler auf, muss die Applikation den Parameter ErrorCode mit dem passenden Dcm_NegativeResponseCodeType beschreiben und E_NOT_OK zurückgeben [SWS_Dcm_01204].
Dieser Nutzungshinweis wurde automatisch auf Basis der Spezifikation AUTOSAR Classic R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
function Xxx_StopConfirmation [SWS_Dcm_91017] 📄 PDF
Std_ReturnType Xxx_StopConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);
This function indicates the transmission of a response to a StopRoutine request
Die synchrone Funktion Xxx_StopConfirmation dient dazu, die Übertragung einer Antwort auf eine vorherige StopRoutine-Anforderung anzuzeigen [SWS_Dcm_91017]. Beim Aufruf übergibt das System über den Eingabeparameter ConfirmationStatus vom Typ Dcm_ConfirmationStatusType den konkreten Bestätigungsstatus der Routine-Beendigung [SWS_Dcm_91017]. Als Rückgabewert liefert die Schnittstelle einen Wert vom Typ Std_ReturnType: Hierbei zeigt E_OK an, dass die Anforderung erfolgreich bearbeitet wurde, während E_NOT_OK eine nicht erfolgreiche Anforderung signalisiert [SWS_Dcm_91017].
In Bezug auf Nebenläufigkeit und Aufrufbedingungen ist die Schnittstelle als nicht reentrant (Non Reentrant) spezifiziert und besitzt die Service-ID 0x69 [SWS_Dcm_91017]. Die Deklaration wird über die Header-Datei Dcm_Externals.h zur Verfügung gestellt [SWS_Dcm_91017]. Interpretation: Aufgrund der Bereitstellung über Dcm_Externals.h und des anpassbaren Präfixes Xxx_ dürfte die Funktion vom DCM-Modul aufgerufen und durch eine anwendungsspezifische Software-Komponente bzw. den zuständigen Routinen-Handler implementiert werden. Frage Q-743e69ff8cf92321 (offen)
Spezifische Fehlercodes oder Benachrichtigungen an das Entwicklungsfehler-Management (DET) oder Diagnostic Event Manager (DEM) sind in den Anforderungen nicht ausgewiesen. Das Verhalten im Fehlerfall beschränkt sich auf dieser Schnittstellenebene formal auf die Rückgabe des Fehlerwerts E_NOT_OK, wenn die Verarbeitung nicht erfolgreich abgeschlossen werden konnte [SWS_Dcm_91017].
Dieser Nutzungshinweis basiert auf der Spezifikation AUTOSAR Classic R20-11.
Implementer's Guide folgt (Komplexität I2)
function Xxx_RequestResults [SWS_Dcm_91013] 📄 PDF
Std_ReturnType Xxx_RequestResults (Dcm_OpStatusType OpStatus, [ DcmDspRoutineSignalType* dataIn_1, ... DcmDspRoutineSignalType* dataIn_n ], [ const uint8* dataInVar ], [ DcmDspRoutineSignalType* dataOut_1, ... DcmDspRoutineSignalType* dataOut_n ], [ uint8* dataOutVar ], [ uint16* variableDataLength ], Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application the result of a routine execution
Die Funktion [SWS_Dcm_91013] wird vom DCM-Modul aufgerufen, um von der Applikation das Ergebnis einer Routineausführung abzufragen. Dies geschieht im Rahmen des UDS-Dienstes RoutineControl (0x31) mit der Subfunktion requestRoutineResults, sobald alle eingangsseitigen Prüfungen erfolgreich durchlaufen wurden [SWS_Dcm_00404]. Die Schnittstelle ist über Dcm_Externals.h verfügbar, arbeitet asynchron und ist als nicht reentrant spezifiziert [SWS_Dcm_91013].
Über den Parameter OpStatus steuert das DCM-Modul den Ablauf der Operation. Die Funktion nimmt feste Eingabedaten (dataIn_1 bis dataIn_n) oder variable Daten (dataInVar) entgegen, die aus dem routineControlOptionRecord abgeleitet werden [SWS_Dcm_00404]. Über feste Ausgabeparameter (dataOut_1 bis dataOut_n) oder variable Ausgabepuffer (dataOutVar und variableDataLength) übergibt die Applikation die Ergebnisdaten an den DCM [SWS_Dcm_91013].
Wird die Abfrage erfolgreich mit E_OK abgeschlossen, führt das DCM-Modul die Ausgabedaten anhand des Konfigurationsparameters DcmDspRequestRoutineResultsOut zu einem routineStatusRecord zusammen und versendet eine positive Antwort [SWS_Dcm_00405]. Falls die Operation noch andauert, kann die Applikation DCM_E_PENDING für Folgeaufrufe oder DCM_E_FORCE_RCRRP zum Senden einer vorläufigen Antwort (NRC 0x78) zurückgeben [SWS_Dcm_91013].
Im Fehlerfall liefert die Funktion E_NOT_OK zurück und setzt ErrorCode auf den zutreffenden NRC-Wert, woraufhin das DCM-Modul eine entsprechende negative Antwort übermittelt [SWS_Dcm_91013]. Da die Funktion nicht reentrant ist, darf sie für dieselbe Routine nicht parallel aufgerufen werden [SWS_Dcm_91013].
Automatisch generierter Nutzungshinweis auf Basis von AUTOSAR R20-11.
Implementer's Guide folgt (Komplexität I2)
function Xxx_RequestResultsConfirmation [SWS_Dcm_91018] 📄 PDF
Std_ReturnType Xxx_RequestResultsConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);
This function indicates the transmission of a response to a RequestRoutineResults request
Verwendung und Semantik
Die Funktion Xxx_RequestResultsConfirmation dient der Bestätigung einer übertragenen Diagnoseantwort auf eine RequestRoutineResults-Anforderung [SWS_Dcm_91018]. Sie ist in der Header-Datei Dcm_Externals.h deklariert und besitzt die Service-ID 0x70 [SWS_Dcm_91018]. Über den Eingangsparameter ConfirmationStatus vom Typ Dcm_ConfirmationStatusType erhält die Implementierung Information darüber, mit welchem Status die Übertragung der Routine-Ergebnisse abgeschlossen wurde [SWS_Dcm_91018]. Der Aufruf wird synchron ausgeführt und gibt einen Std_ReturnType zurück, wobei E_OK eine erfolgreiche Bearbeitung anzeigt und E_NOT_OK ein Fehlschlagen signalisiert [SWS_Dcm_91018].
Nebenläufigkeit und Einschränkungen
Gemäß Spezifikation ist die Funktion als nicht reentrant (Non Reentrant) eingestuft [SWS_Dcm_91018]. Daher dürfen gleichzeitige Aufrufe für dieselbe Instanz nicht stattfinden. Interpretation: Der Aufruf durch das DCM-Modul erfolgt sequenziell im Kontext der Antwortbestätigung, weshalb die Funktion ohne blockierende Operationen ausgeführt werden sollte. Frage Q-935a06744e7b9af7 (offen)
Fehlerbehandlung und Zusammenspiel
Die Fehlerbehandlung beschränkt sich auf den Rückgabewert E_NOT_OK, da gesonderte Entwicklungsfehler (DET) oder Produktionsfehler (DEM) für diesen Aufruf nicht spezifiziert sind [SWS_Dcm_91018]. Interpretation: Die Funktion dient als anwendungsspezifischer Bestätigungsendpunkt (Callback) für das DCM, um nach dem Versand der Routinenergebnisse den Abschluss des Diagnoseauftrags auf Anwenderebene zu synchronisieren. Frage Q-d3dd0142a30e1363 (offen)
Dieser Text wurde von einer KI erstellt. Angaben basieren auf AUTOSAR CP R20-11.
Implementer's Guide folgt (Komplexität I2)
function Xxx_RequestControl [SWS_Dcm_01338] 📄 PDF
Std_ReturnType Xxx_RequestControl (uint8* OutBuffer, const uint8* InBuffer);
Invokes a TID-specific function taking a configured number of bytes as input and returing a fixed number of bytes as output. This is typically used to implement OBD Service $08
Die Funktion Xxx_RequestControl dient der Ausführung einer TID-spezifischen Steuerfunktion und wird typischerweise zur Implementierung von OBD Service $08 eingesetzt ([SWS_Dcm_01338]). Das DCM-Modul ruft die konfigurierte Funktion synchron auf, sobald eine OBD-Service-$08-Anfrage empfangen wird, deren Test-ID (TID) keine Verfügbarkeits-TID („availability TID“) darstellt ([SWS_Dcm_00419]). Die Deklaration der Schnittstelle wird über die Header-Datei Dcm_Externals.h bereitgestellt ([SWS_Dcm_01338]).
Parameter und Pufferhandhabung
InBuffer: Zeiger auf die Nutzdaten der empfangenen OBD-Anforderung. Die Bytezahl dieser Eingabedaten muss exakt der im DCM-Modul konfigurierten Größe entsprechen ([SWS_Dcm_00419], [SWS_Dcm_01338]).OutBuffer: Zeiger auf den Ausgabepuffer, in dem die aufgerufene Steuerfunktion ihre Ergebnisse ablegt. Die Puffergröße ist fest vorgegeben und wird der Konfiguration des DCM-Moduls entnommen ([SWS_Dcm_00419], [SWS_Dcm_01338]).
Rückgabewerte und Fehlerbehandlung
Die Funktion liefert als Statuswert Std_ReturnType zurück: Der Wert E_OK signalisiert eine erfolgreiche Abarbeitung, während E_NOT_OK einen Fehlerzustand anzeigt ([SWS_Dcm_01338]). Liefert Xxx_RequestControl ein anderes Ergebnis als E_OK zurück, reagiert das DCM-Modul mit dem negativen Antwortcode NRC 0x22 (Conditions Not Correct) gegenüber dem Diagnose-Tester ([SWS_Dcm_01192]).
Nebenläufigkeit und Einschränkungen
Die Funktion ist als nicht reentrant (Non Reentrant) spezifiziert und besitzt die Service-ID 0x63 ([SWS_Dcm_01338]).
KI-Hinweis: Dieser Text wurde automatisch auf Basis der Spezifikation AUTOSAR Classic R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
function Xxx_StartProtocol [SWS_Dcm_01339] 📄 PDF
Std_ReturnType Xxx_StartProtocol (Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress, uint16 ConnectionId);
This function allows the application to examine the environment conditions and enable/disable further processing of the protocol.
Die Callback-Funktion Xxx_StartProtocol wird über den Header Dcm_Externals.h bereitgestellt und ermöglicht der Applikation, bei der ersten Anfrage eines Diagnoseprotokolls aktuelle Umgebungsbedingungen zu prüfen und die weitere Protokollverarbeitung freizugeben oder abzulehnen [SWS_Dcm_01339].
Aufrufkontext und Parameter
Der Aufruf erfolgt durch das DSL-Submodul des DCM synchron und nicht-reentrant für alle konfigurierten Funktionen [SWS_Dcm_00036], [SWS_Dcm_01339]. An die Funktion werden folgende Eingangsparameter übergeben [SWS_Dcm_01339]:
ProtocolType: Typ des zu startenden Diagnoseprotokolls,TesterSourceAddress: Quelladresse des anfragenden Testers,ConnectionId: Eindeutige Kennung der Verbindung.
Rückgabewerte und Fehlerbehandlung
Als Rückgabewert liefert die Funktion Std_ReturnType mit E_OK bei erfolgreicher Freigabe, E_NOT_OK bei nicht erfolgreicher Prüfung oder E_PROTOCOL_NOT_ALLOWED, falls das Protokoll unzulässig ist [SWS_Dcm_01339]. Gibt mindestens eine konfigurierte Xxx_StartProtocol-Funktion nicht E_OK zurück, bricht das DCM den Protokollstart ab und antwortet mit NRC 0x22 [SWS_Dcm_00674].
Initialisierung nach erfolgreicher Freigabe
Erst wenn alle konfigurierten Xxx_StartProtocol-Callbacks E_OK zurückgegeben haben, führt das DCM die weiteren Initialisierungsschritte aus:
- Laden der Standard-Timing-Parameter aus der Default-Session-Konfiguration [SWS_Dcm_00144],
- Aktivieren der Diensttabelle [SWS_Dcm_00145],
- Zurücksetzen des Sicherheitsstatus (Security State) [SWS_Dcm_00146],
- Rücksetzen des Sitzungsstatus auf die Standard-Diagnosesitzung sowie Ausführen des Moduswechsels über
SchM_Switch_<bsnp>_DcmDiagnosticSessionControlaufRTE_MODE_DcmDiagnosticSessionControl_DEFAULT_SESSION[SWS_Dcm_00147].
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikationsanforderungen von AUTOSAR R20-11 erstellt.
Implementer's Guide folgt (Komplexität I2)
function Xxx_StopProtocol [SWS_Dcm_01340] 📄 PDF
Std_ReturnType Xxx_StopProtocol (Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress, uint16 ConnectionId);
This function informs the application of the protocol stop.
Die synchrone Callback-Funktion Xxx_StopProtocol informiert die Anwendung über das Beenden eines Diagnoseprotokolls ([SWS_Dcm_01340]). Sie wird über die Header-Datei Dcm_Externals.h deklariert und ist als nicht reentrant (Non Reentrant) spezifiziert ([SWS_Dcm_01340]).
Der Aufruf aller konfigurierten Xxx_StopProtocol-Funktionen (konfiguriert über den Parameter DcmDslCallbackDCMRequestService) wird vom DSL-Submodul in folgenden Preemption-Szenarien ausgelöst:
- Eine laufende Diagnoseanforderung wird durch eine höher priorisierte Anforderung eines anderen Protokolls verdrängt ([SWS_Dcm_00459]).
- Eine Anforderung mit niedrigerer oder gleicher Priorität verdrängt ein höher priorisiertes Protokoll, sofern sich dieses in der Default Session befindet und keine aktive Anforderung in der Ausführungsphase ist ([SWS_Dcm_00625]).
Beim Aufruf werden der Protokolltyp (ProtocolType), die Tester-Quelladresse (TesterSourceAddress) sowie die Verbindungskennung (ConnectionId) übergeben ([SWS_Dcm_01340]). Als Rückgabewert liefert die Funktion E_OK bei erfolgreicher Durchführung oder E_NOT_OK ([SWS_Dcm_01340]). Liefert die Funktion nicht E_OK zurück, antwortet das DCM mit dem negativen Antwortcode NRC 0x22 ([SWS_Dcm_01190]).
Dieser Text wurde automatisiert generiert und basiert ausschließlich auf den Spezifikationsvorgaben zu AUTOSAR Classic R20-11.
Implementer's Guide folgt (Komplexität I1)
function Xxx_Indication [SWS_Dcm_01341] 📄 PDF
Std_ReturnType Xxx_Indication (uint8 SID, const uint8* RequestData, uint32 DataSize, uint8 ReqType, uint16 ConnectionId, Dcm_NegativeResponseCodeType* ErrorCode, Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress);
This function indicates to the application that a service is about to be executed and allows the application to reject the execution of the service request
Die synchrone, nicht-reentrante Funktion Xxx_Indication wird über den Header Dcm_Externals.h deklariert [SWS_Dcm_01341]. Sie zeigt der Applikation die bevorstehende Ausführung eines Diagnosedienstes an und ermöglicht es ihr, die Ausführung der Service-Anforderung abzulehnen [SWS_Dcm_01341]. Der Aufruf erfolgt synchron durch das DSD-Submodul an allen konfigurierten ServiceRequestIndication-Ports, wenn die Konfigurationscontainer DcmDsdServiceRequestManufacturerNotification [SWS_Dcm_00218] oder DcmDsdServiceRequestSupplierNotification [SWS_Dcm_00516] vorhanden sind.
Als Eingabeparameter werden die Service-ID (SID), die Anforderungsdaten ohne SID (RequestData, DataSize), der Adressierungstyp (ReqType), die Verbindungs-ID (ConnectionId), der Protokolltyp (ProtocolType) und die Quelladresse des Testers (TesterSourceAddress) übergeben [SWS_Dcm_01341].
Über den Rückgabewert vom Typ Std_ReturnType steuert die Applikation die Reaktion des DSD-Submoduls [SWS_Dcm_01341]:
E_OK: Die Anforderung war erfolgreich und wird regulär weiterverarbeitet [SWS_Dcm_01341].E_REQUEST_NOT_ACCEPTED: Die Anforderung wird nicht akzeptiert. Gibt mindestens eine aufgerufene Indication-FunktionE_REQUEST_NOT_ACCEPTEDzurück, unterdrückt das DSD-Submodul jegliche Antwort an den Tester [SWS_Dcm_00462], [SWS_Dcm_00517].E_NOT_OK: Die Anforderung war nicht erfolgreich. Die Applikation schreibt in diesem Fall einen negativen Antwortcode in den AusgabeparameterErrorCode[SWS_Dcm_01341]. Sofern kein AufrufE_REQUEST_NOT_ACCEPTEDzurückgibt, sendet das DSD-Submodul eine negative Antwort mit diesem NRC [SWS_Dcm_00463], [SWS_Dcm_00518].
Geben bei mehreren konfigurierten Benachrichtigungen mehrere Funktionen E_NOT_OK zurück und keine Funktion E_REQUEST_NOT_ACCEPTED, so verwendet das DSD-Submodul für die negative Antwort verbindlich den ErrorCode der ersten mit E_NOT_OK antwortenden Funktion [SWS_Dcm_01321], [SWS_Dcm_01322].
Dieser Text wurde von einer KI auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
function Xxx_Confirmation [SWS_Dcm_01342] 📄 PDF
Std_ReturnType Xxx_Confirmation (uint8 SID, uint8 ReqType, uint16 ConnectionId, Dcm_ConfirmationStatusType ConfirmationStatus, Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress);
This function confirms to the application the successful transmission or a transmission error of a diagnostic service.
Die Callback-Funktion Xxx_Confirmation dient dazu, der Applikation den Abschluss einer Diagnoseübertragung – entweder die erfolgreiche Aussendung oder einen Übertragungsfehler – synchron mitzuteilen ([SWS_Dcm_01342]). Die Deklaration wird über den Header Dcm_Externals.h bereitgestellt ([SWS_Dcm_01342]).
Beim Aufruf durch das DCM-Submodul DSD (Diagnostic Service Dispatcher) werden wesentliche Kontextdaten des Diagnoseauftrags übergeben ([SWS_Dcm_01342], [SWS_Dcm_00741]):
SID: Identifikator des Diagnosedienstes ([SWS_Dcm_01342]).ReqType: Adressierungsart (0für physikalisch,1für funktional) ([SWS_Dcm_01342]).ConnectionId,ProtocolTypeundTesterSourceAddress: Eindeutige Verbindungs- und Protokollattribute sowie die Quelladresse des Testers ([SWS_Dcm_01342]).ConfirmationStatus: Statusinformation über Erfolg oder Fehler der Übertragung ([SWS_Dcm_01342]).
Als Rückgabewert liefert die Operation Std_ReturnType (E_OK bei erfolgreicher Bestätigungsverarbeitung, andernfalls E_NOT_OK) ([SWS_Dcm_01342]). Das DSD ruft die Funktion auf allen Ports auf, die das Interface ServiceRequestNotification nutzen (konfiguriert über DcmDsdServiceRequestManufacturerNotification bzw. DcmDsdServiceRequestSupplierNotification) ([SWS_Dcm_00741]).
Bezüglich der Aufrufreihenfolge wird Xxx_Confirmation regulär direkt im Anschluss an DspInternal_DcmConfirmation() ausgeführt ([SWS_Dcm_00742]). Liegt jedoch der Sonderfall nach [SWS_Dcm_01172] vor, ruft das DSD ausschließlich Xxx_Confirmation auf, während der interne Aufruf entfällt.
Da Xxx_Confirmation als nicht reentrant (Non Reentrant) und synchron spezifiziert ist ([SWS_Dcm_01342]), dürfte die anwendungsseitige Implementierung keine blockierenden Abläufe enthalten und keine reentranten Rückaufrufe in das DCM auslösen (Interpretation). Frage Q-58ce3e44dc61540b (offen)
Dieser Text wurde von einer KI erstellt. Alle Angaben basieren ausschließlich auf dem AUTOSAR-Spezifikationsumfang des Releases R20-11.
Implementer's Guide folgt (Komplexität I2)
function Xxx_ClearDTCCheckFnc [SWS_Dcm_01270] 📄 PDF
Std_ReturnType Xxx_ClearDTCCheckFnc (uint32 GoDTC, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function for condition check, manufacturer / supplier specific checks on the groupOf DTC, which is requested to clear.
Verwendung
Die synchrone Callout-Funktion Xxx_ClearDTCCheckFnc wird über die Header-Datei Dcm_Externals.h für die Applikation bereitgestellt [SWS_Dcm_01270]. Sie dient zur hersteller- und lieferantenspezifischen Überprüfung von Bedingungen vor dem Löschen einer angeforderten Gruppe von Diagnose-Fehlercodes (Group of DTC). Als Eingabeparameter wird ihr der Bezeichner GoDTC vom Typ uint32 übergeben, der die zu löschende Fehlercodegruppe spezifiziert [SWS_Dcm_01270].
Fehlerbehandlung und Rückgabewerte
Die Freigabe der Löschanforderung erfolgt über den Rückgabewert vom Typ Std_ReturnType im Zusammenspiel mit dem Ausgabeparameter ErrorCode [SWS_Dcm_01270]:
E_OK: Die Applikation gestattet das Löschen der angeforderten FehlercodegruppeGoDTC[SWS_Dcm_01270].E_NOT_OK: Die Applikation untersagt das Löschen der Gruppe. In diesem Fehlerfall muss über den AusgabeparameterErrorCodevom TypDcm_NegativeResponseCodeType*ein negativer Antwortcode gesetzt werden. Das Modul DCM versendet daraufhin eine negative Antwort mit dem inErrorCodeangegebenen NRC-Wert [SWS_Dcm_01270].
Nebenläufigkeit und Einschränkungen
Die Funktion ist mit der Service-ID 0x5f versehen, arbeitet synchron und ist als nicht reentrant (Non Reentrant) definiert [SWS_Dcm_01270]. Der Aufrufkontext muss daher gewährleisten, dass Aufrufe sequenziell und ohne nebenläufige Überlappungen erfolgen.
Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation SWS_Dcm_01270 aus AUTOSAR R20-11 generiert.
function Xxx_ProcessRequestDownload [SWS_Dcm_00754] 📄 PDF
Std_ReturnType Xxx_ProcessRequestDownload (Dcm_OpStatusType OpStatus, uint8 DataFormatIdentifier, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint32* BlockLength, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function. DCM shall call this callout function to start a download process. This service is needed for the implementation of UDS service RequestDownload.
Die Callout-Funktion Xxx_ProcessRequestDownload ([SWS_Dcm_00754]) wird vom Modul Dcm aufgerufen, um bei der Verarbeitung des UDS-Dienstes RequestDownload einen Download-Vorgang zu initiieren. Sie ist als asynchron und nicht reentrant definiert und wird über den Header Dcm_Externals.h bereitgestellt ([SWS_Dcm_00754]).
Verwendung und Parameter
Der Aufruf erfolgt schrittweise über den Parameter OpStatus mit den Werten DCM_INITIAL, DCM_PENDING oder DCM_CANCEL ([SWS_Dcm_00754]). Als Eingabeparameter werden Kompressions- und Verschlüsselungsverfahren (DataFormatIdentifier), der Speicherblock (MemoryIdentifier), die Startadresse (MemoryAddress) und die unkomprimierte Speichergröße in Bytes (MemorySize) übergeben ([SWS_Dcm_00754]). Vor dem Aufruf beschreibt das Dcm den Inout-Parameter BlockLength mit der maximal möglichen Puffergröße ([SWS_Dcm_01417]). Die Funktion passt diesen Wert auf die maximal zulässige Blocklänge für spätere Schreiboperationen an ([SWS_Dcm_00754]).
Rückgabewerte und Zusammenspiel
Die Funktion liefert E_OK bei erfolgreicher Ausführung, DCM_E_PENDING, falls die Bearbeitung noch andauert, oder E_NOT_OK bei einem Fehler ([SWS_Dcm_00754]):
- Liefert der Aufruf
E_OKund ist der verhandelte WertBlockLengthkleiner oder gleich der unterstützten Pufferlänge der aktuellen Protokollverbindung, sendet dasDcmeine positive Antwort mit diesem Wert alsmaxNumberOfBlockLength([SWS_Dcm_01419]). - Übersteigt die zurückgegebene Pufferlänge die unterstützte Puffergröße der Protokollverbindung, meldet das
Dcmden DET-FehlerDCM_E_INTERFACE_BUFFER_OVERFLOW([SWS_Dcm_01418]). - Bei Rückgabe von
E_NOT_OKversendet dasDcmeine negative UDS-Antwort (NRC) mit dem im AusgabeparameterErrorCodegesetzten Wert ([SWS_Dcm_00754], [SWS_Dcm_00757]).
Dieser Nutzungshinweis wurde automatisch erstellt und dient als Hilfestellung zur AUTOSAR-Spezifikation.
Implementer's Guide folgt (Komplexität I2)
function Xxx_ProcessRequestTransferExit [SWS_Dcm_00755] 📄 PDF
Std_ReturnType Xxx_ProcessRequestTransferExit (Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function. DCM shall call this callout function to terminate a download or upload process. This callout is needed for the implementation of UDS service RequestTransferExit.
Die Callout-Funktion Xxx_ProcessRequestTransferExit wird vom DCM-Modul aufgerufen, um einen laufenden Download- oder Upload-Prozess im Rahmen des UDS-Dienstes RequestTransferExit zu beenden [SWS_Dcm_00755]. Die Deklaration der Schnittstelle wird über den Header Dcm_Externals.h bereitgestellt [SWS_Dcm_00755].
Verwendung und Semantik
Die Funktion wird asynchron betrieben und ist als nicht reentrant definiert [SWS_Dcm_00755]. Der Aufruf erfolgt unter Übergabe des aktuellen Ausführungsstatus OpStatus (mögliche Werte: DCM_INITIAL, DCM_PENDING oder DCM_CANCEL) [SWS_Dcm_00755]. Als Rückgabewerte vom Typ Std_ReturnType sind spezifiziert:
E_OK: Der Transfer wurde erfolgreich beendet [SWS_Dcm_00755].DCM_E_PENDING: Die Übertragungsbeendigung ist noch nicht abgeschlossen und erfordert Folgeaufrufe [SWS_Dcm_00755].E_NOT_OK: Die Beendigung schlug fehl oder der Antwortpuffer ist zu klein [SWS_Dcm_00755].
Fehlerbehandlung und Zusammenspiel
Gibt die Operation Xxx_ProcessRequestTransferExit den Fehlerwert E_NOT_OK zurück, muss über den Ausgabeparameter ErrorCode ein negativer Antwortcode übergeben werden. Das DCM-Modul sendet daraufhin eine negative UDS-Antwort (NRC) mit genau diesem Fehlercode an das Diagnoseprüfgerät [SWS_Dcm_00759]. Bei einem Abbruchaufruf übergibt das DCM-Modul den Status DCM_CANCEL an die Funktion [SWS_Dcm_00755].
Dieser Text wurde automatisch erstellt. Alle Angaben basieren ausschließlich auf der AUTOSAR-Spezifikation.
Implementer's Guide folgt (Komplexität I2)
function Xxx_ProcessRequestUpload [SWS_Dcm_00756] 📄 PDF
Std_ReturnType Xxx_ProcessRequestUpload (Dcm_OpStatusType OpStatus, uint8 DataFormatIdentifier, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint32* BlockLength, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function. DCM shall call this callout function to start an upload process. This service is needed for the implementation of UDS service RequestUpload.
Die Callout-Funktion Xxx_ProcessRequestUpload wird vom DCM-Modul aufgerufen, um den UDS-Dienst RequestUpload zu initiieren ([SWS_Dcm_00756]). Sie wird über Dcm_Externals.h bereitgestellt und ist als nicht reentrant sowie asynchron spezifiziert ([SWS_Dcm_00756]). Über den Parameter OpStatus (mit den Zuständen DCM_INITIAL, DCM_PENDING, DCM_CANCEL oder DCM_FORCE_RCRRP_OK) steuert der DCM den Ablauf der Operation ([SWS_Dcm_00756]).
Beim Aufruf übergibt der DCM unter anderem die Kompressions- und Verschlüsselungsmethode (DataFormatIdentifier), den Speicherblock (MemoryIdentifier), die Startadresse (MemoryAddress) sowie die unkomprimierte Speichergröße in Bytes (MemorySize) ([SWS_Dcm_00756]). Der In/Out-Parameter BlockLength definiert die maximale Anzahl an Bytes für einen nachfolgenden Dcm_ReadMemory-Aufruf; vor dem Aufruf schreibt der DCM die maximal mögliche Puffergröße in diesen Parameter ([SWS_Dcm_00756], [SWS_Dcm_01420]).
Als Rückgabewerte von Xxx_ProcessRequestUpload sind E_OK bei erfolgreicher Anfrage, E_NOT_OK bei Fehlern und DCM_E_PENDING bei noch nicht abgeschlossener Verarbeitung definiert ([SWS_Dcm_00756]):
- Gibt die Funktion
E_NOT_OKzurück, sendet das DCM-Modul eine negative UDS-Antwort mit dem im AusgabeparameterErrorCodegesetzten NRC-Wert ([SWS_Dcm_00756], [SWS_Dcm_00758]). - Liefert die Funktion einen angeforderten Pufferwert in
BlockLengthzurück, der kleiner oder gleich der unterstützten Pufferlänge der aktuellen Protokollverbindung ist, verwendet der DCM diesen Wert alsmaxNumberOfBlockLengthin der positiven Antwort ([SWS_Dcm_01422]). - Fällt die zurückgegebene Pufferlänge hingegen größer aus als die von der Protokollverbindung unterstützte Pufferlänge, meldet der DCM den DET-Fehler
DCM_E_INTERFACE_BUFFER_OVERFLOW([SWS_Dcm_01421]).
Dieser Text wurde von einer KI erstellt. Er basiert ausschließlich auf den Spezifikationen des übergebenen AUTOSAR-Payloads.
Implementer's Guide folgt (Komplexität I2)
function Xxx_ProcessTransferDataRead [SWS_Dcm_91070] 📄 PDF
Dcm_ReturnReadMemoryType Xxx_ProcessTransferDataRead (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, Dcm_RequestDataArrayType MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);
The ProcessTransferDataRead callout is used to request memory data identified by the parameter memoryAddress and memorySize from the UDS request message. This service is needed for the implementation of UDS services: • ReadMemoryByAddress • RequestUpload • ReadDataByIdentifier (in case of Dynamical DID defined by memory address) • TransferData
Die Callout-Funktion Xxx_ProcessTransferDataRead dient dem asynchronen Auslesen von Speicherdaten aus dem Steuergerät anhand von Startadresse (MemoryAddress) und Länge (MemorySize) gemäß [SWS_Dcm_91070]. Sie wird über den Header Dcm_Externals.h bereitgestellt und unterstützt die UDS-Dienste ReadMemoryByAddress, RequestUpload, TransferData sowie ReadDataByIdentifier bei dynamisch über Speicheradressen definierten DIDs [SWS_Dcm_91070].
Der Aufruf erfolgt nicht reentrant (Non Reentrant) und wird über den Parameter OpStatus gesteuert ([SWS_Dcm_91070]):
DCM_INITIAL: Startet die Leseoperation.DCM_PENDING: Setzt einen noch nicht abgeschlossenen Lesevorgang fort.DCM_CANCEL: Bricht die laufende Operation ab.DCM_FORCE_RCRRP_OK: Bestätigt die Übertragung einer ausstehenden Antwort.
Zur Adressierung kann über MemoryIdentifier ein Speicherblock bzw. -bereich ausgewählt werden; wird dieser Parameter nicht genutzt, ist er zwingend auf 0 zu setzen [SWS_Dcm_91070]. Die ausgelesenen Daten werden über den Ausgabeparameter MemoryData zurückgegeben, der direkt auf den Diagnosepuffer des DCM verweist [SWS_Dcm_91070].
Als Rückgabewerte sind DCM_READ_OK bei Erfolg, DCM_READ_PENDING bei noch andauerndem Auslesen sowie DCM_READ_FORCE_RCRRP definiert, wenn der Vorgang aussteht und unmittelbar eine Response-Pending-Nachricht gesendet werden soll [SWS_Dcm_91070]. Schlägt das Lesen fehl, liefert die Funktion DCM_READ_FAILED; in diesem Fall muss über den Zeiger ErrorCode ein negativer Antwortcode (NRC) übergeben werden, den das DCM in einer negativen Antwort übermittelt [SWS_Dcm_91070]. (Interpretation: Die Spezifikationsnotiz zu ErrorCode erwähnt zwar Dcm_ReadMemory, dürfte sich hier jedoch sinngemäß auf das Scheitern dieses Callouts beziehen.) Frage Q-fe76e2599624baf7 (offen)
Dieser Nutzungshinweis basiert auf der Spezifikation AUTOSAR CP R20-11 und wurde automatisiert erstellt.
Implementer's Guide folgt (Komplexität I2)
function Xxx_ProcessTransferDataWrite [SWS_Dcm_91071] 📄 PDF
Dcm_ReturnWriteMemoryType Xxx_ProcessTransferDataWrite (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, const Dcm_RequestDataArrayType MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);
The ProcessTransferDataWrite callout is used to write memory data identified by the parameter memoryAddress and memorySize. This service is needed for the implementation of UDS services : • WriteMemoryByAddress • RequestDownload • TransferData
Verwendung und Semantik
Der asynchrone Callout Xxx_ProcessTransferDataWrite (Service-ID 0x27) ist über Dcm_Externals.h verfügbar und wird vom DCM-Modul aufgerufen, um Speicherdaten für die UDS-Dienste WriteMemoryByAddress, RequestDownload und TransferData zu schreiben [SWS_Dcm_91071]. Der Ablauf des Schreibvorgangs wird über den Parameter OpStatus mit den Werten DCM_INITIAL, DCM_PENDING, DCM_CANCEL oder DCM_FORCE_RCRRP_OK gesteuert [SWS_Dcm_91071].
Parameter und Rückgabewerte
Die Funktion verarbeitet folgende Parameter [SWS_Dcm_91071]:
MemoryIdentifier: Kennung des Speicherblocks; wird dieser Parameter nicht genutzt, ist er auf 0 zu setzen [SWS_Dcm_91071].MemoryAddress: Startadresse des Server-Speichers, in den die Daten kopiert werden; bei Nichtverwendung (beispielsweise bei komprimierten Daten) ist der Wert 0 zu übergeben [SWS_Dcm_91071].MemorySize: Anzahl der zu schreibenden Bytes inMemoryData[SWS_Dcm_91071].MemoryData: Zeiger auf die zu schreibenden Daten im Diagnosepuffer des DCM [SWS_Dcm_91071].ErrorCode: Ausgabeparameter für den negativen Antwortcode (NRC) im Fehlerfall [SWS_Dcm_91071].
Der Rückgabewert vom Typ Dcm_ReturnWriteMemoryType signalisiert das Ergebnis der Operation [SWS_Dcm_91071]:
DCM_WRITE_OK: Schreiboperation erfolgreich beendet [SWS_Dcm_91071].DCM_WRITE_PENDING: Schreibvorgang ist noch nicht abgeschlossen [SWS_Dcm_91071].DCM_WRITE_FORCE_RCRRP: Schreibvorgang steht noch aus; die Übertragung der ausstehenden Antwort (Response Pending) startet unverzüglich [SWS_Dcm_91071].DCM_WRITE_FAILED: Schreiboperation ist fehlgeschlagen [SWS_Dcm_91071].
Fehlerbehandlung und Nebenläufigkeit
Gibt der Callout den Wert DCM_WRITE_FAILED zurück, versendet das DCM-Modul eine negative Antwort mit dem im Parameter ErrorCode übergebenen NRC-Wert [SWS_Dcm_91071]. Der Callout ist als nicht reentrant (Non Reentrant) spezifiziert und darf daher nicht nebenläufig ausgeführt werden [SWS_Dcm_91071].
Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation erstellt.
Implementer's Guide folgt (Komplexität I2)
type Dcm_StatusType [SWS_Dcm_00976] 📄 PDF
Base item type to transport status information.
Der Typ Dcm_StatusType dient als grundlegender Status- und Rückgabetyp zur Übertragung von Statusinformationen innerhalb des Moduls Dcm und wird über die Header-Datei Dcm.h bereitgestellt [SWS_Dcm_00976]. Er basiert auf dem Standardtyp uint8 und definiert standardisierte Statuswerte für Rückmeldungen spezifischer DCM-Schnittstellen [SWS_Dcm_00976].
Definierte Statuswerte und Fehlerbehandlung
Die Spezifikation definiert für Dcm_StatusType folgende Status- und Fehlercodes [SWS_Dcm_00976]:
DCM_E_OK(0x00): Zeigt an, dass die angeforderte Operation erfolgreich ausgeführt bzw. angenommen wurde [SWS_Dcm_00976].DCM_E_ROE_NOT_ACCEPTED(0x06): Gibt an, dass eine ResponseOnOneEvent-Anfrage vom DCM abgewiesen wurde, beispielsweise weil ein vorheriger ResponseOnOneEvent-Vorgang noch nicht abgeschlossen ist; der Wert kommt an der SchnittstelleDcm_ResponseOnOneEvent()zum Einsatz [SWS_Dcm_00976].DCM_E_PERIODICID_NOT_ACCEPTED(0x07): Signalisiert, dass eine periodische Übertragungsanforderung vom DCM nicht akzeptiert wurde, etwa weil eine laufende periodische Übertragung noch nicht beendet ist; dieser Status wird an der SchnittstelleDcm_ResponseOnOneDataByPeriodicId()verwendet [SWS_Dcm_00976].
Einschränkungen und Aufrufbedingungen
Aufrufer der genannten Schnittstellen müssen den Rückgabewert vom Typ Dcm_StatusType auswerten, um festzustellen, ob neue Anforderungen unmittelbar akzeptiert werden können oder aufgrund noch laufender Übertragungen verworfen wurden [SWS_Dcm_00976]. Eine wiederholte Anforderung dürfte erst dann Aussicht auf Erfolg haben, sobald vorherige Ereignis- oder Sendevorgänge vollständig abgeschlossen sind [SWS_Dcm_00976]. Frage Q-901ec7e3aac8901c (offen)
Dieser Text wurde von einer KI erstellt und basiert auf der AUTOSAR-Spezifikation.
Implementer's Guide folgt (Komplexität I1)
type Dcm_CommunicationModeType [SWS_Dcm_00981] 📄 PDF
Manager
Der Datentyp Dcm_CommunicationModeType ist ein in Dcm.h deklarierter Aufzählungstyp auf Basis von uint8 ([SWS_Dcm_00981]). Er definiert die Kommunikationsmodi zur selektiven Steuerung der Sende- (Tx) und Empfangspfade (Rx). Der Wertebereich umfasst die Werte 0x00 bis 0x0B für normale Anwendungsdaten (NORM), das Netzwerkmanagement (NM) sowie beide Kommunikationszweige kombiniert (NORM_NM) ([SWS_Dcm_00981]).
Der Typ wird als Parameter bei Aufrufen der BSW-Schnittstelle BswM_Dcm_CommunicationMode_CurrentState verwendet. Über diese meldet der DCM nach der Bestätigung (Sent Confirmation) einer UDS-Dienstanforderung CommunicationControl (Service 0x28) den aktuellen Modus an den BSW Mode Manager weiter ([SWS_Dcm_00512], [SWS_Dcm_00785]). Der konkrete Moduswert entspricht dabei den Parametern communicationType und controlType der empfangenen Diagnoseanfrage ([SWS_Dcm_00512]).
Das Zusammenspiel und die betroffenen Netzwerke richten sich nach dem Subnetz-Parameter der UDS-Anforderung:
- Bei Subnetz
0x00erfolgt die Aktualisierung für alle inDcmDspComControlAllChannelkonfigurierten Netzwerkkanäle ([SWS_Dcm_00512]). - Bei Subnetz
0x0Fwird der Kommunikationsmodus des aktuellen Diagnose-Empfangskanals gemeldet ([SWS_Dcm_00785]). - Bei Subnetzen von
0x01bis0x0Ewird die Unterstützung geprüft; nicht unterstützte Subnetze werden mit dem negativen Antwortcode 0x31 abgewiesen ([SWS_Dcm_00786]). - Bei Unterfunktionen mit erweiterter Adressierung (wie
enableRxAndDisableTxWithEnhancedAddressInformationoderenableRxAndTxWithEnhancedAddressInformation) erfolgt der Aufruf für den über die Sub-Node-ID referenzierten Kanal ([SWS_Dcm_01077], [SWS_Dcm_01079]).
Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
type Dcm_ConfigType [SWS_Dcm_00982] 📄 PDF
This type defines a data structure for the post build parameters of the DCM . At initialization the DCM gets a pointer to a structure of this type to get access to its configuration data, which is necessary for initialization.
type Dcm_ReturnReadMemoryType [SWS_Dcm_00985] 📄 PDF
Return values of Callout Dcm_ReadMemory
type Dcm_ReturnWriteMemoryType [SWS_Dcm_00986] 📄 PDF
Return type of callout Dcm_WriteMemory
type Dcm_EcuStartModeType [SWS_Dcm_00987] 📄 PDF
Allows the DCM to know if a diagnostic response shall be sent in the case of a jump from bootloader
Der Datentyp Dcm_EcuStartModeType ist von uint8 abgeleitet und wird über den Header Dcm.h bereitgestellt [SWS_Dcm_00987]. Er dient dem Diagnostic Communication Manager (DCM) zur Feststellung des Startmodus und signalisiert, ob nach einem Wechsel aus dem Bootloader eine Diagnoseantwort übertragen werden soll [SWS_Dcm_00987].
Der Wertebereich umfasst zwei definierte Zustände [SWS_Dcm_00987]:
DCM_COLD_START(0x00): Das Steuergerät startet regulär im Normalbetrieb [SWS_Dcm_00987].DCM_WARM_START(0x01): Das Steuergerät startet infolge eines Sprungs aus dem Bootloader [SWS_Dcm_00987].
Im Zusammenspiel der Schnittstellen fungiert Dcm_EcuStartModeType als synchroner Rückgabewert des Callouts Dcm_GetProgConditions, welches über Dcm_Externals.h verfügbar ist [SWS_Dcm_00544]. Diese Funktion wird während der DCM-Initialisierung aufgerufen, um zu ermitteln, ob eine positive Antwort ($50 oder $51) gesendet werden muss [SWS_Dcm_00544]. Die detaillierten Randbedingungen des Bootloader-Sprungs werden dem DCM dabei über den Ausgabeparameter ProgConditions übergeben [SWS_Dcm_00544].
Hinsichtlich Ausführung und Fehlerbehandlung ist das abrufende Callout als synchron und nicht reentrant definiert [SWS_Dcm_00544]. Spezifische Fehlercodes oder direkte Benachrichtigungen an DET oder DEM sind für diesen Datentyp nicht festgelegt.
Dieser Nutzungshinweis wurde automatisch auf Basis der Spezifikation AUTOSAR Classic R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
type Dcm_ProgConditionsType [SWS_Dcm_00988] 📄 PDF
Used in Dcm_SetProgConditions() to allow the integrator to store relevant information prior to jumping to bootloader / jump due to ECUReset request.
Die Struktur Dcm_ProgConditionsType dient dem Austausch von Zustands- und Kontextdaten zwischen Applikation und Bootloader bei Programmierabläufen oder einem Steuergeräte-Reset [SWS_Dcm_00988]. Sie bündelt Verbindungsinformationen wie ConnectionId und TesterAddress, Diagnoseidentifikatoren wie Sid und SubFncId sowie Steuerflags wie ReprogramingRequest, ApplUpdated und ResponseRequired [SWS_Dcm_00988].
Die Verwendung erfolgt über zwei zentrale Schnittstellen:
- Vor dem Sprung in den Bootloader oder bei einem Reset übergibt der DCM die Struktur an die asynchrone, nicht reentrante Funktion
Dcm_SetProgConditions()[SWS_Dcm_00543]. Mögliche Rückgabewerte sindE_OK,E_NOT_OK,DCM_E_PENDINGsowieDCM_E_FORCE_RCRRPbei Anforderung einer Response-Pending-Nachricht (NRC 0x78) [SWS_Dcm_00543]. - Nach dem Neustart ruft der DCM während seiner Initialisierung den synchronen, nicht reentranten Callout
Dcm_GetProgConditions()auf, um die gespeicherten Bedingungen auszulesen und denDcm_EcuStartModeTypezu ermitteln [SWS_Dcm_00544]. Die Ablage dieser Daten durch den Integrator dürfte typischerweise über resetfesten RAM oder nichtflüchtigen Speicher erfolgen (Interpretation). Frage Q-026bc7bc93f5502c (offen)
Im weiteren Systemzusammenspiel wertet der DCM die Struktur aus: Sobald das ComM die volle Kommunikationsfähigkeit meldet, versendet der DCM die ausstehende Diagnoseantwort für die in Sid hinterlegte Dienstkennung [SWS_Dcm_00767]. Signalisiert ApplUpdated == True nach einem Bootloader-Sprung eine erfolgte Aktualisierung per Flash-Download, benachrichtigt der DCM über BswM_Dcm_ApplicationUpdated() das BswM [SWS_Dcm_00768].
Dieser Nutzungshinweis wurde automatisiert generiert und basiert ausschließlich auf den Spezifikationen der AUTOSAR-Version R20-11.
Implementer's Guide folgt (Komplexität I1)
type Dcm_MsgItemType [SWS_Dcm_00989] 📄 PDF
Base type for diagnostic message item
type Dcm_MsgType [SWS_Dcm_00990] 📄 PDF
Base type for diagnostic message (request, positive or negative response)
Verwendung und Typdefinition
Der Datentyp Dcm_MsgType ist der zentrale Zeigertyp für diagnostische Nachrichten im Diagnostic Communication Manager und steht über den Header Dcm.h zur Verfügung [SWS_Dcm_00990]. Er ist als Zeiger auf Dcm_MsgItemType* deklariert und dient als gemeinsame Basis zur Referenzierung von Anfragen sowie positiven und negativen Antwortnachrichten [SWS_Dcm_00990]. Interpretation: Da der Basistyp Dcm_MsgItemType in der Spezifikation nicht näher ausgeführt ist, dürfte er typischerweise ein einzelnes Datenbyte (wie uint8) darstellen, über das sequenziell auf den linearen Nachrichtenpuffer zugegriffen wird. Frage Q-2b6f46b51d3cb8e0 (offen)
Zusammenspiel und Strukturkontext
Die primäre Verwendung von Dcm_MsgType erfolgt innerhalb der Kontextstruktur Dcm_MsgContextType [SWS_Dcm_00994]. Dort referenziert der Typ zwei getrennte Datenbereiche:
reqData: Verweist auf die Nutzdaten der Diagnoseanfrage, beginnend unmittelbar nach dem Service Identifier (SID), welcher selbst nicht Teil dieser Daten ist [SWS_Dcm_00994].resData: Verweist auf die Daten einer positiven Antwort und setzt ebenfalls unmittelbar hinter dem Service Identifier an [SWS_Dcm_00994].
Puffergrenzen und Einschränkungen
Beim Verarbeiten und Befüllen der über Dcm_MsgType adressierten Antwortpuffer müssen Anwender strikt die zugehörigen Pufferbegrenzungen einhalten [SWS_Dcm_00994]. Die tatsächliche Antwortlänge resDataLen darf die durch resMaxDataLen definierte Pufferkapazität keinesfalls überschreiten, da die maximale Antwortgröße strikt durch die Allokation des zugewiesenen Puffers beschränkt ist [SWS_Dcm_00994].
Dieser Text wurde von einer KI auf Basis der Spezifikation AUTOSAR Classic Release R20-11 generiert.
type Dcm_MsgLenType [SWS_Dcm_00991] 📄 PDF
Length of diagnostic message (request, positive or negative response). The maximum length is dependent of the underlying transport protocol/media.
Der Datentyp Dcm_MsgLenType ist über den Header Dcm.h verfügbar und vom Basistyp uint32 abgeleitet [SWS_Dcm_00991]. Er wird im Diagnostic Communication Manager (DCM) verwendet, um die Länge diagnostischer Botschaften zu beschreiben. Dies umfasst sowohl Diagnoseanfragen (Requests) als auch positive und negative Antwortnachrichten (Responses) [SWS_Dcm_00991].
Hinsichtlich der Wertebereichsgrenzen legt die Spezifikation fest, dass die maximal übertragbare Länge einer Diagnosenachricht vom jeweils zugrunde liegenden Transportprotokoll bzw. Übertragungsmedium abhängt [SWS_Dcm_00991]. Interpretation: Obwohl der zugrunde liegende Datentyp uint32 softwareseitig Nachrichtenlängen von bis zu 4 GiB darstellen kann, dürfte die tatsächliche Maximallänge in der Praxis stets durch das Kommunikationsmedium sowie die Puffergrößen limitiert sein. Frage Q-ac43639ecb32605d (offen)
Eine zentrale Rolle spielt Dcm_MsgLenType in der Struktur Dcm_MsgContextType, welche den Kontext eines Diagnoseauftrags kapselt [SWS_Dcm_00994]. Innerhalb dieser Struktur typisiert er mehrere fundamentale Längenangaben:
reqDataLen: Repräsentiert die Länge der Anfragedaten (Request Data). Die Zählung beginnt unmittelbar nach dem Service-Identifier, sodass dieser nicht in der Längenangabe enthalten ist [SWS_Dcm_00994].resDataLen: Gibt die Länge der positiven Antwortdaten an, ebenfalls exklusive des Service-Identifiers [SWS_Dcm_00994].resMaxDataLen: Spezifiziert die maximal mögliche Länge einer Antwort, welche durch die Größe des allokierten Puffers beschränkt wird [SWS_Dcm_00994].
Bei der Implementierung von Service-Handlern ist daher strikt darauf zu achten, dass Längenberechnungen für reqDataLen und resDataLen stets ohne den Service-Identifier erfolgen und Antwortdaten die durch resMaxDataLen vorgegebene Puffergrenze nicht überschreiten [SWS_Dcm_00994].
Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.
type Dcm_MsgAddInfoType [SWS_Dcm_00992] 📄 PDF
Additional information on message request. Datastructure: Bitfield
Der Datentyp Dcm_MsgAddInfoType ist gemäß [SWS_Dcm_00992] als Bitfeld-Struktur definiert und dient der Bereitstellung ergänzender Status- und Steuerinformationen zu einer Diagnosenachricht. Der Typ wird im klassischen AUTOSAR über die Header-Datei Dcm.h zur Verfügung gestellt und kommt als Element msgAddInfo innerhalb der übergeordneten Kontextstruktur Dcm_MsgContextType ([SWS_Dcm_00994]) zum Einsatz, um Zusatzinformationen zu Service-Anfragen sowie zugehörigen Antworten konsistent zu bündeln.
Die Bitfeld-Struktur spezifiziert nach [SWS_Dcm_00992] einzelne Steuerflags mit genau definierter Bitposition:
reqType(Position LSB+0): Kennzeichnet die Adressierungsart der Diagnoseanfrage. Ein Wert von0signalisiert einen physikalischen Request (physical request), während ein Wert von1einen funktionalen Request (functional request) anzeigt.suppressPosResponse(Position LSB+1): Bestimmt das Verhalten bezüglich positiver Antworten. Bei0wird die positive Antwort nicht unterdrückt (do not suppress), wohingegen ein Wert von1vorgibt, dass keine positive Antwort gesendet werden darf (no positive response will be sent).
Da Dcm_MsgAddInfoType eine reine Datenstruktur zur Parameter- und Kontextübergabe darstellt, existieren für diesen Typen selbst keine synchronen oder asynchronen Aufrufsemantiken, Rückgabewerte, Reentranzvorschriften oder eigene Fehlermeldungen für DET oder DEM. Die konkrete Auswertung und Berücksichtigung der gesetzten Bits im weiteren Ablauf obliegt vermutlich den internen Verarbeitungsroutinen des Diagnostic Communication Managers, wenn diese auf den Nachrichtenkontext aus [SWS_Dcm_00994] zugreifen. Frage Q-b27248cc452ba1b1 (offen)
Dieser Text wurde von einer KI generiert und dient als Orientierungshilfe im AUTOSAR-Umfeld.
type Dcm_IdContextType [SWS_Dcm_00993] 📄 PDF
This message context identifier can be used to determine the relation between request and response confirmation.
type Dcm_MsgContextType [SWS_Dcm_00994] 📄 PDF
This data structure contains all information which is necessary to process a diagnostic message from request to response and response confirmation.
Die Datenstruktur Dcm_MsgContextType stellt alle notwendigen Informationen bereit, um eine Diagnoseanfrage von der Verarbeitung über die Antwort bis zur Bestätigung zu steuern [SWS_Dcm_00994]. Sie wird als Ein-/Ausgangsparameter pMsgContext an asynchrone und reentrante Serviceroutinen übergeben [SWS_Dcm_00763], [SWS_Dcm_00764]. Dabei zeigen die Nutzdaten-Zeiger reqData und resData stets unmittelbar hinter den Service-Identifier (SID), und die Längenangaben reqDataLen sowie resDataLen schließen den SID nicht ein [SWS_Dcm_00994]. Das DSD-Submodul fügt die Response-SID beim Kopieren in den Sendepuffer an erster Position wieder ein [SWS_Dcm_00223], [SWS_Dcm_00224].
Bei der Verwendung sind folgende Aspekte zu beachten:
- Antwortlänge und Fehlerfall: Überschreitet die erzeugte Antwortlänge die über das protokollabhängige Feld
resMaxDataLendefinierte Puffergrenze und istDcmPagedBufferEnabled == FALSE, antwortet das DCM mit dem negativen Response-Code 0x14 (DCM_E_RESPONSETOOLONG) [SWS_Dcm_01059]. Schlägt die Verarbeitung im Servicehandler fehl, meldet die ApplikationE_NOT_OKmit einem Fehlercode zurück [SWS_Dcm_00763]. - Zusatzinformationen und Antwortunterdrückung: Über
msgAddInfowird unter anderem dassuppressPosRspMsgIndicationBittransportiert; ist dieses gesetzt, unterdrückt das DSD positive Antworten [SWS_Dcm_00202], [SWS_Dcm_00231]. - Lebensdauer und Kontextzuordnung: Mit Erreichen der Bestätigung verliert die Struktur ihre Gültigkeit und alle Nachrichtendaten gehen verloren [SWS_Dcm_00994]. Applikationen müssen den Identifikator
idContextbereits beim Anfragestart sichern, um eine spätere Bestätigung der ursprünglichen Anfrage zuzuordnen [SWS_Dcm_00994]. - Protokollbezug: Das Feld
dcmRxPduIdidentifiziert die Empfangs-PDU und erlaubt eine differenzierte Behandlung je nach Diagnoseprotokoll, beispielsweise zwischen OBD und erweiterter Diagnose [SWS_Dcm_00994].
Interpretation: Da der Kontext zur Bestätigung ungültig wird, dürfte der zugrundeliegende Speicherpuffer nach dem Versand der Antwort unmittelbar von der DSL für nachfolgende Kommunikationen freigegeben oder überschrieben werden. Frage Q-88e3cf2f3d8f6076 (offen)
Dieser Text wurde von einer KI auf Basis der Spezifikation AUTOSAR Classic R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
type Dcm_ExtendedOpStatusType [SWS_Dcm_91015] 📄 PDF
Der Typ Dcm_ExtendedOpStatusType basiert auf uint8 und wird über die Header-Datei Dcm.h bereitgestellt [SWS_Dcm_91015]. Er steuert als Eingabeparameter OpStatus die Ausführungsphasen und Bestätigungen bei asynchronen Diagnose- und Sub-Service-Funktionen wie <Module>_<DiagnosticService> [SWS_Dcm_00763] sowie <Module>_<DiagnosticService>_<SubService> [SWS_Dcm_00764].
Die definierten Zustandswerte signalisieren den Operationsfortschritt und Rückmeldungen des DCM [SWS_Dcm_91015]:
DCM_INITIAL(0x00): Erstmaliger Aufruf der Operation.DCM_PENDING(0x01): Folgeaufruf nach einem im vorherigen Aufruf gemeldeten Zwischenzustand (Pending).DCM_CANCEL(0x02): Anforderung durch das DCM, die laufende Operation abzubrechen.DCM_FORCE_RCRRP_OK(0x03): Bestätigung der Übertragung einer ausstehenden Antwort (Response Pending).DCM_POS_RESPONSE_SENT(0x04) undDCM_POS_RESPONSE_FAILED(0x05): Quittierung über den erfolgreichen bzw. fehlgeschlagenen Versand einer positiven Antwort.DCM_NEG_RESPONSE_SENT(0x06) undDCM_NEG_RESPONSE_FAILED(0x07): Quittierung über den erfolgreichen bzw. fehlgeschlagenen Versand einer negativen Antwort.
Hinsichtlich Nebenläufigkeit sind die aufgerufenen Diagnose-Schnittstellen als reentrant und asynchron spezifiziert [SWS_Dcm_00763] [SWS_Dcm_00764]. Bei Fehlern liefert die Service-Funktion den Rückgabewert E_NOT_OK und weist dem Ausgabeparameter ErrorCode einen negativen Response-Code (NRC) zu, woraufhin das DCM-Modul eine negative Antwort mit diesem Code versendet [SWS_Dcm_00763] [SWS_Dcm_00764].
Dieser Text wurde von einer KI auf Basis der Spezifikation generiert.
Implementer's Guide folgt (Komplexität I2)
type Dcm_OpStatusType [SWS_Dcm_00984] 📄 PDF
Der Typ Dcm_OpStatusType basiert auf uint8 und wird über die Header-Datei Rte_Dcm_Type.h bereitgestellt [SWS_Dcm_00984]. Er steuert den Ausführungs- und Lebenszykluszustand asynchroner Diagnoseoperationen des Diagnostic Communication Managers (DCM), wie etwa Dcm_ReadMemory [SWS_Dcm_00539], Dcm_WriteMemory [SWS_Dcm_00540] oder Dcm_SetProgConditions [SWS_Dcm_00543].
Für die Steuerung des Operationsablaufs sind vier Statuswerte definiert [SWS_Dcm_00984]:
DCM_INITIAL(0x00): Kennzeichnet den ersten Aufruf einer Operation durch das DCM [SWS_Dcm_00527].DCM_PENDING(0x01): Signalisiert einen Folgeaufruf nach vorheriger Rückgabe eines schwebenden Zustands [SWS_Dcm_00984]. Liefert eine Operation den FehlerwertDCM_E_PENDINGzurück, ruft das DCM diese Operation in jedem nachfolgenden Zyklus vonDcm_MainFunctionerneut mitOpStatus = DCM_PENDINGauf, bis die Verarbeitung abgeschlossen ist [SWS_Dcm_00530].DCM_CANCEL(0x02): Fordert die aufgerufene Stelle explizit auf, eine noch ausstehende asynchrone Operation abzubrechen [SWS_Dcm_00984].DCM_FORCE_RCRRP_OK(0x03): Bestätigt die erfolgte Übertragung einer Response-Pending-Nachricht (NRC 0x78) [SWS_Dcm_00984]. Antwortet die Operation mitDCM_E_FORCE_RCRRP, initiiert das DCM das Senden von RCR-RP und unterbricht weitere Aufrufe der Operation, bis das Senden abgeschlossen ist [SWS_Dcm_00528].
Hinsichtlich Nebenläufigkeit und Randbedingungen sind Operationen, die Dcm_OpStatusType als Übergabeparameter entgegennehmen, asynchron ausgelegt und als nicht reentrant spezifiziert [SWS_Dcm_00539] [SWS_Dcm_00754].
Dieser Text wurde von einer KI generiert und dient als Orientierungshilfe zur Spezifikation.
Implementer's Guide folgt (Komplexität I2)
type Dcm_ConfirmationStatusType [SWS_Dcm_00983] 📄 PDF
Verwendung und Wertebereich
Der Datentyp Dcm_ConfirmationStatusType ist ein von uint8 abgeleiteter Aufzählungstyp, der über die Header-Datei Rte_Dcm_Type.h zur Verfügung gestellt wird [SWS_Dcm_00983]. Er wird eingesetzt, um den Status einer versendeten Diagnoseantwort – sowohl bei erfolgreicher Aussendung als auch bei Übertragungsfehlern – an die Anwendung oder interne Service-Handler zu melden [SWS_Dcm_01342]. Der Wertebereich umfasst vier diskrete Zustände [SWS_Dcm_00983]:
DCM_RES_POS_OK(0x00): Interpretation: Die positive Diagnoseantwort wurde erfolgreich übertragen. Frage (offen)DCM_RES_POS_NOT_OK(0x01): Interpretation: Bei der Übertragung der positiven Diagnoseantwort ist ein Fehler aufgetreten. Frage (offen)DCM_RES_NEG_OK(0x02): Interpretation: Die negative Diagnoseantwort (NRC) wurde erfolgreich übertragen. Frage (offen)DCM_RES_NEG_NOT_OK(0x03): Interpretation: Bei der Übertragung der negativen Diagnoseantwort ist ein Fehler aufgetreten. Frage (offen)
Zusammenspiel und Schnittstellen
Der Bestätigungsstatus wird als Eingangsparameter (IN) in synchronen Callback-Funktionen übergeben. In der generischen Bestätigungsschnittstelle Xxx_Confirmation wird der Parameter zusammen mit Dienstkennung (SID), Adressierungsart (ReqType), Verbindungs-ID (ConnectionId), Protokolltyp und Tester-Quelladresse übermittelt [SWS_Dcm_01342]. Ebenso bindet die Schnittstelle ServiceRequestNotification über die Operation Confirmation diesen Status ein [SWS_Dcm_00694].
Bei der Ausführung von Routinediensten wird der Typ spezifisch genutzt, um den Übertragungsstatus nach Abschluss einzelner Routine-Operationen zurückzumelden. Hierzu dienen die in Dcm_Externals.h deklarierten Callbacks Xxx_StartConfirmation [SWS_Dcm_91016], Xxx_StopConfirmation [SWS_Dcm_91017] und Xxx_RequestResultsConfirmation [SWS_Dcm_91018].
Nebenläufigkeit und Ausführung
Die Funktionen zur Bestätigung geben einen Std_ReturnType zurück (z. B. E_OK oder E_NOT_OK) [SWS_Dcm_01342], [SWS_Dcm_91016]. Alle genannten Schnittstellenaufrufe werden synchron ausgeführt und sind als nicht reentrant (Non Reentrant) deklariert [SWS_Dcm_01342], [SWS_Dcm_91016], [SWS_Dcm_91017], [SWS_Dcm_91018].
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.
Implementer's Guide folgt (Komplexität I2)
type Dcm_SecLevelType [SWS_Dcm_00977] 📄 PDF
Security Level type definition
type Dcm_SesCtrlType [SWS_Dcm_00978] 📄 PDF
Session type definition. 0, 127 and all values above 127 are reserved by ISO.
type Dcm_ProtocolType [SWS_Dcm_00979] 📄 PDF
Type Dcm_ProtocolType.
type Dcm_NegativeResponseCodeType [SWS_Dcm_00980] 📄 PDF
Type Dcm_NegativeResponseCodeType.
type Dcm_DataArrayType [SWS_Dcm_01121] 📄 PDF
type Dcm_InfoType [SWS_Dcm_01013] 📄 PDF
type Dcm_RequestDataArrayType [SWS_Dcm_01165] 📄 PDF
type Dcm_InputOutputControlParameterType [SWS_Dcm_01305] 📄 PDF
type Dcm_IOOperationResponseType [SWS_Dcm_01307] 📄 PDF
type Dcm_DidSupportedType [SWS_Dcm_01138] 📄 PDF
type Dcm_FileAndDirNameType [SWS_Dcm_91066] 📄 PDF
type Dcm_ResponseDataArrayType [SWS_Dcm_91064] 📄 PDF
type Dcm_AuthenticationRoleType [SWS_Dcm_91068] 📄 PDF
Der Datentyp Dcm_AuthenticationRoleType ist als Byte-Array (uint8) spezifiziert, dessen Größe durch den Konfigurationsparameter DcmDspAuthenticationRoleSize bestimmt wird [SWS_Dcm_91068]. Er wird über die Header-Datei Rte_Dcm_Type.h bereitgestellt und dient im DCM-Modul zur formalen Repräsentation von Authentifizierungsrollen [SWS_Dcm_91068].
In der praktischen Anwendung dient der Typ als Eingabeparameter zur Festlegung von Rollen für nicht-authentifizierte Diagnoseverbindungen:
- Verwendung und Semantik: Der Typ wird als Eingabeparameter
deauthenticatedRolein der C-FunktionDcm_SetDeauthenticatedRole(verfügbar überDcm.h) [SWS_Dcm_91069] sowie der OperationSetDeauthenticatedRoledes Service-InterfaceAuthentication[SWS_Dcm_91072] übergeben. Damit wird einer Verbindung, identifiziert über dieconnectionId, eine deauthentifizierte Rolle synchron zugewiesen [SWS_Dcm_91069]. - Nebenläufigkeit und Gültigkeit: Die C-API
Dcm_SetDeauthenticatedRoleist als reentrant spezifiziert [SWS_Dcm_91069]. Eine zugewiesene Rolle bleibt für die jeweilige Verbindung so lange aktiv, bis diese in den authentifizierten Zustand wechselt oder das Steuergerät zurückgesetzt wird [SWS_Dcm_91069], [SWS_Dcm_91072]. - Fehlerbehandlung: Für den Typ und die zugehörigen Operationen existieren keine spezifischen Fehlercodes; die Funktion gibt standardmäßig stets
E_OKzurück [SWS_Dcm_91069], [SWS_Dcm_91072].
Dieser Text wurde von einer KI auf Basis der Spezifikation generiert.
Implementer's Guide folgt (Komplexität I1)
type DiagnosticSessionControlModeSwitchInterface [SWS_Dcm_91033] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Diagnostic Session
Verwendung
Das Schnittstellenelement DiagnosticSessionControlModeSwitchInterface ist gemäß [SWS_Dcm_91033] als bereitgestellter Port (PPortPrototype bzw. ProvidedPort) des Moduls DCM deklariert und nutzt das Interface Dcm_DiagnosticSessionControlModeSwitchInterface. Gemäß der Spezifikation in [SWS_Dcm_91033] dient dieser Port dazu, Software-Komponenten (SW-Cs) über den Wechsel und den aktuellen Zustand der aktiven Diagnosesitzung (Diagnostic Session) zu benachrichtigen.
Interpretation: Das Modul DCM übernimmt hierbei vermutlich die Rolle des Senders, welcher Statusänderungen der Diagnosesitzung über die RTE an interessierte Software-Komponenten weiterleitet. Frage Q-6af0e97b6910087d (offen) Angeschlossene SW-Cs dürften diese Moduswechsel über konfigurierte Mode-Switch-Ereignisse empfangen und verarbeiten, um interne Abläufe, Freigaben oder ihr funktionales Verhalten an die jeweils aktive Diagnosesitzung anzupassen.
Fehlerbehandlung und Randbedingungen
Für diesen Port sind in [SWS_Dcm_91033] keine spezifischen Fehlercodes, Rückgabewerte oder Benachrichtigungen an DET oder DEM definiert. Interpretation: Etwaige Fehlerzustände bei der Übertragung dürften daher vollständig durch die allgemeinen Mechanismen der AUTOSAR-RTE und des Basismoduls DCM überwacht und behandelt werden. Frage Q-a8055458432174f6 (offen) Besondere Einschränkungen bezüglich Reentranz oder Aufrufkontext sind in den Spezifikationsdaten nicht enthalten und werden daher nicht weiter betrachtet.
Dieser Text wurde von einer KI auf Basis der Spezifikation AUTOSAR R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
type EcuResetModeSwitchInterface [SWS_Dcm_91034] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about an upcoming ECU Reset and its type
Das Port-Element EcuResetModeSwitchInterface ist gemäß [SWS_Dcm_91034] als bereitgestellter Port (ProvidedPort bzw. PPortPrototype) des Moduls DCM spezifiziert. Es verwendet die Schnittstelle Dcm_EcuResetModeSwitchInterface und dient dazu, Software-Komponenten (SW-Cs) über einen bevorstehenden Reset des Steuergeräts sowie über die genaue Reset-Art zu informieren [SWS_Dcm_91034].
Für den Einsatz und das Zusammenspiel im System gelten folgende Aspekte:
- Kommunikationsrolle: Das DCM fungiert als Sender des Moduswechsels. Interessierte SW-Cs binden sich über korrespondierende Empfänger-Ports (R-Ports) an, um auf die Benachrichtigung zu reagieren [SWS_Dcm_91034].
- Moduswechsel-Semantik: Als
ModeSwitchInterfacewerden hierbei keine Client-Server-Rückgabewerte oder Datenparameter übermittelt, sondern Zustandswechsel über die RTE signalisiert [SWS_Dcm_91034]. Die Benachrichtigung erfolgt somit über Mode-Deklarationen des Interfaces. - Reaktion der Komponenten: Über den mitgeteilten Reset-Typ erhalten die SW-Cs Kenntnis über die Art des bevorstehenden Neustarts [SWS_Dcm_91034]. Dies dürfte den Applikationen ermöglichen, flüchtige Laufzeitdaten geordnet im nichtflüchtigen Speicher abzulegen oder periphere Hardware vor dem Neustart in einen sicheren Zustand zu versetzen (Interpretation). Frage Q-4dcf9314d84b53a0 (offen)
- Fehlerbehandlung: Die Schnittstellendefinition selbst beinhaltet keine Fehlermeldungen oder Rückgabekanäle für Fehlerzustände der SW-Cs [SWS_Dcm_91034].
Dieser Text wurde durch eine KI generiert und basiert auf AUTOSAR Release R20-11.
Implementer's Guide folgt (Komplexität I1)
type ModeRapidPowerShutDownModeSwitchInterface [SWS_Dcm_91035] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the rapid power shut down mode
Die Schnittstelle ModeRapidPowerShutDownModeSwitchInterface ist laut [SWS_Dcm_91035] als PPortPrototype (ProvidedPort) für das Interface Dcm_ModeRapidPowerShutDownModeSwitchInterface im Modul Dcm spezifiziert. Sie dient dazu, Software-Komponenten (SW-Cs) über den Modus des schnellen Herunterfahrens (Rapid Power Shut Down Mode) zu benachrichtigen.
Hinsichtlich Verwendung, Verhalten und Zusammenspiel sind folgende Aspekte relevant:
- Verwendung und Semantik: Über das
ModeSwitchInterfacesignalisiert das DCM Moduswechsel an verbundene SW-Cs. Der Aufrufkontext liegt innerhalb des DCM-Moduls, das die Modusänderung veranlasst; die Übertragung an die Empfänger erfolgt asynchron über die RTE [SWS_Dcm_91035]. - Fehlerbehandlung: Die Port-Definition enthält keine spezifischen Fehlercodes, Rückgabewerte oder DET-/DEM-Ereignisse. Fehler bei der Modusübertragung dürften daher vollständig durch die Standardmechanismen der AUTOSAR-RTE für Mode-Switch-Ports abgefangen werden. Frage Q-16537a6a4e19e40b (offen)
- Nebenläufigkeit und Einschränkungen: Die Benachrichtigung erfolgt im Ausführungskontext des DCM. Empfangende SW-Cs werden vermutlich über mode-getriggerte Runnables aktiviert und müssen so ausgelegt sein, dass sie die Aktionen für das schnelle Herunterfahren ohne blockierende Verzögerungen ausführen. Frage Q-20f196c7af208288 (offen)
Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation generiert.
Implementer's Guide folgt (Komplexität I1)
type ControlDTCSettingModeSwitchInterface [SWS_Dcm_91037] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the DTC Setting mode
Verwendung und Zweck
Das Element ControlDTCSettingModeSwitchInterface ist gemäß [SWS_Dcm_91037] ein als Provided-Port (PPortPrototype) bereitgestelltes ModeSwitchInterface des Diagnose-Kommunikationsmanagers (DCM). Seine primäre Aufgabe besteht darin, verbundene Software-Komponenten (SW-Cs) über den aktuellen Zustand des DTC-Einstellmodus (DTC Setting mode) zu benachrichtigen.
Als Port-Schnittstelle wird hierbei Dcm_ControlDTCSettingModeSwitchInterface eingesetzt [SWS_Dcm_91037]. Da der DCM diesen Port als Provided-Port deklariert, übernimmt das Diagnose-Modul die Rolle des Modus-Managers bzw. Senders. Anwendungskomponenten können sich über korrespondierende Required-Ports anbinden, um Statuswechsel zu empfangen und ihr internes Verhalten anzupassen.
Zusammenspiel und Systemintegration
Das Zusammenspiel im Systemverbund konzentriert sich auf die Entkopplung von Diagnosebefehlen und Anwendungslogik:
- Modus-Propagierung: Über den bereitgestellten Port teilt der DCM den SW-Cs mit, ob die Speicherung und Aktualisierung von Diagnose-Fehlercodes aktiv oder gesperrt ist [SWS_Dcm_91037]. Die Benachrichtigung der SW-Cs dürfte in der AUTOSAR-Laufzeitumgebung über standardmäßige Mode-Switch-Events der RTE erfolgen. Frage Q-8c0918099f2aa797 (offen)
- Diagnostischer Ursprung: Die Umschaltung des DTC-Setting-Modus steht vermutlich im direkten Kontext von UDS-Diagnosediensten wie ControlDTCSetting (Service 0x85), über welche ein externer Tester das Fehler-Logging vorübergehend unterbinden kann. Frage Q-f2555e0641476955 (offen)
Fehlerbehandlung und Randbedingungen
Da die Spezifikation in [SWS_Dcm_91037] weder spezifische Fehlercodes noch DET-Meldungen oder Rückgabewerte definiert, erfolgt die Modusübertragung rein deklarativ über die Mechanismen der RTE. Besondere Aufrufkontexte oder Reentranz-Vorgaben sind für die Port-Deklaration selbst nicht ausgewiesen.
Dieser Text wurde von einer KI basierend auf der Spezifikation AUTOSAR Classic R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
type SecurityAccessModeSwitchInterface [SWS_Dcm_91039] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Security Level
Das Port-Element SecurityAccessModeSwitchInterface stellt im Modul DCM einen Provided-Port (PPortPrototype) auf Basis des Interfaces Dcm_SecurityAccessModeSwitchInterface bereit [SWS_Dcm_91039]. Zweck dieses Interfaces ist es, Software-Komponenten (SW-Cs) über das aktuell aktive Sicherheitsniveau (Security Level) zu benachrichtigen [SWS_Dcm_91039].
Verwendung und Zusammenspiel
Die Benachrichtigung erfolgt über den Port des DCM an angeschlossene Komponenten [SWS_Dcm_91039]. Die Bereitstellung dürfte als Mode-Switch-Kommunikation über das AUTOSAR-RTE realisiert sein, sodass angebundene SW-Cs auf Zustandswechsel des Security Levels über Mode-Switch-Events reagieren können (Interpretation). Frage Q-d86dacdb91979b87 (offen) Parameter, Rückgabewerte oder spezifische synchrone Funktionsaufrufe sind in der Port-Beschreibung nicht definiert [SWS_Dcm_91039]; die Übertragung dürfte somit der asynchronen Broadcast-Semantik eines Mode-Managers entsprechen (Interpretation). Frage Q-9d750df4f73b1634 (offen)
Fehlerbehandlung und Einschränkungen
Da es sich um eine reine Modus-Umschaltung handelt, nennt die Spezifikation keine spezifischen Fehlercodes, Parameterprüfungen oder Meldungen an DET oder DEM [SWS_Dcm_91039]. Eine direkte Fehlerbehandlung bei der Benachrichtigung dürfte im Interface selbst nicht vorgesehen sein (Interpretation). Frage (offen) Einschränkungen bezüglich Reentranz oder abweichender Varianten sind für das Port-Element nicht spezifiziert [SWS_Dcm_91039].
Dieser Nutzungshinweis wurde automatisiert generiert und basiert auf den Vorgaben des AUTOSAR-Releases R20-11.
Implementer's Guide folgt (Komplexität I1)
type DcmDiagnosticSessionControl [SWS_Dcm_91019] 📄 PDF
ModeDeclarationGroup representing the different diagnostic sessions Further modes to be added: {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspSession/ DcmDspSessionRow.SHORT-NAME)}
type DcmEcuReset [SWS_Dcm_91021] 📄 PDF
ModeDeclarationGroup representing the different ECU reset types
type DcmModeRapidPowerShutDown [SWS_Dcm_91023] 📄 PDF
ModeDeclarationGroup representing the enable/disable state of rapid power shutdown
Die ModeDeclarationGroup DcmModeRapidPowerShutDown dient der Repräsentation des Aktivierungszustands für das schnelle Herunterfahren (Rapid Power Shutdown) im Steuergerät [SWS_Dcm_91023]. Das Element ist der Kategorie EXPLICIT_ORDER zugeordnet und definiert zwei konkrete Modi: den Ausgangsmodus DCM_ENABLE_RAPIDPOWERSHUTDOWN mit dem numerischen Wert 0 sowie DCM_DISABLE_RAPIDPOWERSHUTDOWN mit dem Wert 1 [SWS_Dcm_91023]. Für Modusübergänge ist der Übergangswert 255 (On transition value) spezifiziert [SWS_Dcm_91023].
Zusammenspiel und Modusverwaltung
Im Gesamtsystem agiert das Modul DCM als Mode Manager für eine Reihe diagnostischer Modi, wozu auch DcmModeRapidPowerShutDown im Kontext des Diagnosedienstes 0x11 (ECU Reset) gehört [SWS_Dcm_00775]. Innerhalb der Basessoftware definiert der DCM hierfür den ModeDeclarationGroupPrototype DcmModeRapidPowerShutDown als provided-ModeGroup in seiner BSW-Modulinstanz auf Basis dieser ModeDeclarationGroup [SWS_Dcm_00807].
Anwendungskomponenten (SW-Cs), die über den aktuellen Aktivierungszustand des schnellen Herunterfahrens informiert werden müssen, binden das standardisierte Service-Interface Dcm_ModeRapidPowerShutDownModeSwitchInterface an [SWS_Dcm_91024]. Über dessen Modusgruppe modeRapidPowerShutDown empfangen sie entsprechende Moduswechsel des DCM zur Laufzeit [SWS_Dcm_91024].
Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikationsanforderungen von AUTOSAR R20-11 generiert.
Implementer's Guide folgt (Komplexität I1)
type DcmCommunicationControl [SWS_Dcm_91025] 📄 PDF
ModeDeclarationGroup representing the different communication control states
type DcmControlDTCSetting [SWS_Dcm_91027] 📄 PDF
ModeDeclarationGroup representing the enable/disable state for DTC storage
type DcmResponseOnEvent [SWS_Dcm_91029] 📄 PDF
ModeDeclarationGroup representing the state of a Response On Event
type DcmSecurityAccess [SWS_Dcm_91031] 📄 PDF
ModeDeclarationGroup representing the different diagnostic security levels Further modes to be added: {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp Security/DcmDspSecurityRow.SHORT-NAME)}
Die ModeDeclarationGroup DcmSecurityAccess der Kategorie EXPLICIT_ORDER repräsentiert die unterschiedlichen diagnostischen Sicherheitsstufen eines Steuergeräts für den UDS-Dienst 0x27 (SecurityAccess) [SWS_Dcm_91031], [SWS_Dcm_00775]. Als initialer Modus ist standardmäßig DCM_SEC_LEV_LOCKED mit dem festen Wert 0 vorgegeben [SWS_Dcm_91031], [SWS_Dcm_01327]. Zusätzliche Sicherheitsstufen von DCM_SEC_LEV_1 bis DCM_SEC_LEV_63 werden projekt- und anwendungsspezifisch über die Konfiguration der Sicherheitszeilen unter DcmDspSecurityRow ergänzt [SWS_Dcm_91031], [SWS_Dcm_01327].
Das DCM-Modul übernimmt die zentrale Rolle als Mode Manager für diesen diagnostischen Modus [SWS_Dcm_00775]. Bei jeder Veränderung der Sicherheitsstufe aktualisiert der DCM die Modegruppe DcmSecurityAccess mit dem neu eingenommenen Sicherheitsstatus [SWS_Dcm_01329]. Während eines laufenden Zustandswechsels zwischen einzelnen Modi signalisiert das System den definierten Übergangswert 255 (On transition value) [SWS_Dcm_91031].
Die Weitergabe des aktuellen Sicherheitsstatus an Software-Komponenten erfolgt über die Serviceschnittstelle Dcm_SecurityAccessModeSwitchInterface [SWS_Dcm_91032]:
- Der DCM stellt hierzu den
ModeDeclarationGroupPrototypeDcmSecurityAccessals bereitgestellte Modegruppe (provided-ModeGroup) über das Interface zur Verfügung [SWS_Dcm_01327], [SWS_Dcm_91032]. - Jede Software-Komponente (SW-C), die über den aktuellen Security Level informiert werden muss, deklariert eine Abhängigkeit auf die ModeSwitch-Schnittstelle
Dcm_SecurityAccessModeSwitchInterfaceund bindet diese als Required-Port ein [SWS_Dcm_91032]. - Die Verfügbarkeit der einzelnen Modi in der Schnittstelle unterliegt dabei denselben Konfigurationsvarianten wie die zugrundeliegenden Sicherheitszeilen [SWS_Dcm_91032].
Dieser Text wurde von einer KI generiert.
Implementer's Guide folgt (Komplexität I2)
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_Dcm- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_Dcm@rel:R20-11#44e6636f- Content hash
44e6636f- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_DiagnosticCommunicationManager.pdf#nameddest=SWS_Dcm_00037
claude-opus-5-5· 2026-10-13