DEENESPTFRRUARHIKOZHNL

Diagnostic Communication Manager (DCM)

ModulDCM (Diagnostic Communication Manager)
BSW-Modul-ID53
Standard-Header#include "Dcm.h"
SWS-SpezifikationAUTOSAR_SWS_DiagnosticCommunicationManager.pdf
ClusterDiagnostic Services

Guía del móduloGENERADO POR IA

Recibe solicitudes de diagnóstico de los testers, las comprueba y las responde con datos procedentes de la memoria de averías y de la aplicación.
GENERADO POR IA no revisado Modelo: claude-opus-5-5 · Esfuerzo: high · Temperatura: no controlable · Prompt: c4fbaab8dd0b Procedencia Preguntas abiertas (3)
Ancla causal: R20-11 Válido desde R20-11 Sintetizado para esta versión de especificación.
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Recibe solicitudes de diagnóstico de los testers, las comprueba y las responde con datos procedentes de la memoria de averías y de la aplicación.

El DCM es el servidor de diagnóstico de la unidad de control: recibe solicitudes UDS y OBD a través del PduR, las valida y encarga su ejecución al DSP o a callouts de aplicación. Una solicitud no se reenvía hasta haber finalizado por completo su recepción [SWS_Dcm_00111]. Previamente, el DSD comprueba el servicio, la sesión, el nivel de seguridad y las condiciones de modo. Si el procesamiento se prolonga demasiado, el DCM cumple los límites temporales P2 mediante NRC 0x78 [SWS_Dcm_00024]. Solo tiene permitido transmitir en los modos de comunicación habilitados por el ComM.

El DCM procesa las solicitudes de diagnóstico de testers externos. Implementa servicios UDS como DiagnosticSessionControl, ReadDataByIdentifier y RoutineControl [SWS_Dcm_00250] [SWS_Dcm_00253] [SWS_Dcm_00257], así como servicios OBD [SWS_Dcm_00243]. Internamente, la DSL gestiona la comunicación y los tiempos [SWS_Dcm_00027], el DSD comprueba y distribuye las solicitudes [SWS_Dcm_00178], y el DSP ejecuta los servicios. El DCM obtiene los datos del DEM, a partir de callouts de aplicación y mediante puertos RTE [SWS_Dcm_01263] [SWS_Dcm_00793].

kontext cluster_dcm Dcm Tester Diagnosetester TP Transportschicht (z. B. CanTp) Tester->TP UDS-/OBD-Anfrage PduR PduR TP->PduR DSL DSL Sitzung, Timing, Puffer PduR->DSL Dcm_StartOfReception Dcm_CopyRxData Dcm_TpRxIndication DSL->PduR PduR_DcmTransmit DSD DSD comprobación, distribución DSL->DSD solicitud completa ComM ComM DSL->ComM ComM_DCM_ActiveDiagnostic DSP DSP ejecución del servicio DSD->DSP Ejecutar servicio Dem Dem DSP->Dem Dem_SelectDTC, Dem_ClearDTC BswM BswM DSP->BswM CommunicationControl-Modus NvM NvM DSP->NvM DDDID speichern Csm Csm / KeyM DSP->Csm Comprobación de certificado (0x29) SWC Anwendungs-SW-Cs (RTE / Callouts) DSP->SWC Xxx_ReadData, Xxx_Start, ... Modeswitch ComM->DSL Dcm_ComM_*ComModeEntered

Diagrama de contexto: el DCM entre PduR, ComM, DEM, NvM, BswM, CSM/KeyM y SW-Cs de aplicación. Fuentes: [SWS_Dcm_00094] [SWS_Dcm_01376] SWS DCM p. 209

Según Dcm_Init [SWS_Dcm_00037], la Default Session y el nivel de seguridad DCM_SEC_LEV_LOCKED se encuentran activos [SWS_Dcm_00033] [SWS_Dcm_00034]. Una solicitud llega a través de Dcm_StartOfReception, Dcm_CopyRxData y Dcm_TpRxIndication. No accede al DSD hasta haberse recibido con éxito [SWS_Dcm_00111]. Este comprueba el identificador de servicio, la sesión, el nivel de seguridad y las condiciones de modo [SWS_Dcm_00196] [SWS_Dcm_00211] [SWS_Dcm_00217]. La respuesta se envía mediante PduR_DcmTransmit y Dcm_CopyTxData [SWS_Dcm_00115] [SWS_Dcm_00092].

Procesamiento de una solicitud de diagnósticoPduRDSLDSDDSPAplicaciónUse Case: EmpfangDcm_StartOfReception(id, info, TpSduLength)BUFREQ_OK, bufferSizePtrloopweitere SegmenteDcm_CopyRxData(id, info, bufferSizePtr)Dcm_TpRxIndication(id, E_OK)Reenviar solicitud (solo tras E_OK)SID-, Sitzungs-, Security-y comprobación de modoEjecutar servicioXxx-Operation (OpStatus = DCM_INITIAL)E_OK + AusgabedatenAntwortdatenUse Case: SendenSenden anfordernPduR_DcmTransmit(DcmDslProtocolTxPduRef)loopbis Antwort kopiertDcm_CopyTxData()Dcm_TpTxConfirmation(id, E_OK)Reenviar confirmaciónDspInternal_DcmConfirmation()Xxx_Confirmation() (falls konfiguriert)

Diagrama de secuencia: recepción, comprobación, ejecución y envío de una solicitud. Fuentes: [SWS_Dcm_00093] [SWS_Dcm_00351] [SWS_Dcm_00741]

Las interfaces asíncronas de aplicación se invocan de forma repetida a través de Dcm_OpStatusType [SWS_Dcm_00984] [SWS_Dcm_00530]. Si un procesamiento tarda más que P2ServerMax, el DCM envía NRC 0x78 [SWS_Dcm_00024]. Los cambios de sesión mediante 0x10 solo se hacen efectivos con la confirmación de envío. El timeout de S3Server o Dcm_ResetToDefaultSession conducen de regreso a la Default Session [SWS_Dcm_00311] [SWS_Dcm_00140] [SWS_Dcm_00520]. Los modos del ComM determinan si se permite transmitir. Las transmisiones ROE y periódicas solo se ejecutan en Full Communication [SWS_Dcm_00148] [SWS_Dcm_00123].

