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
función Dcm_Init [SWS_Dcm_00037] 📄 PDF
void Dcm_Init (const Dcm_ConfigType* ConfigPtr);
Service for basic initialization of DCM module.
La función síncrona y no reentrante Dcm_Init sirve para la inicialización básica del módulo DCM [SWS_Dcm_00037]. Recibe a través del parámetro ConfigPtr un puntero al conjunto de configuración en variantes post-build y no tiene valor de retorno [SWS_Dcm_00037]. Durante la ejecución, el módulo inicializa todas las variables globales del DCM con los valores de la configuración [SWS_Dcm_00334].
En el marco del flujo de inicialización se configuran diversas áreas funcionales y estados:
- Gestión de DDDID: si el parámetro de configuración
DcmDDDIDStorageestá establecido enFALSE, el DCM inicializa durante el arranque todos los identificadores de datos definidos dinámicamente (DDDID) como no presentes [SWS_Dcm_00866]. Si el parámetro está establecido enTRUE, las definiciones de DDDID se restauran a partir de la NvM [SWS_Dcm_00867]. - Response on Event (ROE): el DCM pasa el estado de cada evento durante
Dcm_Inital estado 'ROE cleared' [SWS_Dcm_00872]. - Estado de autenticación: si
DcmDspAuthenticationPersistStateModeRuleRefno está configurado o la regla de modo referenciada se evalúa comofalse, el módulo pasa todos los estados de autenticación al estado 'deauthenticated' [SWS_Dcm_01480]. - Estado de comunicación: tras completarse
Dcm_Init, el DCM establece el parámetroActiveDiagnosticen 'DCM_COMM_ACTIVE' [SWS_Dcm_01069].
En relación con el entorno de ejecución, se especifica que Dcm_Init no es reentrante [SWS_Dcm_00037]. En la especificación de la interfaz no se indican códigos de error específicos ni mensajes de error estandarizados dirigidos a DET o DEM para este servicio de inicialización [SWS_Dcm_00037].
Esta nota de uso se ha generado automáticamente a partir de la especificación de AUTOSAR.
Guía del implementador pendiente (complejidad I2)
función Dcm_GetVersionInfo [SWS_Dcm_00065] 📄 PDF
void Dcm_GetVersionInfo (Std_VersionInfoType* versionInfo);
Returns the version information of this module
función 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.
usar
La interfaz síncrona Dcm_DemTriggerOnDTCStatus (ID de servicio 0x2B) está disponible a través de la cabecera Dcm_Dem.h y sirve para notificar modificaciones del byte de estado UDS al DCM [SWS_Dcm_00614]. Esto permite al DCM desencadenar eventos Response-on-Event (ROE) para el subservicio de servicio de diagnóstico OnDTCStatusChanged [SWS_Dcm_00614]. Al ser invocada, la función recibe tres parámetros de entrada: el código de error afectado DTC (uint32), el estado anterior DTCStatusOld (Dem_UdsStatusByteType) y el estado actualizado DTCStatusNew (Dem_UdsStatusByteType) [SWS_Dcm_00614]. No existen parámetros de entrada y salida [SWS_Dcm_00614].
Valores de retorno y tratamiento de errores
Como valor de retorno, la función proporciona el tipo Std_ReturnType, devolviéndose sin excepción E_OK según la especificación [SWS_Dcm_00614]. Para esta llamada no se indican códigos de error específicos, valores de retroceso ni notificaciones independientes a DEM o DET.
Concurrencia e interacción
La función está clasificada como reentrante y dispone de una semántica de ejecución síncrona [SWS_Dcm_00614]. En lo relativo a la interacción con peticiones de diagnóstico, se aplica una condición límite fija: si en el DCM se está procesando actualmente una petición para borrar la memoria de eventos (EventMemory), el DCM debe ignorar las llamadas entrantes de la devolución de llamada Dcm_DemTriggerOnDTCStatus [SWS_Dcm_01410].
Esta nota de uso se basa en las especificaciones del release AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I2)
función Dcm_GetVin [SWS_Dcm_00950] 📄 PDF
Std_ReturnType Dcm_GetVin (uint8* Data);
Function to get the VIN (as defined in SAE J1979-DA)
función 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.
La función Dcm_BndMWriteBlockFinish sirve como interfaz de notificación del BndM al DCM para indicar la finalización de una operación de escritura de bloque [SWS_Dcm_91088]. La función está declarada en el archivo de cabecera Dcm.h, posee el ID de servicio 0x7a, no devuelve ningún valor de retorno (void) y se ejecuta de forma síncrona [SWS_Dcm_91088].
La interfaz espera dos parámetros de transferencia [SWS_Dcm_91088]:
BlockId(tipo:BndM_BlockIdType): Identifica el bloque cuyo proceso de escritura ha finalizado.result(tipo:BndM_ResultType): Transmite el resultado de la operación de escritura al DCM.
La interacción funcional y el comportamiento en caso de error están vinculados a operaciones de escritura atómicas de BndM desencadenadas previamente por el DCM:
- Si se llama a
Dcm_BndMWriteBlockFinishcon el estadoresult = E_OK, el DCM envía una respuesta de diagnóstico positiva a la solicitud pendiente [SWS_Dcm_01584]. - Si se llama a la función con
result = E_NOT_OK, en caso de error el DCM reacciona con una respuesta de diagnóstico negativa0x72(generalProgrammingFailure) [SWS_Dcm_01585].
En cuanto a la concurrencia, Dcm_BndMWriteBlockFinish está especificada como no reentrante (Non Reentrant) [SWS_Dcm_91088]. Por consiguiente, los emisores de las llamadas deben asegurarse de que la función no se llame de forma paralela ni con interrupciones desde múltiples contextos.
Esta nota de uso fue generada por una IA y se basa en la especificación AUTOSAR R20-11.
función 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.
Uso y contexto de llamada
La función Dcm_SetDeauthenticatedRole se ejecuta de manera síncrona y reentrante ([SWS_Dcm_91069]). Permite que un componente de software asigne, para una conexión identificada mediante connectionId, un nuevo rol deauthenticatedRole del tipo Dcm_AuthenticationRoleType para el estado desautenticado ([SWS_Dcm_91069], [SWS_Dcm_01486]). Como valor de retorno se suministra invariablemente E_OK ([SWS_Dcm_91069]).
Condiciones de estado y tratamiento de errores
El DCM procesa una llamada exclusivamente si la conexión se encuentra en el estado desautenticado (deauthenticated state) ([SWS_Dcm_01487]). Dado que la firma no contempla valores de error alternativos y siempre devuelve E_OK ([SWS_Dcm_91069]), es de suponer que una invocación fuera de este estado se descarte sin mensaje de error. Pregunta Q-6f14770eae6ce896 (abierta) En la especificación no se definen eventos de DET o DEM específicos.
Periodo de validez y ciclo de vida
Si el rol para el estado desautenticado se asume con éxito ([SWS_Dcm_01486]), esta asignación se conserva temporalmente:
- El rol establecido se descarta en cuanto la conexión pasa al estado autenticado (authenticated state) ([SWS_Dcm_01488]).
- La validez finaliza a más tardar con un reinicio de la unidad de control ([SWS_Dcm_91069]).
Esta nota de uso fue generada automáticamente a partir de la especificación de AUTOSAR.
Guía del implementador pendiente (complejidad I2)
función Dcm_GetSecurityLevel [SWS_Dcm_00338] 📄 PDF
Std_ReturnType Dcm_GetSecurityLevel (Dcm_SecLevelType* SecLevel);
This function provides the active security level value.
La función sincrónica y reentrante Dcm_GetSecurityLevel consulta el nivel de seguridad actualmente activo del DCM y lo proporciona [SWS_Dcm_00338]. La función se declara mediante la cabecera Dcm.h y transfiere al invocador el valor de estado determinado a través del parámetro de salida SecLevel de tipo Dcm_SecLevelType*. Como valor de retorno, según la especificación, se devuelve invariablemente E_OK [SWS_Dcm_00338].
La determinación del nivel de seguridad interno se basa en el parámetro SecurityAccessType transmitido por el tester en el marco del servicio SecurityAccess conforme a la fórmula de conversión fija SecurityLevel = (SecurityAccessType + 1) / 2 [SWS_Dcm_00338].
En interacción con el procesamiento de servicios de diagnóstico de nivel superior, entre otros, el submódulo DSP recurre a este valor: si el módulo recibe una solicitud configurada con el tipo de subfunción «requestSeed» (valor impar) y el nivel de acceso correspondiente ya está activo según Dcm_GetSecurityLevel, el submódulo DSP establece el contenido de la semilla en 0x00 [SWS_Dcm_00323].
En cuanto a la concurrencia y el tratamiento de errores, la función está definida como reentrante [SWS_Dcm_00338]. Dado que no se especifican códigos de error específicos ni comprobaciones DET y siempre se devuelve E_OK, probablemente no se realice ninguna comprobación de puntero nulo; por lo tanto, los invocadores probablemente deban transferir siempre un puntero válido al espacio de memoria para SecLevel. Pregunta Q-5402d82ac0151b22 (abierta)
Este texto fue generado por una IA. Los datos pueden ser incompletos; la especificación de AUTOSAR es la vinculante.
Guía del implementador pendiente (complejidad I1)
función Dcm_GetSesCtrlType [SWS_Dcm_00339] 📄 PDF
Std_ReturnType Dcm_GetSesCtrlType (Dcm_SesCtrlType* SesCtrlType);
This function provides the active session control type value.
función 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
función 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.
La función síncrona Dcm_ResetToDefaultSession permite a la aplicación restablecer la sesión de diagnóstico activa a la sesión por defecto (Default Session) [SWS_Dcm_00520]. Un caso de uso típico es la finalización automática de una sesión de diagnóstico extendida en cuanto un vehículo supera un umbral de velocidad predeterminado [SWS_Dcm_00520].
Uso y tratamiento de errores
-
Interfaz y parámetros: La función está disponible a través de
Dcm.hcon el ID de servicio0x2a, posee la signaturaStd_ReturnType Dcm_ResetToDefaultSession (void)y no requiere parámetros de transferencia [SWS_Dcm_00520]. -
Valor de retorno y errores: Como tipo de retorno se devuelve
Std_ReturnType, retornándose sin excepción el valorE_OK[SWS_Dcm_00520]. En los requisitos para esta llamada no se especifican códigos de error específicos, comprobaciones en tiempo de ejecución de DET ni eventos de DEM.
Concurrencia e interacción
La ejecución se efectúa de forma síncrona y está declarada como reentrante [SWS_Dcm_00520].
Además del cambio de sesión propiamente dicho, Dcm_ResetToDefaultSession inicia de forma obligatoria un cambio de modo para el ModeDeclarationGroupPrototype DcmDiagnosticSessionControl [SWS_Dcm_01062]. Para ello, la función llama internamente a SchM_Switch_<bsnp>_DcmDiagnosticSessionControl(RTE_MODE_DcmDiagnosticSessionControl_DCM_DEFAULT_SESSION) con el fin de notificar al entorno del sistema sobre la transición a la sesión por defecto [SWS_Dcm_01062].
Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación de AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I1)
función 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'.
La función síncrona Dcm_TriggerOnEvent (Service-ID 0x2D), proporcionada a través de la cabecera Dcm.h, sirve para desencadenar un evento vinculado a una solicitud ResponseOnEvent (ROE) [SWS_Dcm_00521].
Invocación y funcionamiento
El invocador pasa como único parámetro RoeEventId (parámetro de entrada de tipo uint8), que identifica el evento a desencadenar; no existen parámetros de entrada o salida adicionales [SWS_Dcm_00521]. En cuanto se invoca la función, el DCM comprueba el estado del evento: si el RoeEvent pasado está activo, el DCM desencadena el evento correspondiente [SWS_Dcm_00920]. El DCM ejecuta el servicio asociado al evento siempre que el modo correspondiente de la RoeEventId esté en «ROE started» [SWS_Dcm_00521].
Valores de retorno y validación
La invocación devuelve de forma síncrona un estado de tipo Std_ReturnType que informa sobre la validez del parámetro [SWS_Dcm_00521]:
E_OK: el valor pasado paraRoeEventIdes válido [SWS_Dcm_00521].E_NOT_OK: el valor deRoeEventIdno es válido [SWS_Dcm_00521].
Concurrencia y propiedades
La interfaz está especificada como reentrante [SWS_Dcm_00521]. Por tanto, puede invocarse de forma concurrente para notificar eventos de manera síncrona al DCM [SWS_Dcm_00521].
Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I1)
función Dcm_SetActiveDiagnostic [SWS_Dcm_01068] 📄 PDF
Std_ReturnType Dcm_SetActiveDiagnostic (boolean active);
Allows to activate and deactivate the call of ComM_DCM_ActiveDiagnostic() function.
función 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.
La función síncrona y reentrante Dcm_StartOfReception ([SWS_Dcm_00094]) es invocada por un módulo de protocolo de transporte al inicio de la recepción de una N-SDU, tanto en mensajes individuales (Single Frame, SF) como en mensajes segmentados (First Frame, FF). Puede llamarse en contexto de interrupción ([SWS_Dcm_00094]). La llamada provoca, entre otras acciones, la detención del temporizador S3Server al iniciarse la recepción ([SWS_Dcm_00141]).
A través de info se transmiten datos útiles y metadatos; en conexiones genéricas, a través de esto se almacenan, entre otros, SOURCE_ADDRESS_16 ([SWS_Dcm_00848]) y se comprueban TARGET_ADDRESS_16 ([SWS_Dcm_01347]). Si no hay payload ni metadatos presentes, se pasa NULL_PTR ([SWS_Dcm_00094]). A través de bufferSizePtr, la función notifica el búfer disponible para el cálculo del Block Size (BS) ([SWS_Dcm_00094]). En caso de aceptación correcta devuelve BUFREQ_OK, tras lo cual los datos siguientes se copian mediante Dcm_CopyRxData ([SWS_Dcm_00443]).
Los casos de error y de rechazo se señalizan a través del valor de retorno:
BUFREQ_E_OVFL: se devuelve si la longitud solicitadaTpSduLengthes mayor que el búfer disponible en el DCM ([SWS_Dcm_00094], [SWS_Dcm_00444]).bufferSizePtrpermanece inalterado ([SWS_Dcm_00094]).BUFREQ_E_NOT_OK: se devuelve siTpSduLengthes igual a 0 ([SWS_Dcm_00642]) o si una solicitud en curso bloquea en la misma conexión ([SWS_Dcm_00557]). En caso de otra conexión, el parámetroDcmDslDiagRespOnSecondDeclinedRequestdecide si se rechaza conBUFREQ_E_NOT_OK([SWS_Dcm_00790]) o se acepta conBUFREQ_OK([SWS_Dcm_00788]). Las solicitudes TesterPresent concurrentes se confirman igualmente conBUFREQ_OK([SWS_Dcm_00557]).
Este texto ha sido generado por una IA. Todas las indicaciones se basan exclusivamente en el extracto de especificación de AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
usar
La función síncrona Dcm_CopyRxData se invoca para transferir los datos recibidos de un segmento de I-PDU (N-PDU) a la capa superior en el DCM [SWS_Dcm_00556]. Cada invocación proporciona la siguiente parte de los datos de la I-PDU [SWS_Dcm_00556]. Mediante el parámetro id se identifica la I-PDU recibida [SWS_Dcm_00556]. El puntero info proporciona el búfer de origen mediante SduDataPtr, así como el número de bytes a copiar mediante SduLength [SWS_Dcm_00556]. Tras finalizar el proceso de copia, el tamaño de búfer libre restante en el DCM se notifica mediante bufferSizePtr [SWS_Dcm_00556], [SWS_Dcm_00443].
Si se invoca Dcm_CopyRxData con una SduLength de 0, esto sirve meramente para consultar el búfer [SWS_Dcm_00556]. En este caso, SduDataPtr puede ser un NULL_PTR; la función devuelve BUFREQ_OK e introduce el tamaño restante del búfer de recepción en bufferSizePtr [SWS_Dcm_00556], [SWS_Dcm_00996].
Interacción
Antes de copiar, Dcm_StartOfReception debe haber concluido con BUFREQ_OK; las invocaciones subsiguientes de Dcm_CopyRxData copian los datos desde el búfer proporcionado al búfer del DCM y actualizan bufferSizePtr [SWS_Dcm_00443].
Manejo de errores
La función devuelve el estado como BufReq_ReturnType: BUFREQ_OK confirma la copia correcta o la consulta de búfer, mientras que BUFREQ_E_NOT_OK indica que no se han copiado datos debido a un error [SWS_Dcm_00556], [SWS_Dcm_00996].
Concurrencia y restricciones
Dcm_CopyRxData está especificada como reentrante y puede invocarse en contexto de interrupción [SWS_Dcm_00556]. La interfaz se proporciona mediante Dcm.h [SWS_Dcm_00556].
Esta nota de uso fue generada por una IA a partir de la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I1)
función 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.
Uso y contexto de llamada
La función síncrona Dcm_TpRxIndication se llama tras la recepción de una I-PDU a través de la API de TP, típicamente por parte del módulo PduR [SWS_Dcm_00093], [SWS_Dcm_00112]. Transmite la identificación de la PDU (id) así como el resultado de la recepción (result) y no devuelve ningún valor de retorno [SWS_Dcm_00093]. Dado que la función es reentrante y puede invocarse en contexto de interrupción, la entidad invocadora y los estados del módulo deben estar diseñados para la concurrencia correspondiente [SWS_Dcm_00093].
Comportamiento en caso de recepción errónea
Si Dcm_TpRxIndication se invoca con un valor de resultado distinto de E_OK, el módulo Dcm no debe evaluar el búfer asignado a la I-PDU referenciada [SWS_Dcm_00344].
Interacción de los submódulos
El submódulo DSL reenvía datos recibidos al submódulo DSD únicamente si la llamada se ha realizado con el valor de parámetro result = E_OK [SWS_Dcm_00111]. Para solicitudes de diagnóstico se aplican en este contexto reglas específicas:
- Si la solicitud recibida correctamente (
Result = E_OK) se trata del comandoTesterPresentconsuppressPosRspMsgIndicationBitestablecido (SID0x3E, subfunción0x80), el submódulo DSL restablece el temporizador de tiempo de espera de sesiónS3Server[SWS_Dcm_00112]. - En este caso, el submódulo DSL no reenvía la solicitud al submódulo DSD para su posterior interpretación [SWS_Dcm_00113].
Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
Uso y semántica
La función síncrona y reentrante Dcm_CopyTxData es llamada por módulos de la capa inferior (como protocolos de transporte) para recuperar datos de un segmento de I-PDU (N-PDU) para la transmisión [SWS_Dcm_00092]. Mediante el parámetro info, el llamador transfiere el búfer de destino SduDataPtr y la longitud deseada en bytes SduLength. Se puede utilizar un valor de 0 para SduLength con el fin de señalizar cambios de estado a través de retry o consultar la cantidad de datos disponibles; en este caso, SduDataPtr puede ser un NULL_PTR [SWS_Dcm_00092]. A través de availableDataPtr, el DCM notifica el número de bytes restantes en el búfer de transmisión, el cual puede ser utilizado por módulos TP para determinar los tamaños de segmento subsiguientes y no debe exceder el número de bytes que aún quedan por transmitir [SWS_Dcm_00092], [SWS_Dcm_00350].
Gestión de búferes y repetición de transmisión
A través del parámetro retry se controla la confirmación o la repetición de datos [SWS_Dcm_00092]:
- Si
retryes unNULL_PTR, los datos pueden eliminarse del búfer directamente después del proceso de copia [SWS_Dcm_00092]. - Con
TP_CONFPENDING, los datos previamente copiados deben permanecer en el búfer de TP para una posible corrección de errores [SWS_Dcm_00092]. TP_DATACONFconfirma todos los datos copiados antes de esta llamada para su liberación [SWS_Dcm_00092].TP_DATARETRYvuelve a copiar los datos a partir del desplazamientoTxTpDataCntrelativo a la posición actual [SWS_Dcm_00092].
Valores de retorno y tratamiento de errores
Si los datos se copiaron de forma correcta y completa, la función devuelve BUFREQ_OK [SWS_Dcm_00092], [SWS_Dcm_00346]. Si no hay suficientes datos de transmisión disponibles, no se realiza ningún proceso de copia y se devuelve BUFREQ_E_BUSY; la capa inferior puede repetir la llamada más adelante [SWS_Dcm_00092]. Si la solicitud falla, la función proporciona BUFREQ_E_NOT_OK [SWS_Dcm_00092]. En este caso, la solicitud de transmisión de PduR_DcmTransmit() aún no ha finalizado; solo una llamada final a Dcm_TpTxConfirmation termina el proceso y permite nuevas transmisiones [SWS_Dcm_00350].
concurrencia
La función es reentrante y también puede llamarse en el contexto de interrupción [SWS_Dcm_00092].
Esta nota de uso se basa en las especificaciones de AUTOSAR Classic Platform Release R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
La función de callback Dcm_TpTxConfirmation ([SWS_Dcm_00351]) es llamada de forma síncrona por la capa de transporte inferior una vez que se ha transmitido una I-PDU de diagnóstico en la red. A través del parámetro id se identifica la I-PDU afectada, mientras que result notifica el éxito o fallo del proceso de envío ([SWS_Dcm_00351]). La función no posee valor de retorno, es reentrante y puede ejecutarse explícitamente en contexto de interrupción ([SWS_Dcm_00351]).
Al invocarse Dcm_TpTxConfirmation, el módulo DCM lleva a cabo transiciones de estado y limpiezas centrales:
- El búfer de transmisión asignado se desbloquea ([SWS_Dcm_00352]).
- Se detienen las supervisiones de errores en curso, tales como los tiempos de espera de búfer de página, así como los tiempos de espera de
P2ServerMaxyP2*ServerMax([SWS_Dcm_00353]). - Se libera la
DcmPduIdde la conexión que permanecía bloqueada desde la recepción (Dcm_TpRxIndication), de modo que puedan recibirse solicitudes posteriores ([SWS_Dcm_00241]). - El protocolo actual no se finaliza mediante la confirmación de la respuesta DSL (ninguna llamada a
xxx_StopProtocol) ([SWS_Dcm_00624]).
En caso de error (si result indica un error o se confirma una cancelación tras un Dcm_CopyTxData fallido), [SWS_Dcm_00350] exige obligatoriamente esta llamada final para concluir formalmente el trabajo de envío y permitir nuevas transmisiones vía PduR_DcmTransmit(). En caso de una confirmación errónea, el submódulo DSD no debe reenviar la respuesta de diagnóstico ([SWS_Dcm_00118]).
Adicionalmente, la confirmación de una respuesta (distinta de NRC 0x78) marca la conclusión regular de un request de diagnóstico ([SWS_Dcm_01378]). Tras la confirmación de una respuesta positiva a un EcuReset, el DCM ignora todas las solicitudes adicionales durante el procesamiento del reset ([SWS_Dcm_00834]).
Este texto ha sido elaborado por una IA; no se puede garantizar su exactitud.
Guía del implementador pendiente (complejidad I2)
función 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.
usar
La interfaz síncrona Dcm_TxConfirmation (Service-ID 0x40, declarada en Dcm.h) es llamada según [SWS_Dcm_01092] por el módulo de interfaz de comunicación subyacente para confirmar el envío de una PDU o notificar el fallo de la transmisión. La función no tiene valor de retorno y procesa dos parámetros de entrada:
TxPduId: Identificador (PduIdType) de la PDU enviada.result: Estado de la transmisión (Std_ReturnType). Los valores válidos sonE_OKen caso de transmisión correcta yE_NOT_OKsi ha fallado la transmisión de la PDU.
Tratamiento de errores y notificación de estado
El resultado de la transmisión se señaliza directamente al DCM a través del parámetro result ([SWS_Dcm_01092]). En el extracto de especificación proporcionado no se definen mensajes de error específicos de DET o DEM para esta función.
Concurrencia y contexto de llamada
En cuanto a la reentrancia, Dcm_TxConfirmation es reentrante para llamadas con diferentes ID de PDU, pero no reentrante para la misma TxPduId ([SWS_Dcm_01092]). Debe tenerse en cuenta que la llamada por parte del módulo subyacente puede producirse en contexto de interrupción ([SWS_Dcm_01092]).
Interacción
En caso de una transmisión periódica (PeriodicTransmission), el DCM es llamado según [SWS_Dcm_01073] a través de Dcm_TxConfirmation para recibir la notificación del resultado de envío correspondiente.
Esta nota de uso se creó automáticamente sobre la base de la especificación de AUTOSAR para R20-11.
Guía del implementador pendiente (complejidad I1)
función 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.
La función síncrona y reentrante Dcm_ComM_NoComModeEntered (Service-ID 0x21) informa al módulo DCM sobre la transición de una red de comunicación al estado COMM_NO_COMMUNICATION [SWS_Dcm_00356]. La interfaz se proporciona a través de la cabecera Dcm_ComM.h, no tiene valor de retorno e identifica la red afectada mediante el parámetro de entrada NetworkId de tipo uint8 [SWS_Dcm_00356].
Con la llamada, el DCM desactiva toda comunicación en la red indicada, de modo que tanto la recepción como la transmisión de mensajes quedan completamente desactivadas [SWS_Dcm_00148]. Esto incluye obligatoriamente los siguientes tipos de transmisión:
- supresión de transmisiones ResponseOnEvent [SWS_Dcm_00149],
- desactivación de transmisiones periódicas a través de
ReadDataByPeriodicIdentifier(periodicId) [SWS_Dcm_00150] así como - desconexión de transmisiones normales [SWS_Dcm_00151].
En consecuencia, tras la ejecución de Dcm_ComM_NoComModeEntered, el módulo DCM ya no debe llamar a la función de PduR PduR_DcmTransmit() para este contexto [SWS_Dcm_00152].
Si la función se llama con un NetworkId que no corresponde a ningún canal ComM referenciado en el DCM a través del parámetro de configuración DcmDslProtocolComMChannelRef, el módulo DCM no realiza ninguna acción y retorna de inmediato [SWS_Dcm_01324].
Este texto ha sido elaborado por una IA y su calidad ha sido asegurada mediante autodocs.
Guía del implementador pendiente (complejidad I2)
función 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.
La función síncrona y reentrante Dcm_ComM_SilentComModeEntered ([SWS_Dcm_00358]) sirve para informar al módulo DCM sobre la transición de una red de comunicación al estado COMM_SILENT_COMMUNICATION. La interfaz posee el Service ID 0x22, no devuelve ningún valor de retorno y espera como parámetro de entrada NetworkId el identificador de la red afectada ([SWS_Dcm_00358]). Se proporciona a través del archivo de cabecera Dcm_ComM.h ([SWS_Dcm_00358]).
Tan pronto como se produce esta llamada, el DCM debe suspender por completo todas las actividades de transmisión en el canal de red afectado ([SWS_Dcm_00153]). Esto incluye detalladamente las siguientes medidas:
- la desactivación de todas las transmisiones normales ([SWS_Dcm_00156]),
- la supresión de transmisiones Response-on-Event ([SWS_Dcm_00154]), así como
- la desactivación de emisiones periódicas en el marco de
ReadDataByPeriodicIdentifier([SWS_Dcm_00155]).
En lo relativo al tratamiento de errores y condiciones límite, se especifica que el DCM debe retornar sin realizar ninguna otra acción en caso de que el NetworkId transferido corresponda a un canal ComM que no esté referenciado en el DCM a través del parámetro de configuración DcmDslProtocolComMChannelRef ([SWS_Dcm_01325]). No se especifican errores de desarrollo concretos ni valores de retorno de error para esta llamada.
Interpretación: es de prever que la llamada la realice típicamente el módulo ComM en cuanto se complete la transición al modo de comunicación silenciosa. Pregunta Q-fc9b6303ae0c0e41 (abierta)
Esta nota de uso ha sido generada por un sistema de IA y se fundamenta exclusivamente en la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
La función síncrona y reentrante Dcm_ComM_FullComModeEntered se proporciona a través del archivo de cabecera Dcm_ComM.h e informa al módulo DCM sobre la transición de una red de comunicación al estado COMM_FULL_COMMUNICATION [SWS_Dcm_00360]. Sirve como parámetro de entrada NetworkId, el cual identifica la red afectada por el cambio de modo [SWS_Dcm_00360].
Mediante la llamada se activa toda comunicación para esta red, de modo que quedan habilitadas tanto la recepción como la transmisión de mensajes [SWS_Dcm_00157]. Esto incluye los siguientes tipos de transmisión:
- transmisiones normales [SWS_Dcm_00161],
- transmisiones Response-on-Event [SWS_Dcm_00159] así como
- transmisiones periódicas mediante
ReadDataByPeriodicIdentifier[SWS_Dcm_00160].
Tan pronto como se haya llamado a Dcm_ComM_FullComModeEntered, el DCM procesa las funciones internas DslInternal_ResponseOnOneDataByPeriodicId() y DslInternal_ResponseOnOneEvent() sin restricciones [SWS_Dcm_00162]. En la secuencia temporal, el DCM debe esperar esta llamada antes de iniciar la transmisión de una respuesta de diagnóstico; el tiempo de espera no debe superar P2ServerMax a partir del momento de recepción de la solicitud [SWS_Dcm_01142].
En caso de error, si el NetworkId transferido afecta a un canal ComM que no está configurado en el DCM (parámetro DcmDslProtocolComMChannelRef), la función retorna de inmediato y sin realizar más acciones [SWS_Dcm_01326].
Esta nota de uso fue generada por una IA a partir de la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I2)
función 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).
Uso y semántica
El Crypto Service Manager (CSM) llama a la función de callback síncrona y reentrante Dcm_CsmAsyncJobFinished tan pronto como finaliza un procesamiento de trabajo asíncrono [SWS_Dcm_91076]. Como parámetro de entrada, recibe a través de result de tipo Csm_ResultType el resultado del trabajo de CSM finalizado [SWS_Dcm_91076]. Como valor de retorno, la función siempre devuelve E_OK [SWS_Dcm_91076].
Configuración y condiciones límite
Los integradores deben configurar el nombre de esta función en la configuración ECUC del CSM como callback para trabajos asíncronos [SWS_Dcm_91076]. Para el DCM solo está disponible un único callback de este tipo; la identificación del trabajo finalizado se realiza, según la especificación, mediante la evaluación del parámetro de trabajo [SWS_Dcm_91076]. No obstante, dado que la signatura de la función en C solo transfiere result, es probable que el DCM determine internamente el trabajo correspondiente a través del estado de transacción de la autenticación en curso. Pregunta Q-04ad1d5fb514f467 (abierta)
La interfaz solo está disponible si en la configuración está establecido el parámetro DcmDspAuthenticationConnection (distinto de null) [SWS_Dcm_91076]. No se especifican tratamientos de error específicos ni mensajes DET para esta llamada, ya que el valor de retorno es invariable E_OK [SWS_Dcm_91076].
Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
función 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).
La función de callback síncrona y reentrante Dcm_KeyMAsyncCertificateVerifyFinished es llamada por el módulo KeyM tras finalizar una verificación asíncrona de certificados [SWS_Dcm_91077]. Informa al DCM de la finalización así como del resultado del proceso de comprobación y devuelve siempre E_OK como valor de retorno [SWS_Dcm_91077].
Parámetros y funcionamiento
CertID: Identificador del certificado cuya verificación ha finalizado. Mediante este identificador, el DCM determina qué trabajo de comprobación ha terminado [SWS_Dcm_91077].Result: Valor de retorno y estado del trabajo de verificación asíncrono procedente del KeyM [SWS_Dcm_91077].
Configuración y condiciones límite
Los integradores deben configurar este nombre de función en la configuración ECUC del KeyM como callback para trabajos asíncronos [SWS_Dcm_91077]. Puesto que solo se proporciona un único callback para esta notificación, el DCM depende de resolver el certificado correspondiente a través del parámetro CertID [SWS_Dcm_91077].
La interfaz solo está disponible si el parámetro de configuración DcmDspAuthenticationConnection está configurado en la ruta Dcm/DcmDsp/DcmDspAuthentication (!= null) [SWS_Dcm_91077]. No se especifican códigos de error especiales ni mensajes DET para esta llamada [SWS_Dcm_91077].
Esta nota de uso se generó automáticamente.
Guía del implementador pendiente (complejidad I2)
función 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
La función de callout Dcm_ReadMemory ([SWS_Dcm_00539]), declarada en Dcm_Externals.h, sirve al DCM para leer datos de memoria del servidor a partir de la dirección inicial (MemoryAddress) y el tamaño en bytes (MemorySize). La función se requiere para los servicios UDS ReadMemoryByAddress (0x23) ([SWS_Dcm_00495]), ReadDataByIdentifier (0x22) para DID dinámicos en el rango de direcciones 0xF200 a 0xF3FF ([SWS_Dcm_00653]), RequestUpload así como TransferData ([SWS_Dcm_00539]). Si no se utiliza el parámetro MemoryIdentifier, debe fijarse en 0 ([SWS_Dcm_00539]).
La interfaz es asíncrona y no reentrante ([SWS_Dcm_00539]). El estado de la llamada se transfiere a través de OpStatus con los valores DCM_INITIAL, DCM_PENDING, DCM_CANCEL o DCM_FORCE_RCRRP_OK. Mientras dure el proceso de lectura, la función devuelve DCM_READ_PENDING ([SWS_Dcm_00985]). Si la llamada devuelve DCM_READ_FORCE_RCRRP, el DCM inicia de inmediato el envío de un mensaje RCR-RP (NRC 0x78) y pausa las llamadas adicionales hasta la confirmación de transmisión ([SWS_Dcm_00839]). Tras la confirmación del RCR-RP, el DCM vuelve a llamar a la función desde Dcm_MainFunction con OpStatus = DCM_FORCE_RCRRP_OK ([SWS_Dcm_00840]).
En caso de éxito, los datos leídos se escriben en el búfer MemoryData y se devuelve DCM_READ_OK ([SWS_Dcm_00539], [SWS_Dcm_00985]). Si la operación falla, la función devuelve DCM_READ_FAILED y establece ErrorCode. A continuación, el DCM envía una respuesta negativa con el valor NRC correspondiente ([SWS_Dcm_00644]).
Nota de uso generada automáticamente a partir de la especificación AUTOSAR.
Guía del implementador pendiente (complejidad I2)
función 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
La función de callout Dcm_WriteMemory, declarada en Dcm_Externals.h, es invocada por el DCM de forma asíncrona y no reentrante para escribir datos de memoria a partir de la dirección inicial y el tamaño en bytes [SWS_Dcm_00540]. Sirve para la implementación de los servicios UDS WriteMemoryByAddress (0x3D), RequestDownload y TransferData [SWS_Dcm_00540]. Al recibir WriteMemoryByAddress, el DCM solo invoca el callout tras verificar la solicitud [SWS_Dcm_00491].
Para controlar la secuencia se transfiere OpStatus (valores posibles: DCM_INITIAL, DCM_PENDING, DCM_CANCEL o DCM_FORCE_RCRRP_OK) [SWS_Dcm_00540]. Los parámetros MemoryAddress y MemorySize determinan la zona de memoria de destino, mientras que MemoryData apunta al búfer de diagnóstico del DCM [SWS_Dcm_00540]. Si no se utilizan MemoryIdentifier o MemoryAddress (por ejemplo, con datos comprimidos), deben fijarse en 0 [SWS_Dcm_00540].
El valor de retorno Dcm_ReturnWriteMemoryType [SWS_Dcm_00986] define el procesamiento posterior en el DCM:
DCM_WRITE_OK: la operación de escritura se ha realizado con éxito [SWS_Dcm_00540], [SWS_Dcm_00986].DCM_WRITE_PENDING: la operación aún no ha concluido y requiere llamadas posteriores [SWS_Dcm_00540], [SWS_Dcm_00986].DCM_WRITE_FORCE_RCRRP: el DCM inicia de inmediato el envío de una Response Pending (NRC 0x78) y suspende llamadas adicionales hasta la confirmación de transmisión [SWS_Dcm_00837]. A continuación se produce la nueva llamada desdeDcm_MainFunctionconDCM_FORCE_RCRRP_OK[SWS_Dcm_00838].DCM_WRITE_FAILED: en caso de error, el DCM envía una respuesta negativa con el valor NRC transferido mediante el parámetro de salidaErrorCode[SWS_Dcm_00540], [SWS_Dcm_00643].
Este texto ha sido generado por una IA basándose en la especificación AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
La función de callout Dcm_SetProgConditions permite al integrador guardar de forma persistente la información relevante antes de un cambio al bootloader o de un reinicio derivado de una solicitud ECUReset [SWS_Dcm_00543]. Los datos de contexto relevantes se transfieren mediante un puntero a la estructura Dcm_ProgConditionsType, la cual agrupa, entre otros elementos, direcciones de origen del tester y de conexión, identificadores de servicio y subfunción, así como flags de control como ReprogramingRequest y ResponseRequired [SWS_Dcm_00988]. Al recibir un servicio UDS 0x10 con subfunción 0x02, el DCM establece estos flags e invoca la interfaz [SWS_Dcm_01182].
La llamada se realiza de forma asíncrona y no es reentrante (Non Reentrant) [SWS_Dcm_00543]. Mediante el parámetro OpStatus se controlan los estados DCM_INITIAL, DCM_PENDING, DCM_CANCEL o DCM_FORCE_RCRRP_OK [SWS_Dcm_00543]. Mientras la ejecución continúe y la función devuelva DCM_E_PENDING, el DCM vuelve a llamar a la interfaz en el siguiente ciclo de la función principal para completar el establecimiento [SWS_Dcm_00543], [SWS_Dcm_01184]. Mediante DCM_E_FORCE_RCRRP se puede forzar la transmisión de una respuesta Response Pending (NRC 0x78) [SWS_Dcm_00543]. En función de la configuración, la llamada por parte del DCM solo se realiza tras la transmisión correcta de NRC 0x78 [SWS_Dcm_00535].
Si las condiciones se han establecido sin errores y el callout devuelve E_OK, el DCM inicia el cambio de modo del ModeDeclarationGroupPrototype DcmEcuReset a EXECUTE [SWS_Dcm_00719], [SWS_Dcm_01163], [SWS_Dcm_01180]. Si, por el contrario, el estado no se puede guardar y la función responde con E_NOT_OK, no se ejecutan el reinicio ni el salto al bootloader, se inhibe el cambio de modo y el DCM envía la respuesta negativa NRC 0x22 (Conditions not correct) [SWS_Dcm_00715], [SWS_Dcm_01181].
Esta nota de uso ha sido generada por una IA a partir de la especificación AUTOSAR Classic Release R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
La función de callout Dcm_GetProgConditions con el Service-ID 0x62 se invoca durante la inicialización del DCM para determinar si debe enviarse una respuesta de diagnóstico pendiente al servicio $50 o $51 [SWS_Dcm_00544]. La declaración de la interfaz se proporciona mediante el archivo de cabecera Dcm_Externals.h [SWS_Dcm_00544].
Uso y parámetros
La ejecución de la función se realiza de forma síncrona, no transmitiéndose parámetros regulares de entrada o de entrada/salida [SWS_Dcm_00544]:
- Parámetro de salida: a través del puntero
ProgConditionsde tipoDcm_ProgConditionsType*, el callout devuelve las condiciones bajo las cuales se solicitó el salto previo desde el bootloader [SWS_Dcm_00544]. Los parámetros de contexto relevantes están depositados en el tipo de datosDcm_ProgConditionsType[SWS_Dcm_00544]. - Valor de retorno: la función devuelve un valor de estado de tipo
Dcm_EcuStartModeTypeal llamador [SWS_Dcm_00544].
Concurrencia y tratamiento de errores
La función está clasificada como no reentrante (Non Reentrant) y, por tanto, no debe ejecutarse de forma concurrente [SWS_Dcm_00544]. Para este callout no se han definido códigos de error específicos para DET o DEM en la especificación de la interfaz [SWS_Dcm_00544].
Esta nota de uso fue generada por una IA a partir de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
función 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).
El DCM llama a la función de callout Dcm_ProcessRequestAddFile para iniciar el servicio RequestFileTransfer con el modo de funcionamiento 0x01 (AddFile) ([SWS_Dcm_91078]). Está disponible a través de Dcm_Externals.h, posee el ID de servicio 0x72 y está especificada como no reentrante (Non Reentrant) y asíncrona ([SWS_Dcm_91078]).
El control del flujo de llamadas asíncrono se realiza mediante el parámetro OpStatus:
DCM_INITIAL: Todos los parámetros de entrada son válidos. Entre ellos se incluyen la ruta y el nombre del archivo (filePathAndNameconfilePathAndNameLength), el bytedataFormatIdentifier(nibble alto para compresión, nibble bajo para cifrado), así como el tamaño del archivo sin comprimir y comprimido (fileSizeUncompressed,fileSizeCompressed) ([SWS_Dcm_91078]).DCM_PENDING,DCM_CANCELyDCM_FORCE_RCRRP_OK: En estas llamadas sucesivas, todos los parámetros de entrada están fijados a0x00([SWS_Dcm_91078]).
Como valores de retorno, la función devuelve E_OK en caso de ejecución correcta, DCM_E_PENDING si el procesamiento continúa o DCM_E_FORCE_RCRRP si la aplicación solicita el envío de una respuesta provisional (NRC 0x78) ([SWS_Dcm_91078], [SWS_Dcm_91086]). En caso de éxito, maxNumberOfBlockLength define la longitud de bloque máxima admisible para futuros mensajes TransferData sin SID ni contador de bloques ([SWS_Dcm_91078]).
En caso de error, la función devuelve E_NOT_OK. En este caso, debe transmitirse a través del parámetro ErrorCode un código de respuesta negativo (NRC), que el DCM envía al cliente en una respuesta de diagnóstico negativa ([SWS_Dcm_91078]). Si la configuración DcmRequestFileTransferUsePort está activada, esta funcionalidad se proporciona alternativamente como operación de puerto ProcessRequestAddFile de la interfaz RequestFileTransfer ([SWS_Dcm_91086]).
Esta nota de uso se ha generado automáticamente sobre la base de la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I2)
función 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
Uso y semántica de llamada
El DCM llama a la función de callout Dcm_ProcessRequestDeleteFile para iniciar la eliminación de un archivo (modeOfOperation = 0x02) en el servidor en el marco del servicio de diagnóstico RequestFileTransfer [SWS_Dcm_91079]. La función está declarada en Dcm_Externals.h y opera de forma asíncrona y no reentrante (Non Reentrant) [SWS_Dcm_91079].
La transferencia y la evaluación se realizan a partir del parámetro OpStatus:
DCM_INITIAL: Indica el inicio de la operación. En este caso, todos los parámetros de entrada son válidos;filePathAndNametransfiere la ubicación y el nombre del archivo que se va a eliminar, cuya longitud en bytes se especifica mediantefilePathAndNameLength[SWS_Dcm_91079].DCM_PENDING,DCM_CANCELoDCM_FORCE_RCRRP_OK: En caso de procesamiento continuo o cancelación, todos los parámetros de entrada están fijados a0x00[SWS_Dcm_91079].
Como valores de retorno, la función proporciona E_OK en caso de ejecución correcta, DCM_E_PENDING si la ejecución aún continúa y requiere más llamadas, o DCM_E_FORCE_RCRRP si la aplicación solicita el envío de un mensaje intermedio con NRC 0x78 (Response Pending) [SWS_Dcm_91079], de forma análoga al servicio RequestFileTransfer [SWS_Dcm_91086].
Manejo de errores
Si el procesamiento falla, la función devuelve E_NOT_OK. En este caso, a través del parámetro de salida ErrorCode debe proporcionarse un código de respuesta negativo que el DCM transmite al tester como respuesta negativa (NRC) [SWS_Dcm_91079].
Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I2)
función 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).
El DCM llama a la función de callout Dcm_ProcessRequestReplaceFile para iniciar un proceso de diagnóstico para RequestFileTransfer con el modo de funcionamiento 0x03 (ReplaceFile) [SWS_Dcm_91080]. La función está definida como no reentrante (Non Reentrant) y asíncrona, y se proporciona a través de la cabecera Dcm_Externals.h [SWS_Dcm_91080].
El control del flujo de procesamiento asíncrono se realiza mediante el parámetro OpStatus:
- En la llamada inicial con
DCM_INITIAL, el DCM transfiere todos los parámetros de entrada como válidos, entre ellos la ruta y el nombre del archivo (filePathAndNamecon especificación de longitudfilePathAndNameLength), la identificación para compresión y cifrado (dataFormatIdentifier), así como el tamaño del archivo sin comprimir y comprimido (fileSizeUncompressed,fileSizeCompressed) [SWS_Dcm_91080]. - En llamadas sucesivas o en una cancelación (
DCM_PENDING,DCM_CANCEL,DCM_FORCE_RCRRP_OK), todos los parámetros de entrada están fijados a0x00[SWS_Dcm_91080]. - En caso de éxito, la función devuelve al DCM a través del parámetro de salida
maxNumberOfBlockLengthla longitud máxima de datos útiles para solicitudesTransferDataposteriores (sin SID ni contador correlativo de bloques) [SWS_Dcm_91080].
Como valores de retorno están previstos E_OK en caso de ejecución correcta, DCM_E_PENDING si el procesamiento aún continúa, así como DCM_E_FORCE_RCRRP para solicitar una respuesta Response Pending (NRC 0x78) [SWS_Dcm_91080], [SWS_Dcm_91086]. Si la ejecución falla, la función devuelve E_NOT_OK y asigna al parámetro ErrorCode el correspondiente código de respuesta de diagnóstico negativo (NRC), que el DCM transmite al tester [SWS_Dcm_91080].
Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I2)
función 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).
El DCM llama a la función de callout Dcm_ProcessRequestReadFile para iniciar un proceso de transferencia de archivos (servicio RequestFileTransfer) con el modo de funcionamiento ReadFile (modeOfOperation 0x04) [SWS_Dcm_91081]. La función está declarada en la cabecera Dcm_Externals.h, opera de forma asíncrona y no es reentrante (Non Reentrant) [SWS_Dcm_91081].
La llamada se realiza mediante el parámetro de estado OpStatus: en la llamada inicial DCM_INITIAL todos los parámetros de entrada son válidos, mientras que en llamadas sucesivas con DCM_PENDING, DCM_CANCEL o DCM_FORCE_RCRRP_OK se fijan a 0x00 [SWS_Dcm_91081]. La aplicación recibe la ruta y el nombre de archivo a través de filePathAndName (longitud en filePathAndNameLength), el formato de compresión y cifrado a través de dataFormatIdentifier, así como los tamaños de archivo a través de fileSizeUncompressed y fileSizeCompressed [SWS_Dcm_91081]. Como parámetro de salida, la aplicación debe asignar a maxNumberOfBlockLength el número máximo de bytes para respuestas TransferData posteriores (sin SID ni contador secuencial de bloques) [SWS_Dcm_91081].
Como valores de retorno de Std_ReturnType se definen E_OK en caso de ejecución correcta, DCM_E_PENDING si el procesamiento asíncrono aún continúa o DCM_E_FORCE_RCRRP para solicitar una respuesta «Response Pending» (NRC 0x78) [SWS_Dcm_91081]. Si la operación falla, devuelve E_NOT_OK; en este caso, el DCM transmite al tester una respuesta negativa con el valor de NRC establecido en el parámetro de salida ErrorCode [SWS_Dcm_91081]. La interacción se corresponde con el tratamiento general del servicio RequestFileTransfer, tal como se configura de forma análoga para otras operaciones de archivo como ProcessRequestAddFile [SWS_Dcm_91086].
Este texto ha sido generado por un sistema de IA y se basa exclusivamente en la especificación AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I2)
función 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).
usar
La función de callout Dcm_ProcessRequestReadDir se declara a través del archivo de cabecera Dcm_Externals.h y es llamada por el DCM para iniciar de forma asíncrona el servicio RequestFileTransfer con el modo de funcionamiento 0x05 (ReadDir) [SWS_Dcm_91082]. El progreso del procesamiento se controla mediante el parámetro de transferencia OpStatus [SWS_Dcm_91082]. En la primera llamada con DCM_INITIAL, el DCM transfiere la ruta o el nombre a través de filePathAndName junto con la longitud en bytes filePathAndNameLength [SWS_Dcm_91082]. En llamadas sucesivas o en caso de cancelación (DCM_PENDING, DCM_CANCEL, DCM_FORCE_RCRRP_OK), todos los parámetros de entrada están fijados a 0x00 [SWS_Dcm_91082].
Como valores de salida, la aplicación debe proporcionar el tamaño de los datos de directorio a través de dirInfoLength y el tamaño de bloque máximo admisible para transferencias posteriores a través de maxNumberOfBlockLength [SWS_Dcm_91082]. Además de E_OK en caso de ejecución correcta, la función puede devolver DCM_E_PENDING si la operación aún continúa, o DCM_E_FORCE_RCRRP para provocar el envío de una respuesta intermedia (NRC 0x78) [SWS_Dcm_91082].
Manejo de errores
Si se produce un error, la función debe devolver E_NOT_OK. En este caso, el DCM lee el parámetro ErrorCode y transmite su valor al tester como código de respuesta negativo (NRC) [SWS_Dcm_91082]. No se prevén mensajes DET o DEM específicos para la interfaz; por tanto, es probable que las comprobaciones de errores de la ruta transferida correspondan por completo a la implementación específica de la aplicación. Pregunta Q-278dbc3db7b4363b (abierta)
Concurrencia e interacción
La función está especificada como no reentrante (Non Reentrant) y, por consiguiente, no debe llamarse de forma concurrente para varias solicitudes de diagnóstico [SWS_Dcm_91082]. Forma parte del grupo de interfaces del servicio RequestFileTransfer, cuya vinculación puede verse influida mediante parámetros de configuración [SWS_Dcm_91086].
Esta nota de uso se generó de forma automatizada a partir de la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I2)
función 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).
Uso y contexto de llamada
El DCM llama a la función de callout Dcm_WriteFile cuando se reciben datos a través del servicio UDS TransferData (0x36) y está activo un proceso de descarga iniciado previamente mediante RequestFileTransfer con los modos 0x01 (AddFile) o 0x03 (ReplaceFile) [SWS_Dcm_01444]. La interfaz está disponible a través de Dcm_Externals.h [SWS_Dcm_91083].
La asignación de parámetros depende del estado de progreso OpStatus [SWS_Dcm_91083]:
DCM_INITIAL: Todos los parámetros de entrada son válidos. El punteroDataapunta a los datos útiles que se van a escribir, yDataLengthindica su longitud en bytes. El valor deDataLengthno supera la longitud máxima de bloque negociada previamente enDcm_ProcessRequestFileTransfer(NumberOfBlockLength).DCM_PENDING,DCM_CANCELyDCM_FORCE_RCRRP_OK: Todos los parámetros de entrada están fijados a0x00.
Semántica asíncrona y valores de retorno
La función opera de forma asíncrona y no reentrante (Non Reentrant) [SWS_Dcm_91083]. Proporciona los siguientes valores de estado:
E_OK: la operación de escritura se completó con éxito.DCM_E_PENDING: El procesamiento aún no ha finalizado y requiere más llamadas.DCM_E_FORCE_RCRRP: La aplicación solicita el envío de una respuesta de espera (Response Pending, NRC 0x78).E_NOT_OK: la operación ha fallado.
Manejo de errores
Si Dcm_WriteFile devuelve el valor E_NOT_OK, el módulo DCM envía una respuesta UDS negativa cuyo NRC se corresponde con el valor proporcionado a través del parámetro de salida ErrorCode [SWS_Dcm_91083].
Este texto ha sido generado por un sistema basado en IA y está sujeto a la obligación de verificación mediante la especificación AUTOSAR.
Guía del implementador pendiente (complejidad I2)
función 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).
El módulo DCM llama a la función de callout Dcm_ReadFileOrDir cuando, en el marco de una carga de archivo o directorio en curso (iniciada previamente a través del servicio UDS RequestFileTransfer con el modo 0x04 para ReadFile o 0x05 para ReadDir), se recibe una solicitud conforme al formato para el servicio UDS TransferData (0x36) [SWS_Dcm_01445]. La función sirve para suministrar los datos que deben enviarse como respuesta al cliente [SWS_Dcm_91085]. La declaración de la interfaz está disponible a través de la cabecera Dcm_Externals.h [SWS_Dcm_91085].
La ejecución se realiza de forma asíncrona y está especificada como no reentrante (Non Reentrant) [SWS_Dcm_91085]. La interacción y la asignación de parámetros dependen del estado operativo transferido:
- Estado operativo (
OpStatus): En la llamada inicial conDCM_INITIAL, todos los parámetros de entrada son válidos. En llamadas sucesivas o de cancelación conDCM_PENDING,DCM_CANCELoDCM_FORCE_RCRRP_OK, todos los parámetros de entrada están fijados a0x00[SWS_Dcm_91085]. - Búfer y longitud de bloque: El parámetro
DataLengthtransfiere en el lado de entrada la longitud máxima admisible de bloque (correspondiente al valor notificado al clientemaxNumberOfBlockLength) y devuelve en el lado de salida la longitud en bytes suministrada realmente enData, que no debe superar el valor de entrada [SWS_Dcm_91085]. Interpretación: AunqueDataestá declarado formalmente en la interfaz como parámetro de entrada, es probable que sirva para transferir los datos útiles que se van a leer. Pregunta Q-53de8a0bdbc4a2b4 (abierta) - Valores de retorno: La operación devuelve
E_OKen caso de suministro correcto de datos,DCM_E_PENDINGsi el procesamiento aún no ha concluido oDCM_E_FORCE_RCRRPsi la aplicación desea forzar el envío de un mensaje intermedio (Response Pending, NRC 0x78) [SWS_Dcm_91085].
Si el procesamiento en la aplicación falla, se devuelve E_NOT_OK. En este caso de error, el módulo DCM transmite una respuesta UDS negativa (NRC) al cliente, cuyo código de error coincide con el valor establecido en el parámetro de salida ErrorCode [SWS_Dcm_91085].
Este texto ha sido generado por una IA y sirve como guía orientativa. Las especificaciones oficiales de AUTOSAR son determinantes.
Guía del implementador pendiente (complejidad I2)
función Dcm_MainFunction [SWS_Dcm_00053] 📄 PDF
void Dcm_MainFunction (void);
This service is used for processing the tasks of the main loop.
La función Dcm_MainFunction sirve para procesar las tareas centrales del bucle principal del Diagnostic Communication Manager ([SWS_Dcm_00053]). Posee la firma void Dcm_MainFunction(void) y no devuelve ningún valor. Dado que se proporciona a través del encabezado SchM_Dcm.h, su llamada probablemente deba realizarse cíclicamente en el contexto de una tarea del planificador del software básico. Pregunta Q-e083a72aae447ab5 (abierta)
Una tarea esencial es el control y la continuación entre ciclos de secuencias asíncronas:
- Si una operación con
Dcm_OpStatusTypedevuelve el valor de retornoDCM_E_PENDING, el DCM llama a la operación de nuevo conOpStatus = DCM_PENDINGen cada llamada deDcm_MainFunction, mientras persista este estado ([SWS_Dcm_00530]). - Si
Dem_ClearDTC()devuelve el estadoDEM_PENDING, la función se llama de nuevo en el siguiente ciclo deDcm_MainFunction; el DCM envía NRC 78 (ResponsePending) si es necesario ([SWS_Dcm_00703]). - Las llamadas a
Dem_SetDTCFilter()con el parámetroFilterForFault-DetectionCounterestablecido deben realizarse obligatoriamente en el contexto deDcm_MainFunction([SWS_Dcm_00519]). - Tras la confirmación de una transmisión RCR-RP, el DCM llama a operaciones como
Dcm_WriteMemoryoDcm_ReadMemorydesdeDcm_MainFunctionde nuevo conOpStatus = DCM_FORCE_RCRRP_OK([SWS_Dcm_00529], [SWS_Dcm_00838], [SWS_Dcm_00840]). - Si con
Xxx_GetSecurityAttemptCounterse notifica el valorDCM_E_PENDING, la llamada se interrumpe y se continúa en el siguiente ciclo ([SWS_Dcm_01351]); si se supera el tiempo de espera configurado, el DCM cancela la operación pendiente conOpStatus = DCM_CANCEL([SWS_Dcm_01352]).
Esta nota de uso fue generada automáticamente a partir de la especificación de AUTOSAR.
Guía del implementador pendiente (complejidad I2)
función 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
La función Xxx_GetSeed (proporcionada a través de Dcm_Externals.h) sirve para el suministro asíncrono de un valor de seed por parte de la aplicación para el módulo DCM [SWS_Dcm_01151]. Se llama en cuanto se recibe una petición UDS del servicio SecurityAccess (0x27) con el tipo de subfunción «requestSeed» y el nivel de seguridad solicitado aún no está activo [SWS_Dcm_00862], [SWS_Dcm_00324].
Contexto de llamada y parámetros
La interfaz está definida como no reentrante (Non Reentrant) y opera de forma asíncrona [SWS_Dcm_01151]:
SecurityAccessDataRecord: Puntero a datos de entrada adicionales para el cálculo de la seed; el tamaño mínimo es de un byte segúnDcmDspSecurityADRSize[SWS_Dcm_01151].OpStatus: Indica el estado actual de la operación asíncrona [SWS_Dcm_01151].Seed: Puntero de salida a través del cual la aplicación proporciona la seed calculada [SWS_Dcm_01151].ErrorCode: Parámetro de salida para devolver un código de error negativo (NRC) [SWS_Dcm_01151].
Valores de retorno y tratamiento de errores
E_OK: La seed se determinó y proporcionó correctamente [SWS_Dcm_01151].DCM_E_PENDING: El cálculo aún no ha concluido; para su finalización son necesarios cálculos o llamadas sucesivas [SWS_Dcm_01151].E_NOT_OK: La petición falló. En este caso, el módulo DCM envía una respuesta UDS negativa con el valor de NRC transferido en el parámetroErrorCode[SWS_Dcm_01151], [SWS_Dcm_00659].
Indicaciones de integración
Según la configuración de DcmDspSecurityUsePort, la vinculación se realiza como función de C en caso de USE_ASYNCH_FNC (referenciada a través de DcmDspSecurityGetSeedFnc) [SWS_Dcm_00862] o como operación de Rte en caso de USE_ASYNCH_CLIENT_SERVER [SWS_Dcm_00324]. Si no es necesario transferir datos de acceso adicionales, se utiliza la firma de función alternativa sin el parámetro SecurityAccessDataRecord [SWS_Dcm_91003].
Esta nota de uso se generó automáticamente sobre la base de la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I2)
función 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
La función Xxx_GetSeed sirve como interfaz asíncrona del módulo DCM con la aplicación para proporcionar un valor de seed en el marco del servicio UDS SecurityAccess (0x27) ante una solicitud del tipo «requestSeed» [SWS_Dcm_91003], [SWS_Dcm_00862]. La llamada la realiza el submódulo DCM-DSP, siempre que el nivel de seguridad aún no esté activo y la configuración contemple USE_ASYNCH_CLIENT_SERVER o USE_ASYNCH_FNC [SWS_Dcm_00324], [SWS_Dcm_00862].
La interfaz se implementa de forma asíncrona y no reentrante (Non Reentrant) [SWS_Dcm_91003]. El control del progreso del procesamiento se efectúa a través del parámetro de entrada OpStatus (tipo Dcm_OpStatusType) [SWS_Dcm_91003]. Como valores de retorno están definidos E_OK en caso de provisión correcta, E_NOT_OK en caso de error, así como DCM_E_PENDING si la generación de la seed aún continúa y se requieren más llamadas [SWS_Dcm_91003]. El valor generado se transfiere mediante el puntero Seed (búfer de entrada/salida o salida) [SWS_Dcm_91003].
Si la operación falla y Xxx_GetSeed devuelve E_NOT_OK, el módulo DCM debe enviar una respuesta negativa (NRC) con el código de error establecido a través del parámetro de salida ErrorCode (Dcm_NegativeResponseCodeType) [SWS_Dcm_91003], [SWS_Dcm_00659]. El servicio está declarado a través de la cabecera Dcm_Externals.h [SWS_Dcm_91003].
Este texto ha sido generado por una IA basándose en el estándar AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I2)
función 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)
El Diagnostic Communication Manager ([SWS_Dcm_91004]) llama a la función Xxx_CompareKey de forma asíncrona y no reentrante para cotejar una clave recibida en el marco del servicio UDS SecurityAccess (0x27, subfunción sendKey) con la lógica interna de la aplicación ([SWS_Dcm_00863]). Se utiliza cuando el estado de acceso aún no está activo, la petición de Seed ha sido satisfactoria y el parámetro de configuración DcmDspSecurityUsePort está ajustado a USE_ASYNCH_CLIENT_SERVER ([SWS_Dcm_00324]) o, según [SWS_Dcm_00863], la interfaz de función se configuró a través de USE_ASYNCH_FNC/DcmDspSecurityCompareKeyFnc. La interfaz está declarada en Dcm_Externals.h ([SWS_Dcm_91004]).
La transferencia incluye el puntero a la clave que se va a comprobar Key, el estado de operación actual OpStatus (de tipo Dcm_OpStatusType), así como el puntero ErrorCode para el código de respuesta negativa que debe emitirse en caso de error ([SWS_Dcm_91004]). Como valores de retorno se especifican:
E_OK: comprobación de clave correcta ([SWS_Dcm_91004]).DCM_E_PENDING: comprobación aún no concluida; se requieren más llamadas por parte del módulo DCM para finalizar ([SWS_Dcm_91004]).E_NOT_OK: procesamiento fallido. A continuación, el DCM envía una respuesta UDS negativa con el NRC establecido enErrorCode, sin modificar el nivel de seguridad interno ni incrementar el contador de intentos fallidos (AttemptCounter) ([SWS_Dcm_01150]).DCM_E_COMPARE_KEY_FAILED: la clave no coincide ([SWS_Dcm_91004]).
Si falla la comparación de la clave (DCM_E_COMPARE_KEY_FAILED), con DcmDspSecurityNumAttDelay configurado se incrementa el AttemptCounter ([SWS_Dcm_01397]). Si el contador se encuentra por debajo del valor límite, el DCM envía el NRC 0x35 (InvalidKey) ([SWS_Dcm_00660]). Si el número de intentos fallidos alcanza o supera el límite configurado DcmDspSecurityNumAttDelay, el DCM inicia el SecurityDelayTimer con la duración DcmDspSecurityDelayTime y envía el NRC 0x36 (exceededNumberOfAttempts) ([SWS_Dcm_01349]). En ambos casos, el nivel de seguridad permanece sin cambios.
Esta nota de uso fue generada de forma automatizada y se basa en las especificaciones del módulo DCM de AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I3)
función 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
La función asíncrona y no reentrante [SWS_Dcm_01152] lee desde la aplicación el contador de intentos fallidos actual para un nivel de seguridad configurado durante la inicialización del DCM. La llamada se realiza para cada entrada en DcmDspSecurityRow en la que el parámetro de configuración DcmDspSecurityAttemptCounterEnabled está establecido en TRUE [SWS_Dcm_01154].
El control de flujo se gestiona a través del parámetro OpStatus con los valores DCM_INITIAL, DCM_PENDING o DCM_CANCEL [SWS_Dcm_01152]. Si la función devuelve DCM_E_PENDING, el DCM interrumpe la cadena de llamadas y la reanuda en el ciclo siguiente de Dcm_MainFunction() [SWS_Dcm_01351]. Si se supera el control de tiempo DcmDspSecurityMaxAttemptCounterReadoutTime configurado tras el primer ciclo, el DCM cancela la operación aún pendiente con DCM_CANCEL [SWS_Dcm_01352].
En caso de éxito, la interfaz suministra E_OK y transfiere el valor del contador mediante el parámetro de salida AttemptCounter [SWS_Dcm_01152]. Si la llamada devuelve E_NOT_OK, el DCM establece automáticamente el contador en el valor configurado para este nivel de seguridad DcmDspSecurityNumAttDelay [SWS_Dcm_01156].
Mientras no se hayan determinado o cancelado definitivamente todos los valores de contador, el DCM rechaza cualquier petición a SecurityAccess (0x27) para solicitar una seed con el código de respuesta negativa conditionsNotCorrect (0x22) [SWS_Dcm_01354]. Tras finalizar la cadena de consultas, el DCM comprueba los valores de contador: si al menos un contador alcanza o supera el valor de umbral DcmDspSecurityNumAttDelay, el DCM inicia el SecurityDelayTimer con el valor mayor entre DcmDspSecurityDelayTimeOnBoot y DcmDspSecurityDelayTime [SWS_Dcm_01355].
Esta nota de uso se creó de manera automatizada a partir de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I2)
función 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
La función Xxx_SetSecurityAttemptCounter sirve para establecer el contador de intentos para un nivel de seguridad específico en la aplicación ([SWS_Dcm_01153]). Se proporciona a través de la cabecera Dcm_Externals.h.
Invocación y semántica
La ejecución se realiza de forma asíncrona y está especificada como no reentrante (Non Reentrant) ([SWS_Dcm_01153]). La llamada controla el flujo a través del parámetro OpStatus con los valores DCM_INITIAL, DCM_PENDING o DCM_CANCEL. El nuevo valor de contador se transfiere a través del parámetro de entrada AttemptCounter (uint8).
Valores de retorno y tratamiento de errores
Como tipo de retorno se utiliza Std_ReturnType ([SWS_Dcm_01153]):
E_OK: La solicitud se completó correctamente.E_NOT_OK: La ejecución no tuvo éxito.DCM_E_PENDING: El procesamiento aún no ha finalizado; se requieren llamadas adicionales para su conclusión.
Si se cancela una operación asíncrona en curso, el DCM transfiere el estado DCM_CANCEL ([SWS_Dcm_01153]).
Interacción y condiciones marco
El módulo DCM llama a Xxx_SetSecurityAttemptCounter en cuanto ha modificado el contador de intentos para notificar la actualización a la aplicación ([SWS_Dcm_01155]). Esto presupone que el parámetro de configuración DcmDspSecurityAttemptCounterEnabled para la correspondiente DcmDspSecurityRow está configurado como TRUE ([SWS_Dcm_01155]). Dado que la interfaz no es reentrante, la aplicación debe excluir una ejecución concurrente para la misma instancia ([SWS_Dcm_01153]).
Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
La función sincrónica Xxx_ReadData solicita a la aplicación el valor de datos actual de un DID o PID cuando el parámetro de configuración DcmDspDataUsePort está ajustado a USE_DATA_SYNCH_CLIENT_SERVER [SWS_Dcm_00793]. La interfaz se proporciona a través de la cabecera Dcm_Externals.h y posee el Service-ID 0x34 [SWS_Dcm_00793]. La aplicación invocada copia los datos útiles solicitados directamente en el búfer transferido Data [SWS_Dcm_00793].
En cuanto al valor de retorno, se establece que la llamada devuelva invariablemente E_OK [SWS_Dcm_00793]. No se especifican códigos de error específicos, respuestas negativas ni mensajes DET/DEM para esta firma. Interpretación: un fallo en la provisión de datos probablemente no esté previsto en este nivel de interfaz, ya que, a diferencia de la variante asincrónica [SWS_Dcm_91005], no existe un parámetro ErrorCode para códigos de respuesta negativa (NRC) ni valores de retorno como E_NOT_OK o DCM_E_PENDING. Pregunta Q-adcf0171ecfd37c4 (abierta)
En cuanto a la concurrencia y las condiciones límite, la función está especificada como no reentrante (Non Reentrant) y opera de forma completamente sincrónica [SWS_Dcm_00793]. La interacción con las solicitudes de diagnóstico tiene lugar en varios escenarios:
- Al recibir una solicitud del servicio OBD $01 con PID de no disponibilidad, el DCM llama a las funciones
Xxx_ReadDataconfiguradas en cada caso para todos los datos del PID con el fin de registrar los valores de respuesta [SWS_Dcm_00408]. - En una petición UDS del servicio 0x22 (ReadDataByIdentifier) con identificadores de no disponibilidad, el DCM invoca las funciones para todos los datos de
OBDDataIdentifier[SWS_Dcm_01380] así como deOBDInfoTypeDataIdentifier[SWS_Dcm_01389]. - Si, por el contrario, se requiere un comportamiento asíncrono, se aplican las firmas separadas con
OpStatussegún [SWS_Dcm_91006] o [SWS_Dcm_91005].
Este texto ha sido generado por una IA y se basa exclusivamente en las especificaciones de la versión R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
La función Xxx_ReadData sirve para consultar a la aplicación valores de datos de un DID o PID de forma asíncrona, siempre que el parámetro DcmDspDataUsePort esté configurado en USE_DATA_ASYNCH_CLIENT_SERVER ([SWS_Dcm_91006]). Se declara a través del archivo de cabecera Dcm_Externals.h ([SWS_Dcm_91006]).
Durante la llamada, el parámetro OpStatus (tipo Dcm_OpStatusType) controla el progreso de la operación en curso, mientras que a través del puntero Data (tipo uint8*) se transfiere el búfer de salida en el que se deben copiar los datos solicitados ([SWS_Dcm_91006]). Como valores de retorno están definidos E_OK en caso de finalización correcta y DCM_E_PENDING si el procesamiento aún continúa y requiere más llamadas para completarse ([SWS_Dcm_91006]).
El módulo DCM integra esta función en los siguientes flujos de diagnóstico:
- Al recibir un OBD Service $01, el DCM lee los valores PID actuales (excepto los PID de disponibilidad) a través de las funciones
Xxx_ReadDataconfiguradas ([SWS_Dcm_00408]). - En UDS Service 0x22 (
ReadDataByIdentifier), el DCM invoca la función para OBDDataIdentifier ([SWS_Dcm_01380]) y OBDInfoTypeDataIdentifier ([SWS_Dcm_01389]).
En cuanto a la ejecución, la función está especificada como no reentrante (Non Reentrant) ([SWS_Dcm_91006]). A diferencia de la interfaz síncrona ([SWS_Dcm_00793]) o de la variante asíncrona con parámetro ErrorCode adicional ([SWS_Dcm_91005]), esta variante de función no contempla la devolución directa de un código de respuesta negativa.
Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I3)
función 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.
La función Xxx_ReadData solicita de forma asíncrona a la aplicación el valor de datos de un DID o PID, siempre que el parámetro de configuración DcmDspDataUsePort esté ajustado a USE_DATA_ASYNCH_CLIENT_SERVER [SWS_Dcm_91005]. La declaración de la función se proporciona a través del archivo de interfaz Dcm_Externals.h [SWS_Dcm_91005].
La interfaz presenta las siguientes características de invocación y ejecución:
- Semántica y parámetros: El parámetro de entrada
OpStatuscontrola el progreso de la operación en curso [SWS_Dcm_91005]. En caso de finalización correcta, los datos útiles solicitados se copian en el búfer de salidaDatay se devuelveE_OK[SWS_Dcm_91005]. Si la aplicación requiere más tiempo de procesamiento, señalizaDCM_E_PENDING, tras lo cual se requieren invocaciones posteriores [SWS_Dcm_91005]. - Tratamiento de errores: Si la operación falla y devuelve
E_NOT_OK, el módulo DCM evalúa el parámetro de salidaErrorCodey envía una respuesta de diagnóstico negativa con este código NRC [SWS_Dcm_91005]. - Concurrencia: La función está definida como no reentrante (
Non Reentrant) [SWS_Dcm_91005]. Interpretación: Es de suponer que las llamadas repetidas ante un procesamiento pendiente se realicen de forma secuencial en el ciclo del procesamiento principal del DCM. Pregunta Q-541226d5f242f7c2 (abierta) - Interacción: El módulo DCM invoca la función ante solicitudes del OBD Service $01 para PID no disponibles [SWS_Dcm_00408], así como en el UDS Service ReadDataByIdentifier (0x22) para
OBDDataIdentifier[SWS_Dcm_01380] yOBDInfoTypeDataIdentifier[SWS_Dcm_01389]. En comparación con la variante síncrona [SWS_Dcm_00793] o las interfaces asíncronas sin parámetro de NRC [SWS_Dcm_91006], esta firma permite una transmisión específica de errores negativos.
Este texto ha sido generado por una IA y se basa exclusivamente en los requisitos de especificación del release de AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I3)
función 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.
usar
La función Xxx_WriteData es invocada por el Diagnostic Communication Manager (DCM) para solicitar a la aplicación la escritura de un valor de datos de DID (Data Identifier) ([SWS_Dcm_00794]). La declaración se proporciona mediante la cabecera Dcm_Externals.h. La llamada se realiza de forma síncrona bajo el Service-ID 0x51 ([SWS_Dcm_00794]).
Parámetros y valores de retorno:
Data(in): puntero al búfer con los datos útiles que se van a escribir ([SWS_Dcm_00794]).ErrorCode(out): puntero a la variable en la que debe introducirse el código negativo de diagnóstico (NRC) en caso de fallo ([SWS_Dcm_00794]).- Valor de retorno (
Std_ReturnType):E_OKseñala una escritura correcta,E_NOT_OKel fallo de la operación ([SWS_Dcm_00794]).
Manejo de errores
Si la función devuelve E_NOT_OK, el módulo DCM lee el parámetro ErrorCode y envía una respuesta de diagnóstico negativa con este código NRC ([SWS_Dcm_00794]).
Concurrencia y restricciones
La función está especificada como no reentrante (Non Reentrant) ([SWS_Dcm_00794]) y no debe ejecutarse de forma concurrente.
Interacción
Dado que no existe ningún parámetro de longitud, es de suponer que esta variante está prevista para DID con longitud de datos fija. Pregunta Q-ebc074ac1cb66aaa (abierta) Para DID con longitud variable, AUTOSAR proporciona la firma síncrona con el parámetro DataLength ([SWS_Dcm_91007]). Además, para secuencias prolongadas existen variantes asíncronas con OpStatus y posible retorno de DCM_E_PENDING, tanto con longitud de datos fija ([SWS_Dcm_91008]) como con parámetro de longitud variable ([SWS_Dcm_91009]).
Este texto fue generado por una IA a partir de la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
La función callback Xxx_WriteData sirve para solicitar a la aplicación la escritura del valor de datos de un Data Identifier (DID) [SWS_Dcm_91007]. La interfaz está declarada a través de la cabecera Dcm_Externals.h y posee el ID de servicio 0x52 [SWS_Dcm_91007]. La llamada se realiza de forma síncrona y está especificada como no reentrante (Non Reentrant), por lo que no deben producirse llamadas concurrentes para la misma función [SWS_Dcm_91007].
En cuanto a parámetros, la función recibe el búfer Data con los datos útiles que se van a escribir, así como DataLength con la indicación de longitud en bytes [SWS_Dcm_91007]. Como valor de retorno proporciona el tipo Std_ReturnType con E_OK en caso de ejecución correcta o E_NOT_OK en caso de error [SWS_Dcm_91007]. Si la operación falla y devuelve E_NOT_OK, el módulo DCM debe enviar una respuesta negativa al tester de diagnóstico; en este caso, el Negative Response Code (NRC) se corresponde con el valor transmitido a través del parámetro de puntero ErrorCode [SWS_Dcm_91007].
En el sistema global, [SWS_Dcm_91007] representa la variante síncrona para DID con indicación explícita de longitud. De forma complementaria, con [SWS_Dcm_00794] (ID de servicio 0x51) existe una variante síncrona sin el parámetro DataLength. Para procesos de escritura más prolongados, el estándar prevé interfaces asíncronas: [SWS_Dcm_91008] (ID de servicio 0x35) sin indicación de longitud, así como [SWS_Dcm_91009] (ID de servicio 0x3e) con DataLength. Ambas funciones asíncronas se controlan mediante OpStatus y pueden devolver, además de E_OK y E_NOT_OK, también DCM_E_PENDING [SWS_Dcm_91008] [SWS_Dcm_91009].
Esta nota de uso se generó de manera automatizada a partir de la especificación AUTOSAR Classic Release R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
usar
La función Xxx_WriteData solicita a la aplicación escribir el valor de datos de un Data Identifier (DID) [SWS_Dcm_91008]. Está declarada en el archivo de cabecera Dcm_Externals.h y posee una semántica de ejecución asíncrona con el ID de servicio 0x35 [SWS_Dcm_91008].
Los parámetros y valores de retorno se estructuran del siguiente modo [SWS_Dcm_91008]:
Data(IN): puntero al búfer que contiene los datos que se van a escribir.OpStatus(IN): estado de la operación actual para controlar el flujo de llamadas asíncrono.ErrorCode(OUT): puntero al código de error (NRC) que se establece en caso de error.- Valor de retorno (
Std_ReturnType):E_OKconfirma el proceso de escritura correcto,E_NOT_OKnotifica un fallo yDCM_E_PENDINGindica que la operación aún continúa y requiere más llamadas para completarse.
Tratamiento de errores y concurrencia
Si la llamada devuelve el valor E_NOT_OK, el módulo DCM debe enviar una respuesta negativa con el valor NRC transmitido en el parámetro de salida ErrorCode [SWS_Dcm_91008]. La función está especificada como no reentrante [SWS_Dcm_91008], de modo que las llamadas simultáneas o solapadas para la misma instancia no están permitidas.
Interacción y variantes
Esta interfaz según [SWS_Dcm_91008] cubre el acceso de escritura asíncrono sin parámetro de longitud independiente. A este respecto, AUTOSAR define variantes relacionadas en el DCM: una firma síncrona sin indicación de longitud [SWS_Dcm_00794], así como firmas con parámetro adicional DataLength para flujos síncronos [SWS_Dcm_91007] y asíncronos [SWS_Dcm_91009].
Esta nota de uso ha sido generada por un sistema de IA a partir de la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
Uso y semántica
La función Xxx_WriteData solicita a la aplicación escribir el valor de datos de un Data Identifier (DID) [SWS_Dcm_91009]. Se declara a través del archivo de cabecera Dcm_Externals.h y posee el ID de servicio 0x3e [SWS_Dcm_91009]. La ejecución se realiza de forma asíncrona (Asynchronous), para lo cual se transfieren los siguientes parámetros:
Data(in): puntero al búfer con los datos útiles que se van a escribir [SWS_Dcm_91009].DataLength(in): longitud de los datos que se van a escribir en bytes [SWS_Dcm_91009].OpStatus(in): estado de la operación (Dcm_OpStatusType) para controlar el progreso del procesamiento asíncrono [SWS_Dcm_91009].ErrorCode(out): puntero para recibir un código de respuesta negativa (NRC) en caso de error [SWS_Dcm_91009].
Como valores de retorno del tipo Std_ReturnType están definidos E_OK (solicitud de escritura completada con éxito), E_NOT_OK (solicitud fallida) y DCM_E_PENDING [SWS_Dcm_91009]. El estado DCM_E_PENDING señala que el proceso aún no ha finalizado y que son necesarias más llamadas sucesivas para completarlo [SWS_Dcm_91009]. Interpretación: es de prever que el DCM vuelva a invocar la función cíclicamente en caso de retorno de DCM_E_PENDING con OpStatus continuado hasta que se disponga de un resultado final. Pregunta Q-fdbd734dab052f5c (abierta)
Tratamiento de errores y concurrencia
Si la función devuelve el valor E_NOT_OK, debe proporcionarse el código de error correspondiente a través del parámetro ErrorCode; a continuación, el módulo DCM envía una respuesta negativa con este valor NRC [SWS_Dcm_91009]. No se definen mensajes DET o DEM específicos en el payload para esta interfaz. En cuanto a la concurrencia, la función está especificada como no reentrante (Non Reentrant) [SWS_Dcm_91009].
Interacción y variantes de interfaz
La firma [SWS_Dcm_91009] cubre accesos de escritura asíncronos con indicación explícita de longitud. En el DCM existen otras variantes de Xxx_WriteData:
- Ejecución síncrona sin indicación de longitud: [SWS_Dcm_00794] (ID de servicio
0x51). - Ejecución síncrona con indicación de longitud: [SWS_Dcm_91007] (ID de servicio
0x52). - Ejecución asíncrona sin indicación de longitud: [SWS_Dcm_91008] (ID de servicio
0x35).
Nota: esta nota de uso se ha generado de forma automatizada sobre la base de la especificación AUTOSAR Classic para la versión R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
usar
Mediante la función Xxx_ReadDataLength, el módulo DCM solicita a la aplicación que determine y devuelva la longitud de datos de un dato en bytes [SWS_Dcm_00796]. La interfaz está declarada en la cabecera Dcm_Externals.h y cuenta con el ID de servicio 0x36 [SWS_Dcm_00796]. La consulta se ejecuta de forma síncrona [SWS_Dcm_00796]. A través del parámetro de salida DataLength de tipo uint16*, la aplicación transfiere al DCM la longitud en bytes de los datos a leer [SWS_Dcm_00796]. No se han definido parámetros de entrada ni de entrada/salida [SWS_Dcm_00796]. Como valor de retorno, la función devuelve siempre E_OK de tipo Std_ReturnType [SWS_Dcm_00796].
Concurrencia y restricciones
La interfaz está especificada como no reentrante (Non Reentrant) [SWS_Dcm_00796]. Dado que la función opera de forma síncrona y, según la especificación, siempre reporta E_OK, no se prevén códigos de error específicos ni retornos de estado divergentes para esta invocación [SWS_Dcm_00796].
Interacción
Junto a la función síncrona existe una variante asíncrona homónima con el ID de servicio 0x4c, que también se proporciona a través de Dcm_Externals.h [SWS_Dcm_91010]. Mientras que la versión síncrona [SWS_Dcm_00796] prescinde del estado de operación, la contraparte asíncrona requiere el parámetro de entrada OpStatus de tipo Dcm_OpStatusType [SWS_Dcm_91010]. Además, la interfaz asíncrona puede proporcionar el valor de retorno DCM_E_PENDING junto a E_OK, en caso de que la petición aún no haya concluido y requiera más invocaciones para completarse [SWS_Dcm_91010].
Este texto ha sido generado por una IA y sirve como guía orientativa. Son vinculantes las disposiciones de la respectiva especificación AUTOSAR.
Guía del implementador pendiente (complejidad I1)
función 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.
La función [SWS_Dcm_91010] (Service-ID 0x4c) solicita a la aplicación que determine la longitud de datos en bytes de un elemento de datos. Está declarada en la cabecera Dcm_Externals.h y sirve al Diagnostic Communication Manager (DCM) para la consulta flexible de la longitud de datos de diagnóstico.
Uso y semántica
En la llamada, el módulo DCM transfiere el progreso actual mediante el parámetro de entrada OpStatus de tipo Dcm_OpStatusType ([SWS_Dcm_91010]). La aplicación escribe el resultado de la consulta en el parámetro de salida DataLength (tipo uint16*). Si la longitud de datos no está disponible inmediatamente, la función indica mediante el valor de retorno DCM_E_PENDING que el procesamiento continúa y que se requieren más llamadas ([SWS_Dcm_91010]). Tan pronto como el resultado esté disponible, la aplicación notifica la finalización devolviendo E_OK.
Concurrencia y restricciones
Según la especificación, la función está clasificada como no reentrante ([SWS_Dcm_91010]), por lo que deben excluirse llamadas simultáneas por parte del DCM. Dado que la especificación no prevé valores de error específicos salvo DCM_E_PENDING, cabe suponer que el DCM, al recibir E_OK, asume siempre un tamaño en bytes establecido válidamente. Pregunta Q-e7ecd3a518e2cbcb (abierta)
Interacción
La interfaz asíncrona [SWS_Dcm_91010] se diferencia de la variante síncrona afín [SWS_Dcm_00796] (Service-ID 0x36). Esta última no posee el parámetro OpStatus, se ejecuta de forma síncrona y devuelve siempre la longitud de forma inmediata con E_OK. Por el contrario, [SWS_Dcm_91010] permite a la aplicación distribuir cálculos lentos de forma asíncrona a lo largo de varios ciclos de llamada.
Este texto fue creado por una IA a partir de la especificación AUTOSAR.
Guía del implementador pendiente (complejidad I2)
función 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.
La función de callout síncrona Xxx_ConditionCheckRead se proporciona a través del archivo de cabecera Dcm_Externals.h y sirve para consultar a la aplicación si se cumplen las condiciones para la lectura de los datos de diagnóstico [SWS_Dcm_00797].
La interfaz no posee parámetros de entrada y señaliza el estado de la comprobación mediante el valor de retorno de tipo Std_ReturnType [SWS_Dcm_00797]:
E_OK: La comprobación fue correcta; se cumplen las condiciones para leer los datos [SWS_Dcm_00797].E_NOT_OK: La comprobación falló; la lectura no está permitida [SWS_Dcm_00797].
Si la función devuelve E_NOT_OK, el módulo DCM envía una respuesta negativa (Negative Response) con el código de error que la aplicación ha transferido a través del parámetro de salida ErrorCode (tipo Dcm_NegativeResponseCodeType*) [SWS_Dcm_00797].
En cuanto a la concurrencia, la función está especificada como no reentrante (Non Reentrant) y se ejecuta de forma síncrona con el Service ID 0x49 [SWS_Dcm_00797]. Por tanto, es de esperar que la comprobación por parte de la aplicación se evalúe de inmediato sin tiempos de espera bloqueantes, a fin de evitar una ralentización del invocador síncrono del DCM. Pregunta Q-ada29c78c29d961e (abierta)
A diferencia de esta operación síncrona, [SWS_Dcm_91011] define una variante asíncrona bajo el Service ID 0x37. Esta utiliza adicionalmente el parámetro de entrada OpStatus (tipo Dcm_OpStatusType) y puede devolver, además de E_OK y E_NOT_OK, también DCM_E_PENDING si se requieren pasos posteriores para finalizar la comprobación [SWS_Dcm_91011].
Esta nota de uso ha sido generada automáticamente sobre la base de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
función 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.
Uso y semántica
La función Xxx_ConditionCheckRead se proporciona a través del archivo de cabecera Dcm_Externals.h y sirve para consultar a la aplicación de software si se cumplen las condiciones para la lectura de los datos de diagnóstico [SWS_Dcm_91011]. La ejecución se realiza de forma asíncrona [SWS_Dcm_91011] bajo el Service-ID 0x37. Mediante el parámetro de entrada OpStatus (tipo Dcm_OpStatusType) se transfiere el estado actual de la operación en curso [SWS_Dcm_91011].
Valores de retorno y tratamiento de errores
Como valor de retorno, la función proporciona un estado de tipo Std_ReturnType [SWS_Dcm_91011]:
E_OK: la petición ha sido correcta y se cumplen las condiciones de lectura [SWS_Dcm_91011].E_NOT_OK: la comprobación falló [SWS_Dcm_91011]. En este caso, la aplicación debe establecer a través del parámetro de salidaErrorCodeun código de respuesta negativa (NRC) de tipoDcm_NegativeResponseCodeType; a continuación, el módulo DCM envía una respuesta negativa con este NRC [SWS_Dcm_91011].DCM_E_PENDING: la comprobación aún no ha finalizado, por lo que se requieren más llamadas para su compleción [SWS_Dcm_91011].
Concurrencia y delimitación
La interfaz está especificada como no reentrante (Non Reentrant) [SWS_Dcm_91011]. A diferencia de esta variante asíncrona, [SWS_Dcm_00797] define bajo el Service-ID 0x49 una signatura síncrona sin el parámetro OpStatus, la cual devuelve exclusivamente E_OK o E_NOT_OK [SWS_Dcm_00797].
Esta nota de uso fue generada por una IA sobre la base de la especificación AUTOSAR-R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
función 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.
La interfaz asíncrona Xxx_GetScalingInformation se proporciona a través de la cabecera Dcm_Externals.h y sirve para solicitar información de escalado de un elemento de datos a la aplicación [SWS_Dcm_91012]. El módulo DCM llama a esta función tan pronto como se recibe una petición de diagnóstico para el servicio UDS ReadScalingByIdentifier, y en concreto para cada dato configurado para el DID solicitado [SWS_Dcm_00394].
Parámetros y valores de retorno
La función define los siguientes parámetros y semántica [SWS_Dcm_91012]:
OpStatus(in): transfiere el estado actual de la operación en curso.ScalingInfo(out): búfer para alojar la información de escalado (scalingByteyscalingByteExtension).ErrorCode(out): aloja el código de respuesta negativa en caso de que la operación falle.
Como valores de retorno se especifican E_OK en caso de finalización correcta, E_NOT_OK en caso de error y DCM_E_PENDING si el procesamiento aún no ha concluido y requiere más llamadas para completarse [SWS_Dcm_91012].
Tratamiento de errores y concurrencia
Si la llamada devuelve E_NOT_OK, el módulo DCM debe enviar una respuesta negativa cuyo NRC se corresponda con el valor proporcionado a través del parámetro de salida ErrorCode [SWS_Dcm_91012]. La función está especificada como no reentrante (Non Reentrant) [SWS_Dcm_91012]. Interpretación: el hecho de que se llame a esta función asíncrona con OpStatus o a la variante síncrona especificada alternativamente sin OpStatus [SWS_Dcm_00798] dependerá probablemente de la configuración del DID respectivo. Pregunta Q-c4054a798f17a52c (abierta)
Este texto fue creado por una IA; no se puede garantizar la exactitud e integridad de los datos.
Guía del implementador pendiente (complejidad I2)
función 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.
La función Xxx_ReturnControlToECU se proporciona a través de la cabecera Dcm_Externals.h y solicita a la aplicación que devuelva el control sobre un control de entrada/salida (IOControl) a la unidad de control [SWS_Dcm_01285]. La llamada se realiza de forma síncrona y está especificada como no reentrante [SWS_Dcm_01285].
Parámetros y variantes
La firma de la función depende de la configuración de la máscara de control externa [SWS_Dcm_01285]:
- Si
DcmDspDidControlMaskestá establecido enDCM_CONTROLMASK_EXTERNALy el tamaño de la máscara es de hasta cuatro bytes (DcmDspDidControlMaskSize <= 0x04), se transfiere el parámetro de entradacontrolMaskde tipoDcm_ControlMask_{DID}Type[SWS_Dcm_01285]. - Si el tamaño de la máscara es de cinco o más bytes (
DcmDspDidControlMaskSize >= 0x05), se utiliza en su lugar el punterocontrolMask2de tipouint8*[SWS_Dcm_01285]. - A través del parámetro de salida
ErrorCode(tipoDcm_NegativeResponseCodeType*), la función transmite el código de respuesta negativa (NRC) específico al DCM en caso de error [SWS_Dcm_01285].
Valores de retorno y tratamiento de errores
La función devuelve el estado Std_ReturnType. En caso de devolución correcta del control, la aplicación notifica E_OK [SWS_Dcm_01285]. Si la operación falla, la función debe devolver E_NOT_OK; en este caso, el módulo DCM envía una respuesta negativa con el NRC almacenado en ErrorCode al tester de diagnóstico [SWS_Dcm_01285].
Interacción y contexto de llamada
El DCM llama a la interfaz de función configurada (parámetro DcmDspDataReturnControlToEcuFnc) cuando DcmDspDataUsePort está configurado como USE_DATA_SYNCH_FNC, USE_DATA_ASYNCH_FNC o USE_DATA_ASYNCH_FNC_ERROR [SWS_Dcm_01435]. Además de las acciones de diagnóstico habituales, el DCM llama a Xxx_ReturnControlToECU especialmente cuando debe interrumpirse una secuencia de control de E/S activa [SWS_Dcm_01435].
Esta nota de uso se generó de forma automatizada sobre la base de la especificación.
Guía del implementador pendiente (complejidad I1)
función 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.
La interfaz de función síncrona Xxx_ResetToDefault se proporciona a través de la cabecera Dcm_Externals.h y sirve para solicitar a una aplicación restablecer un control de I/O (IOControl) al valor por defecto [SWS_Dcm_01286].
Contexto de llamada y parámetros
La función posee el ID de servicio 0x4d, opera de forma síncrona y está especificada como no reentrante [SWS_Dcm_01286]. En función del tamaño configurado de la máscara de control externa, se transfiere uno de dos parámetros de entrada alternativos:
controlMask(tipoDcm_ControlMask_{DID}Type) se utiliza cuandoDcmDspDataUsePortestá configurado comoUSE_DATA_SYNCH_FNC,DcmDspDidControlMaskse encuentra enDCM_CONTROLMASK_EXTERNALyDcmDspDidControlMaskSizees como máximo0x04[SWS_Dcm_01286].controlMask2(tipouint8*) se emplea cuando, bajo condiciones límite idénticas,DcmDspDidControlMaskSizeestá configurado como mayor o igual a0x05[SWS_Dcm_01286].
Valores de retorno y tratamiento de errores
Si el restablecimiento se ha podido llevar a cabo correctamente, la función devuelve E_OK [SWS_Dcm_01286]. Si la operación falla, se debe devolver E_NOT_OK. En este caso, la aplicación asigna al parámetro de salida ErrorCode (tipo Dcm_NegativeResponseCodeType*) el código de respuesta negativa (NRC) correspondiente, que el módulo DCM transmite al tester como respuesta negativa [SWS_Dcm_01286].
Interacción y delimitación
Si el sistema está diseñado para la tramitación de interfaces asíncronas a través de USE_DATA_ASYNCH_FNC o USE_DATA_ASYNCH_FNC_ERROR, en lugar de esta función síncrona se utiliza la variante asíncrona con el parámetro adicional OpStatus y el Service-ID 0x3c [SWS_Dcm_01314].
Este texto fue generado por una IA y se basa en las especificaciones de AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I1)
función 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.
La función asíncrona [SWS_Dcm_01314] solicita a la aplicación que restablezca un control de entrada/salida (IOControl) a su valor por defecto. Está declarada en Dcm_Externals.h y tiene el Service-ID 0x3c. Mediante el parámetro OpStatus se controla el progreso de la operación. Si el procesamiento aún no ha concluido, la función devuelve DCM_E_PENDING, mientras que una finalización correcta se confirma con E_OK.
En función de la configuración y del tamaño de la máscara (DcmDspDidControlMaskSize hasta 4 bytes o a partir de 5 bytes), en caso de enmascaramiento externo se transfiere adicionalmente controlMask o bien controlMask2 [SWS_Dcm_01314]. Si el restablecimiento falla, la función devuelve E_NOT_OK. En este caso, a través del parámetro de salida ErrorCode se debe transferir un código de respuesta negativa (NRC), que el módulo DCM envía al tester como respuesta negativa [SWS_Dcm_01314].
La función está especificada como no reentrante (Non Reentrant) [SWS_Dcm_01314]. Se utiliza cuando DcmDspDataUsePort está ajustado a USE_DATA_ASYNCH_FNC o USE_DATA_ASYNCH_FNC_ERROR. Para configuraciones de interfaz síncronas (USE_DATA_SYNCH_FNC) existe, como alternativa, la variante síncrona sin OpStatus [SWS_Dcm_01286].
Este texto fue creado por una IA y se basa en el estado de la especificación de AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
usar
La función síncrona Xxx_FreezeCurrentState (registrada en el catálogo de elementos como Xxx_FreezeCurrentStateManager) sirve para solicitar a una aplicación que congele el estado actual de un control de entrada o salida (IOControl) [SWS_Dcm_01290]. La función está disponible a través del archivo de cabecera Dcm_Externals.h y posee el Service-ID 0x4a AUTOSAR_SWS_DiagnosticCommunicationManager p. 279. (Interpretación: es probable que el prefijo Xxx actúe como marcador de posición para el módulo de aplicación correspondiente). Pregunta Q-f8c864cda732acc2 (abierta)
Los parámetros de la interfaz dependen de la configuración de la máscara de control externa (DcmDspDidControlMask en DCM_CONTROLMASK_EXTERNAL) [SWS_Dcm_01290]:
controlMask(entrada, tipoDcm_ControlMask_{DID}Type): se transfiere si el tamaño de máscaraDcmDspDidControlMaskSizeestá configurado como menor o igual a 4 bytes (<= 0x04).controlMask2(entrada, tipouint8*): se utiliza en su lugar si el tamaño de máscara comprende al menos 5 bytes (=> 0x05).ErrorCode(salida, tipoDcm_NegativeResponseCodeType*): puntero para registrar un código de respuesta negativo en caso de errores.
Tratamiento de errores y valores de retorno
La función devuelve como Std_ReturnType bien E_OK en caso de ejecución correcta o bien E_NOT_OK si la solicitud no tuvo éxito [SWS_Dcm_01290]. Si ocurre un error y se devuelve E_NOT_OK, la aplicación debe introducir un código de respuesta negativo (NRC) específico en el parámetro ErrorCode; a continuación, el módulo DCM envía una respuesta de diagnóstico negativa con este código NRC AUTOSAR_SWS_DiagnosticCommunicationManager p. 279.
Concurrencia y restricciones
La operación está especificada como no reentrante (Non Reentrant) [SWS_Dcm_01290]. Los llamadores deben asegurarse de que las llamadas para la misma instancia se procesen de forma síncrona y sin solapamiento simultáneo.
Este texto ha sido elaborado por una IA y sirve como guía orientativa. La especificación de AUTOSAR es la única vinculante.
Guía del implementador pendiente (complejidad I1)
función 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.
Uso y contexto de llamada
El módulo DCM llama a la función asíncrona Xxx_FreezeCurrentState para solicitar al software de aplicación la congelación del estado actual de un control de entrada/salida (IOControl) [SWS_Dcm_01315]. La declaración se proporciona mediante la cabecera Dcm_Externals.h [SWS_Dcm_01315].
Parámetros y máscaras de control
La llamada se realiza con los siguientes parámetros [SWS_Dcm_01315]:
OpStatus: transmite el estado actual de la operación asíncrona (Dcm_OpStatusType).controlMaskocontrolMask2: si la máscara de control está configurada externamente (DcmDspDidControlMask == DCM_CONTROLMASK_EXTERNAL) y se utiliza la interfaz de función asíncrona, el DCM transfiere, en función deDcmDspDidControlMaskSize, el parámetrocontrolMask(de tipoDcm_ControlMask_{DID}Type) para un máximo de 4 bytes y el punterocontrolMask2(uint8*) a partir de 5 bytes.ErrorCode: puntero aDcm_NegativeResponseCodeTypepara devolver un código de error.
Valores de retorno y tratamiento de errores
La función devuelve un estado de tipo Std_ReturnType [SWS_Dcm_01315]:
E_OK: La congelación del estado finalizó correctamente.DCM_E_PENDING: la solicitud aún está en curso y requiere llamadas sucesivas.E_NOT_OK: la operación ha fallado. En este caso, el DCM envía una respuesta de diagnóstico negativa con el valor NRC establecido a través deErrorCode.
concurrencia
La interfaz está definida como no reentrante (Non Reentrant) y, por tanto, requiere un procesamiento sincronizado por cada instancia de control [SWS_Dcm_01315].
Este texto ha sido generado por una IA y revisado según directrices editoriales.
Guía del implementador pendiente (complejidad I2)
función 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.
La función síncrona Xxx_ShortTermAdjustment solicita a la aplicación adaptar temporalmente una señal de I/O determinada [SWS_Dcm_00802]. Se proporciona a través de la cabecera Dcm_Externals.h y posee el ID de servicio 0x50 [SWS_Dcm_00802].
A través del puntero ControlStateInfo, la función recibe la información del estado de control a partir del parámetro ControlOptionRecord de la petición de diagnóstico InputOutputControlByIdentifier [SWS_Dcm_00802]. Si se ha configurado una máscara de control externa (DcmDspDidControlMask == DCM_CONTROLMASK_EXTERNAL), se transfiere adicionalmente, en función de DcmDspDidControlMaskSize, o bien controlMask (hasta 4 bytes) de tipo Dcm_ControlMask_{DID}Type o bien controlMask2 (a partir de 5 bytes) como uint8* [SWS_Dcm_00802].
Como valor de retorno, la operación proporciona Std_ReturnType [SWS_Dcm_00802]:
E_OK: La adaptación de la señal de I/O se ha ejecutado con éxito [SWS_Dcm_00802].E_NOT_OK: La adaptación ha fallado [SWS_Dcm_00802]. En este caso, la aplicación debe establecer un código de respuesta negativa específico (Dcm_NegativeResponseCodeType) a través del parámetro de salidaErrorCode, el cual reenvía el módulo DCM al tester en la respuesta de diagnóstico negativa [SWS_Dcm_00802].
La función no es reentrante (Non Reentrant) y se invoca de forma síncrona [SWS_Dcm_00802]. Esta variante síncrona se utiliza cuando el elemento de datos está configurado para llamadas a funciones síncronas (DcmDspDataUsePort == USE_DATA_SYNCH_FNC) [SWS_Dcm_00802]. En cambio, para puertos configurados de forma asíncrona (USE_DATA_ASYNCH_FNC o USE_DATA_ASYNCH_FNC_ERROR) existe la variante asíncrona con el ID de servicio 0x55 y un conjunto de parámetros ampliado que incluye OpStatus y DataLength [SWS_Dcm_01316].
Este texto ha sido creado por una IA y se basa en AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
Uso y contexto de llamada
La función [SWS_Dcm_01316] es llamada por el Diagnostic Communication Manager (DCM) y se proporciona a través de Dcm_Externals.h. Solicita a la aplicación de forma asíncrona que adapte una señal de IO en el marco del servicio de diagnóstico InputOutputControlByIdentifier. Los datos de control se transfieren a través del puntero ControlStateInfo (a partir del parámetro ControlOptionRecord), complementados con la longitud en bytes DataLength. El desarrollo se controla a través de OpStatus: mientras la adaptación continúe, la aplicación devuelve DCM_E_PENDING; tras una finalización correcta, notifica E_OK.
Variantes y parámetros de máscara
En caso de configuración externa de la máscara de control (DCM_CONTROLMASK_EXTERNAL), se transfieren parámetros adicionales [SWS_Dcm_01316]:
- Si el tamaño de la máscara es menor o igual a 4 bytes, se transfiere
controlMaskdel tipoDcm_ControlMask_{DID}Type. - Si el tamaño de la máscara es de al menos 5 bytes, se transfiere en su lugar
controlMask2como puntero auint8.
Tratamiento de errores y concurrencia
Si el control de señal falla, la función devuelve E_NOT_OK y establece a través del puntero ErrorCode el código de respuesta negativa (NRC), que el DCM transmite en la respuesta negativa [SWS_Dcm_01316]. La función está especificada como no reentrante.
Interacción y delimitación
La interfaz se utiliza cuando el puerto de datos del DID está configurado a USE_DATA_ASYNCH_FNC o USE_DATA_ASYNCH_FNC_ERROR y el tipo de datos a UINT8_DYN [SWS_Dcm_01316]. Se distingue de la variante síncrona [SWS_Dcm_00802], la cual no utiliza ni OpStatus ni DataLength y está destinada a puertos síncronos con tipos de datos estáticos.
Este texto fue generado automáticamente por un asistente de curación mediante IA a partir de la especificación de AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
La función Xxx_IsDidAvailable sirve para comprobar de forma asíncrona si un Diagnostic Identifier (DID) solicitado está disponible dentro de un rango de DID definido [SWS_Dcm_00803]. Se proporciona a través de la cabecera Dcm_Externals.h y posee el ID de servicio 0x53 [SWS_Dcm_00803].
Uso y parámetros
La llamada se realiza con los siguientes parámetros [SWS_Dcm_00803]:
DID(In): El valor identificador a consultar del DID [SWS_Dcm_00803].OpStatus(In): El estado actual de la operación para el control del flujo asíncrono [SWS_Dcm_00803].supported(Out): Indica si el DID está disponible en el rango;DCM_DID_SUPPORTEDsignifica compatibilidad, mientras queDCM_DID_NOT_SUPPORTEDindica la falta de compatibilidad [SWS_Dcm_00803].
Semántica asíncrona y valores de retorno
Dado que la función se ejecuta de forma asíncrona, la determinación requiere bajo ciertas circunstancias varios pasos de invocación [SWS_Dcm_00803]. El valor de retorno DCM_E_PENDING señala que la petición aún no ha finalizado y que son necesarias más invocaciones para completarla [SWS_Dcm_00803]. El valor de retorno E_OK se notifica cuando la comprobación ha concluido [SWS_Dcm_00803] (interpretación: es de presumir que E_OK finaliza la consulta, tras lo cual el parámetro supported contiene el resultado válido). Pregunta Q-22c62d306a7ac4f1 (abierta)
Concurrencia y restricciones
La interfaz está especificada como no reentrante (Non Reentrant) [SWS_Dcm_00803]. Por lo tanto, no se permiten invocaciones paralelas para el mismo DID u otros DID dentro de la misma instancia.
Este texto ha sido creado por una IA y se basa exclusivamente en los datos de especificación de AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I2)
función 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
Uso e interfaz de parámetros
La función Xxx_ReadDidData (Service-ID 0x40) está disponible a través de Dcm_Externals.h y solicita a la aplicación los valores de datos de un identificador de diagnosis (DID) [SWS_Dcm_00804]. La transferencia y retroalimentación se realizan mediante los siguientes parámetros:
DID: identificador del Data Identifier solicitado [SWS_Dcm_00804].Data: puntero al búfer en el que deben copiarse los datos útiles leídos [SWS_Dcm_00804].OpStatus: estado de progreso u operación de la solicitud actual [SWS_Dcm_00804].DataLength: longitud de los datos a leer [SWS_Dcm_00804].ErrorCode: parámetro de salida para recibir un código de respuesta negativo (NRC) [SWS_Dcm_00804].
Semántica asíncrona y valores de retorno
La función está definida como asíncrona (Asynchronous) y devuelve un estado de tipo Std_ReturnType [SWS_Dcm_00804]:
E_OK: la lectura de los datos fue exitosa [SWS_Dcm_00804].DCM_E_PENDING: la solicitud aún no ha concluido; se requieren más invocaciones para completarla [SWS_Dcm_00804].E_NOT_OK: la operación no fue exitosa [SWS_Dcm_00804].
Tratamiento de errores y concurrencia
Si la aplicación devuelve para Xxx_ReadDidData el valor de retorno E_NOT_OK, el módulo DCM envía una respuesta negativa con el código NRC establecido mediante el parámetro ErrorCode al comprobador de diagnosis [SWS_Dcm_00804]. La función está especificada como no reentrante (Non Reentrant) [SWS_Dcm_00804]. Interpretación: debido a la tramitación asíncrona con DCM_E_PENDING, es de suponer que la invocación se produce típicamente en el contexto de tarea cíclica del DCM. Pregunta Q-5e41e9fb7dc261b9 (abierta)
Esta nota de uso se ha generado automáticamente a partir de la especificación en SWS_Dcm_00804.
Guía del implementador pendiente (complejidad I2)
función 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.
La función Xxx_WriteDidData es invocada por el módulo DCM para solicitar a la aplicación que escriba el valor de datos de un DID [SWS_Dcm_00805]. La declaración está disponible a través de la cabecera Dcm_Externals.h [SWS_Dcm_00805].
Invocación y semántica
La invocación se realiza de forma asíncrona y está definida como no reentrante (Non Reentrant) [SWS_Dcm_00805]. En la llamada se pasan los siguientes parámetros [SWS_Dcm_00805]:
DID: identificador del identificador de datos a escribir.Data: puntero al búfer con los datos a escribir.OpStatus: estado de la operación actual.DataLength: longitud de los datos a escribir en bytes.ErrorCode: parámetro de salida para el código de respuesta negativa (NRC).
Valores de retorno y tratamiento de errores
Como valor de retorno, la función proporciona Std_ReturnType con los siguientes significados [SWS_Dcm_00805]:
E_OK: la orden de escritura se ejecutó con éxito.DCM_E_PENDING: La operación aún no ha concluido; se requieren llamadas adicionales para completarla.E_NOT_OK: la operación no fue exitosa. En este caso, el módulo DCM envía una respuesta negativa con el valor NRC pasado en el parámetro de salidaErrorCode.
Este texto fue generado por una IA a partir de la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
La función Xxx_ReadDidRangeDataLength sirve para solicitar al software de aplicación que devuelva la longitud de datos para un rango DID (DID Range) [SWS_Dcm_01271]. Forma parte del módulo AUTOSAR Dcm, cuenta con el Service-ID 0x5e y se proporciona a través del archivo de cabecera Dcm_Externals.h [SWS_Dcm_01271].
La llamada se realiza con semántica asíncrona (Asynchronous) a través de los siguientes parámetros de interfaz [SWS_Dcm_01271]:
DID(IN,uint16): Identifica el identificador de datos concreto (Data ID value) del rango DID solicitado [SWS_Dcm_01271].OpStatus(IN,Dcm_OpStatusType): Indica el estado de procesamiento actual de la operación en curso [SWS_Dcm_01271].DataLength(OUT,uint16*): Puntero a la longitud de los datos que se van a leer o escribir [SWS_Dcm_01271].
El valor de retorno de tipo Std_ReturnType señaliza el resultado de la consulta de longitud [SWS_Dcm_01271]:
E_OK: La petición fue correcta y la longitud determinada está lista [SWS_Dcm_01271].E_NOT_OK: La petición no fue correcta [SWS_Dcm_01271].DCM_E_PENDING: La ejecución aún no ha concluido y requiere llamadas sucesivas adicionales para su finalización [SWS_Dcm_01271].
En cuanto a la concurrencia, la interfaz está establecida como no reentrante (Non Reentrant) [SWS_Dcm_01271].
Nota de uso generada sobre la base de la especificación de DCM en AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
El módulo DCM llama a la interfaz asíncrona Xxx_GetInfotypeValueData tan pronto como se recibe una solicitud de diagnóstico para el OBD Service $09 y el InfoType solicitado no es un InfoType de disponibilidad («availability InfoType») [SWS_Dcm_00423]. Para proporcionar los datos, el DCM llama a todas las funciones configuradas para este InfoType y consolida los valores como respuesta a Service $09 [SWS_Dcm_00423]. La declaración está disponible a través de Dcm_Externals.h [SWS_Dcm_91014].
La transferencia y la notificación de los datos se realizan mediante parámetros de búfer y de estado definidos [SWS_Dcm_91014]:
OpStatus(in): indica el estado de avance actual de la operación en curso.DataValueBuffer(out): búfer para registrar los datos útiles específicos del InfoType.DataValueBufferSize(inout): contiene al momento de la llamada el tamaño máximo de búfer escribible en bytes y la función llamada asigna a él el número real de bytes de datos escritos.
Como función asíncrona, devuelve E_OK al finalizar con éxito, E_NOT_OK en caso de errores o DCM_E_PENDING si la operación aún no ha concluido y requiere llamadas adicionales para completarse [SWS_Dcm_91014]. Dado que la función está especificada como no reentrante (Non Reentrant), no deben realizarse llamadas concurrentes para la misma función [SWS_Dcm_91014].
Este texto ha sido generado por una IA y sirve como guía orientativa. El documento vinculante es la especificación oficial de AUTOSAR.
Guía del implementador pendiente (complejidad I2)
función 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.
La función Xxx_Start se declara a través del archivo de cabecera Dcm_Externals.h y solicita al software de aplicación que inicie la ejecución de una rutina de diagnóstico [SWS_Dcm_01203]. El módulo DCM invoca esta función en cuanto se recibe y verifica con éxito una petición de servicio UDS para RoutineControl (0x31) con la subfunción startRoutine [SWS_Dcm_00400], o bien cuando se recibe una petición de RoutineControl con un OBDTestId de no disponibilidad [SWS_Dcm_01392].
La interfaz admite formatos de datos fijos y variables, y opera de forma asíncrona [SWS_Dcm_01203]:
- Parámetros de entrada: Señales de entrada fijas
dataIn_1adataIn_no datos variables a través del campo de bytesdataInVar, así como el estado de operaciónOpStatus[SWS_Dcm_01203]. - Parámetros de salida: Señales de salida fijas
dataOut_1adataOut_no datos de salida variablesdataOutVar, así como el código de errorErrorCodepara mensajes de respuesta negativa [SWS_Dcm_01203]. - Parámetros de longitud: En caso de longitud de datos variable, el parámetro de entrada y salida
currentDataLengthtransporta la cantidad de bytes útiles endataInVarodataOutVar[SWS_Dcm_01203]. - Valores de retorno:
E_OKconfirma el inicio correcto,E_NOT_OKreporta un fallo,DCM_E_PENDINGseñala pasos de procesamiento aún en curso yDCM_E_FORCE_RCRRPsolicita el envío prematuro de una confirmación pendiente (NRC 0x78) [SWS_Dcm_01203].
En cuanto a la concurrencia, Xxx_Start se define como no reentrante (Non Reentrant) [SWS_Dcm_01203]. En secuencias asíncronas con el valor de retorno DCM_E_PENDING, el módulo DCM invoca la función de forma cíclica reanudando OpStatus hasta que el proceso haya concluido [SWS_Dcm_01203].
Si la operación concluye con éxito con E_OK, el módulo DCM devuelve una respuesta positiva de UDS con los datos proporcionados a través de dataOut como routineStatusRecord [SWS_Dcm_00401]. Si la ejecución falla con E_NOT_OK, el DCM transmite una respuesta negativa con el NRC especificado en el parámetro ErrorCode [SWS_Dcm_01203]. En el contexto de rutinas OBD, un valor de retorno distinto de E_OK conlleva el envío de NRC 0x22 [SWS_Dcm_01394].
Este texto ha sido generado por una IA y sirve de orientación. Únicamente es vinculante la especificación AUTOSAR.
Guía del implementador pendiente (complejidad I2)
función 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
usar
La función Xxx_StartConfirmation indica formalmente, conforme a [SWS_Dcm_91016], la transmisión de una respuesta a una solicitud StartRoutine previa. La interfaz está declarada en el archivo de cabecera Dcm_Externals.h y posee una semántica de ejecución síncrona ([SWS_Dcm_91016]). Como único parámetro de entrada se transmite ConfirmationStatus del tipo Dcm_ConfirmationStatusType, el cual describe el estado de confirmación de la transmisión de la rutina. No existen parámetros adicionales de entrada o salida según la especificación ([SWS_Dcm_91016]).
Tratamiento de errores y valores de retorno
Como valor de retorno, la función proporciona un valor de estado del tipo Std_ReturnType ([SWS_Dcm_91016]). En este caso, el valor E_OK confirma la realización correcta de la solicitud, mientras que E_NOT_OK señala un procesamiento no satisfactorio. No se definen códigos de error específicos o mensajes explícitos para el Development Error Tracer (DET) o Diagnostic Event Manager (DEM) para esta función en el payload.
Concurrencia y restricciones
En cuanto a la concurrencia, Xxx_StartConfirmation está clasificada como no reentrante (Non Reentrant) ([SWS_Dcm_91016]). Esto exige que el invocador evite estrictamente ejecuciones concurrentes o solapadas. Interpretación: es de prever que la función sea invocada por el DCM para notificar a la implementación de la rutina en el lado de la aplicación sobre la finalización del proceso de envío. Pregunta Q-be2dafd63bf2a9a5 (abierta)
Este texto ha sido generado por una IA y se basa en la norma AUTOSAR Release R20-11.
Guía del implementador pendiente (complejidad I2)
función 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
usar
El DCM llama a la función [SWS_Dcm_01204] para finalizar la ejecución de una rutina de diagnóstico en curso en la aplicación. La llamada se produce en el marco del servicio UDS RoutineControl (0x31) con la subfunción stopRoutine, en cuanto las comprobaciones previas requeridas hayan concluido con éxito [SWS_Dcm_00402]. La interfaz cuenta con el Service-ID 0x5c y está declarada a través del archivo de cabecera Dcm_Externals.h [SWS_Dcm_01204].
Parámetros y valores de retorno
En función de la configuración de la rutina, el DCM transfiere datos de entrada fijos o variables (de dataIn_1 a dataIn_n o bien dataInVar) y referencias de búfer para datos de salida (de dataOut_1 a dataOut_n o bien dataOutVar) [SWS_Dcm_01204], [SWS_Dcm_00402]. En caso de longitud de datos variable, currentDataLength contiene el número de bytes de los datos de entrada o salida [SWS_Dcm_01204]. Como valores de retorno de Std_ReturnType se establecen:
E_OK: Rutina finalizada con éxito; el DCM transmite una respuesta UDS positiva con los datos de salida generados como routineStatusRecord [SWS_Dcm_01204], [SWS_Dcm_00403].E_NOT_OK: Falló la cancelación de la rutina; el DCM envía una respuesta UDS negativa con el NRC almacenado enErrorCode[SWS_Dcm_01204].DCM_E_PENDING: La operación aún está en curso; el DCM vuelve a llamar a la función para su finalización [SWS_Dcm_01204].DCM_E_FORCE_RCRRP: La aplicación solicita al DCM la transmisión de una respuesta pendiente (NRC 0x78) [SWS_Dcm_01204].
Concurrencia y restricciones
La operación está especificada como asíncrona y no reentrante (Non Reentrant) [SWS_Dcm_01204]. Si se produce un error durante la ejecución, la aplicación debe escribir en el parámetro ErrorCode el Dcm_NegativeResponseCodeType adecuado y devolver E_NOT_OK [SWS_Dcm_01204].
Esta nota de uso fue generada automáticamente a partir de la especificación AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I1)
función 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
La función síncrona Xxx_StopConfirmation sirve para indicar la transmisión de una respuesta a una solicitud StopRoutine previa [SWS_Dcm_91017]. Al invocarse, el sistema transmite mediante el parámetro de entrada ConfirmationStatus del tipo Dcm_ConfirmationStatusType el estado de confirmación concreto de la finalización de la rutina [SWS_Dcm_91017]. Como valor de retorno, la interfaz suministra un valor del tipo Std_ReturnType: aquí, E_OK indica que la solicitud se procesó correctamente, mientras que E_NOT_OK señala una solicitud no satisfactoria [SWS_Dcm_91017].
En relación con la concurrencia y las condiciones de invocación, la interfaz está especificada como no reentrante (Non Reentrant) y cuenta con el Service-ID 0x69 [SWS_Dcm_91017]. La declaración se pone a disposición a través del archivo de cabecera Dcm_Externals.h [SWS_Dcm_91017]. Interpretación: debido a su provisión mediante Dcm_Externals.h y al prefijo configurable Xxx_, es de prever que la función sea invocada por el módulo DCM e implementada por un componente de software específico de la aplicación o por el manejador de rutinas competente. Pregunta Q-743e69ff8cf92321 (abierta)
No se especifican códigos de error particulares ni notificaciones a la gestión de errores de desarrollo (DET) o al Diagnostic Event Manager (DEM) en los requisitos. En este nivel de interfaz, el comportamiento en caso de error se limita formalmente a la devolución del valor de error E_NOT_OK si el procesamiento no se pudo completar con éxito [SWS_Dcm_91017].
Esta nota de uso se basa en la especificación AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I2)
función 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
El módulo DCM llama a la función [SWS_Dcm_91013] para consultar a la aplicación el resultado de la ejecución de una rutina. Esto ocurre en el marco del servicio UDS RoutineControl (0x31) con la subfunción requestRoutineResults tan pronto como todas las comprobaciones del lado de entrada se han completado con éxito [SWS_Dcm_00404]. La interfaz está disponible a través de Dcm_Externals.h, opera de forma asíncrona y está especificada como no reentrante [SWS_Dcm_91013].
A través del parámetro OpStatus, el módulo DCM controla el flujo de la operación. La función acepta datos de entrada fijos (dataIn_1 a dataIn_n) o datos variables (dataInVar) derivados del routineControlOptionRecord [SWS_Dcm_00404]. A través de parámetros de salida fijos (dataOut_1 a dataOut_n) o búferes de salida variables (dataOutVar y variableDataLength), la aplicación transfiere los datos de resultado al DCM [SWS_Dcm_91013].
Si la consulta finaliza con éxito con E_OK, el módulo DCM combina los datos de salida en un routineStatusRecord según el parámetro de configuración DcmDspRequestRoutineResultsOut y envía una respuesta positiva [SWS_Dcm_00405]. Si la operación aún continúa, la aplicación puede devolver DCM_E_PENDING para llamadas sucesivas o DCM_E_FORCE_RCRRP para enviar una respuesta provisional (NRC 0x78) [SWS_Dcm_91013].
En caso de error, la función devuelve E_NOT_OK y establece ErrorCode en el valor NRC correspondiente, tras lo cual el módulo DCM transmite una respuesta negativa correspondiente [SWS_Dcm_91013]. Como la función no es reentrante, no debe llamarse en paralelo para la misma rutina [SWS_Dcm_91013].
Nota de uso generada automáticamente a partir de AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I2)
función 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
Uso y semántica
La función Xxx_RequestResultsConfirmation sirve para la confirmación de una respuesta de diagnóstico transmitida a una solicitud RequestRoutineResults [SWS_Dcm_91018]. Está declarada en el archivo de cabecera Dcm_Externals.h y posee el Service-ID 0x70 [SWS_Dcm_91018]. Mediante el parámetro de entrada ConfirmationStatus del tipo Dcm_ConfirmationStatusType, la implementación recibe información sobre el estado con el que se concluyó la transmisión de los resultados de la rutina [SWS_Dcm_91018]. La invocación se ejecuta de forma síncrona y devuelve un Std_ReturnType, indicando E_OK un procesamiento correcto y señalando E_NOT_OK un fallo [SWS_Dcm_91018].
Concurrencia y restricciones
Según la especificación, la función está clasificada como no reentrante (Non Reentrant) [SWS_Dcm_91018]. Por lo tanto, no deben tener lugar invocaciones simultáneas para la misma instancia. Interpretación: la llamada por parte del módulo DCM se realiza secuencialmente en el contexto de la confirmación de la respuesta, por lo que la función debería ejecutarse sin operaciones bloqueantes. Pregunta Q-935a06744e7b9af7 (abierta)
Tratamiento de errores e interacción
El tratamiento de errores se limita al valor de retorno E_NOT_OK, ya que no se especifican errores de desarrollo (DET) ni errores de producción (DEM) independientes para esta llamada [SWS_Dcm_91018]. Interpretación: la función sirve como punto de conexión de confirmación específico de la aplicación (callback) para el DCM, a fin de sincronizar al nivel de usuario la finalización de la orden de diagnóstico tras el envío de los resultados de la rutina. Pregunta Q-d3dd0142a30e1363 (abierta)
Este texto ha sido generado por una IA. Las indicaciones se basan en AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I2)
función 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
La función Xxx_RequestControl sirve para ejecutar una función de control específica de TID y se utiliza típicamente para implementar el OBD Service $08 ([SWS_Dcm_01338]). El módulo DCM llama a la función configurada de forma síncrona tan pronto como se recibe una solicitud de OBD Service $08 cuyo Test-ID (TID) no representa un TID de disponibilidad («availability TID») ([SWS_Dcm_00419]). La declaración de la interfaz se proporciona a través del archivo de cabecera Dcm_Externals.h ([SWS_Dcm_01338]).
Parámetros y gestión de búferes
InBuffer: puntero a los datos útiles de la solicitud OBD recibida. El número de bytes de estos datos de entrada debe coincidir exactamente con el tamaño configurado en el módulo DCM ([SWS_Dcm_00419], [SWS_Dcm_01338]).OutBuffer: puntero al búfer de salida en el que la función de control llamada deposita sus resultados. El tamaño del búfer está predeterminado y se toma de la configuración del módulo DCM ([SWS_Dcm_00419], [SWS_Dcm_01338]).
Valores de retorno y tratamiento de errores
La función devuelve como valor de estado Std_ReturnType: el valor E_OK señala una ejecución correcta, mientras que E_NOT_OK indica un estado de error ([SWS_Dcm_01338]). Si Xxx_RequestControl devuelve un resultado distinto de E_OK, el módulo DCM responde con el código de respuesta negativo NRC 0x22 (Conditions Not Correct) ante el comprobador de diagnóstico ([SWS_Dcm_01192]).
Concurrencia y restricciones
La función está especificada como no reentrante (Non Reentrant) y posee el Service-ID 0x63 ([SWS_Dcm_01338]).
Nota de la IA: este texto ha sido generado automáticamente a partir de la especificación AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I1)
función 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.
La función de callback Xxx_StartProtocol se proporciona a través de la cabecera Dcm_Externals.h y permite a la aplicación, con la primera petición de un protocolo de diagnóstico, comprobar las condiciones de entorno actuales y autorizar o denegar el procesamiento posterior del protocolo [SWS_Dcm_01339].
Contexto de llamada y parámetros
La llamada la realiza el submódulo DSL del DCM de forma síncrona y no reentrante para todas las funciones configuradas [SWS_Dcm_00036], [SWS_Dcm_01339]. A la función se le transfieren los siguientes parámetros de entrada [SWS_Dcm_01339]:
ProtocolType: tipo del protocolo de diagnóstico que se va a iniciar,TesterSourceAddress: dirección de origen del tester solicitante,ConnectionId: identificador unívoco de la conexión.
Valores de retorno y tratamiento de errores
Como valor de retorno, la función proporciona Std_ReturnType con E_OK en caso de habilitación correcta, E_NOT_OK en caso de comprobación fallida o E_PROTOCOL_NOT_ALLOWED si el protocolo no es admisible [SWS_Dcm_01339]. Si al menos una función Xxx_StartProtocol configurada no devuelve E_OK, el DCM interrumpe el inicio del protocolo y responde con NRC 0x22 [SWS_Dcm_00674].
Inicialización tras habilitación correcta
Solo cuando todos los callbacks Xxx_StartProtocol configurados han devuelto E_OK, el DCM ejecuta los pasos de inicialización posteriores:
- Carga de los parámetros de temporización estándar a partir de la configuración de la sesión por defecto [SWS_Dcm_00144],
- Activación de la tabla de servicios [SWS_Dcm_00145],
- Restablecimiento del estado de seguridad (Security State) [SWS_Dcm_00146],
- Restablecimiento del estado de sesión a la sesión de diagnóstico por defecto, así como ejecución del cambio de modo mediante
SchM_Switch_<bsnp>_DcmDiagnosticSessionControlaRTE_MODE_DcmDiagnosticSessionControl_DEFAULT_SESSION[SWS_Dcm_00147].
Esta nota de uso fue creada de forma automatizada sobre la base de los requisitos de especificación de AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
La función de callback síncrona Xxx_StopProtocol informa a la aplicación sobre la finalización de un protocolo de diagnóstico ([SWS_Dcm_01340]). Se declara a través del archivo de cabecera Dcm_Externals.h y está especificada como no reentrante (Non Reentrant) ([SWS_Dcm_01340]).
La llamada a todas las funciones Xxx_StopProtocol configuradas (configuradas mediante el parámetro DcmDslCallbackDCMRequestService) la desencadena el submódulo DSL en los siguientes escenarios de preemption:
- Una petición de diagnóstico en curso es desplazada por una petición con mayor prioridad de otro protocolo ([SWS_Dcm_00459]).
- Una petición con prioridad inferior o igual desplaza a un protocolo con mayor prioridad, siempre y cuando este se encuentre en la Default Session y no haya ninguna petición activa en fase de ejecución ([SWS_Dcm_00625]).
Durante la llamada se transfieren el tipo de protocolo (ProtocolType), la dirección de origen del tester (TesterSourceAddress) y el identificador de conexión (ConnectionId) ([SWS_Dcm_01340]). Como valor de retorno, la función proporciona E_OK en caso de ejecución correcta o E_NOT_OK ([SWS_Dcm_01340]). Si la función no devuelve E_OK, el DCM responde con el código de respuesta negativa NRC 0x22 ([SWS_Dcm_01190]).
Este texto fue generado de forma automatizada y se basa exclusivamente en las prescripciones de especificación para AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I1)
función 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
La función síncrona y no reentrante Xxx_Indication se declara a través de la cabecera Dcm_Externals.h [SWS_Dcm_01341]. Indica a la aplicación la inminente ejecución de un servicio de diagnóstico y le permite rechazar la ejecución de la solicitud de servicio [SWS_Dcm_01341]. La llamada la realiza de forma síncrona el submódulo DSD en todos los puertos ServiceRequestIndication configurados si están presentes los contenedores de configuración DcmDsdServiceRequestManufacturerNotification [SWS_Dcm_00218] o DcmDsdServiceRequestSupplierNotification [SWS_Dcm_00516].
Como parámetros de entrada se transfieren el Service ID (SID), los datos de solicitud sin SID (RequestData, DataSize), el tipo de direccionamiento (ReqType), el ID de conexión (ConnectionId), el tipo de protocolo (ProtocolType) y la dirección de origen del tester (TesterSourceAddress) [SWS_Dcm_01341].
Mediante el valor de retorno de tipo Std_ReturnType, la aplicación controla la reacción del submódulo DSD [SWS_Dcm_01341]:
E_OK: La solicitud ha sido correcta y se continúa procesando de manera regular [SWS_Dcm_01341].E_REQUEST_NOT_ACCEPTED: La solicitud no se acepta. Si al menos una función de indicación invocada devuelveE_REQUEST_NOT_ACCEPTED, el submódulo DSD suprime cualquier respuesta al tester [SWS_Dcm_00462], [SWS_Dcm_00517].E_NOT_OK: La solicitud no ha tenido éxito. En este caso, la aplicación escribe un código de respuesta negativa en el parámetro de salidaErrorCode[SWS_Dcm_01341]. Siempre que ninguna llamada devuelvaE_REQUEST_NOT_ACCEPTED, el submódulo DSD envía una respuesta negativa con este NRC [SWS_Dcm_00463], [SWS_Dcm_00518].
Si en el caso de múltiples notificaciones configuradas varias funciones devuelven E_NOT_OK y ninguna función devuelve E_REQUEST_NOT_ACCEPTED, el submódulo DSD utiliza obligatoriamente para la respuesta negativa el ErrorCode de la primera función que responda con E_NOT_OK [SWS_Dcm_01321], [SWS_Dcm_01322].
Este texto fue generado por una IA a partir de la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
La función de callback Xxx_Confirmation sirve para comunicar síncronamente a la aplicación la finalización de una transmisión de diagnóstico: bien el envío correcto o bien un error de transmisión ([SWS_Dcm_01342]). La declaración se proporciona a través de la cabecera Dcm_Externals.h ([SWS_Dcm_01342]).
Durante la llamada por parte del submódulo de DCM DSD (Diagnostic Service Dispatcher) se transfieren datos de contexto esenciales de la orden de diagnóstico ([SWS_Dcm_01342], [SWS_Dcm_00741]):
SID: Identificador del servicio de diagnóstico ([SWS_Dcm_01342]).ReqType: Tipo de direccionamiento (0para físico,1para funcional) ([SWS_Dcm_01342]).ConnectionId,ProtocolTypeyTesterSourceAddress: Atributos inequívocos de conexión y de protocolo, así como la dirección de origen del tester ([SWS_Dcm_01342]).ConfirmationStatus: Información de estado sobre el éxito o error de la transmisión ([SWS_Dcm_01342]).
Como valor de retorno, la operación proporciona Std_ReturnType (E_OK en caso de procesamiento de confirmación correcto; de lo contrario, E_NOT_OK) ([SWS_Dcm_01342]). El DSD llama a la función en todos los puertos que utilicen la interfaz ServiceRequestNotification (configurados mediante DcmDsdServiceRequestManufacturerNotification o DcmDsdServiceRequestSupplierNotification) ([SWS_Dcm_00741]).
Respecto al orden de llamadas, Xxx_Confirmation se ejecuta normalmente justo a continuación de DspInternal_DcmConfirmation() ([SWS_Dcm_00742]). No obstante, si se da el caso especial según [SWS_Dcm_01172], el DSD llama exclusivamente a Xxx_Confirmation, mientras que se omite la llamada interna.
Dado que Xxx_Confirmation está especificada como no reentrante (Non Reentrant) y síncrona ([SWS_Dcm_01342]), es de prever que la implementación por parte de la aplicación no contenga procesos bloqueantes ni desencadene retrollamadas reentrantes hacia el DCM (interpretación). Pregunta Q-58ce3e44dc61540b (abierta)
Este texto ha sido elaborado por una IA. Todos los datos se basan exclusivamente en el alcance de especificación de AUTOSAR de la versión R20-11.
Guía del implementador pendiente (complejidad I2)
función 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.
usar
La función de callout síncrona Xxx_ClearDTCCheckFnc se proporciona para la aplicación a través del archivo de cabecera Dcm_Externals.h [SWS_Dcm_01270]. Sirve para la comprobación específica de fabricante y proveedor de condiciones antes de borrar un grupo solicitado de códigos de diagnóstico de error (Group of DTC). Como parámetro de entrada se le transfiere el identificador GoDTC de tipo uint32, que especifica el grupo de códigos de error que se va a borrar [SWS_Dcm_01270].
Tratamiento de errores y valores de retorno
La habilitación de la solicitud de borrado se efectúa a través del valor de retorno de tipo Std_ReturnType en combinación con el parámetro de salida ErrorCode [SWS_Dcm_01270]:
E_OK: La aplicación permite el borrado del grupo de códigos de error solicitadoGoDTC[SWS_Dcm_01270].E_NOT_OK: La aplicación prohíbe el borrado del grupo. En este caso de error, debe establecerse un código de respuesta negativa a través del parámetro de salidaErrorCodede tipoDcm_NegativeResponseCodeType*. A continuación, el módulo DCM envía una respuesta negativa con el valor de NRC indicado enErrorCode[SWS_Dcm_01270].
Concurrencia y restricciones
La función cuenta con el Service-ID 0x5f, trabaja de forma síncrona y está definida como no reentrante (Non Reentrant) [SWS_Dcm_01270]. Por lo tanto, el contexto de llamada debe garantizar que las llamadas se realicen secuencialmente y sin solapamientos concurrentes.
Esta nota de uso fue generada por una IA sobre la base de la especificación SWS_Dcm_01270 de AUTOSAR R20-11.
función 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.
La función de callout Xxx_ProcessRequestDownload ([SWS_Dcm_00754]) es llamada por el módulo Dcm para iniciar un proceso de descarga durante el procesamiento del servicio UDS RequestDownload. Está definida como asíncrona y no reentrante, y se proporciona a través de la cabecera Dcm_Externals.h ([SWS_Dcm_00754]).
Uso y parámetros
La llamada se efectúa paso a paso mediante el parámetro OpStatus con los valores DCM_INITIAL, DCM_PENDING o DCM_CANCEL ([SWS_Dcm_00754]). Como parámetros de entrada se transfieren el método de compresión y de cifrado (DataFormatIdentifier), el bloque de memoria (MemoryIdentifier), la dirección inicial (MemoryAddress) y el tamaño de memoria sin comprimir en bytes (MemorySize) ([SWS_Dcm_00754]). Antes de la llamada, el Dcm escribe en el parámetro inout BlockLength el tamaño de búfer máximo posible ([SWS_Dcm_01417]). La función ajusta este valor a la longitud de bloque máxima admisible para operaciones de escritura posteriores ([SWS_Dcm_00754]).
Valores de retorno e interacción
La función devuelve E_OK en caso de ejecución correcta, DCM_E_PENDING si el procesamiento aún continúa, o E_NOT_OK en caso de error ([SWS_Dcm_00754]):
- Si la llamada devuelve
E_OKy el valor negociadoBlockLengthes menor o igual que la longitud de búfer soportada de la conexión de protocolo actual, elDcmenvía una respuesta positiva con este valor comomaxNumberOfBlockLength([SWS_Dcm_01419]). - Si la longitud de búfer devuelta supera el tamaño de búfer soportado de la conexión de protocolo, el
Dcmnotifica el error DETDCM_E_INTERFACE_BUFFER_OVERFLOW([SWS_Dcm_01418]). - Al devolver
E_NOT_OK, elDcmenvía una respuesta negativa UDS (NRC) con el valor establecido en el parámetro de salidaErrorCode([SWS_Dcm_00754], [SWS_Dcm_00757]).
Esta nota de uso ha sido generada automáticamente y sirve como ayuda para la especificación AUTOSAR.
Guía del implementador pendiente (complejidad I2)
función 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.
La función callout Xxx_ProcessRequestTransferExit es invocada por el módulo DCM para finalizar un proceso de descarga o subida en curso en el marco del servicio UDS RequestTransferExit [SWS_Dcm_00755]. La declaración de la interfaz se proporciona a través de la cabecera Dcm_Externals.h [SWS_Dcm_00755].
Uso y semántica
La función opera de forma asíncrona y está definida como no reentrante [SWS_Dcm_00755]. La invocación se realiza pasando el estado de ejecución actual OpStatus (valores posibles: DCM_INITIAL, DCM_PENDING o DCM_CANCEL) [SWS_Dcm_00755]. Como valores de retorno de tipo Std_ReturnType se especifican:
E_OK: la transferencia se finalizó con éxito [SWS_Dcm_00755].DCM_E_PENDING: la finalización de la transferencia aún no ha concluido y requiere invocaciones sucesivas [SWS_Dcm_00755].E_NOT_OK: la finalización falló o el búfer de respuesta es demasiado pequeño [SWS_Dcm_00755].
Tratamiento de errores e interacción
Si la operación Xxx_ProcessRequestTransferExit devuelve el valor de error E_NOT_OK, debe pasarse un código de respuesta negativo a través del parámetro de salida ErrorCode. Acto seguido, el módulo DCM envía una respuesta UDS negativa (NRC) con exactamente este código de error al equipo de prueba de diagnosis [SWS_Dcm_00759]. En caso de una invocación de cancelación, el módulo DCM pasa el estado DCM_CANCEL a la función [SWS_Dcm_00755].
Este texto ha sido generado automáticamente. Todas las indicaciones se basan exclusivamente en la especificación AUTOSAR.
Guía del implementador pendiente (complejidad I2)
función 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.
El módulo DCM invoca la función callout Xxx_ProcessRequestUpload para iniciar el servicio UDS RequestUpload ([SWS_Dcm_00756]). Se proporciona a través de Dcm_Externals.h y está especificada como no reentrante y asíncrona ([SWS_Dcm_00756]). A través del parámetro OpStatus (con los estados DCM_INITIAL, DCM_PENDING, DCM_CANCEL o DCM_FORCE_RCRRP_OK), el DCM controla el flujo de la operación ([SWS_Dcm_00756]).
En la invocación, el DCM pasa, entre otros, el método de compresión y cifrado (DataFormatIdentifier), el bloque de memoria (MemoryIdentifier), la dirección inicial (MemoryAddress), así como el tamaño de memoria sin comprimir en bytes (MemorySize) ([SWS_Dcm_00756]). El parámetro de entrada/salida BlockLength define el número máximo de bytes para una invocación posterior de Dcm_ReadMemory; antes de la llamada, el DCM escribe el tamaño de búfer máximo posible en este parámetro ([SWS_Dcm_00756], [SWS_Dcm_01420]).
Como valores de retorno de Xxx_ProcessRequestUpload están definidos E_OK en caso de solicitud exitosa, E_NOT_OK en caso de errores y DCM_E_PENDING si el procesamiento aún no ha concluido ([SWS_Dcm_00756]):
- Si la función devuelve
E_NOT_OK, el módulo DCM envía una respuesta UDS negativa con el valor NRC establecido en el parámetro de salidaErrorCode([SWS_Dcm_00756], [SWS_Dcm_00758]). - Si la función devuelve un valor de búfer solicitado en
BlockLengthque es menor o igual que la longitud de búfer soportada de la conexión de protocolo actual, el DCM utiliza este valor comomaxNumberOfBlockLengthen la respuesta positiva ([SWS_Dcm_01422]). - Por el contrario, si la longitud de búfer devuelta resulta ser mayor que la soportada por la conexión de protocolo, el DCM notifica el error DET
DCM_E_INTERFACE_BUFFER_OVERFLOW([SWS_Dcm_01421]).
Este texto ha sido generado por una IA. Se basa exclusivamente en las especificaciones del payload AUTOSAR suministrado.
Guía del implementador pendiente (complejidad I2)
función 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
La función callout Xxx_ProcessTransferDataRead sirve para la lectura asíncrona de datos de memoria de la unidad de control a partir de la dirección inicial (MemoryAddress) y la longitud (MemorySize) conforme a [SWS_Dcm_91070]. Se proporciona a través de la cabecera Dcm_Externals.h y admite los servicios UDS ReadMemoryByAddress, RequestUpload, TransferData, así como ReadDataByIdentifier en el caso de DID definidos dinámicamente mediante direcciones de memoria [SWS_Dcm_91070].
La invocación se realiza de forma no reentrante (Non Reentrant) y se controla mediante el parámetro OpStatus ([SWS_Dcm_91070]):
DCM_INITIAL: Inicia la operación de lectura.DCM_PENDING: Continúa un proceso de lectura que aún no ha finalizado.DCM_CANCEL: Cancela la operación en curso.DCM_FORCE_RCRRP_OK: Confirma la transmisión de una respuesta pendiente.
Para el direccionamiento se puede seleccionar un bloque o área de memoria mediante MemoryIdentifier; si no se utiliza este parámetro, debe ponerse obligatoriamente a 0 [SWS_Dcm_91070]. Los datos leídos se devuelven a través del parámetro de salida MemoryData, que apunta directamente al búfer de diagnóstico del DCM [SWS_Dcm_91070].
Como valores de retorno están definidos DCM_READ_OK en caso de éxito, DCM_READ_PENDING si la lectura aún continúa, así como DCM_READ_FORCE_RCRRP si el proceso está pendiente y debe enviarse de inmediato un mensaje de respuesta pendiente (Response Pending) [SWS_Dcm_91070]. Si la lectura falla, la función devuelve DCM_READ_FAILED; en este caso debe transferirse a través del puntero ErrorCode un código de respuesta negativa (NRC), el cual transmite el DCM en una respuesta negativa [SWS_Dcm_91070]. (Interpretación: Aunque la nota de especificación relativa a ErrorCode menciona Dcm_ReadMemory, es de suponer que aquí se refiere en sentido análogo al fallo de este callout). Pregunta Q-fe76e2599624baf7 (abierta)
Esta nota de uso se basa en la especificación AUTOSAR CP R20-11 y ha sido creada de forma automatizada.
Guía del implementador pendiente (complejidad I2)
función 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
Uso y semántica
El callout asíncrono Xxx_ProcessTransferDataWrite (Service-ID 0x27) está disponible a través de Dcm_Externals.h y es invocado por el módulo DCM para escribir datos de memoria para los servicios UDS WriteMemoryByAddress, RequestDownload y TransferData [SWS_Dcm_91071]. La secuencia del proceso de escritura se controla mediante el parámetro OpStatus con los valores DCM_INITIAL, DCM_PENDING, DCM_CANCEL o DCM_FORCE_RCRRP_OK [SWS_Dcm_91071].
Parámetros y valores de retorno
La función procesa los siguientes parámetros [SWS_Dcm_91071]:
MemoryIdentifier: Identificador del bloque de memoria; si no se utiliza este parámetro, debe ponerse a 0 [SWS_Dcm_91071].MemoryAddress: Dirección inicial de la memoria del servidor en la que se copian los datos; en caso de no utilización (por ejemplo, con datos comprimidos), debe pasarse el valor 0 [SWS_Dcm_91071].MemorySize: Número de bytes que se van a escribir enMemoryData[SWS_Dcm_91071].MemoryData: Puntero a los datos que se van a escribir en el búfer de diagnóstico del DCM [SWS_Dcm_91071].ErrorCode: Parámetro de salida para el código de respuesta negativa (NRC) en caso de error [SWS_Dcm_91071].
El valor de retorno de tipo Dcm_ReturnWriteMemoryType indica el resultado de la operación [SWS_Dcm_91071]:
DCM_WRITE_OK: Operación de escritura finalizada correctamente [SWS_Dcm_91071].DCM_WRITE_PENDING: El proceso de escritura aún no ha concluido [SWS_Dcm_91071].DCM_WRITE_FORCE_RCRRP: El proceso de escritura aún está pendiente; la transmisión de la respuesta pendiente (Response Pending) se inicia de inmediato [SWS_Dcm_91071].DCM_WRITE_FAILED: La operación de escritura ha fallado [SWS_Dcm_91071].
Tratamiento de errores y concurrencia
Si el callout devuelve el valor DCM_WRITE_FAILED, el módulo DCM envía una respuesta negativa con el valor de NRC transferido en el parámetro ErrorCode [SWS_Dcm_91071]. El callout está especificado como no reentrante (Non Reentrant) y, por lo tanto, no debe ejecutarse de forma concurrente [SWS_Dcm_91071].
Esta nota de uso se ha creado de forma automatizada sobre la base de la especificación de AUTOSAR.
Guía del implementador pendiente (complejidad I2)
tipo Dcm_StatusType [SWS_Dcm_00976] 📄 PDF
Base item type to transport status information.
El tipo Dcm_StatusType sirve como tipo básico de estado y de retorno para la transferencia de información de estado dentro del módulo Dcm y se proporciona a través del archivo de cabecera Dcm.h [SWS_Dcm_00976]. Se basa en el tipo estándar uint8 y define valores de estado estandarizados para respuestas de interfaces específicas del DCM [SWS_Dcm_00976].
Valores de estado definidos y tratamiento de errores
La especificación define para Dcm_StatusType los siguientes códigos de estado y de error [SWS_Dcm_00976]:
DCM_E_OK(0x00): indica que la operación solicitada se ejecutó o se aceptó con éxito [SWS_Dcm_00976].DCM_E_ROE_NOT_ACCEPTED(0x06): indica que el DCM rechazó una solicitud ResponseOnOneEvent, por ejemplo porque una operación ResponseOnOneEvent previa aún no ha concluido; el valor se emplea en la interfazDcm_ResponseOnOneEvent()[SWS_Dcm_00976].DCM_E_PERIODICID_NOT_ACCEPTED(0x07): señaliza que el DCM no aceptó una solicitud de transmisión periódica, por ejemplo porque una transmisión periódica en curso aún no ha finalizado; este estado se utiliza en la interfazDcm_ResponseOnOneDataByPeriodicId()[SWS_Dcm_00976].
Restricciones y condiciones de llamada
Los invocadores de las interfaces mencionadas deben evaluar el valor de retorno de tipo Dcm_StatusType para determinar si las nuevas solicitudes pueden aceptarse inmediatamente o si fueron descartadas debido a transmisiones aún en curso [SWS_Dcm_00976]. Es de esperar que una solicitud repetida solo tenga posibilidades de éxito una vez que los procesos previos de evento o transmisión hayan concluido por completo [SWS_Dcm_00976]. Pregunta Q-901ec7e3aac8901c (abierta)
Este texto fue creado por una IA y se basa en la especificación AUTOSAR.
Guía del implementador pendiente (complejidad I1)
tipo Dcm_CommunicationModeType [SWS_Dcm_00981] 📄 PDF
Manager
El tipo de datos Dcm_CommunicationModeType es un tipo enumerado declarado en Dcm.h basado en uint8 ([SWS_Dcm_00981]). Define los modos de comunicación para el control selectivo de las vías de transmisión (Tx) y recepción (Rx). El rango de valores abarca los valores 0x00 a 0x0B para datos de aplicación normales (NORM), la gestión de red (NM) y ambas ramas de comunicación combinadas (NORM_NM) ([SWS_Dcm_00981]).
El tipo se utiliza como parámetro en invocaciones de la interfaz BSW BswM_Dcm_CommunicationMode_CurrentState. A través de esta, el DCM reenvía el modo actual al BSW Mode Manager tras la confirmación de envío (Sent Confirmation) de una solicitud de servicio UDS CommunicationControl (servicio 0x28) ([SWS_Dcm_00512], [SWS_Dcm_00785]). El valor de modo concreto corresponde a los parámetros communicationType y controlType de la solicitud de diagnosis recibida ([SWS_Dcm_00512]).
La interacción y las redes afectadas se rigen por el parámetro de subred de la solicitud UDS:
- Con la subred
0x00, la actualización se realiza para todos los canales de red configurados enDcmDspComControlAllChannel([SWS_Dcm_00512]). - Con la subred
0x0F, se notifica el modo de comunicación del canal de recepción de diagnosis actual ([SWS_Dcm_00785]). - Para subredes de
0x01a0x0E, se comprueba la compatibilidad; las subredes no compatibles se rechazan con el código de respuesta negativa 0x31 ([SWS_Dcm_00786]). - En subfunciones con direccionamiento extendido (como
enableRxAndDisableTxWithEnhancedAddressInformationoenableRxAndTxWithEnhancedAddressInformation), la llamada se realiza para el canal referenciado mediante el Sub-Node-ID ([SWS_Dcm_01077], [SWS_Dcm_01079]).
Este texto fue generado por una IA a partir de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I2)
tipo 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.
tipo Dcm_ReturnReadMemoryType [SWS_Dcm_00985] 📄 PDF
Return values of Callout Dcm_ReadMemory
tipo Dcm_ReturnWriteMemoryType [SWS_Dcm_00986] 📄 PDF
Return type of callout Dcm_WriteMemory
tipo 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
El tipo de datos Dcm_EcuStartModeType se deriva de uint8 y se proporciona a través de la cabecera Dcm.h [SWS_Dcm_00987]. Sirve al Diagnostic Communication Manager (DCM) para determinar el modo de inicio y señala si debe transmitirse una respuesta de diagnóstico tras un cambio desde el bootloader [SWS_Dcm_00987].
El rango de valores comprende dos estados definidos [SWS_Dcm_00987]:
DCM_COLD_START(0x00): La unidad de control arranca de manera regular en funcionamiento normal [SWS_Dcm_00987].DCM_WARM_START(0x01): La unidad de control arranca a raíz de un salto desde el bootloader [SWS_Dcm_00987].
En la interacción entre interfaces, Dcm_EcuStartModeType actúa como valor de retorno síncrono del callout Dcm_GetProgConditions, el cual está disponible a través de Dcm_Externals.h [SWS_Dcm_00544]. Esta función se invoca durante la inicialización del DCM para determinar si debe enviarse una respuesta positiva ($50 o $51) [SWS_Dcm_00544]. En este proceso, las condiciones límite detalladas del salto desde el bootloader se transfieren al DCM a través del parámetro de salida ProgConditions [SWS_Dcm_00544].
En cuanto a la ejecución y el tratamiento de errores, el callout consultor está definido como síncrono y no reentrante [SWS_Dcm_00544]. No se han determinado códigos de error específicos ni notificaciones directas a DET o DEM para este tipo de datos.
Esta nota de uso fue generada automáticamente a partir de la especificación AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I1)
tipo 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.
La estructura Dcm_ProgConditionsType sirve para el intercambio de datos de estado y de contexto entre la aplicación y el bootloader en secuencias de programación o tras un reinicio de la ECU [SWS_Dcm_00988]. Agrupa información de conexión como ConnectionId y TesterAddress, identificadores de diagnóstico como Sid y SubFncId, así como flags de control como ReprogramingRequest, ApplUpdated y ResponseRequired [SWS_Dcm_00988].
Su uso se efectúa a través de dos interfaces centrales:
- Antes del salto al bootloader o en caso de reinicio, el DCM transfiere la estructura a la función asíncrona y no reentrante
Dcm_SetProgConditions()[SWS_Dcm_00543]. Los posibles valores de retorno sonE_OK,E_NOT_OK,DCM_E_PENDING, así comoDCM_E_FORCE_RCRRPen caso de solicitarse un mensaje de respuesta pendiente (NRC 0x78) [SWS_Dcm_00543]. - Tras el reinicio, el DCM llama durante su inicialización al callout síncrono y no reentrante
Dcm_GetProgConditions()para leer las condiciones almacenadas y determinar elDcm_EcuStartModeType[SWS_Dcm_00544]. Es de prever que el integrador almacene estos datos típicamente a través de RAM no volátil frente a reinicios o de memoria no volátil (interpretación). Pregunta Q-026bc7bc93f5502c (abierta)
En la posterior interacción del sistema, el DCM evalúa la estructura: en cuanto el ComM notifica la plena capacidad de comunicación, el DCM envía la respuesta de diagnóstico pendiente para el identificador de servicio depositado en Sid [SWS_Dcm_00767]. Si ApplUpdated == True señaliza una actualización efectuada mediante descarga flash tras un salto al bootloader, el DCM notifica al BswM a través de BswM_Dcm_ApplicationUpdated() [SWS_Dcm_00768].
Esta nota de uso ha sido generada de forma automatizada y se basa exclusivamente en las especificaciones de la versión AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
tipo Dcm_MsgItemType [SWS_Dcm_00989] 📄 PDF
Base type for diagnostic message item
tipo Dcm_MsgType [SWS_Dcm_00990] 📄 PDF
Base type for diagnostic message (request, positive or negative response)
Uso y definición de tipo
El tipo de datos Dcm_MsgType es el tipo de puntero central para mensajes de diagnóstico en el Diagnostic Communication Manager y está disponible a través de la cabecera Dcm.h [SWS_Dcm_00990]. Está declarado como puntero a Dcm_MsgItemType* y sirve como base común para referenciar peticiones, así como mensajes de respuesta positiva y negativa [SWS_Dcm_00990]. Interpretación: dado que el tipo base Dcm_MsgItemType no se detalla en la especificación, es de presumir que represente típicamente un único byte de datos (como uint8), a través del cual se accede secuencialmente al búfer lineal de mensajes. Pregunta Q-2b6f46b51d3cb8e0 (abierta)
Interacción y contexto estructural
El uso primordial de Dcm_MsgType tiene lugar dentro de la estructura de contexto Dcm_MsgContextType [SWS_Dcm_00994]. Allí, el tipo referencia dos áreas de datos independientes:
reqData: Hace referencia a los datos útiles de la petición de diagnóstico, comenzando inmediatamente después del Service Identifier (SID), el cual no forma parte en sí de estos datos [SWS_Dcm_00994].resData: Hace referencia a los datos de una respuesta positiva y comienza asimismo inmediatamente detrás del Service Identifier [SWS_Dcm_00994].
Límites de búfer y restricciones
Al procesar y rellenar los búferes de respuesta direccionados a través de Dcm_MsgType, los usuarios deben respetar estrictamente los límites de búfer correspondientes [SWS_Dcm_00994]. La longitud real de la respuesta resDataLen no debe superar en ningún caso la capacidad de búfer definida por resMaxDataLen, ya que el tamaño máximo de respuesta está estrictamente limitado por la asignación del búfer asignado [SWS_Dcm_00994].
Este texto ha sido generado por una IA a partir de la especificación AUTOSAR Classic Release R20-11.
tipo 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.
El tipo de datos Dcm_MsgLenType está disponible a través de la cabecera Dcm.h y deriva del tipo básico uint32 [SWS_Dcm_00991]. Se utiliza en el Diagnostic Communication Manager (DCM) para describir la longitud de los mensajes de diagnóstico. Esto incluye tanto peticiones de diagnóstico (requests) como mensajes de respuesta positivos y negativos (responses) [SWS_Dcm_00991].
En cuanto a los límites del rango de valores, la especificación establece que la longitud máxima transmisible de un mensaje de diagnóstico depende del protocolo de transporte o medio de transmisión subyacente en cada caso [SWS_Dcm_00991]. Interpretación: Aunque el tipo de datos subyacente uint32 puede representar longitudes de mensaje de hasta 4 GiB en el lado del software, en la práctica es probable que la longitud máxima real esté siempre limitada por el medio de comunicación y por los tamaños de búfer. Pregunta Q-ac43639ecb32605d (abierta)
Dcm_MsgLenType desempeña un papel central en la estructura Dcm_MsgContextType, la cual encapsula el contexto de una orden de diagnóstico [SWS_Dcm_00994]. Dentro de esta estructura, tipifica varias especificaciones de longitud fundamentales:
reqDataLen: Representa la longitud de los datos de la petición (Request Data). El recuento comienza inmediatamente después del identificador de servicio, por lo que este no está incluido en la indicación de longitud [SWS_Dcm_00994].resDataLen: Indica la longitud de los datos de la respuesta positiva, igualmente excluyendo el identificador de servicio [SWS_Dcm_00994].resMaxDataLen: Especifica la longitud máxima posible de una respuesta, la cual está limitada por el tamaño del búfer asignado [SWS_Dcm_00994].
Al implementar manejadores de servicios, por lo tanto, debe prestarse estricta atención a que los cálculos de longitud para reqDataLen y resDataLen se realicen siempre sin el identificador de servicio y a que los datos de respuesta no superen el límite de búfer predeterminado por resMaxDataLen [SWS_Dcm_00994].
Esta nota de uso fue generada por una IA a partir de la especificación AUTOSAR CP R20-11.
tipo Dcm_MsgAddInfoType [SWS_Dcm_00992] 📄 PDF
Additional information on message request. Datastructure: Bitfield
El tipo de datos Dcm_MsgAddInfoType está definido según [SWS_Dcm_00992] como una estructura de campo de bits y sirve para proporcionar información adicional de estado y control sobre un mensaje de diagnóstico. En AUTOSAR clásico, el tipo se proporciona a través del archivo de cabecera Dcm.h y se utiliza como elemento msgAddInfo dentro de la estructura de contexto de nivel superior Dcm_MsgContextType ([SWS_Dcm_00994]) para agrupar de manera consistente información adicional sobre peticiones de servicio y respuestas asociadas.
La estructura de campo de bits especifica, según [SWS_Dcm_00992], flags de control individuales con una posición de bit exactamente definida:
reqType(posición LSB+0): Identifica el tipo de direccionamiento de la petición de diagnóstico. Un valor de0indica una petición física (physical request), mientras que un valor de1indica una petición funcional (functional request).suppressPosResponse(posición LSB+1): Determina el comportamiento con respecto a las respuestas positivas. Con0, la respuesta positiva no se suprime (do not suppress), mientras que un valor de1prescribe que no debe enviarse ninguna respuesta positiva (no positive response will be sent).
Dado que Dcm_MsgAddInfoType representa una estructura de datos pura para el paso de parámetros y contexto, no existen para este tipo en sí semánticas de llamada síncronas o asíncronas, valores de retorno, normas de reentrancia o mensajes de error propios para DET o DEM. Es de suponer que la evaluación concreta y la consideración de los bits establecidos en el flujo posterior corresponden a las rutinas de procesamiento interno del Diagnostic Communication Manager cuando estas acceden al contexto del mensaje a partir de [SWS_Dcm_00994]. Pregunta Q-b27248cc452ba1b1 (abierta)
Este texto ha sido generado por una IA y sirve como guía orientativa en el entorno de AUTOSAR.
tipo Dcm_IdContextType [SWS_Dcm_00993] 📄 PDF
This message context identifier can be used to determine the relation between request and response confirmation.
tipo 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.
La estructura de datos Dcm_MsgContextType proporciona toda la información necesaria para controlar una solicitud de diagnóstico desde el procesamiento hasta la confirmación, pasando por la respuesta [SWS_Dcm_00994]. Se transfiere como parámetro de entrada/salida pMsgContext a rutinas de servicio asíncronas y reentrantes [SWS_Dcm_00763], [SWS_Dcm_00764]. En este sentido, los punteros a datos útiles reqData y resData apuntan siempre inmediatamente después del Service Identifier (SID), y las indicaciones de longitud reqDataLen así como resDataLen no incluyen el SID [SWS_Dcm_00994]. El submódulo DSD vuelve a insertar el SID de respuesta en la primera posición al copiar en el búfer de transmisión [SWS_Dcm_00223], [SWS_Dcm_00224].
Al utilizarla deben tenerse en cuenta los siguientes aspectos:
- Longitud de respuesta y caso de error: si la longitud de respuesta generada supera el límite del búfer definido mediante el campo dependiente del protocolo
resMaxDataLeny se cumpleDcmPagedBufferEnabled == FALSE, el DCM responde con el código de respuesta negativo 0x14 (DCM_E_RESPONSETOOLONG) [SWS_Dcm_01059]. Si el procesamiento en el manejador de servicio falla, la aplicación notificaE_NOT_OKcon un código de error [SWS_Dcm_00763]. - Información adicional y supresión de respuesta: a través de
msgAddInfose transporta, entre otros datos, elsuppressPosRspMsgIndicationBit; si este está establecido, el DSD suprime las respuestas positivas [SWS_Dcm_00202], [SWS_Dcm_00231]. - Tiempo de vida y asignación de contexto: al alcanzarse la confirmación, la estructura pierde su validez y se pierden todos los datos del mensaje [SWS_Dcm_00994]. Las aplicaciones deben guardar el identificador
idContextya desde el inicio de la solicitud para asociar una confirmación posterior con la solicitud original [SWS_Dcm_00994]. - Referencia al protocolo: el campo
dcmRxPduIdidentifica la PDU de recepción y permite un tratamiento diferenciado según el protocolo de diagnóstico, por ejemplo entre OBD y diagnóstico ampliado [SWS_Dcm_00994].
Interpretación: dado que el contexto pierde su validez en la confirmación, es de suponer que el búfer de memoria subyacente es liberado o sobrescrito de inmediato por la DSL tras el envío de la respuesta para comunicaciones posteriores. Pregunta Q-88e3cf2f3d8f6076 (abierta)
Este texto ha sido generado por una IA sobre la base de la especificación AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I2)
tipo Dcm_ExtendedOpStatusType [SWS_Dcm_91015] 📄 PDF
El tipo Dcm_ExtendedOpStatusType se basa en uint8 y se proporciona a través del archivo de cabecera Dcm.h [SWS_Dcm_91015]. Como parámetro de entrada OpStatus, controla las fases de ejecución y las confirmaciones en funciones de diagnóstico y de subservicio asíncronas como <Module>_<DiagnosticService> [SWS_Dcm_00763] así como <Module>_<DiagnosticService>_<SubService> [SWS_Dcm_00764].
Los valores de estado definidos señalan el progreso de la operación y las confirmaciones del DCM [SWS_Dcm_91015]:
DCM_INITIAL(0x00): primera llamada de la operación.DCM_PENDING(0x01): llamada consecutiva tras un estado intermedio notificado en la llamada anterior (Pending).DCM_CANCEL(0x02): solicitud por parte del DCM de cancelar la operación en curso.DCM_FORCE_RCRRP_OK(0x03): confirmación de la transmisión de una respuesta pendiente (Response Pending).DCM_POS_RESPONSE_SENT(0x04) yDCM_POS_RESPONSE_FAILED(0x05): acuse de recibo sobre el envío correcto o fallido de una respuesta positiva.DCM_NEG_RESPONSE_SENT(0x06) yDCM_NEG_RESPONSE_FAILED(0x07): acuse de recibo sobre el envío correcto o fallido de una respuesta negativa.
En cuanto a la concurrencia, las interfaces de diagnóstico invocadas están especificadas como reentrantes y asíncronas [SWS_Dcm_00763] [SWS_Dcm_00764]. En caso de errores, la función de servicio devuelve el valor de retorno E_NOT_OK y asigna un código de respuesta negativa (NRC) al parámetro de salida ErrorCode, tras lo cual el módulo DCM envía una respuesta negativa con este código [SWS_Dcm_00763] [SWS_Dcm_00764].
Este texto fue generado por una IA a partir de la especificación.
Guía del implementador pendiente (complejidad I2)
tipo Dcm_OpStatusType [SWS_Dcm_00984] 📄 PDF
El tipo Dcm_OpStatusType se basa en uint8 y se proporciona a través del archivo de cabecera Rte_Dcm_Type.h [SWS_Dcm_00984]. Controla el estado de ejecución y del ciclo de vida de operaciones de diagnóstico asíncronas del Diagnostic Communication Manager (DCM), tales como Dcm_ReadMemory [SWS_Dcm_00539], Dcm_WriteMemory [SWS_Dcm_00540] o Dcm_SetProgConditions [SWS_Dcm_00543].
Para el control del flujo de la operación se han definido cuatro valores de estado [SWS_Dcm_00984]:
DCM_INITIAL(0x00): Identifica la primera invocación de una operación por parte del DCM [SWS_Dcm_00527].DCM_PENDING(0x01): Señala una invocación posterior tras la devolución previa de un estado pendiente [SWS_Dcm_00984]. Si una operación devuelve el valor de errorDCM_E_PENDING, el DCM vuelve a invocar esta operación conOpStatus = DCM_PENDINGen cada ciclo subsiguiente deDcm_MainFunctionhasta que finalice el procesamiento [SWS_Dcm_00530].DCM_CANCEL(0x02): Solicita explícitamente a la entidad invocada cancelar una operación asíncrona aún pendiente [SWS_Dcm_00984].DCM_FORCE_RCRRP_OK(0x03): Confirma la transmisión efectuada de un mensaje de respuesta pendiente (NRC 0x78) [SWS_Dcm_00984]. Si la operación responde conDCM_E_FORCE_RCRRP, el DCM inicia el envío de RCR-RP e interrumpe las invocaciones posteriores de la operación hasta que concluya el envío [SWS_Dcm_00528].
En lo que respecta a la concurrencia y a las condiciones límite, las operaciones que reciben Dcm_OpStatusType como parámetro de transferencia están diseñadas como asíncronas y especificadas como no reentrantes [SWS_Dcm_00539] [SWS_Dcm_00754].
Este texto ha sido generado por una IA y sirve como guía orientativa respecto a la especificación.
Guía del implementador pendiente (complejidad I2)
tipo Dcm_ConfirmationStatusType [SWS_Dcm_00983] 📄 PDF
Uso y rango de valores
El tipo de datos Dcm_ConfirmationStatusType es un tipo de enumeración derivado de uint8 que se proporciona a través del archivo de cabecera Rte_Dcm_Type.h [SWS_Dcm_00983]. Se utiliza para notificar a la aplicación o a los manejadores de servicio internos el estado de una respuesta de diagnóstico enviada, tanto en caso de emisión correcta como de errores de transmisión [SWS_Dcm_01342]. El rango de valores comprende cuatro estados discretos [SWS_Dcm_00983]:
DCM_RES_POS_OK(0x00): Interpretación: La respuesta de diagnóstico positiva se transmitió correctamente. Pregunta (abierta)DCM_RES_POS_NOT_OK(0x01): Interpretación: Se produjo un error durante la transmisión de la respuesta de diagnóstico positiva. Pregunta (abierta)DCM_RES_NEG_OK(0x02): Interpretación: La respuesta de diagnóstico negativa (NRC) se transmitió correctamente. Pregunta (abierta)DCM_RES_NEG_NOT_OK(0x03): Interpretación: Se produjo un error durante la transmisión de la respuesta de diagnóstico negativa. Pregunta (abierta)
Interacción e interfaces
El estado de confirmación se pasa como parámetro de entrada (IN) en funciones de callback síncronas. En la interfaz de confirmación genérica Xxx_Confirmation, el parámetro se transmite junto con el identificador de servicio (SID), el tipo de direccionamiento (ReqType), el ID de conexión (ConnectionId), el tipo de protocolo y la dirección de origen del tester [SWS_Dcm_01342]. Asimismo, la interfaz ServiceRequestNotification integra este estado a través de la operación Confirmation [SWS_Dcm_00694].
Durante la ejecución de servicios de rutina, el tipo se utiliza específicamente para notificar el estado de transmisión tras finalizar operaciones de rutina individuales. Para ello sirven los callbacks declarados en Dcm_Externals.h: Xxx_StartConfirmation [SWS_Dcm_91016], Xxx_StopConfirmation [SWS_Dcm_91017] y Xxx_RequestResultsConfirmation [SWS_Dcm_91018].
Concurrencia y ejecución
Las funciones de confirmación devuelven un Std_ReturnType (p. ej., E_OK o E_NOT_OK) [SWS_Dcm_01342], [SWS_Dcm_91016]. Todas las llamadas a interfaces mencionadas se ejecutan de forma síncrona y están declaradas como no reentrantes (Non Reentrant) [SWS_Dcm_01342], [SWS_Dcm_91016], [SWS_Dcm_91017], [SWS_Dcm_91018].
Esta nota de uso ha sido generada de forma automatizada sobre la base de la especificación AUTOSAR CP R20-11.
Guía del implementador pendiente (complejidad I2)
tipo Dcm_SecLevelType [SWS_Dcm_00977] 📄 PDF
Security Level type definition
tipo Dcm_SesCtrlType [SWS_Dcm_00978] 📄 PDF
Session type definition. 0, 127 and all values above 127 are reserved by ISO.
tipo Dcm_ProtocolType [SWS_Dcm_00979] 📄 PDF
Type Dcm_ProtocolType.
tipo Dcm_NegativeResponseCodeType [SWS_Dcm_00980] 📄 PDF
Type Dcm_NegativeResponseCodeType.
tipo Dcm_DataArrayType [SWS_Dcm_01121] 📄 PDF
tipo Dcm_InfoType [SWS_Dcm_01013] 📄 PDF
tipo Dcm_RequestDataArrayType [SWS_Dcm_01165] 📄 PDF
tipo Dcm_InputOutputControlParameterType [SWS_Dcm_01305] 📄 PDF
tipo Dcm_IOOperationResponseType [SWS_Dcm_01307] 📄 PDF
tipo Dcm_DidSupportedType [SWS_Dcm_01138] 📄 PDF
tipo Dcm_FileAndDirNameType [SWS_Dcm_91066] 📄 PDF
tipo Dcm_ResponseDataArrayType [SWS_Dcm_91064] 📄 PDF
tipo Dcm_AuthenticationRoleType [SWS_Dcm_91068] 📄 PDF
El tipo de datos Dcm_AuthenticationRoleType está especificado como un array de bytes (uint8), cuyo tamaño viene determinado por el parámetro de configuración DcmDspAuthenticationRoleSize [SWS_Dcm_91068]. Se proporciona a través del archivo de cabecera Rte_Dcm_Type.h y sirve en el módulo DCM para la representación formal de roles de autenticación [SWS_Dcm_91068].
En la aplicación práctica, el tipo sirve como parámetro de entrada para establecer roles en conexiones de diagnóstico no autenticadas:
- Uso y semántica: el tipo se transfiere como parámetro de entrada
deauthenticatedRoleen la función CDcm_SetDeauthenticatedRole(disponible a través deDcm.h) [SWS_Dcm_91069], así como en la operaciónSetDeauthenticatedRolede la interfaz de servicioAuthentication[SWS_Dcm_91072]. De este modo, se asigna de forma síncrona un rol desautenticado a una conexión, identificada mediante elconnectionId[SWS_Dcm_91069]. - Concurrencia y validez: la API C
Dcm_SetDeauthenticatedRoleestá especificada como reentrante [SWS_Dcm_91069]. Un rol asignado permanece activo para la conexión respectiva hasta que esta pasa al estado autenticado o se reinicia la ECU [SWS_Dcm_91069], [SWS_Dcm_91072]. - Tratamiento de errores: para el tipo y las operaciones asociadas no existen códigos de error específicos; la función siempre devuelve por defecto
E_OK[SWS_Dcm_91069], [SWS_Dcm_91072].
Este texto fue generado por una IA a partir de la especificación.
Guía del implementador pendiente (complejidad I1)
tipo DiagnosticSessionControlModeSwitchInterface [SWS_Dcm_91033] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Diagnostic Session
usar
El elemento de interfaz DiagnosticSessionControlModeSwitchInterface está declarado según [SWS_Dcm_91033] como puerto proporcionado (PPortPrototype o ProvidedPort) del módulo DCM y utiliza la interfaz Dcm_DiagnosticSessionControlModeSwitchInterface. Según la especificación en [SWS_Dcm_91033], este puerto sirve para notificar a los componentes de software (SW-C) sobre el cambio y el estado actual de la sesión de diagnóstico activa (Diagnostic Session).
Interpretación: se asume que el módulo DCM asume aquí el rol de emisor, que reenvía los cambios de estado de la sesión de diagnóstico a los componentes de software interesados a través de la RTE. Pregunta Q-6af0e97b6910087d (abierta) Es probable que los SW-C conectados reciban y procesen estos cambios de modo a través de eventos Mode-Switch configurados, a fin de adaptar flujos internos, habilitaciones o su comportamiento funcional a la sesión de diagnóstico activa en cada momento.
Tratamiento de errores y condiciones límite
Para este puerto no se definen en [SWS_Dcm_91033] códigos de error específicos, valores de retorno ni notificaciones a DET o DEM. Interpretación: cabe suponer, por tanto, que los posibles estados de error en la transmisión son monitorizados y tratados íntegramente por los mecanismos generales de la AUTOSAR-RTE y del módulo base DCM. Pregunta Q-a8055458432174f6 (abierta) Los datos de la especificación no contienen restricciones especiales relativas a la reentrancia o al contexto de llamada, por lo que no se analizan con mayor detalle.
Este texto ha sido generado por una IA sobre la base de la especificación AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
tipo EcuResetModeSwitchInterface [SWS_Dcm_91034] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about an upcoming ECU Reset and its type
El elemento de puerto EcuResetModeSwitchInterface está especificado según [SWS_Dcm_91034] como puerto proporcionado (ProvidedPort o PPortPrototype) del módulo DCM. Utiliza la interfaz Dcm_EcuResetModeSwitchInterface y sirve para informar a los componentes de software (SW-C) sobre un reinicio inminente de la ECU, así como sobre el tipo exacto de reinicio [SWS_Dcm_91034].
Para su uso e interacción en el sistema se aplican los siguientes aspectos:
- Rol de comunicación: el DCM actúa como emisor del cambio de modo. Los SW-C interesados se conectan mediante puertos receptores correspondientes (R-Ports) para reaccionar a la notificación [SWS_Dcm_91034].
- Semántica del cambio de modo: como
ModeSwitchInterface, en este caso no se transmiten valores de retorno cliente-servidor ni parámetros de datos, sino que se señalan cambios de estado a través de la RTE [SWS_Dcm_91034]. La notificación se produce, por tanto, a través de declaraciones de modo de la interfaz. - Reacción de los componentes: a través del tipo de reinicio comunicado, los SW-C tienen conocimiento del tipo de reinicio inminente [SWS_Dcm_91034]. Se asume que esto permite a las aplicaciones guardar datos volátiles de tiempo de ejecución de manera ordenada en la memoria no volátil o poner el hardware periférico en un estado seguro antes del reinicio (interpretación). Pregunta Q-4dcf9314d84b53a0 (abierta)
- Tratamiento de errores: la propia definición de la interfaz no contiene mensajes de error ni canales de retorno para estados de error de los SW-C [SWS_Dcm_91034].
Este texto ha sido generado mediante una IA y se basa en AUTOSAR Release R20-11.
Guía del implementador pendiente (complejidad I1)
tipo ModeRapidPowerShutDownModeSwitchInterface [SWS_Dcm_91035] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the rapid power shut down mode
Según [SWS_Dcm_91035], la interfaz ModeRapidPowerShutDownModeSwitchInterface está especificada como PPortPrototype (ProvidedPort) para la interfaz Dcm_ModeRapidPowerShutDownModeSwitchInterface en el módulo Dcm. Sirve para notificar a los componentes de software (SW-C) sobre el modo de parada rápida (Rapid Power Shut Down Mode).
En cuanto al uso, comportamiento e interacción, son relevantes los siguientes aspectos:
- Uso y semántica: mediante el
ModeSwitchInterface, el DCM señala cambios de modo a los SW-C conectados. El contexto de llamada se sitúa dentro del módulo DCM, que inicia el cambio de modo; la transmisión a los receptores se realiza de forma asíncrona a través de la RTE [SWS_Dcm_91035]. - Tratamiento de errores: la definición del puerto no contiene códigos de error específicos, valores de retorno ni eventos DET/DEM. Por lo tanto, cabe suponer que los errores en la transmisión del modo son interceptados en su totalidad por los mecanismos estándar de la AUTOSAR-RTE para puertos Mode-Switch. Pregunta Q-16537a6a4e19e40b (abierta)
- Concurrencia y restricciones: la notificación se efectúa en el contexto de ejecución del DCM. Es de suponer que los SW-C receptores se activan mediante Runnables disparados por modo y deben diseñarse de forma que ejecuten las acciones para la parada rápida sin retardos bloqueantes. Pregunta Q-20f196c7af208288 (abierta)
Este texto ha sido generado por una IA a partir de la especificación de AUTOSAR.
Guía del implementador pendiente (complejidad I1)
tipo ControlDTCSettingModeSwitchInterface [SWS_Dcm_91037] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the DTC Setting mode
Uso y finalidad
El elemento ControlDTCSettingModeSwitchInterface es, según [SWS_Dcm_91037], un ModeSwitchInterface puesto a disposición como Provided-Port (PPortPrototype) del gestor de comunicación de diagnóstico (DCM). Su función principal consiste en notificar a los componentes de software (SW-C) conectados el estado actual del modo de ajuste de DTC (DTC Setting mode).
En este contexto se utiliza Dcm_ControlDTCSettingModeSwitchInterface como interfaz de puerto [SWS_Dcm_91037]. Dado que el DCM declara este puerto como Provided-Port, el módulo de diagnóstico asume el rol de gestor de modo o emisor. Los componentes de aplicación pueden conectarse a través de Required-Ports correspondientes para recibir cambios de estado y adaptar su comportamiento interno.
Interacción e integración del sistema
La interacción en el conjunto del sistema se centra en el desacoplamiento de las órdenes de diagnóstico y la lógica de aplicación:
- Propagación de modos: a través del puerto proporcionado, el DCM comunica a los SW-C si el almacenamiento y la actualización de códigos de diagnóstico de fallos están activos o deshabilitados [SWS_Dcm_91037]. Cabe esperar que la notificación a los SW-C se efectúe en el entorno de ejecución de AUTOSAR a través de los Mode-Switch-Events estándar de la RTE. Pregunta Q-8c0918099f2aa797 (abierta)
- Origen diagnóstico: la conmutación del modo DTC-Setting se encuentra presumiblemente en el contexto directo de servicios de diagnóstico UDS como ControlDTCSetting (servicio 0x85), a través de los cuales un comprobador externo puede inhibir temporalmente el registro de fallos. Pregunta Q-f2555e0641476955 (abierta)
Tratamiento de errores y condiciones límite
Dado que la especificación en [SWS_Dcm_91037] no define códigos de error específicos, mensajes DET ni valores de retorno, la transmisión del modo se realiza de manera puramente declarativa a través de los mecanismos de la RTE. Para la propia declaración del puerto no se indican contextos de llamada especiales ni especificaciones de reentrancia.
Este texto ha sido generado por una IA basándose en la especificación AUTOSAR Classic R20-11.
Guía del implementador pendiente (complejidad I1)
tipo SecurityAccessModeSwitchInterface [SWS_Dcm_91039] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Security Level
El elemento de puerto SecurityAccessModeSwitchInterface proporciona en el módulo DCM un Provided-Port (PPortPrototype) basado en la interfaz Dcm_SecurityAccessModeSwitchInterface [SWS_Dcm_91039]. El propósito de esta interfaz es notificar a los componentes de software (SW-C) sobre el nivel de seguridad (Security Level) actualmente activo [SWS_Dcm_91039].
Uso e interacción
La notificación se realiza a través del puerto del DCM a los componentes conectados [SWS_Dcm_91039]. Cabe suponer que la provisión está implementada como comunicación Mode-Switch a través de la AUTOSAR-RTE, de modo que los SW-C conectados puedan reaccionar a cambios de estado del Security Level mediante Mode-Switch-Events (interpretación). Pregunta Q-d86dacdb91979b87 (abierta) En la descripción del puerto no se definen parámetros, valores de retorno ni llamadas a funciones síncronas específicas [SWS_Dcm_91039]; por tanto, cabe asumir que la transmisión responde a la semántica de difusión asíncrona de un gestor de modos (interpretación). Pregunta Q-9d750df4f73b1634 (abierta)
Tratamiento de errores y restricciones
Dado que se trata de un simple cambio de modo, la especificación no menciona códigos de error específicos, comprobaciones de parámetros ni notificaciones a DET o DEM [SWS_Dcm_91039]. Es de suponer que en la propia interfaz no se contempla un tratamiento de errores directo para la notificación (interpretación). Pregunta (abierta) Para el elemento de puerto no se especifican restricciones de reentrancia o variantes divergentes [SWS_Dcm_91039].
Esta nota de uso ha sido generada automáticamente y se basa en las especificaciones del release R20-11 de AUTOSAR.
Guía del implementador pendiente (complejidad I1)
tipo DcmDiagnosticSessionControl [SWS_Dcm_91019] 📄 PDF
ModeDeclarationGroup representing the different diagnostic sessions Further modes to be added: {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspSession/ DcmDspSessionRow.SHORT-NAME)}
tipo DcmEcuReset [SWS_Dcm_91021] 📄 PDF
ModeDeclarationGroup representing the different ECU reset types
tipo DcmModeRapidPowerShutDown [SWS_Dcm_91023] 📄 PDF
ModeDeclarationGroup representing the enable/disable state of rapid power shutdown
El ModeDeclarationGroup DcmModeRapidPowerShutDown sirve para representar el estado de activación de la parada rápida (Rapid Power Shutdown) en la ECU [SWS_Dcm_91023]. El elemento está asignado a la categoría EXPLICIT_ORDER y define dos modos concretos: el modo inicial DCM_ENABLE_RAPIDPOWERSHUTDOWN con el valor numérico 0, así como DCM_DISABLE_RAPIDPOWERSHUTDOWN con el valor 1 [SWS_Dcm_91023]. Para las transiciones de modo se especifica el valor de transición 255 (On transition value) [SWS_Dcm_91023].
Interacción y gestión de modos
En el sistema global, el módulo DCM actúa como Mode Manager para una serie de modos de diagnóstico, entre los que se encuentra también DcmModeRapidPowerShutDown en el contexto del servicio de diagnóstico 0x11 (ECU Reset) [SWS_Dcm_00775]. Dentro del software base, el DCM define para ello el ModeDeclarationGroupPrototype DcmModeRapidPowerShutDown como provided-ModeGroup en su instancia de módulo BSW a partir de este ModeDeclarationGroup [SWS_Dcm_00807].
Los componentes de software (SW-C) que deban estar informados sobre el estado actual de activación de la parada rápida enlazan la interfaz de servicio estandarizada Dcm_ModeRapidPowerShutDownModeSwitchInterface a [SWS_Dcm_91024]. A través de su grupo de modos modeRapidPowerShutDown reciben en tiempo de ejecución los correspondientes cambios de modo del DCM [SWS_Dcm_91024].
Esta nota de uso se generó de forma automatizada basándose en los requisitos de especificación de AUTOSAR R20-11.
Guía del implementador pendiente (complejidad I1)
tipo DcmCommunicationControl [SWS_Dcm_91025] 📄 PDF
ModeDeclarationGroup representing the different communication control states
tipo DcmControlDTCSetting [SWS_Dcm_91027] 📄 PDF
ModeDeclarationGroup representing the enable/disable state for DTC storage
tipo DcmResponseOnEvent [SWS_Dcm_91029] 📄 PDF
ModeDeclarationGroup representing the state of a Response On Event
tipo 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)}
El ModeDeclarationGroup DcmSecurityAccess de la categoría EXPLICIT_ORDER representa los distintos niveles de seguridad de diagnóstico de una ECU para el servicio UDS 0x27 (SecurityAccess) [SWS_Dcm_91031], [SWS_Dcm_00775]. Como modo inicial se predetermina por defecto DCM_SEC_LEV_LOCKED con el valor fijo 0 [SWS_Dcm_91031], [SWS_Dcm_01327]. Se añaden niveles de seguridad adicionales desde DCM_SEC_LEV_1 hasta DCM_SEC_LEV_63 de forma específica del proyecto y de la aplicación mediante la configuración de las líneas de seguridad bajo DcmDspSecurityRow [SWS_Dcm_91031], [SWS_Dcm_01327].
El módulo DCM asume el rol central como Mode Manager para este modo de diagnóstico [SWS_Dcm_00775]. En cada modificación del nivel de seguridad, el DCM actualiza el grupo de modos DcmSecurityAccess con el nuevo estado de seguridad adoptado [SWS_Dcm_01329]. Durante un cambio de estado en curso entre modos individuales, el sistema señala el valor de transición definido 255 (On transition value) [SWS_Dcm_91031].
La transmisión del estado de seguridad actual a los componentes de software se realiza a través de la interfaz de servicio Dcm_SecurityAccessModeSwitchInterface [SWS_Dcm_91032]:
- Para ello, el DCM pone a disposición el
ModeDeclarationGroupPrototypeDcmSecurityAccesscomo grupo de modos proporcionado (provided-ModeGroup) mediante la interfaz [SWS_Dcm_01327], [SWS_Dcm_91032]. - Cada componente de software (SW-C) que deba estar informado sobre el Security Level actual declara una dependencia respecto a la interfaz ModeSwitch
Dcm_SecurityAccessModeSwitchInterfacey la integra como Required-Port [SWS_Dcm_91032]. - La disponibilidad de los modos individuales en la interfaz está sujeta a las mismas variantes de configuración que las líneas de seguridad subyacentes [SWS_Dcm_91032].
Este texto ha sido generado por una IA.
Guía del implementador pendiente (complejidad 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#fe553af5- Content hash
fe553af5- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_DiagnosticCommunicationManager.pdf#nameddest=SWS_Dcm_00037
gemini-3.8-flash-low· 2026-10-13 · Original en alemán