Los errores suelen convertirse en respuestas negativas. Si una aplicación devuelve E_NOT_OK, su ErrorCode se envía como NRC [SWS_Dcm_00678]. Los errores del DEM se asignan a NRC 0x22 o 0x31 [SWS_Dcm_00704] [SWS_Dcm_00708]. Tras cada confirmación de envío, el DCM libera el búfer de transmisión [SWS_Dcm_00352].

Rol en el stack de diagnóstico: DSL, DSD y DSP

El DCM responde a las solicitudes de diagnóstico de testers externos. Implementa servicios UDS como DiagnosticSessionControl (0x10), ReadDataByIdentifier (0x22) y RoutineControl (0x31) [SWS_Dcm_00250] [SWS_Dcm_00253] [SWS_Dcm_00257], así como servicios OBD como $01 [SWS_Dcm_00243]. Internamente consta de tres submódulos:

Hacia abajo, el DCM proporciona callbacks para PduR (datos de transporte) y ComM (modos de comunicación). El diagrama SWS DCM p. 209 utiliza todavía nombres más antiguos para ello, como Dcm_RxIndication. Normativamente, en R20-11 los nombres son Dcm_TpRxIndication y Dcm_ComM_NoComModeEntered [SWS_Dcm_00093] [SWS_Dcm_00356].

Otras conexiones:

  • El DCM accede a la memoria de averías a través de la API del DEM, por ejemplo con Dem_SelectDTC en ClearDiagnosticInformation [SWS_Dcm_01263].
  • Accede a datos de aplicación y rutinas mediante callouts configurables y puertos como Xxx_ReadData o Xxx_Start [SWS_Dcm_00793] [SWS_Dcm_01203].
  • Para modos de diagnóstico como DcmDiagnosticSessionControl y DcmEcuReset, él mismo actúa como Mode-Manager [SWS_Dcm_00775].
kontext cluster_dcm Dcm Tester Diagnosetester TP Transportschicht (z. B. CanTp) Tester->TP UDS-/OBD-Anfrage PduR PduR TP->PduR DSL DSL Sitzung, Timing, Puffer PduR->DSL Dcm_StartOfReception Dcm_CopyRxData Dcm_TpRxIndication DSL->PduR PduR_DcmTransmit DSD DSD comprobación, distribución DSL->DSD solicitud completa ComM ComM DSL->ComM ComM_DCM_ActiveDiagnostic DSP DSP ejecución del servicio DSD->DSP Ejecutar servicio Dem Dem DSP->Dem Dem_SelectDTC, Dem_ClearDTC BswM BswM DSP->BswM CommunicationControl-Modus NvM NvM DSP->NvM DDDID speichern Csm Csm / KeyM DSP->Csm Comprobación de certificado (0x29) SWC Anwendungs-SW-Cs (RTE / Callouts) DSP->SWC Xxx_ReadData, Xxx_Start, ... Modeswitch ComM->DSL Dcm_ComM_*ComModeEntered

Diagrama de contexto: el DCM se sitúa entre el PduR y los proveedores de servicios DEM, NvM, BswM, CSM/KeyM y SW-Cs de aplicación; ComM controla su disponibilidad para transmitir. Fuentes: [SWS_Dcm_00094] [SWS_Dcm_01376] [SWS_Dcm_00512] [SWS_Dcm_00868] [SWS_Dcm_01463] SWS DCM p. 209

Inicio: Dcm_Init y el ciclo periódico

Dcm_Init [SWS_Dcm_00037] recibe un puntero a Dcm_ConfigType con los parámetros Post-Build [SWS_Dcm_00982]. A partir de él inicializa todas las variables globales [SWS_Dcm_00334]. A continuación, rige el siguiente estado básico:

Otras tareas de inicio dependen de la configuración:

  • Dcm_GetProgConditions detecta un retorno desde el bootloader [SWS_Dcm_00536].
  • Si DcmDDDIDStorage = TRUE, las definiciones de DDDID se restauran desde la NvM [SWS_Dcm_00867].
  • Los contadores de intentos fallidos se leen a través de Xxx_GetSecurityAttemptCounter [SWS_Dcm_01154].
  • Si se ha configurado DcmVinRef, el VIN se obtiene una sola vez con Dcm_GetVin [SWS_Dcm_01174].

Dcm_MainFunction [SWS_Dcm_00053] impulsa todos los procesos asíncronos. Si una operación devuelve DCM_E_PENDING, se reactiva, por ejemplo, en el siguiente ciclo de la MainFunction [SWS_Dcm_00760]. Lo mismo aplica a las llamadas pendientes del DEM [SWS_Dcm_01412]. Interpretación: cabe suponer que la función es invocada cíclicamente por el scheduler del BSW. Pregunta Q-2dbd09d50c66575f (abierta)

De la solicitud a la respuesta

La recepción se realiza en tres pasos (SWS DCM p. 55):

  1. Dcm_StartOfReception notifica la longitud total, la primera trama y los metadatos [SWS_Dcm_00094]. Si la solicitud es demasiado grande, el DCM devuelve BUFREQ_E_OVFL [SWS_Dcm_00444]. Con una longitud de 0, devuelve BUFREQ_E_NOT_OK [SWS_Dcm_00642].
  2. Dcm_CopyRxData copia los segmentos en el búfer del DCM [SWS_Dcm_00443].
  3. Solo tras Dcm_TpRxIndication con E_OK, la DSL reenvía la solicitud al DSD [SWS_Dcm_00111].

El DSD comprueba la solicitud en varias etapas:

dsd start Anfrage von DSL sid SID in aktiver Service-Tabelle? start->sid ses In aktueller Sitzung erlaubt? sid->ses Sí nrc negative Antwort sid->nrc No sec ¿Permitido en el nivel de seguridad actual? ses->sec Sí ses->nrc No mode ¿Condición de modo cumplida? sec->mode Sí sec->nrc No ind Xxx_Indication (falls konfiguriert) mode->ind Sí mode->nrc No nrcErr NRC = ErrorCode ind->nrcErr E_NOT_OK keine sin respuesta ind->keine E_REQUEST_NOT_ACCEPTED dsp DSP ejecuta el servicio ind->dsp E_OK spr suppressPosRspMsgIndicationBit gesetzt? dsp->spr send Antwort an DSL spr->send No nopos sin respuesta positiva spr->nopos ja, positives Ergebnis

Diagrama de actividad: el DSD solo permite el paso de una solicitud al DSP tras superar las comprobaciones con éxito; E_REQUEST_NOT_ACCEPTED suprime cualquier respuesta. Interpretación: orden simplificado. Fuentes: [SWS_Dcm_00197] [SWS_Dcm_00677] [SWS_Dcm_00678] [SWS_Dcm_00200] [SWS_Dcm_00827]

El envío de la respuesta se realiza de la siguiente manera:

  1. El DSD encarga el envío a la DSL [SWS_Dcm_00114].
  2. La DSL llama a PduR_DcmTransmit con la PDU de Tx configurada [SWS_Dcm_00115].
  3. El PduR obtiene los datos mediante Dcm_CopyTxData [SWS_Dcm_00092].
  4. Dcm_TpTxConfirmation concluye la transmisión [SWS_Dcm_00351].
  5. La confirmación va al DSP y, a continuación, a Xxx_Confirmation [SWS_Dcm_00235] [SWS_Dcm_00741].

Dos casos especiales: si el suppressPosRspMsgIndicationBit está activado, se omite la respuesta positiva [SWS_Dcm_00200]. En el caso de conexiones genéricas, el DCM almacena la dirección de origen a partir de los metadatos [SWS_Dcm_00848] y la establece al enviar como TARGET_ADDRESS_16 [SWS_Dcm_00849].

Procesamiento de una solicitud de diagnósticoPduRDSLDSDDSPAplicaciónUse Case: EmpfangDcm_StartOfReception(id, info, TpSduLength)BUFREQ_OK, bufferSizePtrloopweitere SegmenteDcm_CopyRxData(id, info, bufferSizePtr)Dcm_TpRxIndication(id, E_OK)Reenviar solicitud (solo tras E_OK)SID-, Sitzungs-, Security-y comprobación de modoEjecutar servicioXxx-Operation (OpStatus = DCM_INITIAL)E_OK + AusgabedatenAntwortdatenUse Case: SendenSenden anfordernPduR_DcmTransmit(DcmDslProtocolTxPduRef)loopbis Antwort kopiertDcm_CopyTxData()Dcm_TpTxConfirmation(id, E_OK)Reenviar confirmaciónDspInternal_DcmConfirmation()Xxx_Confirmation() (falls konfiguriert)

Diagrama de secuencia: recepción, comprobación, ejecución y envío de una solicitud con las devoluciones de llamada de TP y las confirmaciones. Fuentes: [SWS_Dcm_00094] [SWS_Dcm_00556] [SWS_Dcm_00093] [SWS_Dcm_00092] [SWS_Dcm_00742] SWS DCM p. 479

Interfaces de aplicación, OpStatus y Response Pending

Las interfaces asíncronas llevan un Dcm_OpStatusType [SWS_Dcm_00984]:

La configuración determina si rige la variante síncrona o la asíncrona (DcmDspDataUsePort). Un ejemplo es Xxx_ReadData [SWS_Dcm_00793] [SWS_Dcm_91006].

Si la aplicación necesita más tiempo, el DCM envía NRC 0x78 [SWS_Dcm_00024] para respetar los límites temporales P2ServerMax y P2*ServerMax [SWS_Dcm_00027]. El número de dichas respuestas es limitado y configurable [SWS_Dcm_00120] [SWS_Dcm_01567]. La aplicación también puede iniciar NRC 0x78 por sí misma: devuelve DCM_E_FORCE_RCRRP y se le vuelve a llamar tras la confirmación de transmisión [SWS_Dcm_00528] [SWS_Dcm_00529]. Los callouts de memoria se comportan de forma análoga [SWS_Dcm_00839].

Operación asíncrona y Response PendingTesterDcmAplicaciónDiagnoseanfrageXxx-Operation (OpStatus = DCM_INITIAL)DCM_E_PENDINGaltP2ServerMax abgelaufenNRC 0x78 (responsePending)La aplicación devuelve DCM_E_FORCE_RCRRPNRC 0x78 soforttras la confirmación de transmisión:OpStatus = DCM_FORCE_RCRRP_OKloopbis EndergebnisXxx-Operation (OpStatus = DCM_PENDING)en el siguiente ciclo de MainFunctionE_OK o E_NOT_OK + ErrorCoderespuesta positiva o NRC = ErrorCode

Diagrama de secuencia: nueva llamada a través de OpStatus y las dos vías hacia NRC 0x78. Fuentes: [SWS_Dcm_00530] [SWS_Dcm_00528] [SWS_Dcm_91015] SWS DCM p. 470.

En InputOutputControlByIdentifier [SWS_Dcm_00256] con puertos sender-receiver, el DCM escribe la IOOperationRequest y evalúa la IOOperationResponse. DCM_RESPONSE_PENDING da lugar a NRC 0x78, un valor positivo da lugar a la respuesta positiva [SWS_Dcm_01441] [SWS_Dcm_01439] (SWS DCM p. 186).

Sesiones, Security Access y modos de comunicación

Los cambios de sesión se realizan a través del servicio 0x10:

session init Dcm_Init def Default Session (0x01) init->def nondef Non-Default Session (z. B. 0x02, 0x03) def->nondef 0x10 confirmado: establecer sesión + P2, cambio de modo, ComM_DCM_ActiveDiagnostic nondef->def S3Server-Timeout nondef->def Dcm_ResetToDefaultSession() nondef->def 0x10 Default Session: detener IO-Controls y DID periódicos, ComM_DCM_InactiveDiagnostic nondef->nondef 0x10 anderer Typ

Diagrama de estados: ciclo de vida de la sesión de diagnóstico con transiciones y acciones asociadas. Fuentes: [SWS_Dcm_00034] [SWS_Dcm_00311] [SWS_Dcm_00140] [SWS_Dcm_00520] SWS DCM p. 477

SecurityAccess (0x27) [SWS_Dcm_00252] se ejecuta en dos pasos:

Dcm_GetSecurityLevel proporciona el nivel activo [SWS_Dcm_00338].

SecurityAccess (0x27)TesterDcm (DSP)Security-SW-C27 requestSeed (ungerade)altNivel ya activopositive Antwort, Seed = 0x00Nivel no activoXxx_GetSeed(OpStatus, Seed, ErrorCode)E_OK + Seedrespuesta positiva con Seed27 sendKey (gerade)Xxx_CompareKey(Key, OpStatus, ErrorCode)altE_OKneues Security-Level setzenModeswitch DcmSecurityAccesspositive AntwortDCM_E_COMPARE_KEY_FAILEDcontar intento fallidoen su caso, iniciar temporizador de retardoXxx_SetSecurityAttemptCounter() (falls aktiviert)negative Antwort

Diagrama de secuencia: flujo de Seed/Key con gestión de intentos fallidos. Fuentes: [SWS_Dcm_00323] [SWS_Dcm_91003] [SWS_Dcm_91004] [SWS_Dcm_00660] [SWS_Dcm_01155]

Los cambios de modo de ComM determinan lo que el DCM puede transmitir y recibir:

comm full Full Communication recepción y transmisión, ROE y transmisión periódica activas silent Silent Communication transmisión bloqueada (incluidas ROE y periódica) full->silent Dcm_ComM_SilentComModeEntered nocom No Communication recepción y transmisión bloqueadas full->nocom Dcm_ComM_NoComModeEntered silent->full Dcm_ComM_FullComModeEntered silent->nocom Dcm_ComM_NoComModeEntered nocom->full Dcm_ComM_FullComModeEntered nocom->silent Dcm_ComM_SilentComModeEntered

Diagrama de estados: habilitaciones de transmisión y recepción del DCM según el modo de ComM. Fuentes: [SWS_Dcm_00356] [SWS_Dcm_00358] [SWS_Dcm_00360] SWS DCM p. 478

Response On Event y salto al bootloader

Cada evento ROE tiene los estados «cleared», «stopped» y «started» [SWS_Dcm_00871] (SWS DCM p. 61):

Un evento se desencadena mediante Dcm_TriggerOnEvent o Dcm_DemTriggerOnDTCStatus [SWS_Dcm_00920] [SWS_Dcm_00614]. El ServiceToRespondTo correspondiente se ejecuta entonces como una solicitud normal [SWS_Dcm_00922].

roe init Dcm_Init cleared ROE cleared init->cleared stopped ROE stopped cleared->stopped configuración válida stopped->cleared clearResponseOnEvent (0x06) started ROE started stopped->started startResponseOnEvent (0x05) started->cleared clearResponseOnEvent (0x06) started->stopped stopResponseOnEvent (0x00) o salida de la sesión

Diagrama de estados: ciclo de vida de un RoeEvent. Fuentes: [SWS_Dcm_00872] [SWS_Dcm_00873] [SWS_Dcm_00876] [SWS_Dcm_00879] SWS DCM p. 61

Si el servicio 0x10 solicita una sesión para un bootloader de OEM o de proveedor [SWS_Dcm_00532] [SWS_Dcm_00592], se ejecuta el siguiente flujo (SWS DCM p. 489):

  1. El DCM transfiere el contexto (Dcm_ProgConditionsType) a Dcm_SetProgConditions [SWS_Dcm_00543] [SWS_Dcm_00988].
  2. En caso de E_OK, conmuta el modo DcmEcuReset [SWS_Dcm_00719].
  3. Tras el reinicio, Dcm_GetProgConditions notifica a través de Dcm_EcuStartModeType si corresponde enviar una respuesta [SWS_Dcm_00544] [SWS_Dcm_00987].
Salto al bootloaderTesterDcmDcm-Callouts (Integrator)Nutzer DcmEcuReset10 02 (Bootloader-Sitzung)NRC 0x78 (según la configuración)Dcm_SetProgConditions(OpStatus, ProgConditions)altE_OKModeswitch DcmEcuReset:JUMPTOBOOTLOADER / JUMPTOSYSSUPPLIERBOOTLOADERReset / salto al bootloaderDCM_E_PENDINGnueva llamada en el siguiente ciclo de MainFunctionE_NOT_OKkein Reset, DET-FehlerUse Case: Tras el retorno del bootloaderDcm_GetProgConditions() durante Dcm_InitDCM_WARM_START + ProgConditionsoptResponseRequired = TRUEpositive Antwort ($50 / $51)

Diagrama de secuencia: salto al bootloader y respuesta tras el retorno. Interpretación: el usuario de DcmEcuReset desencadena el reinicio. Fuentes: [SWS_Dcm_00720] [SWS_Dcm_01184] [SWS_Dcm_01181] [SWS_Dcm_00536] SWS DCM p. 489

Comportamiento en caso de error

Los errores se traducen mayormente en respuestas negativas. En los casos en que no esté previsto un código especial, el DCM envía NRC 0x10 [SWS_Dcm_00271]. Los casos individuales son:

Más evidencia detallada

Guía generada por IA sobre la base de los requisitos y pasajes de documentos proporcionados en el prompt para R20-11; los diagramas de versiones posteriores sirven solo para fines ilustrativos. Solo la especificación es normativa.

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

Typen — Übersicht

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: fd12917cfa80 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 DcmDDDIDStorage está establecido en FALSE, 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 en TRUE, 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_Init al estado 'ROE cleared' [SWS_Dcm_00872].
  • Estado de autenticación: si DcmDspAuthenticationPersistStateModeRuleRef no está configurado o la regla de modo referenciada se evalúa como false, 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ámetro ActiveDiagnostic en '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_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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 47d30a9a675c Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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_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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e13cfc7b4a9c Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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_BndMWriteBlockFinish con el estado result = 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 negativa 0x72 (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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 948c170851fe Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 7c05be541216 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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_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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 9e815ace4649 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.h con el ID de servicio 0x2a, posee la signatura Std_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 valor E_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'.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 398801f84afa Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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]:

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_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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: ab9eb5ff232f Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 solicitada TpSduLength es mayor que el búfer disponible en el DCM ([SWS_Dcm_00094], [SWS_Dcm_00444]). bufferSizePtr permanece inalterado ([SWS_Dcm_00094]).
  • BUFREQ_E_NOT_OK: se devuelve si TpSduLength es 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ámetro DcmDslDiagRespOnSecondDeclinedRequest decide si se rechaza con BUFREQ_E_NOT_OK ([SWS_Dcm_00790]) o se acepta con BUFREQ_OK ([SWS_Dcm_00788]). Las solicitudes TesterPresent concurrentes se confirman igualmente con BUFREQ_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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 8d38cdb7c8ea Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 9917213332e5 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 comando TesterPresent con suppressPosRspMsgIndicationBit establecido (SID 0x3E, subfunción 0x80), el submódulo DSL restablece el temporizador de tiempo de espera de sesión S3Server [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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: a321989ea1cd Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 retry es un NULL_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_DATACONF confirma todos los datos copiados antes de esta llamada para su liberación [SWS_Dcm_00092].
  • TP_DATARETRY vuelve a copiar los datos a partir del desplazamiento TxTpDataCnt relativo 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e2141a66244b Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 P2ServerMax y P2*ServerMax ([SWS_Dcm_00353]).
  • Se libera la DcmPduId de 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: ef08d41ee8bf Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 son E_OK en caso de transmisión correcta y E_NOT_OK si 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 84327c759831 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 2f5bafafbcf2 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: f50471437e1e Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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:

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).

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: dde3623859f0 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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).

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 4af905fb6f66 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: d18b075d45c8 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: eb9ee6486bcd Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 desde Dcm_MainFunction con DCM_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 salida ErrorCode [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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 7125f1a0f508 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 64f9fe813c22 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 ProgConditions de tipo Dcm_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 datos Dcm_ProgConditionsType [SWS_Dcm_00544].
  • Valor de retorno: la función devuelve un valor de estado de tipo Dcm_EcuStartModeType al 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).

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 1834b880b12c Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 (filePathAndName con filePathAndNameLength), el byte dataFormatIdentifier (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_CANCEL y DCM_FORCE_RCRRP_OK: En estas llamadas sucesivas, todos los parámetros de entrada están fijados a 0x00 ([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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 236f3be8e83f Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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; filePathAndName transfiere la ubicación y el nombre del archivo que se va a eliminar, cuya longitud en bytes se especifica mediante filePathAndNameLength [SWS_Dcm_91079].
  • DCM_PENDING, DCM_CANCEL o DCM_FORCE_RCRRP_OK: En caso de procesamiento continuo o cancelación, todos los parámetros de entrada están fijados a 0x00 [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).

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: c623f64b1110 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 (filePathAndName con especificación de longitud filePathAndNameLength), 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 a 0x00 [SWS_Dcm_91080].
  • En caso de éxito, la función devuelve al DCM a través del parámetro de salida maxNumberOfBlockLength la longitud máxima de datos útiles para solicitudes TransferData posteriores (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).

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: da3fd9bbf78e Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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).

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 1f3142abbb5b Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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).

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 20f77ea9ba1a Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 puntero Data apunta a los datos útiles que se van a escribir, y DataLength indica su longitud en bytes. El valor de DataLength no supera la longitud máxima de bloque negociada previamente en Dcm_ProcessRequestFileTransfer (NumberOfBlockLength).
  • DCM_PENDING, DCM_CANCEL y DCM_FORCE_RCRRP_OK: Todos los parámetros de entrada están fijados a 0x00.

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).

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 57060973c3b0 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 con DCM_INITIAL, todos los parámetros de entrada son válidos. En llamadas sucesivas o de cancelación con DCM_PENDING, DCM_CANCEL o DCM_FORCE_RCRRP_OK, todos los parámetros de entrada están fijados a 0x00 [SWS_Dcm_91085].
  • Búfer y longitud de bloque: El parámetro DataLength transfiere en el lado de entrada la longitud máxima admisible de bloque (correspondiente al valor notificado al cliente maxNumberOfBlockLength) y devuelve en el lado de salida la longitud en bytes suministrada realmente en Data, que no debe superar el valor de entrada [SWS_Dcm_91085]. Interpretación: Aunque Data está 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_OK en caso de suministro correcto de datos, DCM_E_PENDING si el procesamiento aún no ha concluido o DCM_E_FORCE_RCRRP si 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: c8dffd7076b9 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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_OpStatusType devuelve el valor de retorno DCM_E_PENDING, el DCM llama a la operación de nuevo con OpStatus = DCM_PENDING en cada llamada de Dcm_MainFunction, mientras persista este estado ([SWS_Dcm_00530]).
  • Si Dem_ClearDTC() devuelve el estado DEM_PENDING, la función se llama de nuevo en el siguiente ciclo de Dcm_MainFunction; el DCM envía NRC 78 (ResponsePending) si es necesario ([SWS_Dcm_00703]).
  • Las llamadas a Dem_SetDTCFilter() con el parámetro FilterForFault-DetectionCounter establecido deben realizarse obligatoriamente en el contexto de Dcm_MainFunction ([SWS_Dcm_00519]).
  • Tras la confirmación de una transmisión RCR-RP, el DCM llama a operaciones como Dcm_WriteMemory o Dcm_ReadMemory desde Dcm_MainFunction de nuevo con OpStatus = DCM_FORCE_RCRRP_OK ([SWS_Dcm_00529], [SWS_Dcm_00838], [SWS_Dcm_00840]).
  • Si con Xxx_GetSecurityAttemptCounter se notifica el valor DCM_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 con OpStatus = 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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 5df748b42b56 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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ún DcmDspSecurityADRSize [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ámetro ErrorCode [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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 664a58989509 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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)

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e106fb6bb967 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 en ErrorCode, 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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: bf7f9ceecc6b Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 47588581abb8 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 3c55bb861b02 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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_ReadData configuradas 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 de OBDInfoTypeDataIdentifier [SWS_Dcm_01389].
  • Si, por el contrario, se requiere un comportamiento asíncrono, se aplican las firmas separadas con OpStatus segú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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 7c21ae7ad0af Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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_ReadData configuradas ([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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 85898fb6f53f Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 OpStatus controla 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 salida Data y se devuelve E_OK [SWS_Dcm_91005]. Si la aplicación requiere más tiempo de procesamiento, señaliza DCM_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 salida ErrorCode y 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] y OBDInfoTypeDataIdentifier [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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: a454be11e891 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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_OK señala una escritura correcta, E_NOT_OK el 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 33408eaf87e7 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 073fd835e70e Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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_OK confirma el proceso de escritura correcto, E_NOT_OK notifica un fallo y DCM_E_PENDING indica 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 9f5cd6e5b7ea Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 06fc1b2bd018 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 33edca28ea35 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: de67913a1de3 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: fc286a7e5706 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 salida ErrorCode un código de respuesta negativa (NRC) de tipo Dcm_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_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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 9208fcf4cae3 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 (scalingByte y scalingByteExtension).
  • 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e19d5f1a8714 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 DcmDspDidControlMask está establecido en DCM_CONTROLMASK_EXTERNAL y el tamaño de la máscara es de hasta cuatro bytes (DcmDspDidControlMaskSize <= 0x04), se transfiere el parámetro de entrada controlMask de tipo Dcm_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 puntero controlMask2 de tipo uint8* [SWS_Dcm_01285].
  • A través del parámetro de salida ErrorCode (tipo Dcm_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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 9813f0093a24 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 (tipo Dcm_ControlMask_{DID}Type) se utiliza cuando DcmDspDataUsePort está configurado como USE_DATA_SYNCH_FNC, DcmDspDidControlMask se encuentra en DCM_CONTROLMASK_EXTERNAL y DcmDspDidControlMaskSize es como máximo 0x04 [SWS_Dcm_01286].
  • controlMask2 (tipo uint8*) se emplea cuando, bajo condiciones límite idénticas, DcmDspDidControlMaskSize está configurado como mayor o igual a 0x05 [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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: bb8786261cbc Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 80356e7cc659 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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, tipo Dcm_ControlMask_{DID}Type): se transfiere si el tamaño de máscara DcmDspDidControlMaskSize está configurado como menor o igual a 4 bytes (<= 0x04).
  • controlMask2 (entrada, tipo uint8*): se utiliza en su lugar si el tamaño de máscara comprende al menos 5 bytes (=> 0x05).
  • ErrorCode (salida, tipo Dcm_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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 18f0c2b6db95 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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).
  • controlMask o controlMask2: 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 de DcmDspDidControlMaskSize, el parámetro controlMask (de tipo Dcm_ControlMask_{DID}Type) para un máximo de 4 bytes y el puntero controlMask2 (uint8*) a partir de 5 bytes.
  • ErrorCode: puntero a Dcm_NegativeResponseCodeType para 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 de ErrorCode.

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 897170f9942c Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 salida ErrorCode, 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: bd9ccbb93144 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 controlMask del tipo Dcm_ControlMask_{DID}Type.
  • Si el tamaño de la máscara es de al menos 5 bytes, se transfiere en su lugar controlMask2 como puntero a uint8.

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 71db369fb246 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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_SUPPORTED significa compatibilidad, mientras que DCM_DID_NOT_SUPPORTED indica 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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 8a35ced9ade2 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: da9c861c9607 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 salida ErrorCode.

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: c6168b2bb633 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e6074adc9b96 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 402aa4484a21 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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_1 a dataIn_n o datos variables a través del campo de bytes dataInVar, así como el estado de operación OpStatus [SWS_Dcm_01203].
  • Parámetros de salida: Señales de salida fijas dataOut_1 a dataOut_n o datos de salida variables dataOutVar, así como el código de error ErrorCode para 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 currentDataLength transporta la cantidad de bytes útiles en dataInVar o dataOutVar [SWS_Dcm_01203].
  • Valores de retorno: E_OK confirma el inicio correcto, E_NOT_OK reporta un fallo, DCM_E_PENDING señala pasos de procesamiento aún en curso y DCM_E_FORCE_RCRRP solicita 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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 7f9172ca4312 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 250ef3c4dcf3 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 en ErrorCode [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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 2f01639593ff Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 684a0371b6d5 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 64d7d5ec22d3 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 751e2cd17257 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 9d0e79263799 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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>_DcmDiagnosticSessionControl a RTE_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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: b7698a26c02a Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 9ac147c3e642 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 devuelve E_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 salida ErrorCode [SWS_Dcm_01341]. Siempre que ninguna llamada devuelva E_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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 16843610ecad Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 (0 para físico, 1 para funcional) ([SWS_Dcm_01342]).
  • ConnectionId, ProtocolType y TesterSourceAddress: 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 65665431c065 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 solicitado GoDTC [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 salida ErrorCode de tipo Dcm_NegativeResponseCodeType*. A continuación, el módulo DCM envía una respuesta negativa con el valor de NRC indicado en ErrorCode [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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 786a986ad65c Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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_OK y el valor negociado BlockLength es menor o igual que la longitud de búfer soportada de la conexión de protocolo actual, el Dcm envía una respuesta positiva con este valor como maxNumberOfBlockLength ([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 Dcm notifica el error DET DCM_E_INTERFACE_BUFFER_OVERFLOW ([SWS_Dcm_01418]).
  • Al devolver E_NOT_OK, el Dcm envía una respuesta negativa UDS (NRC) con el valor establecido en el parámetro de salida ErrorCode ([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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: bb284e10287c Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 592221ab777a Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 salida ErrorCode ([SWS_Dcm_00756], [SWS_Dcm_00758]).
  • Si la función devuelve un valor de búfer solicitado en BlockLength que es menor o igual que la longitud de búfer soportada de la conexión de protocolo actual, el DCM utiliza este valor como maxNumberOfBlockLength en 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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 6b3306b715f6 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: f0b899d6fddb Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 en MemoryData [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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 87dab698e982 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 interfaz Dcm_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 interfaz Dcm_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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: aae16d4e9953 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 en DcmDspComControlAllChannel ([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 0x01 a 0x0E, 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 enableRxAndDisableTxWithEnhancedAddressInformation o enableRxAndTxWithEnhancedAddressInformation), 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_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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: d520a70420dc Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 23558f0992c8 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 son E_OK, E_NOT_OK, DCM_E_PENDING, así como DCM_E_FORCE_RCRRP en 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 el Dcm_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_MsgType [SWS_Dcm_00990] 📄 PDF

Base type for diagnostic message (request, positive or negative response)

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 6001ef038188 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: d28165df74e2 Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 7c8af2ec6aed Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 de 0 indica una petición física (physical request), mientras que un valor de 1 indica una petición funcional (functional request).
  • suppressPosResponse (posición LSB+1): Determina el comportamiento con respecto a las respuestas positivas. Con 0, la respuesta positiva no se suprime (do not suppress), mientras que un valor de 1 prescribe 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.

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: efeed9fbd2ce Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 resMaxDataLen y se cumple DcmPagedBufferEnabled == 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 notifica E_NOT_OK con un código de error [SWS_Dcm_00763].
  • Información adicional y supresión de respuesta: a través de msgAddInfo se transporta, entre otros datos, el suppressPosRspMsgIndicationBit; 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 idContext ya desde el inicio de la solicitud para asociar una confirmación posterior con la solicitud original [SWS_Dcm_00994].
  • Referencia al protocolo: el campo dcmRxPduId identifica 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

–

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: c9fa76367e8a Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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) y DCM_POS_RESPONSE_FAILED (0x05): acuse de recibo sobre el envío correcto o fallido de una respuesta positiva.
  • DCM_NEG_RESPONSE_SENT (0x06) y DCM_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

–

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: f40dbedff87d Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 error DCM_E_PENDING, el DCM vuelve a invocar esta operación con OpStatus = DCM_PENDING en cada ciclo subsiguiente de Dcm_MainFunction hasta 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 con DCM_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

–

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 63d2c6367edd Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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_SesCtrlType [SWS_Dcm_00978] 📄 PDF

Session type definition. 0, 127 and all values above 127 are reserved by ISO.

tipo Dcm_AuthenticationRoleType [SWS_Dcm_91068] 📄 PDF

–

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 45efe05a1895 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 deauthenticatedRole en la función C Dcm_SetDeauthenticatedRole (disponible a través de Dcm.h) [SWS_Dcm_91069], así como en la operación SetDeauthenticatedRole de la interfaz de servicio Authentication [SWS_Dcm_91072]. De este modo, se asigna de forma síncrona un rol desautenticado a una conexión, identificada mediante el connectionId [SWS_Dcm_91069].
  • Concurrencia y validez: la API C Dcm_SetDeauthenticatedRole está 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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 7abebbf3ff04 Procedencia Preguntas abiertas (3)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: b2ef4373fbcc Procedencia Preguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: e5557daff70f Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 0b1a5bf3d04f Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 11f23c0e37d5 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 DcmModeRapidPowerShutDown [SWS_Dcm_91023] 📄 PDF

ModeDeclarationGroup representing the enable/disable state of rapid power shutdown

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: d451f77bd84c Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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)}

GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 776ea5647fe7 Procedencia
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

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 ModeDeclarationGroupPrototype DcmSecurityAccess como 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_SecurityAccessModeSwitchInterface y 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

Mapa de temas

Inicialización y estado

2

Vista de detalle

Selecciona una entrada en el índice.

Inicialización y estado

Returns the version information of this module

void Dcm_GetVersionInfo (Std_VersionInfoType* versionInfo);
Dcm_Init función

Service for basic initialization of DCM module.

void Dcm_Init (const Dcm_ConfigType* ConfigPtr);

Servicios · Get…

This function returns the active UDS protocol details

Std_ReturnType Dcm_GetActiveProtocol (Dcm_ProtocolType* ActiveProtocolType, uint16* ConnectionId, uint16* TesterSourceAddress);

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.

Dcm_EcuStartModeType Dcm_GetProgConditions (Dcm_ProgConditionsType* ProgConditions);

This function provides the active security level value.

Std_ReturnType Dcm_GetSecurityLevel (Dcm_SecLevelType* SecLevel);

This function provides the active session control type value.

Std_ReturnType Dcm_GetSesCtrlType (Dcm_SesCtrlType* SesCtrlType);
Dcm_GetVin función

Function to get the VIN (as defined in SAE J1979-DA)

Std_ReturnType Dcm_GetVin (uint8* Data);

The function provides the data related to the requested Infotype.

Std_ReturnType Xxx_GetInfotypeValueData (Dcm_OpStatusType OpStatus, uint8* DataValueBuffer, uint8* DataValueBufferSize);

This function requests to the application for the scaling information of a Data.

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);

Read the attempt counter for a specific security level from the application

Std_ReturnType Xxx_GetSecurityAttemptCounter (Dcm_OpStatusType OpStatus, uint8* AttemptCounter);
Xxx_GetSeed función

Request to application for asynchronous provision of seed value

Std_ReturnType Xxx_GetSeed (const uint8* SecurityAccessDataRecord, Dcm_OpStatusType OpStatus, uint8* Seed, Dcm_NegativeResponseCodeType* ErrorCode);
Xxx_GetSeed#2 función

Request to application for asynchronous provision of seed value

Std_ReturnType Xxx_GetSeed (Dcm_OpStatusType OpStatus, uint8* Seed, Dcm_NegativeResponseCodeType* ErrorCode);

Servicios · Process…

Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x01 (AddFile).

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 0x02 (DeleteFile). Manager

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 0x05 (ReadDir).

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 0x04 (ReadFile).

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 0x03 (ReplaceFile).

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 callout function to start a download process. This service is needed for the implementation of UDS service RequestDownload.

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 terminate a download or upload process. This callout is needed for the implementation of UDS service RequestTransferExit.

Std_ReturnType Xxx_ProcessRequestTransferExit (Dcm_OpStatusType OpStatus, 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.

Std_ReturnType Xxx_ProcessRequestUpload (Dcm_OpStatusType OpStatus, uint8 DataFormatIdentifier, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint32* BlockLength, 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

Dcm_ReturnReadMemoryType Xxx_ProcessTransferDataRead (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, 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

Dcm_ReturnWriteMemoryType Xxx_ProcessTransferDataWrite (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, const Dcm_RequestDataArrayType MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);

Servicios · Read…

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).

Std_ReturnType Dcm_ReadFileOrDir (Dcm_OpStatusType OpStatus, uint64* DataLength, uint8* Data, 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

Dcm_ReturnReadMemoryType Dcm_ReadMemory (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint8* MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);
Xxx_ReadData función

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 (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);

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 the application to return the data length in byte of a Data.

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 to the application a data value of a DID

Std_ReturnType Xxx_ReadDidData (uint16 DID, uint8* Data, Dcm_OpStatusType OpStatus, uint16 DataLength, Dcm_NegativeResponseCodeType ErrorCode);

This function requests the application to return the data length of a DID Range.

Std_ReturnType Xxx_ReadDidRangeDataLength (uint16 DID, Dcm_OpStatusType OpStatus, uint16* DataLength);

Servicios · Write…

Dcm_WriteFile función

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).

Std_ReturnType Dcm_WriteFile (Dcm_OpStatusType OpStatus, uint64 DataLength, uint8* Data, 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

Dcm_ReturnWriteMemoryType Dcm_WriteMemory (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, const uint8* MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);
Xxx_WriteData función

This function requests the application to write a data value of a DID.

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_WriteDidData (uint16 DID, const uint8* Data, Dcm_OpStatusType OpStatus, uint16 DataLength, Dcm_NegativeResponseCodeType ErrorCode);

Servicios · Set…

Allows to activate and deactivate the call of ComM_DCM_ActiveDiagnostic() function.

Std_ReturnType Dcm_SetActiveDiagnostic (boolean active);

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.

Std_ReturnType Dcm_SetDeauthenticatedRole (uint16 connectionId, Dcm_AuthenticationRoleType deauthenticatedRole);

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.

Std_ReturnType Dcm_SetProgConditions (Dcm_OpStatusType OpStatus, const Dcm_ProgConditionsType* ProgConditions);

Set the attempt counter for a specific security level in the application

Std_ReturnType Xxx_SetSecurityAttemptCounter (Dcm_OpStatusType OpStatus, uint8 AttemptCounter);

Servicios · Com…

This call informs the Dcm module about a ComM mode change to COMM_FULL_ COMMUNICATION.

void Dcm_ComM_FullComModeEntered (uint8 NetworkId);

This call informs the Dcm module about a ComM mode change to COMM_NO_ COMMUNICATION.

void Dcm_ComM_NoComModeEntered (uint8 NetworkId);

This call informs the Dcm module about a ComM mode change to COMM_SILENT_ COMMUNICATION.

void Dcm_ComM_SilentComModeEntered (uint8 NetworkId);

Servicios · Request…

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

Std_ReturnType Xxx_RequestControl (uint8* OutBuffer, const uint8* InBuffer);

This function requests to the application the result of a routine execution

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 indicates the transmission of a response to a RequestRoutineResults request

Std_ReturnType Xxx_RequestResultsConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);

Servicios · Reset…

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.

Std_ReturnType Dcm_ResetToDefaultSession (void);

This function requests to the application to reset an IOControl to default value.

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);

Servicios · Start…

Xxx_Start función

This function requests to the application to start the execution of a routine.

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 indicates the transmission of a response to a StartRoutine request

Std_ReturnType Xxx_StartConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);

This function allows the application to examine the environment conditions and enable/disable further processing of the protocol.

Std_ReturnType Xxx_StartProtocol (Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress, uint16 ConnectionId);

Servicios · Stop…

Xxx_Stop función

This function requests to the application to stop the execution of a routine

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 indicates the transmission of a response to a StopRoutine request

Std_ReturnType Xxx_StopConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);

This function informs the application of the protocol stop.

Std_ReturnType Xxx_StopProtocol (Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress, uint16 ConnectionId);

Servicios · Otros

Called by BndM to indicate that a block write operation has finished.

void Dcm_BndMWriteBlockFinish (BndM_BlockIdType BlockId, BndM_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).

Std_ReturnType Dcm_CsmAsyncJobFinished (Csm_ResultType result);

Triggers on changes of the UDS status byte. Allows to trigger on ROE Event for subservice On DTCStatusChanged.

Std_ReturnType Dcm_DemTriggerOnDTCStatus (uint32 DTC, Dem_UdsStatusByteType DTCStatusOld, Dem_UdsStatusByteType DTCStatusNew);

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).

Std_ReturnType Dcm_KeyMAsyncCertificateVerifyFinished (KeyM_CertificateIdType CertID, KeyM_CertificateStatusType Result);

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'.

Std_ReturnType Dcm_TriggerOnEvent (uint8 RoeEventId);

Callout function for condition check, manufacturer / supplier specific checks on the groupOf DTC, which is requested to clear.

Std_ReturnType Xxx_ClearDTCCheckFnc (uint32 GoDTC, Dcm_NegativeResponseCodeType* ErrorCode);

Request to application for asynchronous comparing key (DcmDspSecurityUsePort = USE_ ASYNCH_CLIENT_SERVER)

Std_ReturnType Xxx_CompareKey (const uint8* Key, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

This function requests to the application if the conditions to read the Data are correct.

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 confirms to the application the successful transmission or a transmission error of a diagnostic service.

Std_ReturnType Xxx_Confirmation (uint8 SID, uint8 ReqType, uint16 ConnectionId, Dcm_ConfirmationStatusType ConfirmationStatus, Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress);

This function requests to the application to freeze the current state of an IOControl.

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.

Std_ReturnType Xxx_FreezeCurrentState (Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);

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

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 requests if a specific DID is available within the range or not.

Std_ReturnType Xxx_IsDidAvailable (uint16 DID, Dcm_OpStatusType OpStatus, Dcm_DidSupportedType* supported);

This function requests to the application to return control to ECU of an IOControl.

Std_ReturnType Xxx_ReturnControlToECU ([ 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, [ 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);

Callbacks

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.

BufReq_ReturnType Dcm_CopyRxData (PduIdType id, const PduInfoType* info, PduLengthType* bufferSizePtr);

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.

BufReq_ReturnType Dcm_CopyTxData (PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);

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.

BufReq_ReturnType Dcm_StartOfReception (PduIdType id, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);

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.

void Dcm_TpRxIndication (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.

void Dcm_TpTxConfirmation (PduIdType id, 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.

void Dcm_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);

Cíclico

This service is used for processing the tasks of the main loop.

void Dcm_MainFunction (void);

Tipos

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the DTC Setting mode

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.

Allows the DCM to know if a diagnostic response shall be sent in the case of a jump from bootloader

This message context identifier can be used to determine the relation between request and response confirmation.

Additional information on message request. Datastructure: Bitfield

This data structure contains all information which is necessary to process a diagnostic message from request to response and response confirmation.

Base type for diagnostic message item

Length of diagnostic message (request, positive or negative response). The maximum length is dependent of the underlying transport protocol/media.

Base type for diagnostic message (request, positive or negative response)

Type Dcm_NegativeResponseCodeType.

Used in Dcm_SetProgConditions() to allow the integrator to store relevant information prior to jumping to bootloader / jump due to ECUReset request.

Type Dcm_ProtocolType.

Return values of Callout Dcm_ReadMemory

Return type of callout Dcm_WriteMemory

Security Level type definition

Session type definition. 0, 127 and all values above 127 are reserved by ISO.

Base item type to transport status information.

ModeDeclarationGroup representing the different communication control states

ModeDeclarationGroup representing the enable/disable state for DTC storage

ModeDeclarationGroup representing the different diagnostic sessions Further modes to be added: {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspSession/ DcmDspSessionRow.SHORT-NAME)}

ModeDeclarationGroup representing the different ECU reset types

ModeDeclarationGroup representing the enable/disable state of rapid power shutdown

ModeDeclarationGroup representing the state of a Response On Event

ModeDeclarationGroup representing the different diagnostic security levels Further modes to be added: {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp Security/DcmDspSecurityRow.SHORT-NAME)}

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Diagnostic Session

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about an upcoming ECU Reset and its type

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the rapid power shut down mode

A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Security Level