Diagnostic Communication Manager (DCM)
The DCM implements unified diagnostic services according to ISO 14229-1 (UDS) and ISO 15765-4 (OBD). It manages diagnostic sessions, security levels, and service routing.
Funktionen — Übersicht
void Dcm_Init (const Dcm_ConfigType* ConfigPtr);Service for basic initialization of DCM module.void Dcm_GetVersionInfo (Std_VersionInfoType* versionInfo);Returns the version information of this moduleStd_ReturnType Dcm_DemTriggerOnDTCStatus (uint32 DTC, Dem_UdsStatusByteType DTCStatusOld, Dem_UdsStatusByteType DTCStatusNew);Triggers on changes of the UDS status byte.Std_ReturnType Dcm_GetVin (uint8* Data);Function to get the VIN (as defined in SAE J1979-DA)void Dcm_BndMWriteBlockFinish (BndM_BlockIdType BlockId, BndM_ResultType result);Called by BndM to indicate that a block write operation has finished.Std_ReturnType Dcm_SetDeauthenticatedRole (uint16 connectionId, Dcm_AuthenticationRoleType deauthenticatedRole);Sets a new role used in deauthenticated state for that connection.Std_ReturnType Dcm_GetSecurityLevel (Dcm_SecLevelType* SecLevel);This function provides the active security level value.Std_ReturnType Dcm_GetSesCtrlType (Dcm_SesCtrlType* SesCtrlType);This function provides the active session control type value.Std_ReturnType Dcm_GetActiveProtocol (Dcm_ProtocolType* ActiveProtocolType, uint16* ConnectionId, uint16* TesterSourceAddress);This function returns the active UDS protocol detailsStd_ReturnType Dcm_ResetToDefaultSession (void);The call to this function allows the application to reset the current session to Default session.Std_ReturnType Dcm_TriggerOnEvent (uint8 RoeEventId);The call to this function allows to trigger an event linked to a ResponseOnEvent request.Std_ReturnType Dcm_SetActiveDiagnostic (boolean active);Allows to activate and deactivate the call of ComM_DCM_ActiveDiagnostic() function.BufReq_ReturnType Dcm_StartOfReception (PduIdType id, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);This function is called at the start of receiving an N-SDU.BufReq_ReturnType Dcm_CopyRxData (PduIdType id, const PduInfoType* info, PduLengthType* bufferSizePtr);This function is called to provide the received data of an I-PDU segment (N-PDU) to the upper layer.void Dcm_TpRxIndication (PduIdType id, Std_ReturnType result);Called after an I-PDU has been received via the TP API, the result indicates whether the transmission was successful or not.BufReq_ReturnType Dcm_CopyTxData (PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);This function is called to acquire the transmit data of an I-PDU segment (N-PDU).void Dcm_TpTxConfirmation (PduIdType id, Std_ReturnType result);This function is called after the I-PDU has been transmitted on its network, the result indicates whether the transmission was...void Dcm_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.void Dcm_ComM_NoComModeEntered (uint8 NetworkId);This call informs the Dcm module about a ComM mode change to COMM_NO_ COMMUNICATION.void Dcm_ComM_SilentComModeEntered (uint8 NetworkId);This call informs the Dcm module about a ComM mode change to COMM_SILENT_ COMMUNICATION.void Dcm_ComM_FullComModeEntered (uint8 NetworkId);This call informs the Dcm module about a ComM mode change to COMM_FULL_ COMMUNICATION.Std_ReturnType Dcm_CsmAsyncJobFinished (Csm_ResultType result);Can be called from Csm upon finishing an asynchronous job processing.Std_ReturnType Dcm_KeyMAsyncCertificateVerifyFinished (KeyM_CertificateIdType CertID, KeyM_CertificateStatusType Result);Can be called from Key upon finishing an asynchronous certificate verification.Dcm_ReturnReadMemoryType Dcm_ReadMemory (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint8* MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);The Dcm_ReadMemory callout is used to request memory data identified by the parameter memoryAddress and memorySize from the...Dcm_ReturnWriteMemoryType Dcm_WriteMemory (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, const uint8* MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);The Dcm_WriteMemory callout is used to write memory data identified by the parameter memoryAddress and memorySize.Std_ReturnType Dcm_SetProgConditions (Dcm_OpStatusType OpStatus, const Dcm_ProgConditionsType* ProgConditions);The Dcm_SetProgConditions callout allows the integrator to store relevant information prior to jumping to bootloader / jump...Dcm_EcuStartModeType Dcm_GetProgConditions (Dcm_ProgConditionsType* ProgConditions);The Dcm_GetProgConditions callout is called upon Dcm initialization and allows to determine if a response ($50 or $51) has to...Std_ReturnType Dcm_ProcessRequestAddFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Dcm_ProcessRequestDeleteFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Dcm_ProcessRequestReplaceFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Dcm_ProcessRequestReadFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Dcm_ProcessRequestReadDir (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint64* dirInfoLength, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Dcm_WriteFile (Dcm_OpStatusType OpStatus, uint64 DataLength, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Dcm_ReadFileOrDir (Dcm_OpStatusType OpStatus, uint64* DataLength, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.void Dcm_MainFunction (void);This service is used for processing the tasks of the main loop.Std_ReturnType Xxx_GetSeed (const uint8* SecurityAccessDataRecord, Dcm_OpStatusType OpStatus, uint8* Seed, Dcm_NegativeResponseCodeType* ErrorCode);Request to application for asynchronous provision of seed valueStd_ReturnType Xxx_GetSeed (Dcm_OpStatusType OpStatus, uint8* Seed, Dcm_NegativeResponseCodeType* ErrorCode);Request to application for asynchronous provision of seed valueStd_ReturnType Xxx_CompareKey (const uint8* Key, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);Request to application for asynchronous comparing key (DcmDspSecurityUsePort = USE_ ASYNCH_CLIENT_SERVER)Std_ReturnType Xxx_GetSecurityAttemptCounter (Dcm_OpStatusType OpStatus, uint8* AttemptCounter);Read the attempt counter for a specific security level from the applicationStd_ReturnType Xxx_SetSecurityAttemptCounter (Dcm_OpStatusType OpStatus, uint8 AttemptCounter);Set the attempt counter for a specific security level in the applicationStd_ReturnType Xxx_ReadData (uint8* Data);This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_SYNCH_CLIENT_SERVER.Std_ReturnType Xxx_ReadData (Dcm_OpStatusType OpStatus, uint8* Data);This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_ASYNCH_CLIENT_SERVER.Std_ReturnType Xxx_ReadData (Dcm_OpStatusType OpStatus, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_ASYNCH_CLIENT_SERVER.Std_ReturnType Xxx_WriteData (const uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);This function requests the application to write a data value of a DID.Std_ReturnType Xxx_WriteData (const uint8* Data, uint16 DataLength, Dcm_NegativeResponseCodeType* ErrorCode);This function requests the application to write a data value of a DID.Std_ReturnType Xxx_WriteData (const uint8* Data, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);This function requests the application to write a data value of a DID.Std_ReturnType Xxx_WriteData (const uint8* Data, uint16 DataLength, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);This function requests the application to write a data value of a DID.Std_ReturnType Xxx_ReadDataLength (uint16* DataLength);This function requests the application to return the data length in byte of a Data.Std_ReturnType Xxx_ReadDataLength (Dcm_OpStatusType OpStatus, uint16* DataLength);This function requests the application to return the data length in byte of a Data.Std_ReturnType Xxx_ConditionCheckRead (Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application if the conditions to read the Data are correct.Std_ReturnType Xxx_ConditionCheckRead (Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application if the conditions to read the Data are correct.Std_ReturnType Xxx_GetScalingInformation (uint8* ScalingInfo, Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application for the scaling information of a Data.Std_ReturnType Xxx_GetScalingInformation (Dcm_OpStatusType OpStatus, uint8* ScalingInfo, Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application for the scaling information of a Data.Std_ReturnType Xxx_ReturnControlToECU ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to return control to ECU of an IOControl.Std_ReturnType Xxx_ResetToDefault ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to reset an IOControl to default value.Std_ReturnType Xxx_ResetToDefault (Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to reset an IOControl to default value.Std_ReturnType Xxx_FreezeCurrentStateManager ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to freeze the current state of an IOControl.Std_ReturnType Xxx_FreezeCurrentStateManager (Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to freeze the current state of an IOControl.Std_ReturnType Xxx_ShortTermAdjustment (const uint8* ControlStateInfo, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to adjust the IO signal.Std_ReturnType Xxx_ShortTermAdjustment (const uint8* ControlStateInfo, uint16 DataLength, Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to adjust the IO signal.Std_ReturnType Xxx_IsDidAvailable (uint16 DID, Dcm_OpStatusType OpStatus, Dcm_DidSupportedType* supported);This function requests if a specific DID is available within the range or not.Std_ReturnType Xxx_ReadDidData (uint16 DID, uint8* Data, Dcm_OpStatusType OpStatus, uint16 DataLength, Dcm_NegativeResponseCodeType ErrorCode);This function requests to the application a data value of a DIDStd_ReturnType Xxx_WriteDidData (uint16 DID, const uint8* Data, Dcm_OpStatusType OpStatus, uint16 DataLength, Dcm_NegativeResponseCodeType ErrorCode);This function requests the application to write a data value of a DID.Std_ReturnType Xxx_ReadDidRangeDataLength (uint16 DID, Dcm_OpStatusType OpStatus, uint16* DataLength);This function requests the application to return the data length of a DID Range.Std_ReturnType Xxx_GetInfotypeValueData (Dcm_OpStatusType OpStatus, uint8* DataValueBuffer, uint8* DataValueBufferSize);The function provides the data related to the requested Infotype.Std_ReturnType Xxx_Start ([ DcmDspRoutineSignalType dataIn_1, ... DcmDspRoutineSignalType dataIn_n ], [ const uint8* dataInVar ], Manager Dcm_OpStatusType OpStatus, [ DcmDspRoutineSignalType dataOut_1, ... DcmDspRoutineSignalType dataOut_n ], [ uint8* dataOutVar ], [ uint16* currentDataLength ], Dcm_NegativeResponseCodeType ErrorCode); ⚠️This function requests to the application to start the execution of a routine.Std_ReturnType Xxx_StartConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);This function indicates the transmission of a response to a StartRoutine requestStd_ReturnType Xxx_Stop ([ DcmDspRoutineSignalType dataIn_1, ... DcmDspRoutineSignalType dataIn_n ], [ const uint8* dataInVar ], [ DcmDspRoutineSignalType dataOut_1, ... DcmDspRoutineSignalType dataOut_n ], [ uint8* dataOutVar ], [ uint16* currentDataLength ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to stop the execution of a routineStd_ReturnType Xxx_StopConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);This function indicates the transmission of a response to a StopRoutine requestStd_ReturnType Xxx_RequestResults (Dcm_OpStatusType OpStatus, [ DcmDspRoutineSignalType* dataIn_1, ... DcmDspRoutineSignalType* dataIn_n ], [ const uint8* dataInVar ], [ DcmDspRoutineSignalType* dataOut_1, ... DcmDspRoutineSignalType* dataOut_n ], [ uint8* dataOutVar ], [ uint16* variableDataLength ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application the result of a routine executionStd_ReturnType Xxx_RequestResultsConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);This function indicates the transmission of a response to a RequestRoutineResults requestStd_ReturnType Xxx_RequestControl (uint8* OutBuffer, const uint8* InBuffer);Invokes a TID-specific function taking a configured number of bytes as input and returing a fixed number of bytes as output.Std_ReturnType Xxx_StartProtocol (Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress, uint16 ConnectionId);This function allows the application to examine the environment conditions and enable/disable further processing of the protocol.Std_ReturnType Xxx_StopProtocol (Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress, uint16 ConnectionId);This function informs the application of the protocol stop.Std_ReturnType Xxx_Indication (uint8 SID, const uint8* RequestData, uint32 DataSize, uint8 ReqType, uint16 ConnectionId, Dcm_NegativeResponseCodeType* ErrorCode, Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress);This function indicates to the application that a service is about to be executed and allows the application to reject the...Std_ReturnType Xxx_Confirmation (uint8 SID, uint8 ReqType, uint16 ConnectionId, Dcm_ConfirmationStatusType ConfirmationStatus, Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress);This function confirms to the application the successful transmission or a transmission error of a diagnostic service.Std_ReturnType Xxx_ClearDTCCheckFnc (uint32 GoDTC, Dcm_NegativeResponseCodeType* ErrorCode);Callout function for condition check, manufacturer / supplier specific checks on the groupOf DTC, which is requested to clear.Std_ReturnType Xxx_ProcessRequestDownload (Dcm_OpStatusType OpStatus, uint8 DataFormatIdentifier, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint32* BlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Xxx_ProcessRequestTransferExit (Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Xxx_ProcessRequestUpload (Dcm_OpStatusType OpStatus, uint8 DataFormatIdentifier, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint32* BlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Dcm_ReturnReadMemoryType Xxx_ProcessTransferDataRead (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, Dcm_RequestDataArrayType MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);The ProcessTransferDataRead callout is used to request memory data identified by the parameter memoryAddress and memorySize...Dcm_ReturnWriteMemoryType Xxx_ProcessTransferDataWrite (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, const Dcm_RequestDataArrayType MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);The ProcessTransferDataWrite callout is used to write memory data identified by the parameter memoryAddress and memorySize.
Typen — Übersicht
enum Dcm_StatusTypeBase item type to transport status information.enum Dcm_CommunicationModeType Managerstruct Dcm_ConfigTypeThis type defines a data structure for the post build parameters of the DCM.Dcm_ReturnReadMemoryTypeReturn values of Callout Dcm_ReadMemoryDcm_ReturnWriteMemoryTypeReturn type of callout Dcm_WriteMemoryenum Dcm_EcuStartModeTypeAllows the DCM to know if a diagnostic response shall be sent in the case of a jump from bootloaderDcm_ProgConditionsTypeUsed in Dcm_SetProgConditions() to allow the integrator to store relevant information prior to jumping to bootloader / jump...Dcm_MsgItemTypeBase type for diagnostic message itemDcm_MsgTypeBase type for diagnostic message (request, positive or negative response)Dcm_MsgLenTypeLength of diagnostic message (request, positive or negative response).struct Dcm_MsgAddInfoTypeAdditional information on message request.Dcm_IdContextTypeThis message context identifier can be used to determine the relation between request and response confirmation.struct Dcm_MsgContextTypeThis data structure contains all information which is necessary to process a diagnostic message from request to response and...enum Dcm_ExtendedOpStatusTypeenum Dcm_OpStatusTypeenum Dcm_ConfirmationStatusTypeDcm_SecLevelTypeSecurity Level type definitionDcm_SesCtrlTypeSession type definition.Dcm_ProtocolTypeType Dcm_ProtocolType.Dcm_NegativeResponseCodeTypeType Dcm_NegativeResponseCodeType.Dcm_DataArrayTypeDcm_InfoTypeDcm_RequestDataArrayTypeDcm_InputOutputControlParameterTypeDcm_IOOperationResponseTypeDcm_DidSupportedTypeDcm_FileAndDirNameTypeDcm_ResponseDataArrayTypeDcm_AuthenticationRoleTypeDiagnosticSessionControlModeSwitchInterfaceA ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Diagnostic SessionEcuResetModeSwitchInterfaceA ModeSwitchInterface PPortPrototype used to notify SW-Cs about an upcoming ECU Reset and its typeModeRapidPowerShutDownModeSwitchInterfaceA ModeSwitchInterface PPortPrototype used to notify SW-Cs about the rapid power shut down modeControlDTCSettingModeSwitchInterfaceA ModeSwitchInterface PPortPrototype used to notify SW-Cs about the DTC Setting modeSecurityAccessModeSwitchInterfaceA ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Security LevelDcmDiagnosticSessionControlModeDeclarationGroup representing the different diagnostic sessions Further modes to be added:...DcmEcuResetModeDeclarationGroup representing the different ECU reset typesDcmModeRapidPowerShutDownModeDeclarationGroup representing the enable/disable state of rapid power shutdownDcmCommunicationControlModeDeclarationGroup representing the different communication control statesDcmControlDTCSettingModeDeclarationGroup representing the enable/disable state for DTC storageDcmResponseOnEventModeDeclarationGroup representing the state of a Response On EventDcmSecurityAccessModeDeclarationGroup representing the different diagnostic security levels Further modes to be added:...
Funktionen & Typen — Detailansicht
função Dcm_Init [SWS_Dcm_00037] 📄 PDF
void Dcm_Init (const Dcm_ConfigType* ConfigPtr);
Service for basic initialization of DCM module.
A função síncrona e não reentrante Dcm_Init serve para a inicialização básica do módulo DCM [SWS_Dcm_00037]. Ela recebe, por meio do parâmetro ConfigPtr, um ponteiro para o conjunto de configuração em variantes post-build e não possui valor de retorno [SWS_Dcm_00037]. Durante a execução, o módulo inicializa todas as variáveis globais do DCM com os valores da configuração [SWS_Dcm_00334].
No âmbito do fluxo de inicialização, são configurados diferentes estados e áreas funcionais:
- Gerenciamento de DDDID: se o parâmetro de configuração
DcmDDDIDStorageestiver definido comoFALSE, o DCM inicializa, durante a inicialização (startup), todos os identificadores de dados definidos dinamicamente (DDDIDs) como não existentes [SWS_Dcm_00866]. Se o parâmetro estiver definido comoTRUE, as definições de DDDID são restauradas a partir da NvM [SWS_Dcm_00867]. - Response on Event (ROE): o DCM transita o estado de cada evento durante
Dcm_Initpara o status 'ROE cleared' [SWS_Dcm_00872]. - Status de autenticação: se
DcmDspAuthenticationPersistStateModeRuleRefnão estiver configurado ou a regra de modo referenciada for avaliada comofalse, o módulo coloca todos os estados de autenticação no estado 'deauthenticated' [SWS_Dcm_01480]. - Status de comunicação: após a conclusão de
Dcm_Init, o DCM define o parâmetroActiveDiagnosticcomo 'DCM_COMM_ACTIVE' [SWS_Dcm_01069].
Em relação ao ambiente de execução, está estabelecido que Dcm_Init não é reentrante [SWS_Dcm_00037]. Códigos de erro específicos, bem como mensagens de erro padronizadas para DET ou DEM, não são indicados para este serviço de inicialização na especificação da interface [SWS_Dcm_00037].
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR.
Guia do implementador em breve (complexidade I2)
função Dcm_GetVersionInfo [SWS_Dcm_00065] 📄 PDF
void Dcm_GetVersionInfo (Std_VersionInfoType* versionInfo);
Returns the version information of this module
função Dcm_DemTriggerOnDTCStatus [SWS_Dcm_00614] 📄 PDF
Std_ReturnType Dcm_DemTriggerOnDTCStatus (uint32 DTC, Dem_UdsStatusByteType DTCStatusOld, Dem_UdsStatusByteType DTCStatusNew);
Triggers on changes of the UDS status byte. Allows to trigger on ROE Event for subservice On DTCStatusChanged.
usar
A interface síncrona Dcm_DemTriggerOnDTCStatus (ID de serviço 0x2B) está disponível através do cabeçalho Dcm_Dem.h e serve para reportar alterações do byte de status UDS ao DCM [SWS_Dcm_00614]. Isso permite ao DCM o disparo de eventos Response-on-Event (ROE) para o sub-serviço de diagnóstico OnDTCStatusChanged [SWS_Dcm_00614]. Na chamada, a função recebe três parâmetros de entrada: o código de falha afetado DTC (uint32), o estado anterior DTCStatusOld (Dem_UdsStatusByteType), bem como o estado atualizado DTCStatusNew (Dem_UdsStatusByteType) [SWS_Dcm_00614]. Não existem parâmetros de entrada e saída [SWS_Dcm_00614].
Valores de retorno e tratamento de erros
Como valor de retorno, a função fornece o tipo Std_ReturnType, sendo retornado E_OK sem exceção, segundo a especificação [SWS_Dcm_00614]. Códigos de erro específicos, valores de fallback ou notificações separadas para DEM ou DET não são indicados para esta chamada.
Concorrência e interação
A função é classificada como reentrante e dispõe de uma semântica de execução síncrona [SWS_Dcm_00614]. No que diz respeito à interação com requisições de diagnóstico, aplica-se uma condição limite fixa: se uma solicitação para limpar a memória de eventos (EventMemory) estiver sendo processada atualmente no DCM, o DCM deve ignorar chamadas recebidas do callback Dcm_DemTriggerOnDTCStatus [SWS_Dcm_01410].
Esta nota de uso baseia-se nas especificações do release AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I2)
função Dcm_GetVin [SWS_Dcm_00950] 📄 PDF
Std_ReturnType Dcm_GetVin (uint8* Data);
Function to get the VIN (as defined in SAE J1979-DA)
função 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.
A função Dcm_BndMWriteBlockFinish serve como interface de notificação do BndM ao DCM para indicar a conclusão de uma operação de escrita de bloco [SWS_Dcm_91088]. A função é declarada no ficheiro de cabeçalho Dcm.h, possui o Service-ID 0x7a, não retorna nenhum valor (void) e é executada de forma síncrona [SWS_Dcm_91088].
A interface espera dois parâmetros de passagem [SWS_Dcm_91088]:
BlockId(tipo:BndM_BlockIdType): Identifica o bloco cuja operação de escrita foi concluída.result(tipo:BndM_ResultType): Transmite o resultado da operação de escrita ao DCM.
A interação funcional e o comportamento em caso de erro estão acoplados a operações atómicas de escrita BndM previamente desencadeadas pelo DCM:
- Se
Dcm_BndMWriteBlockFinishfor chamada com o estadoresult = E_OK, o DCM envia uma resposta de diagnóstico positiva ao pedido pendente [SWS_Dcm_01584]. - Se a função for chamada com
result = E_NOT_OK, o DCM reage em caso de erro com uma resposta de diagnóstico negativa0x72(generalProgrammingFailure) [SWS_Dcm_01585].
No que diz respeito à concorrência, Dcm_BndMWriteBlockFinish está especificada como não reentrante (Non Reentrant) [SWS_Dcm_91088]. Consequentemente, os chamadores devem assegurar que a função não seja chamada em paralelo ou de forma interruptiva por múltiplos contextos.
Esta nota de uso foi gerada por uma IA e baseia-se na especificação AUTOSAR R20-11.
função 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.
Utilização e contexto de chamada
A função Dcm_SetDeauthenticatedRole é executada de forma síncrona e reentrante ([SWS_Dcm_91069]). Ela permite que um componente de software atribua uma nova função (role) deauthenticatedRole do tipo Dcm_AuthenticationRoleType para o estado desautenticado para uma conexão identificada por connectionId ([SWS_Dcm_91069], [SWS_Dcm_01486]). Como valor de retorno, é fornecido invariavelmente E_OK ([SWS_Dcm_91069]).
Condições de estado e tratamento de erros
Uma chamada só é processada pelo DCM se a conexão estiver no estado desautenticado (deauthenticated state) ([SWS_Dcm_01487]). Como a assinatura não prevê valores de erro alternativos e retorna sempre E_OK ([SWS_Dcm_91069]), presume-se que uma chamada fora deste estado seja descartada sem mensagem de erro. Pergunta Q-6f14770eae6ce896 (aberta) Eventos DET ou DEM específicos não estão definidos na especificação.
Duração de validade e ciclo de vida
Se a função para o estado desautenticado for assumida com sucesso ([SWS_Dcm_01486]), essa atribuição permanece temporariamente:
- A função definida é descartada assim que a conexão muda para o estado autenticado (authenticated state) ([SWS_Dcm_01488]).
- A validade termina, no mais tardar, após um reset da unidade de controle ([SWS_Dcm_91069]).
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR.
Guia do implementador em breve (complexidade I2)
função Dcm_GetSecurityLevel [SWS_Dcm_00338] 📄 PDF
Std_ReturnType Dcm_GetSecurityLevel (Dcm_SecLevelType* SecLevel);
This function provides the active security level value.
A função síncrona e reentrante Dcm_GetSecurityLevel consulta o nível de segurança atualmente ativo do DCM e o disponibiliza [SWS_Dcm_00338]. A função é declarada através do cabeçalho Dcm.h e passa o valor de status determinado ao chamador através do parâmetro de saída SecLevel do tipo Dcm_SecLevelType*. Como valor de retorno, segundo a especificação, é retornado invariavelmente E_OK [SWS_Dcm_00338].
A determinação do nível de segurança interno baseia-se no parâmetro SecurityAccessType transmitido pelo testador no âmbito do serviço SecurityAccess, de acordo com a fórmula fixa de conversão SecurityLevel = (SecurityAccessType + 1) / 2 [SWS_Dcm_00338].
Na interação com o processamento de serviço de diagnóstico de nível superior, entre outros, o submódulo DSP recorre a este valor: se o módulo recebe uma solicitação configurada com o tipo de subfunção «requestSeed» (valor ímpar) e o nível de acesso correspondente já estiver ativo segundo Dcm_GetSecurityLevel, o submódulo DSP define o conteúdo da seed para 0x00 [SWS_Dcm_00323].
Em termos de concorrência e tratamento de erros, a função é definida como reentrante [SWS_Dcm_00338]. Como não há códigos de erro específicos ou verificações de DET especificados e E_OK é sempre retornado, provavelmente não ocorre verificação de ponteiro nulo; os chamadores devem, portanto, presumivelmente sempre passar um ponteiro válido para o espaço de memória para SecLevel. Pergunta Q-5402d82ac0151b22 (aberta)
Este texto foi criado por uma IA. As informações podem estar incompletas; a especificação AUTOSAR é a referência definitiva.
Guia do implementador em breve (complexidade I1)
função Dcm_GetSesCtrlType [SWS_Dcm_00339] 📄 PDF
Std_ReturnType Dcm_GetSesCtrlType (Dcm_SesCtrlType* SesCtrlType);
This function provides the active session control type value.
função Dcm_GetActiveProtocol [SWS_Dcm_00340] 📄 PDF
Std_ReturnType Dcm_GetActiveProtocol (Dcm_ProtocolType* ActiveProtocolType, uint16* ConnectionId, uint16* TesterSourceAddress);
This function returns the active UDS protocol details
função 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.
A função síncrona Dcm_ResetToDefaultSession permite à aplicação redefinir a sessão de diagnóstico ativa para a sessão padrão (Default Session) [SWS_Dcm_00520]. Um caso de uso típico é o encerramento automático de uma sessão de diagnóstico estendida assim que um veículo ultrapassa um limite de velocidade predefinido [SWS_Dcm_00520].
Utilização e tratamento de erros
-
Interface e parâmetros: A função está disponível através de
Dcm.hcom o Service-ID0x2a, possui a assinaturaStd_ReturnType Dcm_ResetToDefaultSession (void)e não requer parâmetros de passagem [SWS_Dcm_00520]. -
Valor de retorno e erros: Como tipo de retorno é retornado
Std_ReturnType, sendo retornado sem exceção o valorE_OK[SWS_Dcm_00520]. Códigos de erro específicos, verificações de tempo de execução DET ou eventos DEM não estão especificados nos requisitos para esta chamada.
Concorrência e interação
A execução ocorre de forma síncrona e está declarada como reentrante [SWS_Dcm_00520].
Além da mudança de sessão propriamente dita, Dcm_ResetToDefaultSession dispara obrigatoriamente uma mudança de modo para o ModeDeclarationGroupPrototype DcmDiagnosticSessionControl [SWS_Dcm_01062]. Para isso, a função chama internamente SchM_Switch_<bsnp>_DcmDiagnosticSessionControl(RTE_MODE_DcmDiagnosticSessionControl_DCM_DEFAULT_SESSION) a fim de notificar o ambiente do sistema sobre a transição para a sessão padrão [SWS_Dcm_01062].
Esta nota de uso foi gerada de forma automatizada com base na especificação do AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I1)
função 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'.
A função síncrona Dcm_TriggerOnEvent (ID de serviço 0x2D), disponibilizada por meio do cabeçalho Dcm.h, serve para disparar um evento que está vinculado a uma solicitação ResponseOnEvent (ROE) [SWS_Dcm_00521].
Chamada e modo de operação
O chamador passa como único parâmetro RoeEventId (parâmetro de entrada do tipo uint8), o qual identifica o evento a ser disparado; não existem parâmetros de entrada ou saída adicionais [SWS_Dcm_00521]. Assim que a função é chamada, o DCM verifica o estado do evento: se o RoeEvent passado estiver ativo, o DCM dispara o respectivo evento [SWS_Dcm_00920]. O DCM executa o serviço associado ao evento desde que o modo correspondente do RoeEventId esteja em ‘ROE started’ [SWS_Dcm_00521].
Valores de retorno e validação
A chamada retorna sincronamente um status do tipo Std_ReturnType, que informa sobre a validade do parâmetro [SWS_Dcm_00521]:
E_OK: o valor passado paraRoeEventIdé válido [SWS_Dcm_00521].E_NOT_OK: o valor deRoeEventIdé inválido [SWS_Dcm_00521].
Concorrência e propriedades
A interface é especificada como reentrante [SWS_Dcm_00521]. Ela pode, portanto, ser chamada concorrentemente para reportar eventos de forma síncrona ao DCM [SWS_Dcm_00521].
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR CP R20-11.
Guia do implementador em breve (complexidade I1)
função Dcm_SetActiveDiagnostic [SWS_Dcm_01068] 📄 PDF
Std_ReturnType Dcm_SetActiveDiagnostic (boolean active);
Allows to activate and deactivate the call of ComM_DCM_ActiveDiagnostic() function.
função 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.
A função síncrona e reentrante Dcm_StartOfReception ([SWS_Dcm_00094]) é chamada por um módulo de protocolo de transporte no início da recepção de uma N-SDU – tanto em mensagens únicas (Single Frame, SF) quanto em mensagens segmentadas (First Frame, FF). Ela pode ser chamada no contexto de interrupção ([SWS_Dcm_00094]). A chamada provoca, entre outros, a parada do temporizador S3Server no início da recepção ([SWS_Dcm_00141]).
Por meio de info são transmitidos dados úteis e metadados; em conexões genéricas, são armazenados através dele, entre outros, SOURCE_ADDRESS_16 ([SWS_Dcm_00848]) e verificados TARGET_ADDRESS_16 ([SWS_Dcm_01347]). Se não houver payload nem metadado presente, é passado NULL_PTR ([SWS_Dcm_00094]). Por meio de bufferSizePtr, a função informa o buffer disponível para o cálculo do Block Size (BS) ([SWS_Dcm_00094]). Em caso de aceitação bem-sucedida, ela retorna BUFREQ_OK, após o que os dados subsequentes são copiados via Dcm_CopyRxData ([SWS_Dcm_00443]).
Casos de erro e de rejeição são sinalizados através do valor de retorno:
BUFREQ_E_OVFL: É retornado se o comprimento solicitadoTpSduLengthfor maior que o buffer disponível no DCM ([SWS_Dcm_00094], [SWS_Dcm_00444]).bufferSizePtrpermanece inalterado ([SWS_Dcm_00094]).BUFREQ_E_NOT_OK: É retornado seTpSduLengthfor igual a 0 ([SWS_Dcm_00642]) ou se uma solicitação em andamento bloquear na mesma conexão ([SWS_Dcm_00557]). Em outra conexão, o parâmetroDcmDslDiagRespOnSecondDeclinedRequestdecide se é rejeitado comBUFREQ_E_NOT_OK([SWS_Dcm_00790]) ou aceito comBUFREQ_OK([SWS_Dcm_00788]). Solicitações TesterPresent concorrentes também são confirmadas comBUFREQ_OK([SWS_Dcm_00557]).
Este texto foi gerado por uma IA. Todas as informações baseiam-se exclusivamente no excerto da especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I2)
função Dcm_CopyRxData [SWS_Dcm_00556] 📄 PDF
BufReq_ReturnType Dcm_CopyRxData (PduIdType id, const PduInfoType* info, PduLengthType* bufferSizePtr);
This function is called to provide the received data of an I-PDU segment (N-PDU) to the upper layer. Each call to this function provides the next part of the I-PDU data. The size of the remaining buffer is written to the position indicated by bufferSizePtr. This function might be called in interrupt context.
usar
A função síncrona Dcm_CopyRxData é chamada para transferir dados recebidos de um segmento de I-PDU (N-PDU) para a camada superior no DCM [SWS_Dcm_00556]. Cada chamada disponibiliza a parte seguinte dos dados da I-PDU [SWS_Dcm_00556]. A I-PDU recebida é identificada por meio do parâmetro id [SWS_Dcm_00556]. O ponteiro info disponibiliza o buffer de origem por meio de SduDataPtr, bem como a quantidade de bytes a serem copiados por meio de SduLength [SWS_Dcm_00556]. Após a conclusão do processo de cópia, o tamanho do buffer livre restante no DCM é reportado por meio de bufferSizePtr [SWS_Dcm_00556], [SWS_Dcm_00443].
Se Dcm_CopyRxData for chamada com um SduLength de 0, isso serve para uma simples consulta de buffer [SWS_Dcm_00556]. Nesse caso, SduDataPtr pode ser um NULL_PTR; a função retorna BUFREQ_OK e insere o tamanho restante do buffer de recepção em bufferSizePtr [SWS_Dcm_00556], [SWS_Dcm_00996].
Interação
Antes da cópia, Dcm_StartOfReception deve ter sido concluída com BUFREQ_OK; chamadas subsequentes de Dcm_CopyRxData copiam os dados do buffer disponibilizado para o buffer do DCM e atualizam bufferSizePtr [SWS_Dcm_00443].
Tratamento de erros
A função retorna o status como BufReq_ReturnType: BUFREQ_OK confirma a cópia bem-sucedida ou a consulta de buffer, enquanto BUFREQ_E_NOT_OK indica que nenhum dado foi copiado devido a um erro [SWS_Dcm_00556], [SWS_Dcm_00996].
Simultaneidade e restrições
Dcm_CopyRxData é especificada como reentrante e pode ser chamada no contexto de interrupção [SWS_Dcm_00556]. A interface é disponibilizada por meio de Dcm.h [SWS_Dcm_00556].
Esta nota de uso foi gerada por uma IA com base na especificação AUTOSAR CP R20-11.
Guia do implementador em breve (complexidade I1)
função 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.
Utilização e contexto de chamada
A função síncrona Dcm_TpRxIndication é chamada após a recepção de uma I-PDU por meio da TP-API, tipicamente pelo módulo PduR [SWS_Dcm_00093], [SWS_Dcm_00112]. Ela transmite a identificação da PDU (id) bem como o resultado da recepção (result) e não retorna nenhum valor [SWS_Dcm_00093]. Como a função é reentrante e pode ser chamada no contexto de interrupção, o chamador e os estados do módulo devem ser projetados para a correspondente concorrência [SWS_Dcm_00093].
Comportamento em caso de recepção com erro
Se Dcm_TpRxIndication for chamado com um valor de resultado diferente de E_OK, o módulo Dcm não deve avaliar o buffer atribuído à I-PDU referenciada [SWS_Dcm_00344].
Interação dos submódulos
O submódulo DSL encaminha dados recebidos ao submódulo DSD exclusivamente se a chamada tiver ocorrido com o valor de parâmetro result = E_OK [SWS_Dcm_00111]. Para solicitações de diagnóstico, aplicam-se regras específicas:
- Caso a solicitação recebida com sucesso (
Result = E_OK) seja o comandoTesterPresentcomsuppressPosRspMsgIndicationBitdefinido (SID0x3E, subfunção0x80), o submódulo DSL redefine o temporizador de timeout de sessãoS3Server[SWS_Dcm_00112]. - Neste caso, a solicitação não é encaminhada pelo submódulo DSL ao submódulo DSD para posterior interpretação [SWS_Dcm_00113].
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I2)
função 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.
Utilização e semântica
A função síncrona e reentrante Dcm_CopyTxData é chamada por módulos da camada inferior (como protocolos de transporte) para recuperar dados de um segmento de I-PDU (N-PDU) para a transmissão [SWS_Dcm_00092]. Por meio do parâmetro info, o chamador transfere o buffer de destino SduDataPtr e o comprimento em bytes desejado SduLength. Um valor de 0 para SduLength pode ser utilizado para sinalizar alterações de status via retry ou para consultar a quantidade de dados disponíveis; SduDataPtr pode, nesse caso, ser um NULL_PTR [SWS_Dcm_00092]. Por meio de availableDataPtr, o DCM reporta a quantidade restante de bytes no buffer de envio, que pode ser utilizada por módulos TP para determinar tamanhos de segmentos subsequentes e não deve exceder a quantidade de bytes ainda a serem transmitidos [SWS_Dcm_00092], [SWS_Dcm_00350].
Gerenciamento de buffer e repetição de transmissão
Por meio do parâmetro retry, controla-se a confirmação ou repetição de dados [SWS_Dcm_00092]:
- Se
retryfor umNULL_PTR, os dados podem ser removidos do buffer imediatamente após o procedimento de cópia [SWS_Dcm_00092]. - Com
TP_CONFPENDING, os dados copiados anteriormente devem permanecer no buffer do TP para um eventual tratamento de erros [SWS_Dcm_00092]. TP_DATACONFconfirma a liberação de todos os dados copiados antes desta chamada [SWS_Dcm_00092].TP_DATARETRYcopia novamente dados a partir do deslocamento (offset)TxTpDataCntem relação à posição atual [SWS_Dcm_00092].
Valores de retorno e tratamento de erros
Se os dados foram copiados com sucesso e na íntegra, a função retorna BUFREQ_OK [SWS_Dcm_00092], [SWS_Dcm_00346]. Se não houver dados de envio suficientes disponíveis, nenhum procedimento de cópia será realizado e BUFREQ_E_BUSY será retornado; a camada inferior pode repetir a chamada mais tarde [SWS_Dcm_00092]. Se a requisição falhar, a função fornece BUFREQ_E_NOT_OK [SWS_Dcm_00092]. Nesse caso, a requisição de envio de PduR_DcmTransmit() ainda não está concluída; apenas uma chamada conclusiva de Dcm_TpTxConfirmation finaliza o processo e possibilita novas transmissões [SWS_Dcm_00350].
simultaneidade
A função é reentrante e também pode ser chamada no contexto de interrupção [SWS_Dcm_00092].
Esta nota de uso baseia-se nas especificações da AUTOSAR Classic Platform Release R20-11.
Guia do implementador em breve (complexidade I2)
função 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.
A função de callback Dcm_TpTxConfirmation ([SWS_Dcm_00351]) é chamada de forma síncrona pela camada de transporte inferior após uma I-PDU de diagnóstico ter sido transmitida na rede. Por meio do parâmetro id identifica-se a I-PDU afetada, enquanto result reporta o sucesso ou insucesso do processo de envio ([SWS_Dcm_00351]). A função não possui valor de retorno, é reentrante e pode ser executada explicitamente no contexto de interrupção ([SWS_Dcm_00351]).
Ao chamar Dcm_TpTxConfirmation, o módulo DCM realiza limpezas centrais e transições de estado:
- O buffer de transmissão atribuído é desbloqueado ([SWS_Dcm_00352]).
- Monitoramentos de erros em andamento, como timeouts de buffer de página bem como timeouts de
P2ServerMaxeP2*ServerMax, são parados ([SWS_Dcm_00353]). - O
DcmPduIdda conexão, bloqueado desde a recepção (Dcm_TpRxIndication), é liberado, de modo que solicitações subsequentes possam ser recebidas ([SWS_Dcm_00241]). - O protocolo atual não é encerrado pela confirmação da resposta do DSL (nenhuma chamada de
xxx_StopProtocol) ([SWS_Dcm_00624]).
Em caso de erro (quando result indicar um erro ou um cancelamento após um Dcm_CopyTxData com falha for confirmado), [SWS_Dcm_00350] exige obrigatoriamente esta chamada final para concluir formalmente o job de transmissão e permitir novas transmissões via PduR_DcmTransmit(). Em caso de confirmação com erro, o submódulo DSD não deve enviar a resposta de diagnóstico novamente ([SWS_Dcm_00118]).
Adicionalmente, a confirmação de uma resposta (diferente de NRC 0x78) marca a conclusão regular de uma solicitação de diagnóstico ([SWS_Dcm_01378]). Após a confirmação de uma resposta positiva a um EcuReset, o DCM ignora todas as demais solicitações durante o processamento do reset ([SWS_Dcm_00834]).
Este texto foi criado por uma IA; a exatidão não pode ser garantida.
Guia do implementador em breve (complexidade I2)
função Dcm_TxConfirmation [SWS_Dcm_01092] 📄 PDF
void Dcm_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);
The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU. This function might be called in interrupt context.
usar
A interface síncrona Dcm_TxConfirmation (Service-ID 0x40, declarada em Dcm.h) é chamada, de acordo com [SWS_Dcm_01092], pelo módulo de interface de comunicação subjacente para confirmar o envio de uma PDU ou reportar a falha da transmissão. A função não possui valor de retorno e processa dois parâmetros de entrada:
TxPduId: Identificador (PduIdType) da PDU enviada.result: Status da transmissão (Std_ReturnType). Valores válidos sãoE_OKem caso de transmissão bem-sucedida, bem comoE_NOT_OKcaso a transmissão da PDU tenha falhado.
Tratamento de erros e feedback de status
O resultado da transmissão é sinalizado diretamente ao DCM por meio do parâmetro result ([SWS_Dcm_01092]). Mensagens de erro específicas de DET ou DEM não estão definidas no trecho de especificação fornecido para esta função.
Simultaneidade e contexto de chamada
Quanto à reentrância, Dcm_TxConfirmation é reentrante para chamadas com PDU-IDs diferentes, mas não é reentrante para o mesmo TxPduId ([SWS_Dcm_01092]). Deve-se observar que a chamada pelo módulo subjacente pode ocorrer no contexto de interrupção ([SWS_Dcm_01092]).
Interação
No caso de uma transmissão periódica (PeriodicTransmission), o DCM é chamado conforme [SWS_Dcm_01073] por meio de Dcm_TxConfirmation para ser notificado sobre o respectivo resultado de envio.
Esta nota de uso foi criada automaticamente com base na especificação AUTOSAR para R20-11.
Guia do implementador em breve (complexidade I1)
função 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.
A função síncrona e reentrante Dcm_ComM_NoComModeEntered (Service ID 0x21) informa o módulo DCM sobre a transição de uma rede de comunicação para o estado COMM_NO_COMMUNICATION [SWS_Dcm_00356]. A interface é disponibilizada através do cabeçalho Dcm_ComM.h, não possui valor de retorno e identifica a rede afetada por meio do parâmetro de entrada NetworkId do tipo uint8 [SWS_Dcm_00356].
Com a chamada, o DCM desliga toda a comunicação na rede especificada, de modo que tanto a recepção quanto o envio de mensagens sejam completamente desativados [SWS_Dcm_00148]. Isso inclui obrigatoriamente os seguintes tipos de transmissão:
- Supressão de transmissões ResponseOnEvent [SWS_Dcm_00149],
- Desativação de transmissões periódicas através de
ReadDataByPeriodicIdentifier(periodicId) [SWS_Dcm_00150], bem como - Desligamento de transmissões normais [SWS_Dcm_00151].
Como consequência, o módulo DCM não deve mais chamar a função PduR_DcmTransmit() do PduR para este contexto após a execução de Dcm_ComM_NoComModeEntered [SWS_Dcm_00152].
Se a função for chamada com um NetworkId que não corresponda a nenhum canal ComM referenciado no DCM através do parâmetro de configuração DcmDslProtocolComMChannelRef, o módulo DCM não executa nenhuma ação e retorna imediatamente [SWS_Dcm_01324].
Este texto foi criado por uma IA e passou por controle de qualidade via autodocs.
Guia do implementador em breve (complexidade I2)
função 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.
A função síncrona e reentrante Dcm_ComM_SilentComModeEntered ([SWS_Dcm_00358]) serve para informar o módulo DCM sobre a transição de uma rede de comunicação para o estado COMM_SILENT_COMMUNICATION. A interface possui o Service ID 0x22, não retorna nenhum valor e espera como parâmetro de entrada NetworkId o identificador da rede afetada ([SWS_Dcm_00358]). Ela é disponibilizada através do arquivo de cabeçalho Dcm_ComM.h ([SWS_Dcm_00358]).
Assim que esta chamada ocorrer, o DCM deve cessar completamente todas as atividades de transmissão no canal de rede afetado ([SWS_Dcm_00153]). Isso inclui detalhadamente as seguintes medidas:
- a desativação de todas as transmissões normais ([SWS_Dcm_00156]),
- a inibição de transmissões Response-on-Event ([SWS_Dcm_00154]), bem como
- a desativação de transmissões periódicas no âmbito de
ReadDataByPeriodicIdentifier([SWS_Dcm_00155]).
No que diz respeito ao tratamento de erros e condições-limite, está definido que o DCM deve retornar sem nenhuma ação adicional se o NetworkId passado corresponder a um canal ComM que não é referenciado no DCM através do parâmetro de configuração DcmDslProtocolComMChannelRef ([SWS_Dcm_01325]). Erros de desenvolvimento específicos ou valores de retorno de erro não estão especificados para esta chamada.
Interpretação: A chamada provavelmente deve ser efetuada pelo módulo ComM assim que a transição para o modo de comunicação silenciosa for concluída. Pergunta Q-fc9b6303ae0c0e41 (aberta)
Esta nota de utilização foi gerada por um sistema de IA e baseia-se exclusivamente na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I2)
função 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.
A função síncrona e reentrante Dcm_ComM_FullComModeEntered é disponibilizada através do arquivo de cabeçalho Dcm_ComM.h e informa o módulo DCM sobre a mudança de uma rede de comunicação para o estado COMM_FULL_COMMUNICATION [SWS_Dcm_00360]. Como parâmetro de entrada serve NetworkId, que identifica a rede afetada pela mudança de modo [SWS_Dcm_00360].
Através da chamada, qualquer comunicação para esta rede é ativada, de modo que tanto a recepção quanto o envio de mensagens são liberados [SWS_Dcm_00157]. Isto inclui os seguintes tipos de transmissão:
- transmissões normais [SWS_Dcm_00161],
- transmissões Response-on-Event [SWS_Dcm_00159], bem como
- transmissões periódicas por meio de
ReadDataByPeriodicIdentifier[SWS_Dcm_00160].
Assim que Dcm_ComM_FullComModeEntered tiver sido chamada, o DCM processa as funções internas DslInternal_ResponseOnOneDataByPeriodicId() e DslInternal_ResponseOnOneEvent() sem restrições [SWS_Dcm_00162]. Na sequência temporal, o DCM deve aguardar esta chamada antes que a transmissão de uma resposta de diagnóstico seja iniciada; o tempo de espera a partir do momento da recepção da solicitação não pode ser superior a P2ServerMax [SWS_Dcm_01142].
Em caso de erro, quando o NetworkId passado diz respeito a um canal ComM que não está configurado no DCM (parâmetro DcmDslProtocolComMChannelRef), a função retorna imediatamente e sem ações adicionais [SWS_Dcm_01326].
Esta nota de uso foi gerada por uma IA com base na especificação AUTOSAR CP R20-11.
Guia do implementador em breve (complexidade I2)
função 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).
Utilização e semântica
A função de callback síncrona e reentrante Dcm_CsmAsyncJobFinished é chamada pelo Crypto Service Manager (CSM) assim que um processamento de tarefa assíncrono estiver concluído [SWS_Dcm_91076]. Como parâmetro de entrada, recebe através de result do tipo Csm_ResultType o resultado do job CSM concluído [SWS_Dcm_91076]. Como valor de retorno, a função retorna sempre E_OK [SWS_Dcm_91076].
Configuração e condições de contorno
Os integradores têm de configurar o nome desta função na configuração ECUC do CSM como callback para jobs assíncronos [SWS_Dcm_91076]. Para o DCM está disponível exclusivamente um único callback deste tipo; a identificação da tarefa concluída ocorre, segundo a especificação, através da avaliação do parâmetro do job [SWS_Dcm_91076]. No entanto, como a assinatura da função C apenas passa result, o DCM deve determinar internamente a tarefa correspondente através do estado de transação da autenticação em curso. Pergunta Q-04ad1d5fb514f467 (aberta)
A interface só está disponível se o parâmetro DcmDspAuthenticationConnection estiver definido na configuração (diferente de null) [SWS_Dcm_91076]. Tratamentos de erro específicos ou mensagens DET não estão especificados para esta chamada, visto que o valor de retorno é invariavelmente E_OK [SWS_Dcm_91076].
Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I1)
função 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).
A função de callback síncrona e reentrante Dcm_KeyMAsyncCertificateVerifyFinished é chamada pelo módulo KeyM após a conclusão de uma verificação de certificado assíncrona [SWS_Dcm_91077]. Informa o DCM sobre a conclusão, bem como sobre o resultado do processo de verificação e retorna sempre E_OK como valor de retorno [SWS_Dcm_91077].
Parâmetros e modo de funcionamento
CertID: Identificador do certificado cuja verificação foi concluída. Com base neste identificador, o DCM determina qual a tarefa de verificação que foi finalizada [SWS_Dcm_91077].Result: Valor de retorno e estado da tarefa de verificação assíncrona a partir do KeyM [SWS_Dcm_91077].
Configuração e condições de contorno
Os integradores têm de configurar este nome de função na configuração ECUC do KeyM como callback para jobs assíncronos [SWS_Dcm_91077]. Dado que apenas um único callback está disponível para esta notificação, o DCM depende da resolução do respetivo certificado através do parâmetro CertID [SWS_Dcm_91077].
A interface está exclusivamente disponível se o parâmetro de configuração DcmDspAuthenticationConnection estiver configurado no caminho Dcm/DcmDsp/DcmDspAuthentication (!= null) [SWS_Dcm_91077]. Códigos de erro especiais ou mensagens DET não estão especificados para esta chamada [SWS_Dcm_91077].
Esta nota de utilização foi gerada automaticamente.
Guia do implementador em breve (complexidade I2)
função 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
A função callout Dcm_ReadMemory ([SWS_Dcm_00539]), declarada em Dcm_Externals.h, serve para o DCM ler dados da memória do servidor com base no endereço inicial (MemoryAddress) e no tamanho em bytes (MemorySize). A função é necessária para os serviços UDS ReadMemoryByAddress (0x23) ([SWS_Dcm_00495]), ReadDataByIdentifier (0x22) para DIDs dinâmicos no intervalo de endereços 0xF200 a 0xF3FF ([SWS_Dcm_00653]), RequestUpload e TransferData ([SWS_Dcm_00539]). Se o parâmetro MemoryIdentifier não for utilizado, tem de ser definido como 0 ([SWS_Dcm_00539]).
A interface é assíncrona e não reentrante ([SWS_Dcm_00539]). O estado da chamada é passado através de OpStatus com os valores DCM_INITIAL, DCM_PENDING, DCM_CANCEL ou DCM_FORCE_RCRRP_OK. Enquanto o processo de leitura decorrer, a função retorna DCM_READ_PENDING ([SWS_Dcm_00985]). Se a chamada retornar DCM_READ_FORCE_RCRRP, o DCM aciona de imediato o envio de uma mensagem RCR-RP (NRC 0x78) e pausa chamadas subsequentes até à confirmação de envio ([SWS_Dcm_00839]). Após a confirmação da RCR-RP, o DCM volta a chamar a função de Dcm_MainFunction com OpStatus = DCM_FORCE_RCRRP_OK ([SWS_Dcm_00840]).
Em caso de sucesso, os dados lidos são escritos no buffer MemoryData e é retornado DCM_READ_OK ([SWS_Dcm_00539], [SWS_Dcm_00985]). Se a operação falhar, a função retorna DCM_READ_FAILED e define ErrorCode. O DCM envia então uma resposta negativa com o valor de NRC correspondente ([SWS_Dcm_00644]).
Nota de utilização gerada automaticamente com base na especificação AUTOSAR.
Guia do implementador em breve (complexidade I2)
função 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
A função callout Dcm_WriteMemory declarada em Dcm_Externals.h é chamada pelo DCM de forma assíncrona e não reentrante para escrever dados na memória com base no endereço inicial e no tamanho em bytes [SWS_Dcm_00540]. Serve para a implementação dos serviços UDS WriteMemoryByAddress (0x3D), RequestDownload e TransferData [SWS_Dcm_00540]. Ao receber WriteMemoryByAddress, o DCM só chama o callout após a verificação do pedido [SWS_Dcm_00491].
Para controlar o fluxo, é passado OpStatus (valores possíveis: DCM_INITIAL, DCM_PENDING, DCM_CANCEL ou DCM_FORCE_RCRRP_OK) [SWS_Dcm_00540]. Os parâmetros MemoryAddress e MemorySize determinam a área de memória de destino, enquanto MemoryData aponta para o buffer de diagnóstico do DCM [SWS_Dcm_00540]. Se MemoryIdentifier ou MemoryAddress (por exemplo, no caso de dados comprimidos) não forem utilizados, estes devem ser definidos como 0 [SWS_Dcm_00540].
O valor de retorno Dcm_ReturnWriteMemoryType [SWS_Dcm_00986] define o processamento posterior no DCM:
DCM_WRITE_OK: O processo de escrita foi bem-sucedido [SWS_Dcm_00540], [SWS_Dcm_00986].DCM_WRITE_PENDING: A operação ainda não está concluída e requer chamadas subsequentes [SWS_Dcm_00540], [SWS_Dcm_00986].DCM_WRITE_FORCE_RCRRP: O DCM inicia de imediato o envio de uma Response Pending (NRC 0x78) e suspende chamadas adicionais até à confirmação de envio [SWS_Dcm_00837]. Depois disso, ocorre a nova chamada a partir deDcm_MainFunctioncomDCM_FORCE_RCRRP_OK[SWS_Dcm_00838].DCM_WRITE_FAILED: Em caso de erro, o DCM envia uma resposta negativa com o valor de NRC passado através do parâmetro de saídaErrorCode[SWS_Dcm_00540], [SWS_Dcm_00643].
Este texto foi gerado por uma IA com base na especificação AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I2)
função 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.
A função callout Dcm_SetProgConditions permite ao integrador a gravação persistente de informações relevantes antes de uma transição para o bootloader ou de um reset resultante de um pedido ECUReset [SWS_Dcm_00543]. Os dados de contexto relevantes são transmitidos através de um ponteiro para a estrutura Dcm_ProgConditionsType, a qual agrega, entre outros, endereços de conexão e de origem do tester, IDs de serviço e de subfunção, bem como flags de controlo como ReprogramingRequest e ResponseRequired [SWS_Dcm_00988]. Ao receber um serviço UDS 0x10 com a subfunção 0x02, o DCM define estas flags e chama a interface [SWS_Dcm_01182].
A chamada ocorre de forma assíncrona e não é reentrante (Non Reentrant) [SWS_Dcm_00543]. Através do parâmetro OpStatus são controlados os estados DCM_INITIAL, DCM_PENDING, DCM_CANCEL ou DCM_FORCE_RCRRP_OK [SWS_Dcm_00543]. Desde que a execução continue e a função retorne DCM_E_PENDING, o DCM volta a chamar a interface no ciclo seguinte da função principal para concluir a definição [SWS_Dcm_00543], [SWS_Dcm_01184]. Por meio de DCM_E_FORCE_RCRRP, pode ser forçada a transmissão de uma resposta Response-Pending (NRC 0x78) [SWS_Dcm_00543]. Dependendo da configuração, a chamada pelo DCM só ocorre após a transmissão bem-sucedida de NRC 0x78 [SWS_Dcm_00535].
Se as condições foram definidas sem erros e o callout retornar E_OK, o DCM inicia a mudança de modo de ModeDeclarationGroupPrototype DcmEcuReset para EXECUTE [SWS_Dcm_00719], [SWS_Dcm_01163], [SWS_Dcm_01180]. Por outro lado, se o estado não puder ser salvo e a função responder com E_NOT_OK, o reset e o salto para o bootloader não ocorrem, a mudança de modo é impedida e o DCM envia a resposta negativa NRC 0x22 (Conditions not correct) [SWS_Dcm_00715], [SWS_Dcm_01181].
Esta nota de utilização foi gerada por uma IA com base na especificação AUTOSAR Classic Release R20-11.
Guia do implementador em breve (complexidade I2)
função 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.
A função de callout Dcm_GetProgConditions com o ID de serviço 0x62 é chamada durante a inicialização do DCM para determinar se uma resposta de diagnóstico pendente para o serviço $50 ou $51 deve ser enviada [SWS_Dcm_00544]. A declaração da interface é fornecida através do arquivo de cabeçalho Dcm_Externals.h [SWS_Dcm_00544].
Utilização e parâmetros
A execução da função ocorre de forma síncrona, não sendo passados parâmetros regulares de entrada ou de entrada/saída [SWS_Dcm_00544]:
- Parâmetro de saída: Através do ponteiro
ProgConditionsdo tipoDcm_ProgConditionsType*, o callout retorna as condições sob as quais o salto anterior a partir do bootloader foi solicitado [SWS_Dcm_00544]. Os parâmetros de contexto relevantes estão armazenados no tipo de dadosDcm_ProgConditionsType[SWS_Dcm_00544]. - Valor de retorno: A função retorna um valor de status do tipo
Dcm_EcuStartModeTypepara o chamador [SWS_Dcm_00544].
Simultaneidade e tratamento de erros
A função é classificada como não reentrante (Non Reentrant) e, portanto, não deve ser executada de forma concorrente [SWS_Dcm_00544]. Para este callout, não estão definidos códigos de erro específicos para DET ou DEM na especificação da interface [SWS_Dcm_00544].
Esta nota de uso foi gerada por uma IA com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I1)
função 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).
A função de callout Dcm_ProcessRequestAddFile é chamada pelo DCM para iniciar o serviço RequestFileTransfer com o modo de operação 0x01 (AddFile) ([SWS_Dcm_91078]). Está disponível através de Dcm_Externals.h, possui o Service-ID 0x72 e está especificada como não reentrante (Non Reentrant) e assíncrona ([SWS_Dcm_91078]).
O controlo do fluxo de chamada assíncrono ocorre através do parâmetro OpStatus:
DCM_INITIAL: Todos os parâmetros de entrada são válidos. Entre eles contam-se o caminho e o nome do ficheiro (filePathAndNamecomfilePathAndNameLength), o bytedataFormatIdentifier(nibble superior para compressão, nibble inferior para cifragem), bem como o tamanho do ficheiro não comprimido e comprimido (fileSizeUncompressed,fileSizeCompressed) ([SWS_Dcm_91078]).DCM_PENDING,DCM_CANCELeDCM_FORCE_RCRRP_OK: Nestas chamadas subsequentes, todos os parâmetros de entrada estão definidos como0x00([SWS_Dcm_91078]).
Como valores de retorno, a função fornece E_OK em caso de execução bem-sucedida, DCM_E_PENDING em caso de processamento contínuo ou DCM_E_FORCE_RCRRP se a aplicação solicitar o envio de uma resposta provisória (NRC 0x78) ([SWS_Dcm_91078], [SWS_Dcm_91086]). Em caso de sucesso, maxNumberOfBlockLength define o comprimento de bloco máximo permitido para futuras mensagens TransferData sem SID e contador de blocos ([SWS_Dcm_91078]).
Em caso de erro, a função retorna E_NOT_OK. Neste caso, tem de ser passado através do parâmetro ErrorCode um código de resposta negativo (NRC), que o DCM envia ao cliente numa resposta de diagnóstico negativa ([SWS_Dcm_91078]). Se a configuração DcmRequestFileTransferUsePort estiver ativada, esta funcionalidade é disponibilizada alternativamente como operação de porta ProcessRequestAddFile da interface RequestFileTransfer ([SWS_Dcm_91086]).
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR CP R20-11.
Guia do implementador em breve (complexidade I2)
função Dcm_ProcessRequestDeleteFile [SWS_Dcm_91079] 📄 PDF
Std_ReturnType Dcm_ProcessRequestDeleteFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x02 (DeleteFile). Manager
Uso e semântica de chamada
A função de callout Dcm_ProcessRequestDeleteFile é chamada pelo DCM para iniciar a eliminação de um ficheiro (modeOfOperation = 0x02) no servidor no âmbito do serviço de diagnóstico RequestFileTransfer [SWS_Dcm_91079]. A função está declarada em Dcm_Externals.h e opera de forma assíncrona e não reentrante (Non Reentrant) [SWS_Dcm_91079].
A passagem e a avaliação ocorrem com base no parâmetro OpStatus:
DCM_INITIAL: Indica o início da operação. Aqui, todos os parâmetros de entrada são válidos;filePathAndNamepassa a localização de armazenamento e o nome do ficheiro a eliminar, cujo comprimento em bytes está especificado através defilePathAndNameLength[SWS_Dcm_91079].DCM_PENDING,DCM_CANCELouDCM_FORCE_RCRRP_OK: No caso de processamento contínuo ou cancelamento, todos os parâmetros de entrada estão definidos como0x00[SWS_Dcm_91079].
Como valores de retorno, a função retorna E_OK em caso de execução bem-sucedida, DCM_E_PENDING se a execução ainda decorrer e necessitar de mais chamadas, ou DCM_E_FORCE_RCRRP se a aplicação solicitar o envio de uma mensagem intermédia com NRC 0x78 (Response Pending) [SWS_Dcm_91079], de forma análoga ao serviço RequestFileTransfer [SWS_Dcm_91086].
Tratamento de erros
Se o processamento falhar, a função retorna E_NOT_OK. Neste caso, tem de ser fornecido um código de resposta negativo através do parâmetro de saída ErrorCode, o qual o DCM transmite ao testador como resposta negativa (NRC) [SWS_Dcm_91079].
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I2)
função 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).
A função de callout Dcm_ProcessRequestReplaceFile é chamada pelo DCM para iniciar um processo de diagnóstico para RequestFileTransfer com o modo de operação 0x03 (ReplaceFile) [SWS_Dcm_91080]. A função está definida como não reentrante (Non Reentrant) e assíncrona, sendo disponibilizada através do cabeçalho Dcm_Externals.h [SWS_Dcm_91080].
O controlo do fluxo de processamento assíncrono ocorre através do parâmetro OpStatus:
- Na chamada inicial com
DCM_INITIAL, o DCM passa todos os parâmetros de entrada como válidos, incluindo caminho e nome do ficheiro (filePathAndNamecom indicação de comprimentofilePathAndNameLength), o identificador para compressão e cifragem (dataFormatIdentifier), bem como o tamanho do ficheiro não comprimido e comprimido (fileSizeUncompressed,fileSizeCompressed) [SWS_Dcm_91080]. - Em chamadas subsequentes ou num cancelamento (
DCM_PENDING,DCM_CANCEL,DCM_FORCE_RCRRP_OK), todos os parâmetros de entrada estão definidos como0x00[SWS_Dcm_91080]. - Em caso de sucesso, a função retorna ao DCM, através do parâmetro de saída
maxNumberOfBlockLength, o comprimento máximo de dados úteis para pedidosTransferDatasubsequentes (sem SID e contador de sequência de blocos) [SWS_Dcm_91080].
Como valores de retorno estão previstos E_OK em caso de execução bem-sucedida, DCM_E_PENDING no caso de processamento ainda em curso, bem como DCM_E_FORCE_RCRRP para solicitar uma resposta de Response-Pending (NRC 0x78) [SWS_Dcm_91080], [SWS_Dcm_91086]. Se a execução falhar, a função retorna E_NOT_OK e atribui ao parâmetro ErrorCode o respetivo código de resposta de diagnóstico negativo (NRC), que o DCM transmite ao testador [SWS_Dcm_91080].
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR CP R20-11.
Guia do implementador em breve (complexidade I2)
função 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).
A função de callout Dcm_ProcessRequestReadFile é chamada pelo DCM para iniciar um processo de transferência de ficheiros (serviço RequestFileTransfer) com o modo de operação ReadFile (modeOfOperation 0x04) [SWS_Dcm_91081]. A função é declarada no cabeçalho Dcm_Externals.h, opera de forma assíncrona e é não reentrante (Non Reentrant) [SWS_Dcm_91081].
A chamada é efetuada através do parâmetro de estado OpStatus: na chamada inicial DCM_INITIAL, todos os parâmetros de entrada são válidos, enquanto em chamadas subsequentes com DCM_PENDING, DCM_CANCEL ou DCM_FORCE_RCRRP_OK são definidos como 0x00 [SWS_Dcm_91081]. A aplicação obtém o caminho e o nome do ficheiro através de filePathAndName (comprimento em filePathAndNameLength), o formato de compressão e encriptação através de dataFormatIdentifier, bem como os tamanhos de ficheiro através de fileSizeUncompressed e fileSizeCompressed [SWS_Dcm_91081]. Como parâmetro de saída, a aplicação deve preencher maxNumberOfBlockLength com o número máximo de bytes para respostas subsequentes de TransferData (excluindo SID e contador sequencial de blocos) [SWS_Dcm_91081].
Como valores de retorno de Std_ReturnType, estão definidos E_OK em caso de execução bem-sucedida, DCM_E_PENDING se o processamento assíncrono ainda estiver em curso ou DCM_E_FORCE_RCRRP para solicitar uma resposta de «Response Pending» (NRC 0x78) [SWS_Dcm_91081]. Se a operação falhar, retorna E_NOT_OK; neste caso, o DCM transmite uma resposta negativa ao tester com o valor de NRC definido no parâmetro de saída ErrorCode [SWS_Dcm_91081]. A interação corresponde ao processamento geral do serviço RequestFileTransfer, tal como é configurado analogamente para outras operações de ficheiro como ProcessRequestAddFile [SWS_Dcm_91086].
Este texto foi gerado por um sistema de IA e baseia-se exclusivamente na especificação AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I2)
função Dcm_ProcessRequestReadDir [SWS_Dcm_91082] 📄 PDF
Std_ReturnType Dcm_ProcessRequestReadDir (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint64* dirInfoLength, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x05 (ReadDir).
usar
A função de callout Dcm_ProcessRequestReadDir é declarada através do ficheiro de cabeçalho Dcm_Externals.h e chamada pelo DCM para iniciar de forma assíncrona o serviço RequestFileTransfer com o modo de operação 0x05 (ReadDir) [SWS_Dcm_91082]. O progresso do processamento é controlado através do parâmetro de passagem OpStatus [SWS_Dcm_91082]. Na primeira chamada com DCM_INITIAL, o DCM transmite o caminho ou nome através de filePathAndName juntamente com o comprimento em bytes filePathAndNameLength [SWS_Dcm_91082]. Em chamadas subsequentes ou em caso de cancelamento (DCM_PENDING, DCM_CANCEL, DCM_FORCE_RCRRP_OK), todos os parâmetros de entrada são definidos como 0x00 [SWS_Dcm_91082].
Como valores de saída, a aplicação deve fornecer o tamanho dos dados de diretório através de dirInfoLength e o tamanho máximo de bloco permitido para transferências subsequentes através de maxNumberOfBlockLength [SWS_Dcm_91082]. Além de E_OK em caso de execução bem-sucedida, a função pode retornar DCM_E_PENDING se a operação ainda estiver em curso, ou DCM_E_FORCE_RCRRP para desencadear o envio de uma resposta intercalar (NRC 0x78) [SWS_Dcm_91082].
Tratamento de erros
Se ocorrer um erro, a função deve retornar E_NOT_OK. Neste caso, o DCM lê o parâmetro ErrorCode e transmite o seu valor como código de resposta negativa (NRC) ao tester [SWS_Dcm_91082]. Não estão previstas notificações específicas de DET ou DEM para a interface; as verificações de erros do caminho fornecido deverão, por isso, recair inteiramente sobre a implementação específica da aplicação.
Pergunta Q-278dbc3db7b4363b (aberta)
Concorrência e interação
A função está especificada como não reentrante (Non Reentrant) e, consequentemente, não pode ser chamada concorrentemente para múltiplos pedidos de diagnóstico [SWS_Dcm_91082]. Faz parte do grupo de interfaces do serviço RequestFileTransfer, cuja integração pode ser influenciada através de parâmetros de configuração [SWS_Dcm_91086].
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR CP R20-11.
Guia do implementador em breve (complexidade I2)
função 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).
Utilização e contexto de chamada
A função de callout Dcm_WriteFile é chamada pelo DCM quando são recebidos dados através do serviço UDS TransferData (0x36) e está ativo um processo de download previamente iniciado mediante RequestFileTransfer com os modos 0x01 (AddFile) ou 0x03 (ReplaceFile) [SWS_Dcm_01444]. A interface está disponível através de Dcm_Externals.h [SWS_Dcm_91083].
A atribuição de parâmetros depende do estado de progresso OpStatus [SWS_Dcm_91083]:
DCM_INITIAL: Todos os parâmetros de entrada são válidos. O ponteiroDataaponta para os dados úteis a escrever, eDataLengthindica o seu comprimento em bytes. O valor deDataLengthnão excede o comprimento máximo de bloco previamente negociado emDcm_ProcessRequestFileTransfer(NumberOfBlockLength).DCM_PENDING,DCM_CANCELeDCM_FORCE_RCRRP_OK: Todos os parâmetros de entrada estão definidos como0x00.
Semântica assíncrona e valores de retorno
A função opera de forma assíncrona e não reentrante (Non Reentrant) [SWS_Dcm_91083]. Fornece os seguintes valores de estado:
E_OK: o processo de escrita foi concluído com sucesso.DCM_E_PENDING: O processamento ainda não terminou e requer chamadas adicionais.DCM_E_FORCE_RCRRP: A aplicação solicita o envio de uma resposta de espera (Response Pending, NRC 0x78).E_NOT_OK: A operação falhou.
Tratamento de erros
Se Dcm_WriteFile retornar o valor E_NOT_OK, o módulo DCM envia uma resposta negativa de UDS, cujo NRC corresponde ao valor fornecido através do parâmetro de saída ErrorCode [SWS_Dcm_91083].
Este texto foi gerado por um sistema baseado em IA e está sujeito a comprovação com base na especificação AUTOSAR.
Guia do implementador em breve (complexidade I2)
função 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).
A função de callout Dcm_ReadFileOrDir é chamada pelo módulo DCM quando, no âmbito de um upload de ficheiro ou diretório em curso (previamente iniciado via serviço UDS RequestFileTransfer com modo 0x04 para ReadFile ou 0x05 para ReadDir), é recebido um pedido em conformidade com o formato para o serviço UDS TransferData (0x36) [SWS_Dcm_01445]. A função destina-se a fornecer os dados a enviar como resposta ao cliente [SWS_Dcm_91085]. A declaração da interface está disponível através do cabeçalho Dcm_Externals.h [SWS_Dcm_91085].
A execução é assíncrona e está especificada como não reentrante (Non Reentrant) [SWS_Dcm_91085]. A interação e a atribuição de parâmetros dependem do estado de operação transmitido:
- Estado de operação (
OpStatus): Na chamada inicial comDCM_INITIAL, todos os parâmetros de entrada são válidos. Em chamadas subsequentes ou de cancelamento comDCM_PENDING,DCM_CANCELouDCM_FORCE_RCRRP_OK, todos os parâmetros de entrada são definidos como0x00[SWS_Dcm_91085]. - Buffer e comprimento de bloco: O parâmetro
DataLengthpassa, na entrada, o comprimento de bloco máximo permitido (correspondente ao valor reportado ao clientemaxNumberOfBlockLength) e retorna, na saída, o comprimento em bytes efetivamente disponibilizado emData, que não pode exceder o valor de entrada [SWS_Dcm_91085]. Interpretação: emboraDataesteja formalmente declarado na interface como parâmetro In, presume-se que sirva para transferir os dados úteis a ler. Pergunta Q-53de8a0bdbc4a2b4 (aberta) - Valores de retorno: A operação fornece
E_OKem caso de disponibilização bem-sucedida de dados,DCM_E_PENDINGse o processamento ainda não estiver concluído ouDCM_E_FORCE_RCRRPse a aplicação pretender forçar o envio de uma mensagem intercalar (Response Pending, NRC 0x78) [SWS_Dcm_91085].
Se o processamento na aplicação falhar, é retornado E_NOT_OK. Neste caso de erro, o módulo DCM transmite ao cliente uma resposta negativa de UDS (NRC), cujo código de erro corresponde ao valor definido no parâmetro de saída ErrorCode [SWS_Dcm_91085].
Este texto foi gerado por uma IA e serve como guia de orientação. São determinantes as especificações oficiais da AUTOSAR.
Guia do implementador em breve (complexidade I2)
função Dcm_MainFunction [SWS_Dcm_00053] 📄 PDF
void Dcm_MainFunction (void);
This service is used for processing the tasks of the main loop.
A função Dcm_MainFunction serve para o processamento das tarefas centrais do loop principal do Diagnostic Communication Manager ([SWS_Dcm_00053]). Ela possui a assinatura void Dcm_MainFunction(void) e não fornece valores de retorno. Como é disponibilizada por meio do cabeçalho SchM_Dcm.h, sua chamada provavelmente deve ocorrer de forma cíclica no contexto de uma tarefa de escalonador (scheduler task) do software básico. Pergunta Q-e083a72aae447ab5 (aberta)
Uma tarefa essencial é o controle e a continuidade através de múltiplos ciclos de fluxos assíncronos:
- Se uma operação com
Dcm_OpStatusTyperetornar o valor de retornoDCM_E_PENDING, o DCM chamará a operação novamente comOpStatus = DCM_PENDINGa cada chamada deDcm_MainFunction, enquanto esse status persistir ([SWS_Dcm_00530]). - Se
Dem_ClearDTC()retornar o statusDEM_PENDING, a função será chamada novamente no próximo ciclo deDcm_MainFunction; o DCM envia NRC 78 (ResponsePending) se necessário ([SWS_Dcm_00703]). - Chamadas de
Dem_SetDTCFilter()com o parâmetroFilterForFault-DetectionCounterdefinido devem ocorrer obrigatoriamente no contexto deDcm_MainFunction([SWS_Dcm_00519]). - Após a confirmação de uma transmissão RCR-RP, o DCM chama novamente operações como
Dcm_WriteMemoryouDcm_ReadMemorya partir deDcm_MainFunctioncomOpStatus = DCM_FORCE_RCRRP_OK([SWS_Dcm_00529], [SWS_Dcm_00838], [SWS_Dcm_00840]). - Se o valor
DCM_E_PENDINGfor reportado emXxx_GetSecurityAttemptCounter, a chamada é interrompida e continuada no próximo ciclo ([SWS_Dcm_01351]); ao exceder o timeout configurado, o DCM aborta a operação pendente comOpStatus = DCM_CANCEL([SWS_Dcm_01352]).
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR.
Guia do implementador em breve (complexidade I2)
função 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
A função Xxx_GetSeed (disponibilizada por meio de Dcm_Externals.h) serve para o fornecimento assíncrono de um valor de semente (seed) pela aplicação para o módulo DCM [SWS_Dcm_01151]. Ela é chamada assim que uma requisição UDS do serviço SecurityAccess (0x27) com o tipo de subfunção “requestSeed” é recebida e o nível de segurança solicitado ainda não está ativo [SWS_Dcm_00862], [SWS_Dcm_00324].
Contexto de chamada e parâmetros
A interface é definida como não reentrante (Non Reentrant) e opera de forma assíncrona [SWS_Dcm_01151]:
SecurityAccessDataRecord: Ponteiro para dados de entrada adicionais para o cálculo da semente; o tamanho mínimo é de um byte de acordo comDcmDspSecurityADRSize[SWS_Dcm_01151].OpStatus: Indica o status atual da operação assíncrona [SWS_Dcm_01151].Seed: Ponteiro de saída por meio do qual a aplicação disponibiliza a semente calculada [SWS_Dcm_01151].ErrorCode: Parâmetro de saída para retorno de um código de erro negativo (NRC) [SWS_Dcm_01151].
Valores de retorno e tratamento de erros
E_OK: A semente foi determinada e disponibilizada com sucesso [SWS_Dcm_01151].DCM_E_PENDING: O cálculo ainda não foi concluído; cálculos ou chamadas subsequentes são necessários para a finalização [SWS_Dcm_01151].E_NOT_OK: A requisição falhou. Nesse caso, o módulo DCM envia uma resposta UDS negativa com o valor de NRC passado no parâmetroErrorCode[SWS_Dcm_01151], [SWS_Dcm_00659].
Notas de integração
Dependendo da configuração de DcmDspSecurityUsePort, a conexão ocorre como função C em USE_ASYNCH_FNC (referenciada via DcmDspSecurityGetSeedFnc) [SWS_Dcm_00862] ou como operação Rte em USE_ASYNCH_CLIENT_SERVER [SWS_Dcm_00324]. Caso não precisem ser transmitidos dados de acesso adicionais, utiliza-se a assinatura de função alternativa sem o parâmetro SecurityAccessDataRecord [SWS_Dcm_91003].
Esta nota de uso foi criada automaticamente com base na especificação AUTOSAR CP R20-11.
Guia do implementador em breve (complexidade I2)
função 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
A função Xxx_GetSeed serve como interface assíncrona do módulo DCM para a aplicação a fim de disponibilizar um valor de seed no âmbito do serviço UDS SecurityAccess (0x27) em caso de uma solicitação do tipo «requestSeed» [SWS_Dcm_91003], [SWS_Dcm_00862]. A chamada é realizada pelo submódulo DCM-DSP, desde que o nível de segurança ainda não esteja ativo e a configuração preveja USE_ASYNCH_CLIENT_SERVER ou USE_ASYNCH_FNC [SWS_Dcm_00324], [SWS_Dcm_00862].
A interface é implementada de forma assíncrona e não reentrante (Non Reentrant) [SWS_Dcm_91003]. O controle do progresso do processamento ocorre através do parâmetro de entrada OpStatus (tipo Dcm_OpStatusType) [SWS_Dcm_91003]. Como valores de retorno estão definidos E_OK em caso de disponibilização bem-sucedida, E_NOT_OK em caso de falha, bem como DCM_E_PENDING se a geração do seed ainda estiver em andamento e forem necessárias chamadas adicionais [SWS_Dcm_91003]. O valor gerado é passado através do ponteiro Seed (buffer inout/out) [SWS_Dcm_91003].
Se a operação falhar e Xxx_GetSeed retornar E_NOT_OK, o módulo DCM deve enviar uma resposta negativa (NRC) com o código de erro que foi definido através do parâmetro de saída ErrorCode (Dcm_NegativeResponseCodeType) [SWS_Dcm_91003], [SWS_Dcm_00659]. O serviço está declarado através do cabeçalho Dcm_Externals.h [SWS_Dcm_91003].
Este texto foi gerado por uma IA com base no padrão AUTOSAR R20-11.
Guia do implementador em breve (complexidade I2)
função 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)
A função Xxx_CompareKey é chamada pelo Diagnostic Communication Manager ([SWS_Dcm_91004]) de forma assíncrona e não reentrante para comparar uma chave recebida, no âmbito do serviço UDS SecurityAccess (0x27, subfunção sendKey), com a lógica interna da aplicação ([SWS_Dcm_00863]). Ela é utilizada quando o estado de acesso ainda não está ativo, a solicitação de seed foi bem-sucedida e o parâmetro de configuração DcmDspSecurityUsePort está definido como USE_ASYNCH_CLIENT_SERVER ([SWS_Dcm_00324]) ou, de acordo com [SWS_Dcm_00863], a interface de função foi configurada via USE_ASYNCH_FNC/DcmDspSecurityCompareKeyFnc. A interface está declarada em Dcm_Externals.h ([SWS_Dcm_91004]).
A passagem inclui o ponteiro da chave a ser verificada Key, o status de operação atual OpStatus (do tipo Dcm_OpStatusType), bem como o ponteiro ErrorCode para o código de resposta negativa a ser emitido em caso de erro ([SWS_Dcm_91004]). Como valores de retorno estão especificados:
E_OK: Verificação da chave bem-sucedida ([SWS_Dcm_91004]).DCM_E_PENDING: Verificação ainda não concluída; chamadas adicionais pelo módulo DCM para conclusão são necessárias ([SWS_Dcm_91004]).E_NOT_OK: Processamento malsucedido. Em seguida, o DCM envia uma resposta negativa UDS com o NRC definido emErrorCode, sem alterar o nível de segurança interno ou incrementar o contador de tentativas incorretas (AttemptCounter) ([SWS_Dcm_01150]).DCM_E_COMPARE_KEY_FAILED: A chave não coincide ([SWS_Dcm_91004]).
Se a comparação da chave falhar (DCM_E_COMPARE_KEY_FAILED), caso DcmDspSecurityNumAttDelay esteja configurado, o AttemptCounter é incrementado ([SWS_Dcm_01397]). Se o contador estiver abaixo do valor-limite, o DCM envia o NRC 0x35 (InvalidKey) ([SWS_Dcm_00660]). Se o número de tentativas incorretas atingir ou exceder o limite configurado DcmDspSecurityNumAttDelay, o DCM inicia o SecurityDelayTimer com a duração DcmDspSecurityDelayTime e envia o NRC 0x36 (exceededNumberOfAttempts) ([SWS_Dcm_01349]). Em ambos os casos, o nível de segurança permanece inalterado.
Esta nota de uso foi gerada automaticamente e baseia-se nas especificações do módulo DCM do AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I3)
função 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
A função assíncrona e não reentrante [SWS_Dcm_01152] lê, durante a inicialização do DCM, o contador de tentativas com falha atual para um nível de segurança configurado a partir da aplicação. A chamada ocorre para cada entrada em DcmDspSecurityRow na qual o parâmetro de configuração DcmDspSecurityAttemptCounterEnabled esteja definido como TRUE [SWS_Dcm_01154].
O controle de fluxo é conduzido por meio do parâmetro OpStatus com os valores DCM_INITIAL, DCM_PENDING ou DCM_CANCEL [SWS_Dcm_01152]. Se a função retornar DCM_E_PENDING, o DCM interrompe a cadeia de chamadas e a retoma no ciclo seguinte de Dcm_MainFunction() [SWS_Dcm_01351]. Caso o monitoramento de tempo DcmDspSecurityMaxAttemptCounterReadoutTime configurado após o primeiro ciclo seja excedido, o DCM cancela o procedimento ainda pendente com DCM_CANCEL [SWS_Dcm_01352].
Em caso de sucesso, a interface retorna E_OK e passa o valor do contador por meio do parâmetro de saída AttemptCounter [SWS_Dcm_01152]. Se a chamada retornar E_NOT_OK, o DCM define o contador automaticamente para o valor configurado para este nível de segurança DcmDspSecurityNumAttDelay [SWS_Dcm_01156].
Enquanto nem todos os valores de contador tiverem sido definitivamente determinados ou cancelados, o DCM rejeita qualquer requisição em SecurityAccess (0x27) para solicitação de uma semente com o código de resposta negativo conditionsNotCorrect (0x22) [SWS_Dcm_01354]. Após a conclusão da cadeia de consultas, o DCM verifica os valores do contador: se pelo menos um contador atingir ou exceder o valor limite DcmDspSecurityNumAttDelay, o DCM inicia o SecurityDelayTimer com o valor mais alto entre DcmDspSecurityDelayTimeOnBoot e DcmDspSecurityDelayTime [SWS_Dcm_01355].
Esta nota de uso foi criada automaticamente com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I2)
função 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
A função Xxx_SetSecurityAttemptCounter serve para definir o contador de tentativas para um nível de segurança específico na aplicação ([SWS_Dcm_01153]). Ela é disponibilizada por meio do cabeçalho Dcm_Externals.h.
Chamada e semântica
A execução ocorre de forma assíncrona e é especificada como não reentrante (Non Reentrant) ([SWS_Dcm_01153]). A chamada controla o fluxo por meio do parâmetro OpStatus com os valores DCM_INITIAL, DCM_PENDING ou DCM_CANCEL. O novo valor do contador é passado por meio do parâmetro de entrada AttemptCounter (uint8).
Valores de retorno e tratamento de erros
Como tipo de retorno, é utilizado Std_ReturnType ([SWS_Dcm_01153]):
E_OK: A requisição foi concluída com sucesso.E_NOT_OK: A execução não foi bem-sucedida.DCM_E_PENDING: O processamento ainda não foi concluído; são necessárias chamadas adicionais para a finalização.
Se uma operação assíncrona em andamento for cancelada, o DCM passa o status DCM_CANCEL ([SWS_Dcm_01153]).
Interação e condições de contorno
O módulo DCM chama Xxx_SetSecurityAttemptCounter assim que tiver alterado o contador de tentativas, a fim de notificar a aplicação sobre a atualização ([SWS_Dcm_01155]). Isso pressupõe que o parâmetro de configuração DcmDspSecurityAttemptCounterEnabled para o respectivo DcmDspSecurityRow esteja configurado como TRUE ([SWS_Dcm_01155]). Como a interface não é reentrante, a aplicação deve excluir uma execução concorrente para a mesma instância ([SWS_Dcm_01153]).
Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I2)
função 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.
A função síncrona Xxx_ReadData solicita da aplicação o valor de dados atual de um DID ou PID quando o parâmetro de configuração DcmDspDataUsePort está definido como USE_DATA_SYNCH_CLIENT_SERVER [SWS_Dcm_00793]. A interface é disponibilizada através do cabeçalho Dcm_Externals.h e possui o Service ID 0x34 [SWS_Dcm_00793]. A aplicação chamada copia os dados úteis solicitados diretamente no buffer passado Data [SWS_Dcm_00793].
Em relação ao valor de retorno, está definido que a chamada retorna E_OK sem exceção [SWS_Dcm_00793]. Códigos de erro específicos, retornos negativos ou mensagens de DET/DEM não estão especificados para esta assinatura. Interpretação: A falha no fornecimento de dados presumivelmente não está prevista neste nível de interface, uma vez que, ao contrário da variante assíncrona [SWS_Dcm_91005], não existem nem um parâmetro ErrorCode para códigos de resposta negativa (NRC) nem valores de retorno como E_NOT_OK ou DCM_E_PENDING. Pergunta Q-adcf0171ecfd37c4 (aberta)
No que diz respeito à concorrência e condições de contorno, a função é especificada como não reentrante (Non Reentrant) e opera de forma totalmente síncrona [SWS_Dcm_00793]. A interação com requisições de diagnóstico ocorre em vários cenários:
- Ao receber uma requisição OBD Service $01 com PIDs de não disponibilidade, o DCM chama as respectivas funções
Xxx_ReadDataconfiguradas para todos os dados do PID, a fim de obter os valores de resposta [SWS_Dcm_00408]. - No caso de uma requisição UDS do serviço 0x22 (ReadDataByIdentifier) com identificadores de não disponibilidade, o DCM chama as funções para todos os dados do
OBDDataIdentifier[SWS_Dcm_01380] bem como doOBDInfoTypeDataIdentifier[SWS_Dcm_01389]. - Se, por outro lado, for necessário um comportamento assíncrono, entram em ação as assinaturas separadas com
OpStatusconforme [SWS_Dcm_91006] ou [SWS_Dcm_91005].
Este texto foi gerado por uma IA e baseia-se exclusivamente nas especificações da release R20-11.
Guia do implementador em breve (complexidade I2)
função 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.
A função Xxx_ReadData serve para consultar valores de dados de um DID ou PID de forma assíncrona a partir da aplicação, desde que o parâmetro DcmDspDataUsePort esteja configurado como USE_DATA_ASYNCH_CLIENT_SERVER ([SWS_Dcm_91006]). Ela é declarada por meio do arquivo de cabeçalho Dcm_Externals.h ([SWS_Dcm_91006]).
Durante a chamada, o parâmetro OpStatus (tipo Dcm_OpStatusType) controla o progresso da operação em andamento, enquanto através do ponteiro Data (tipo uint8*) é passado o buffer de saída no qual os dados solicitados devem ser copiados ([SWS_Dcm_91006]). Como valores de retorno, estão definidos E_OK em caso de conclusão bem-sucedida e DCM_E_PENDING se o processamento ainda estiver em andamento e necessitar de chamadas adicionais para a conclusão ([SWS_Dcm_91006]).
O módulo DCM integra esta função nos seguintes fluxos de diagnóstico:
- Ao receber um OBD Service $01, o DCM lê os valores atuais de PID (exceto PIDs de disponibilidade) por meio das funções
Xxx_ReadDataconfiguradas ([SWS_Dcm_00408]). - No UDS Service 0x22 (
ReadDataByIdentifier), o DCM chama a função para OBDDataIdentifier ([SWS_Dcm_01380]) e OBDInfoTypeDataIdentifier ([SWS_Dcm_01389]).
Em relação à execução, a função é especificada como não reentrante (Non Reentrant) ([SWS_Dcm_91006]). Ao contrário da interface síncrona ([SWS_Dcm_00793]) ou da variante assíncrona com parâmetro ErrorCode adicional ([SWS_Dcm_91005]), esta variante da função não prevê o retorno direto de um código de resposta negativa.
Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I3)
função 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.
A função Xxx_ReadData solicita da aplicação assincronamente o valor de dados de um DID ou PID, desde que o parâmetro de configuração DcmDspDataUsePort esteja definido como USE_DATA_ASYNCH_CLIENT_SERVER [SWS_Dcm_91005]. A declaração da função é disponibilizada através do arquivo de interface Dcm_Externals.h [SWS_Dcm_91005].
A interface possui as seguintes características de chamada e fluxo:
- Semântica e parâmetros: O parâmetro de entrada
OpStatuscontrola o progresso da operação em andamento [SWS_Dcm_91005]. Em caso de conclusão bem-sucedida, os dados úteis solicitados são copiados para o buffer de saídaDataeE_OKé retornado [SWS_Dcm_91005]. Se a aplicação necessitar de tempo de processamento adicional, ela sinalizaDCM_E_PENDING, após o que são necessárias conexões subsequentes [SWS_Dcm_91005]. - Tratamento de erros: Se a operação falhar e retornar
E_NOT_OK, o módulo DCM avalia o parâmetro de saídaErrorCodee envia uma resposta de diagnóstico negativa com este código NRC [SWS_Dcm_91005]. - Simultaneidade: A função é definida como não reentrante (
Non Reentrant) [SWS_Dcm_91005]. Interpretação: As chamadas repetidas durante o processamento pendente devem ocorrer sequencialmente no ciclo do processamento principal do DCM. Pergunta Q-541226d5f242f7c2 (aberta) - Interação: O módulo DCM chama a função em solicitações do OBD Service $01 para PIDs de não disponibilidade [SWS_Dcm_00408], bem como no UDS Service ReadDataByIdentifier (0x22) para
OBDDataIdentifier[SWS_Dcm_01380] eOBDInfoTypeDataIdentifier[SWS_Dcm_01389]. Em comparação com a variante síncrona [SWS_Dcm_00793] ou interfaces assíncronas sem parâmetro NRC [SWS_Dcm_91006], esta assinatura permite uma transmissão de erro negativa específica.
Este texto foi gerado por uma IA e baseia-se exclusivamente nos requisitos de especificação do release AUTOSAR R20-11.
Guia do implementador em breve (complexidade I3)
função Xxx_WriteData [SWS_Dcm_00794] 📄 PDF
Std_ReturnType Xxx_WriteData (const uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);
This function requests the application to write a data value of a DID.
usar
A função Xxx_WriteData é chamada pelo Diagnostic Communication Manager (DCM) para solicitar à aplicação a escrita de um valor de dados de DID (Data Identifier) ([SWS_Dcm_00794]). A declaração é fornecida através do cabeçalho Dcm_Externals.h. A chamada ocorre de forma síncrona sob o ID de serviço 0x51 ([SWS_Dcm_00794]).
Parâmetros e valores de retorno:
Data(in): Ponteiro para o buffer com os dados úteis a serem escritos ([SWS_Dcm_00794]).ErrorCode(out): Ponteiro para a variável na qual o código de diagnóstico negativo (NRC) deve ser inserido em caso de falha ([SWS_Dcm_00794]).- Valor de retorno (
Std_ReturnType):E_OKsinaliza escrita bem-sucedida,E_NOT_OKa falha da operação ([SWS_Dcm_00794]).
Tratamento de erros
Se a função retornar E_NOT_OK, o módulo DCM lê o parâmetro ErrorCode e envia uma resposta de diagnóstico negativa com esse código NRC ([SWS_Dcm_00794]).
Simultaneidade e restrições
A função é especificada como não reentrante (Non Reentrant) ([SWS_Dcm_00794]) e não deve ser executada de forma concorrente.
Interação
Como não existe nenhum parâmetro de comprimento, esta variante deve ser prevista para DIDs com comprimento de dados fixo. Pergunta Q-ebc074ac1cb66aaa (aberta) Para DIDs com comprimento variável, o AUTOSAR disponibiliza a assinatura síncrona com o parâmetro DataLength ([SWS_Dcm_91007]). Além disso, existem para processos demorados variantes assíncronas com OpStatus e possível retorno de DCM_E_PENDING, tanto com comprimento de dados fixo ([SWS_Dcm_91008]) como com parâmetro de comprimento variável ([SWS_Dcm_91009]).
Este texto foi gerado por uma IA com base na especificação AUTOSAR CP R20-11.
Guia do implementador em breve (complexidade I2)
função 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.
A função de callback Xxx_WriteData serve para solicitar à aplicação a escrita do valor de dados de um Data Identifier (DID) [SWS_Dcm_91007]. A interface é declarada por meio do cabeçalho Dcm_Externals.h e possui o Service ID 0x52 [SWS_Dcm_91007]. A chamada ocorre de forma síncrona e é especificada como não reentrante (Non Reentrant), razão pela qual não devem ocorrer chamadas concorrentes para a mesma função [SWS_Dcm_91007].
Como parâmetros, a função recebe o buffer Data com os dados úteis a serem escritos, bem como DataLength com a indicação do comprimento em bytes [SWS_Dcm_91007]. Como valor de retorno, ela fornece o tipo Std_ReturnType com E_OK em caso de execução bem-sucedida ou E_NOT_OK em caso de erro [SWS_Dcm_91007]. Se a operação falhar e retornar E_NOT_OK, o módulo DCM deve enviar uma resposta negativa ao testador de diagnóstico; nesse caso, o Negative Response Code (NRC) corresponde ao valor transmitido por meio do parâmetro de ponteiro ErrorCode [SWS_Dcm_91007].
No sistema global, [SWS_Dcm_91007] representa a variante síncrona para DIDs com indicação explícita de comprimento. Como complemento, existe com [SWS_Dcm_00794] (Service ID 0x51) uma variante síncrona sem o parâmetro DataLength. Para operações de escrita mais longas, o padrão prevê interfaces assíncronas: [SWS_Dcm_91008] (Service ID 0x35) sem indicação de comprimento, bem como [SWS_Dcm_91009] (Service ID 0x3e) com DataLength. Ambas as funções assíncronas são controladas por meio de OpStatus e podem retornar, além de E_OK e E_NOT_OK, também DCM_E_PENDING [SWS_Dcm_91008] [SWS_Dcm_91009].
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR Classic Release R20-11.
Guia do implementador em breve (complexidade I2)
função Xxx_WriteData [SWS_Dcm_91008] 📄 PDF
Std_ReturnType Xxx_WriteData (const uint8* Data, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);
This function requests the application to write a data value of a DID.
usar
A função Xxx_WriteData solicita à aplicação a escrita do valor de dados de um Data Identifier (DID) [SWS_Dcm_91008]. Ela é declarada no arquivo de cabeçalho Dcm_Externals.h e possui semântica de execução assíncrona com o Service ID 0x35 [SWS_Dcm_91008].
Os parâmetros e valores de retorno estruturam-se da seguinte forma [SWS_Dcm_91008]:
Data(IN): ponteiro para o buffer que contém os dados a serem escritos.OpStatus(IN): status da operação atual para controle do fluxo de chamadas assíncronas.ErrorCode(OUT): ponteiro para o código de erro (NRC), que é definido em caso de erro.- Valor de retorno (
Std_ReturnType):E_OKconfirma a operação de escrita bem-sucedida,E_NOT_OKreporta uma falha eDCM_E_PENDINGindica que a operação ainda está em andamento e necessita de chamadas adicionais para a conclusão.
Tratamento de erros e simultaneidade
Se a chamada retornar o valor E_NOT_OK, o módulo DCM deve enviar uma resposta negativa com o valor de NRC passado no parâmetro de saída ErrorCode [SWS_Dcm_91008]. A função é especificada como não reentrante [SWS_Dcm_91008], de modo que chamadas simultâneas ou sobrepostas para a mesma instância são inadmissíveis.
Interação e variantes
Esta interface conforme [SWS_Dcm_91008] cobre o acesso de escrita assíncrono sem parâmetro de comprimento separado. A AUTOSAR define variantes relacionadas no DCM para isso: uma assinatura síncrona sem indicação de comprimento [SWS_Dcm_00794], bem como assinaturas com parâmetro DataLength adicional para fluxos síncronos [SWS_Dcm_91007] e assíncronos [SWS_Dcm_91009].
Esta nota de uso foi gerada por um sistema de IA com base na especificação AUTOSAR CP R20-11.
Guia do implementador em breve (complexidade I2)
função 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.
Utilização e semântica
A função Xxx_WriteData solicita à aplicação a escrita do valor de dados de um Data Identifier (DID) [SWS_Dcm_91009]. Ela é declarada por meio do arquivo de cabeçalho Dcm_Externals.h e possui o Service ID 0x3e [SWS_Dcm_91009]. A execução ocorre de forma assíncrona (Asynchronous), para a qual são passados os seguintes parâmetros:
Data(in): ponteiro para o buffer com os dados úteis a serem escritos [SWS_Dcm_91009].DataLength(in): comprimento dos dados a serem escritos em bytes [SWS_Dcm_91009].OpStatus(in): status da operação (Dcm_OpStatusType) para controle do progresso do processamento assíncrono [SWS_Dcm_91009].ErrorCode(out): ponteiro para recepção de um código de resposta negativa (NRC) em caso de erro [SWS_Dcm_91009].
Como valores de retorno do tipo Std_ReturnType, estão definidos E_OK (requisição de escrita concluída com sucesso), E_NOT_OK (requisição falhou) bem como DCM_E_PENDING [SWS_Dcm_91009]. O status DCM_E_PENDING sinaliza que o procedimento ainda não foi finalizado e são necessárias chamadas subsequentes adicionais para a conclusão [SWS_Dcm_91009]. Interpretação: o DCM provavelmente chamará a função novamente de forma cíclica ao receber o retorno de DCM_E_PENDING com OpStatus continuado, até que um resultado final esteja disponível. Pergunta Q-fdbd734dab052f5c (aberta)
Tratamento de erros e simultaneidade
Se a função retornar o valor E_NOT_OK, o respectivo código de erro deve ser disponibilizado por meio do parâmetro ErrorCode; em seguida, o módulo DCM envia uma resposta negativa com este valor de NRC [SWS_Dcm_91009]. Mensagens específicas de DET ou DEM não estão definidas no payload para esta interface. Quanto à concorrência, a função é especificada como não reentrante (Non Reentrant) [SWS_Dcm_91009].
Interação e variantes de interface
A assinatura [SWS_Dcm_91009] cobre acessos de escrita assíncronos com indicação explícita de comprimento. No DCM existem outras variantes de Xxx_WriteData:
- Execução síncrona sem indicação de comprimento: [SWS_Dcm_00794] (Service ID
0x51). - Execução síncrona com indicação de comprimento: [SWS_Dcm_91007] (Service ID
0x52). - Execução assíncrona sem indicação de comprimento: [SWS_Dcm_91008] (Service ID
0x35).
Nota: Esta nota de uso foi criada de forma automatizada com base na especificação AUTOSAR Classic para a release R20-11.
Guia do implementador em breve (complexidade I2)
função Xxx_ReadDataLength [SWS_Dcm_00796] 📄 PDF
Std_ReturnType Xxx_ReadDataLength (uint16* DataLength);
This function requests the application to return the data length in byte of a Data.
usar
Com a função Xxx_ReadDataLength, o módulo DCM solicita à aplicação que determine e retorne o comprimento dos dados de um dado em bytes [SWS_Dcm_00796]. A interface é declarada no cabeçalho Dcm_Externals.h e possui o ID de serviço 0x36 [SWS_Dcm_00796]. A consulta é executada de forma síncrona [SWS_Dcm_00796]. Por meio do parâmetro de saída DataLength do tipo uint16*, a aplicação transfere o comprimento em bytes dos dados a serem lidos para o DCM [SWS_Dcm_00796]. Parâmetros de entrada ou de entrada/saída não estão definidos [SWS_Dcm_00796]. Como valor de retorno, a função fornece sempre E_OK do tipo Std_ReturnType [SWS_Dcm_00796].
Simultaneidade e restrições
A interface é especificada como não reentrante (Non Reentrant) [SWS_Dcm_00796]. Como a função opera de forma síncrona e, de acordo com a especificação, reporta sempre E_OK, não estão previstos códigos de erro específicos ou retornos de status divergentes para esta chamada [SWS_Dcm_00796].
Interação
Além da função síncrona, existe uma variante assíncrona homônima com o ID de serviço 0x4c, que também é disponibilizada através de Dcm_Externals.h [SWS_Dcm_91010]. Enquanto a versão síncrona [SWS_Dcm_00796] dispensa o status de operação, a contraparte assíncrona exige o parâmetro de entrada OpStatus do tipo Dcm_OpStatusType [SWS_Dcm_91010]. Além disso, a interface assíncrona pode fornecer, além de E_OK, o valor de retorno DCM_E_PENDING, caso a requisição ainda não esteja concluída e necessite de chamadas adicionais para sua finalização [SWS_Dcm_91010].
Este texto foi gerado por uma IA e serve como guia de orientação. São vinculativas as diretrizes da respectiva especificação AUTOSAR.
Guia do implementador em breve (complexidade I1)
função 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.
A função [SWS_Dcm_91010] (ID de serviço 0x4c) solicita que a aplicação determine o comprimento dos dados de um elemento de dados em bytes. Ela é declarada no cabeçalho Dcm_Externals.h e serve ao Diagnostic Communication Manager (DCM) para a consulta flexível de comprimento de dados de diagnóstico.
Utilização e semântica
Durante a chamada, o módulo DCM passa o progresso atual através do parâmetro de entrada OpStatus do tipo Dcm_OpStatusType ([SWS_Dcm_91010]). A aplicação grava o resultado da consulta no parâmetro de saída DataLength (tipo uint16*). Se o comprimento dos dados não estiver imediatamente disponível, a função sinaliza através do valor de retorno DCM_E_PENDING que o processamento continua em andamento e que chamadas adicionais são necessárias ([SWS_Dcm_91010]). Assim que o resultado estiver pronto, a aplicação relata a conclusão retornando E_OK.
Simultaneidade e restrições
De acordo com a especificação, a função é classificada como não reentrante ([SWS_Dcm_91010]), razão pela qual chamadas simultâneas pelo DCM devem ser excluídas. Como a especificação não prevê valores de erro específicos além de DCM_E_PENDING, assume-se que, ao retornar E_OK, o DCM sempre parte do princípio de que o tamanho em bytes foi definido de forma válida. Pergunta Q-e7ecd3a518e2cbcb (aberta)
Interação
A interface assíncrona [SWS_Dcm_91010] difere da variante síncrona relacionada [SWS_Dcm_00796] (ID de serviço 0x36). Esta última não possui o parâmetro OpStatus, é executada de forma síncrona e sempre fornece o comprimento imediatamente com E_OK. Por outro lado, [SWS_Dcm_91010] permite que a aplicação distribua cálculos de tempo intensivo de forma assíncrona ao longo de múltiplos ciclos de chamada.
Este texto foi criado por uma IA com base na especificação AUTOSAR.
Guia do implementador em breve (complexidade I2)
função 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.
A função de callout síncrona Xxx_ConditionCheckRead é disponibilizada através do arquivo de cabeçalho Dcm_Externals.h e serve para consultar junto à aplicação se as condições para a leitura dos dados de diagnóstico estão satisfeitas [SWS_Dcm_00797].
A interface não possui parâmetros de entrada e sinaliza o status da verificação através do valor de retorno do tipo Std_ReturnType [SWS_Dcm_00797]:
E_OK: A verificação foi bem-sucedida, as condições para a leitura dos dados estão satisfeitas [SWS_Dcm_00797].E_NOT_OK: A verificação falhou, a leitura não é permitida [SWS_Dcm_00797].
Se a função retornar E_NOT_OK, o módulo DCM envia uma resposta negativa (Negative Response) com o código de erro que a aplicação passou através do parâmetro de saída ErrorCode (tipo Dcm_NegativeResponseCodeType*) [SWS_Dcm_00797].
No que diz respeito à concorrência, a função é especificada como não reentrante (Non Reentrant) e é executada sincronicamente com o Service-ID 0x49 [SWS_Dcm_00797]. Portanto, a verificação deve ser avaliada do lado da aplicação imediatamente e sem tempos de espera bloqueantes, a fim de evitar atrasos no chamador DCM síncrono. Pergunta Q-ada29c78c29d961e (aberta)
Em contraste com esta operação síncrona, [SWS_Dcm_91011] define uma variante assíncrona sob o Service-ID 0x37. Esta utiliza adicionalmente o parâmetro de entrada OpStatus (tipo Dcm_OpStatusType) e pode retornar, além de E_OK e E_NOT_OK, também DCM_E_PENDING se etapas subsequentes forem necessárias para a conclusão da verificação [SWS_Dcm_91011].
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I1)
função 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.
Utilização e semântica
A função Xxx_ConditionCheckRead é disponibilizada através do arquivo de cabeçalho Dcm_Externals.h e serve para consultar o software de aplicação se as condições para leitura dos dados de diagnóstico estão satisfeitas [SWS_Dcm_91011]. A execução ocorre sob o ID de serviço 0x37 de forma assíncrona [SWS_Dcm_91011]. Através do parâmetro de entrada OpStatus (tipo Dcm_OpStatusType), é passado o status atual da operação em andamento [SWS_Dcm_91011].
Valores de retorno e tratamento de erros
Como valor de retorno a função fornece um status do tipo Std_ReturnType [SWS_Dcm_91011]:
E_OK: A solicitação foi bem-sucedida e as condições de leitura estão satisfeitas [SWS_Dcm_91011].E_NOT_OK: A verificação falhou [SWS_Dcm_91011]. Neste caso, a aplicação deve definir um código de resposta negativa (NRC) do tipoDcm_NegativeResponseCodeTypeatravés do parâmetro de saídaErrorCode; o módulo DCM envia subsequentemente uma resposta negativa com este NRC [SWS_Dcm_91011].DCM_E_PENDING: A verificação ainda não foi concluída, de modo que chamadas adicionais para finalização são necessárias [SWS_Dcm_91011].
Concorrência e delimitação
A interface é especificada como não reentrante (Non Reentrant) [SWS_Dcm_91011]. Ao contrário desta variante assíncrona, [SWS_Dcm_00797] define sob o ID de serviço 0x49 uma assinatura síncrona sem parâmetro OpStatus, a qual retorna exclusivamente E_OK ou E_NOT_OK [SWS_Dcm_00797].
Esta nota de utilização foi gerada por uma IA com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I2)
função Xxx_GetScalingInformation [SWS_Dcm_00798] 📄 PDF
Std_ReturnType Xxx_GetScalingInformation (uint8* ScalingInfo, Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application for the scaling information of a Data.
função 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.
A interface assíncrona Xxx_GetScalingInformation é disponibilizada através do cabeçalho Dcm_Externals.h e serve para solicitar informações de escalonamento de um elemento de dados a partir da aplicação [SWS_Dcm_91012]. O módulo DCM chama esta função assim que uma solicitação de diagnóstico para o serviço UDS ReadScalingByIdentifier é recebida, nomeadamente para cada dado configurado para o DID solicitado [SWS_Dcm_00394].
Parâmetros e valores de retorno
A função define os seguintes parâmetros e semântica [SWS_Dcm_91012]:
OpStatus(in): Passa o status atual da operação em andamento.ScalingInfo(out): Buffer para recepção das informações de escalonamento (scalingByteescalingByteExtension).ErrorCode(out): Recebe o código de resposta negativa caso a operação falhe.
Como valores de retorno estão especificados E_OK em caso de conclusão bem-sucedida, E_NOT_OK em caso de erro, bem como DCM_E_PENDING se o processamento ainda não estiver concluído e necessitar de chamadas adicionais para finalização [SWS_Dcm_91012].
Tratamento de erros e simultaneidade
Se a chamada retornar E_NOT_OK, o módulo DCM deve enviar uma resposta negativa cujo NRC corresponda ao valor fornecido através do parâmetro de saída ErrorCode [SWS_Dcm_91012]. A função é especificada como não reentrante (Non Reentrant) [SWS_Dcm_91012]. Interpretação: se esta função assíncrona é chamada com OpStatus ou a variante síncrona especificada alternativamente sem OpStatus [SWS_Dcm_00798], isso deve depender da configuração do respectivo DID. Pergunta Q-c4054a798f17a52c (aberta)
Este texto foi gerado por uma IA; a correção e a integridade das informações não podem ser garantidas.
Guia do implementador em breve (complexidade I2)
função 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.
A função Xxx_ReturnControlToECU é disponibilizada através do cabeçalho Dcm_Externals.h e solicita à aplicação que devolva o controle sobre um controle de entrada/saída (IOControl) à ECU [SWS_Dcm_01285]. A chamada ocorre de forma síncrona e está especificada como não reentrante [SWS_Dcm_01285].
Parâmetros e variantes
A assinatura da função depende da configuração da máscara de controle externa [SWS_Dcm_01285]:
- Se
DcmDspDidControlMaskestiver definido comoDCM_CONTROLMASK_EXTERNALe o tamanho da máscara for de até quatro bytes (DcmDspDidControlMaskSize <= 0x04), o parâmetro de entradacontrolMaskdo tipoDcm_ControlMask_{DID}Typeé passado [SWS_Dcm_01285]. - Se o tamanho da máscara for de cinco ou mais bytes (
DcmDspDidControlMaskSize >= 0x05), o ponteirocontrolMask2do tipouint8*é utilizado em seu lugar [SWS_Dcm_01285]. - Através do parâmetro de saída
ErrorCode(tipoDcm_NegativeResponseCodeType*), a função transmite em caso de erro o código de resposta negativo específico (NRC) ao DCM [SWS_Dcm_01285].
Valores de retorno e tratamento de erros
A função retorna o status Std_ReturnType. Em caso de devolução bem-sucedida do controle, a aplicação reporta E_OK [SWS_Dcm_01285]. Se a operação falhar, a função deve retornar E_NOT_OK; nesse caso, o módulo DCM envia uma resposta negativa com o NRC registrado em ErrorCode ao testador de diagnóstico [SWS_Dcm_01285].
Interação e contexto de chamada
O DCM chama a interface de função configurada (parâmetro DcmDspDataReturnControlToEcuFnc) quando DcmDspDataUsePort estiver configurado como USE_DATA_SYNCH_FNC, USE_DATA_ASYNCH_FNC ou USE_DATA_ASYNCH_FNC_ERROR [SWS_Dcm_01435]. Além de ações regulares de diagnóstico, Xxx_ReturnControlToECU é chamado pelo DCM especialmente quando uma sequência ativa de controle de IO precisa ser interrompida [SWS_Dcm_01435].
Esta nota de utilização foi gerada automaticamente com base na especificação.
Guia do implementador em breve (complexidade I1)
função 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.
A interface de função síncrona Xxx_ResetToDefault é disponibilizada por meio do cabeçalho Dcm_Externals.h e serve para solicitar a uma aplicação a restauração de um controle de E/S (IOControl) para o valor padrão [SWS_Dcm_01286].
Contexto de chamada e parâmetros
A função possui o ID de serviço 0x4d, opera de forma síncrona e é especificada como não reentrante [SWS_Dcm_01286]. Dependendo do tamanho configurado da máscara de controle externa, é transmitido um de dois parâmetros de entrada alternativos:
controlMask(tipoDcm_ControlMask_{DID}Type) entra em ação quandoDcmDspDataUsePortestiver configurado paraUSE_DATA_SYNCH_FNC,DcmDspDidControlMaskestiver emDCM_CONTROLMASK_EXTERNALeDcmDspDidControlMaskSizefor no máximo0x04[SWS_Dcm_01286].controlMask2(tipouint8*) é utilizado quando, sob condições de contorno idênticas,DcmDspDidControlMaskSizeestiver configurado como maior ou igual a0x05[SWS_Dcm_01286].
Valores de retorno e tratamento de erros
Se o reset pôde ser realizado com sucesso, a função retorna E_OK [SWS_Dcm_01286]. Se a operação falhar, deve-se retornar E_NOT_OK. Nesse caso, a aplicação preenche o parâmetro de saída ErrorCode (tipo Dcm_NegativeResponseCodeType*) com o respectivo código de resposta negativo (NRC), o qual o módulo DCM transmite como resposta negativa ao tester [SWS_Dcm_01286].
Interação e distinção
Se o sistema for projetado para processamentos assíncronos de interface via USE_DATA_ASYNCH_FNC ou USE_DATA_ASYNCH_FNC_ERROR, utiliza-se, em vez desta função síncrona, a variante assíncrona com o parâmetro adicional OpStatus e o ID de serviço 0x3c [SWS_Dcm_01314].
Este texto foi gerado por uma IA e baseia-se nas especificações do AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I1)
função 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.
A função assíncrona [SWS_Dcm_01314] solicita à aplicação a restauração de um controle de entrada/saída (IOControl) para o seu valor padrão. Ela é declarada em Dcm_Externals.h e possui o ID de serviço 0x3c. O progresso da operação é controlado por meio do parâmetro OpStatus. Em caso de processamento ainda não concluído, a função retorna DCM_E_PENDING, enquanto uma conclusão bem-sucedida é confirmada com E_OK.
Dependendo da configuração e do tamanho da máscara (DcmDspDidControlMaskSize até 4 bytes ou a partir de 5 bytes), transmite-se adicionalmente controlMask ou controlMask2 no caso de mascaramento externo [SWS_Dcm_01314]. Se a restauração falhar, a função retorna E_NOT_OK. Nesse caso, deve-se transferir um código de resposta negativo (NRC) por meio do parâmetro de saída ErrorCode, o qual o módulo DCM envia como resposta negativa ao tester [SWS_Dcm_01314].
A função é especificada como não reentrante (Non Reentrant) [SWS_Dcm_01314]. Ela entra em ação quando DcmDspDataUsePort estiver definido como USE_DATA_ASYNCH_FNC ou USE_DATA_ASYNCH_FNC_ERROR. Para configurações síncronas de interface (USE_DATA_SYNCH_FNC), existe alternativamente a variante síncrona sem OpStatus [SWS_Dcm_01286].
Este texto foi elaborado por uma IA e baseia-se na versão de especificação do AUTOSAR R20-11.
Guia do implementador em breve (complexidade I2)
função Xxx_FreezeCurrentStateManager [SWS_Dcm_01290] 📄 PDF
Std_ReturnType Xxx_FreezeCurrentState ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application to freeze the current state of an IOControl.
usar
A função síncrona Xxx_FreezeCurrentState (listada no catálogo de elementos como Xxx_FreezeCurrentStateManager) serve para solicitar a uma aplicação o congelamento do estado atual de um controle de entrada ou saída (IOControl) [SWS_Dcm_01290]. A função está disponível através do arquivo de cabeçalho Dcm_Externals.h e possui o Service ID 0x4a AUTOSAR_SWS_DiagnosticCommunicationManager p. 279. (Interpretação: o prefixo Xxx deve funcionar como um placeholder para o respectivo módulo de aplicação.) Pergunta Q-f8c864cda732acc2 (aberta)
Os parâmetros de interface dependem da configuração da máscara de controle externa (DcmDspDidControlMask em DCM_CONTROLMASK_EXTERNAL) [SWS_Dcm_01290]:
controlMask(entrada, tipoDcm_ControlMask_{DID}Type): É passado quando o tamanho da máscaraDcmDspDidControlMaskSizeestiver configurado como menor ou igual a 4 bytes (<= 0x04).controlMask2(entrada, tipouint8*): É utilizado em seu lugar quando o tamanho da máscara compreender pelo menos 5 bytes (=> 0x05).ErrorCode(saída, tipoDcm_NegativeResponseCodeType*): Ponteiro para recepção de um código de resposta negativo em caso de erros.
Tratamento de erros e valores de retorno
A função fornece como Std_ReturnType ou E_OK em caso de execução bem-sucedida ou E_NOT_OK se a solicitação não foi bem-sucedida [SWS_Dcm_01290]. Se ocorrer um erro e E_NOT_OK for retornado, a aplicação deve inserir no parâmetro ErrorCode um código de resposta negativo específico (NRC); o módulo DCM envia em seguida uma resposta de diagnóstico negativa com esse código NRC AUTOSAR_SWS_DiagnosticCommunicationManager p. 279.
Simultaneidade e restrições
A operação está especificada como não reentrante (Non Reentrant) [SWS_Dcm_01290]. Os chamadores devem garantir que as chamadas para a mesma instância sejam processadas de forma síncrona e sem sobreposição simultânea.
Este texto foi criado por uma IA e serve como orientação. A especificação AUTOSAR é vinculativa.
Guia do implementador em breve (complexidade I1)
função 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.
Utilização e contexto de chamada
A função assíncrona Xxx_FreezeCurrentState é chamada pelo módulo DCM para solicitar ao software aplicativo o congelamento do estado atual de um controle de entrada/saída (IOControl) [SWS_Dcm_01315]. A declaração é disponibilizada através do cabeçalho Dcm_Externals.h [SWS_Dcm_01315].
Parâmetros e máscaras de controle
A chamada ocorre com os seguintes parâmetros [SWS_Dcm_01315]:
OpStatus: Transmite o status atual da operação assíncrona (Dcm_OpStatusType).controlMaskoucontrolMask2: Se a máscara de controle estiver configurada externamente (DcmDspDidControlMask == DCM_CONTROLMASK_EXTERNAL) e a interface de função assíncrona for utilizada, o DCM passa, dependendo deDcmDspDidControlMaskSize, o parâmetrocontrolMask(do tipoDcm_ControlMask_{DID}Type) para até 4 bytes e o ponteirocontrolMask2(uint8*) a partir de 5 bytes.ErrorCode: Ponteiro paraDcm_NegativeResponseCodeTypepara retorno de um código de erro.
Valores de retorno e tratamento de erros
A função retorna um status do tipo Std_ReturnType [SWS_Dcm_01315]:
E_OK: O congelamento do estado foi concluído com sucesso.DCM_E_PENDING: A solicitação ainda está em processamento e requer alimentações subsequentes.E_NOT_OK: A operação falhou. Nesse caso, o DCM envia uma resposta de diagnóstico negativa com o valor de NRC definido através deErrorCode.
simultaneidade
A interface está definida como não reentrante (Non Reentrant) e requer, portanto, um processamento sincronizado por instância de controle [SWS_Dcm_01315].
Este texto foi criado por uma IA e curado de acordo com diretrizes editoriais.
Guia do implementador em breve (complexidade I2)
função 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.
A função síncrona Xxx_ShortTermAdjustment solicita à aplicação o ajuste temporário de um determinado sinal de E/S [SWS_Dcm_00802]. Ela é disponibilizada por meio do cabeçalho Dcm_Externals.h e possui o ID de serviço 0x50 [SWS_Dcm_00802].
Por meio do ponteiro ControlStateInfo, a função recebe as informações de estado de controle a partir do parâmetro ControlOptionRecord da requisição de diagnóstico InputOutputControlByIdentifier [SWS_Dcm_00802]. Se uma máscara de controle externa estiver configurada (DcmDspDidControlMask == DCM_CONTROLMASK_EXTERNAL), dependendo de DcmDspDidControlMaskSize, é transmitido adicionalmente ou controlMask (até 4 bytes) do tipo Dcm_ControlMask_{DID}Type ou controlMask2 (a partir de 5 bytes) como uint8* [SWS_Dcm_00802].
Como valor de retorno, a operação fornece Std_ReturnType [SWS_Dcm_00802]:
E_OK: O ajuste do sinal de E/S foi executado com sucesso [SWS_Dcm_00802].E_NOT_OK: O ajuste falhou [SWS_Dcm_00802]. Nesse caso, a aplicação deve definir, por meio do parâmetro de saídaErrorCode, um código de resposta negativo específico (Dcm_NegativeResponseCodeType), que o módulo DCM retorna ao tester na resposta de diagnóstico negativa [SWS_Dcm_00802].
A função é não reentrante (Non Reentrant) e é chamada de forma síncrona [SWS_Dcm_00802]. Esta variante síncrona é utilizada quando o elemento de dados está configurado para chamadas de função síncronas (DcmDspDataUsePort == USE_DATA_SYNCH_FNC) [SWS_Dcm_00802]. Por outro lado, para portas configuradas como assíncronas (USE_DATA_ASYNCH_FNC ou USE_DATA_ASYNCH_FNC_ERROR), existe a variante assíncrona com o ID de serviço 0x55 e conjunto de parâmetros estendido, incluindo OpStatus e DataLength [SWS_Dcm_01316].
Este texto foi elaborado por uma IA e baseia-se no AUTOSAR R20-11.
Guia do implementador em breve (complexidade I2)
função 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.
Utilização e contexto de chamada
A função [SWS_Dcm_01316] é chamada pelo Diagnostic Communication Manager (DCM) e disponibilizada por meio de Dcm_Externals.h. Ela solicita à aplicação, de forma assíncrona, o ajuste de um sinal de IO no âmbito do serviço de diagnóstico InputOutputControlByIdentifier. Os dados de controle são transmitidos por meio do ponteiro ControlStateInfo (a partir do parâmetro ControlOptionRecord), complementados pelo comprimento em bytes DataLength. O fluxo é controlado por meio de OpStatus: enquanto o ajuste continuar, a aplicação retorna DCM_E_PENDING; após a conclusão bem-sucedida, ela reporta E_OK.
Variantes e parâmetros de máscara
Em caso de configuração externa da máscara de controle (DCM_CONTROLMASK_EXTERNAL), são transmitidos parâmetros adicionais [SWS_Dcm_01316]:
- Se o tamanho da máscara for menor ou igual a 4 bytes, é transmitido
controlMaskdo tipoDcm_ControlMask_{DID}Type. - Se o tamanho da máscara for de pelo menos 5 bytes, é transmitido, em vez disso,
controlMask2como ponteiro parauint8.
Tratamento de erros e simultaneidade
Se o controle do sinal falhar, a função retorna E_NOT_OK e define, por meio do ponteiro ErrorCode, o código de resposta negativo (NRC), o qual o DCM transmite na resposta negativa [SWS_Dcm_01316]. A função é especificada como não reentrante.
Interação e distinção
A interface é utilizada quando a porta de dados DID estiver configurada para USE_DATA_ASYNCH_FNC ou USE_DATA_ASYNCH_FNC_ERROR e o tipo de dados para UINT8_DYN [SWS_Dcm_01316]. Ela difere da variante síncrona [SWS_Dcm_00802], a qual não utiliza nem OpStatus nem DataLength e é destinada a portas síncronas com tipos de dados estáticos.
Este texto foi gerado automaticamente por um assistente de curadoria de IA com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I2)
função 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.
A função Xxx_IsDidAvailable serve para verificar de forma assíncrona se um Diagnostic Identifier (DID) solicitado está disponível dentro de uma faixa de DID definida [SWS_Dcm_00803]. Ela é disponibilizada por meio do cabeçalho Dcm_Externals.h e possui o ID de serviço 0x53 [SWS_Dcm_00803].
Utilização e parâmetros
A chamada ocorre com os seguintes parâmetros [SWS_Dcm_00803]:
DID(In): O valor identificador do DID a ser consultado [SWS_Dcm_00803].OpStatus(In): O status atual da operação para controle do fluxo assíncrono [SWS_Dcm_00803].supported(Out): Indica se o DID está disponível na faixa;DCM_DID_SUPPORTEDsignifica suporte, enquantoDCM_DID_NOT_SUPPORTEDindica a ausência de suporte [SWS_Dcm_00803].
Semântica assíncrona e valores de retorno
Como a função é executada de forma assíncrona, a determinação requer, sob certas circunstâncias, várias etapas de chamada [SWS_Dcm_00803]. O valor de retorno DCM_E_PENDING sinaliza que a requisição ainda não está concluída e que são necessárias chamadas adicionais para sua finalização [SWS_Dcm_00803]. O valor de retorno E_OK é reportado quando a verificação está concluída [SWS_Dcm_00803] (interpretação: presume-se que E_OK finalize a consulta, momento em que o parâmetro supported contém o resultado válido). Pergunta Q-22c62d306a7ac4f1 (aberta)
Simultaneidade e restrições
A interface é especificada como não reentrante (Non Reentrant) [SWS_Dcm_00803]. Chamadas paralelas para o mesmo DID ou outros DIDs dentro da mesma instância são, portanto, inadmissíveis.
Este texto foi elaborado por uma IA e baseia-se exclusivamente nos dados de especificação do AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I2)
função 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
Utilização e interface de parâmetros
A função Xxx_ReadDidData (ID de serviço 0x40) está disponível por meio de Dcm_Externals.h e solicita da aplicação os valores de dados de um identificador de diagnóstico (DID) [SWS_Dcm_00804]. A passagem e o retorno ocorrem por meio dos seguintes parâmetros:
DID: identificação do Data Identifier solicitado [SWS_Dcm_00804].Data: ponteiro para o buffer no qual os dados úteis lidos devem ser copiados [SWS_Dcm_00804].OpStatus: status de progresso ou de operação da solicitação atual [SWS_Dcm_00804].DataLength: comprimento dos dados a serem lidos [SWS_Dcm_00804].ErrorCode: parâmetro de saída para recepção de um código de resposta negativo (NRC) [SWS_Dcm_00804].
Semântica assíncrona e valores de retorno
A função é definida como assíncrona (Asynchronous) e retorna um status do tipo Std_ReturnType [SWS_Dcm_00804]:
E_OK: a leitura dos dados foi bem-sucedida [SWS_Dcm_00804].DCM_E_PENDING: a solicitação ainda não está concluída; para a finalização são necessárias outras chamadas [SWS_Dcm_00804].E_NOT_OK: a operação não foi bem-sucedida [SWS_Dcm_00804].
Tratamento de erros e simultaneidade
Se a aplicação retornar para Xxx_ReadDidData o valor de retorno E_NOT_OK, o módulo DCM envia uma resposta negativa com o código NRC definido por meio do parâmetro ErrorCode para o testador de diagnóstico [SWS_Dcm_00804]. A função é especificada como não reentrante (Non Reentrant) [SWS_Dcm_00804]. Interpretação: devido ao processamento assíncrono com DCM_E_PENDING, a chamada provavelmente deve ocorrer no contexto de tarefa cíclica do DCM. Pergunta Q-5e41e9fb7dc261b9 (aberta)
Esta nota de uso foi gerada automaticamente com base na especificação em SWS_Dcm_00804.
Guia do implementador em breve (complexidade I2)
função 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.
A função Xxx_WriteDidData é chamada pelo módulo DCM para solicitar à aplicação a escrita do valor de dados de um DID [SWS_Dcm_00805]. A declaração está disponível por meio do cabeçalho Dcm_Externals.h [SWS_Dcm_00805].
Chamada e semântica
A chamada ocorre de forma assíncrona e é definida como não reentrante (Non Reentrant) [SWS_Dcm_00805]. Na chamada, são passados os seguintes parâmetros [SWS_Dcm_00805]:
DID: identificador do identificador de dados a ser escrito.Data: Ponteiro para o buffer com os dados a serem gravados.OpStatus: status da operação atual.DataLength: comprimento dos dados a serem escritos em bytes.ErrorCode: Parâmetro de saída para o código de resposta negativa (NRC).
Valores de retorno e tratamento de erros
Como valor de retorno, a função fornece Std_ReturnType com os seguintes significados [SWS_Dcm_00805]:
E_OK: a ordem de escrita foi executada com sucesso.DCM_E_PENDING: A operação ainda não foi concluída; para a finalização são necessárias mais chamadas.E_NOT_OK: a operação não foi bem-sucedida. Neste caso, o módulo DCM envia uma resposta negativa com o valor de NRC passado no parâmetro de saídaErrorCode.
Este texto foi gerado por uma IA com base na especificação AUTOSAR CP R20-11.
Guia do implementador em breve (complexidade I2)
função 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.
A função Xxx_ReadDidRangeDataLength serve para solicitar ao software aplicativo o retorno do comprimento dos dados para uma faixa de DID (DID Range) [SWS_Dcm_01271]. Ela é parte integrante do módulo AUTOSAR Dcm, possui o Service ID 0x5e e é disponibilizada através do arquivo de cabeçalho Dcm_Externals.h [SWS_Dcm_01271].
A chamada ocorre com semântica assíncrona (Asynchronous) através dos seguintes parâmetros de interface [SWS_Dcm_01271]:
DID(IN,uint16): Identifica o identificador de dados concreto (Data ID value) da faixa de DID solicitada [SWS_Dcm_01271].OpStatus(IN,Dcm_OpStatusType): Indica o estado de processamento atual da operação em andamento [SWS_Dcm_01271].DataLength(OUT,uint16*): Ponteiro para o comprimento dos dados que devem ser lidos ou gravados [SWS_Dcm_01271].
O valor de retorno do tipo Std_ReturnType sinaliza o resultado da consulta de comprimento [SWS_Dcm_01271]:
E_OK: A solicitação foi bem-sucedida e o comprimento determinado está disponível [SWS_Dcm_01271].E_NOT_OK: A solicitação não foi bem-sucedida [SWS_Dcm_01271].DCM_E_PENDING: A execução ainda não foi concluída e requer chamadas subsequentes adicionais para finalização [SWS_Dcm_01271].
Em relação à concorrência, a interface está definida como não reentrante (Non Reentrant) [SWS_Dcm_01271].
Nota de uso gerada com base na especificação do DCM no AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I2)
função 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.
A interface assíncrona Xxx_GetInfotypeValueData é chamada pelo módulo DCM assim que uma solicitação de diagnóstico para o OBD Service $09 é recebida e o InfoType solicitado não é um InfoType de disponibilidade (“availability InfoType”) [SWS_Dcm_00423]. Para disponibilizar os dados, o DCM chama todas as funções configuradas para esse InfoType e consolida os valores como resposta ao Service $09 [SWS_Dcm_00423]. A declaração está disponível através de Dcm_Externals.h [SWS_Dcm_91014].
A passagem e o retorno dos dados ocorrem através de parâmetros de buffer e de status definidos [SWS_Dcm_91014]:
OpStatus(in): Indica o status de progresso atual da operação em andamento.DataValueBuffer(out): Buffer para recepção dos dados úteis específicos do InfoType.DataValueBufferSize(inout): Contém na chamada o tamanho máximo gravável do buffer em bytes e é preenchido pela função chamada com o número real de bytes de dados gravados.
Como função assíncrona, ela fornece E_OK em caso de conclusão bem-sucedida, E_NOT_OK em caso de erros ou DCM_E_PENDING caso a operação ainda não esteja concluída e necessite de chamadas adicionais para finalização [SWS_Dcm_91014]. Como a função está especificada como não reentrante (Non Reentrant), nenhuma chamada concorrente deve ocorrer para a mesma função [SWS_Dcm_91014].
Este texto foi gerado por uma IA e serve como orientação. O documento determinante é a especificação oficial AUTOSAR.
Guia do implementador em breve (complexidade I2)
função 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.
A função Xxx_Start é declarada por meio do arquivo de cabeçalho Dcm_Externals.h e solicita ao software de aplicação o início da execução de uma rotina de diagnóstico [SWS_Dcm_01203]. O módulo DCM chama essa função assim que uma requisição de serviço UDS para RoutineControl (0x31) com a subfunção startRoutine for recebida e verificada com sucesso [SWS_Dcm_00400], ou quando for recebida uma requisição RoutineControl com uma OBDTestId de não disponibilidade [SWS_Dcm_01392].
A interface suporta formatos de dados fixos e variáveis e é operada de forma assíncrona [SWS_Dcm_01203]:
- Parâmetros de entrada: Sinais de entrada fixos
dataIn_1adataIn_nou dados variáveis através do campo de bytesdataInVar, bem como o status da operaçãoOpStatus[SWS_Dcm_01203]. - Parâmetros de saída: Sinais de saída fixos
dataOut_1adataOut_nou dados de saída variáveisdataOutVar, bem como o código de erroErrorCodepara mensagens de resposta negativas [SWS_Dcm_01203]. - Parâmetros de comprimento: O parâmetro de entrada e saída
currentDataLengthtransporta, em caso de comprimento de dados variável, a quantidade de bytes úteis emdataInVaroudataOutVar[SWS_Dcm_01203]. - Valores de retorno:
E_OKconfirma a inicialização bem-sucedida,E_NOT_OKreporta uma falha,DCM_E_PENDINGsinaliza etapas de processamento ainda em andamento eDCM_E_FORCE_RCRRPsolicita o envio antecipado de uma resposta de pending (NRC 0x78) [SWS_Dcm_01203].
Em relação à concorrência, Xxx_Start é definida como não reentrante (Non Reentrant) [SWS_Dcm_01203]. Em fluxos assíncronos com o valor de retorno DCM_E_PENDING, o módulo DCM chama a função novamente de forma cíclica com OpStatus continuado, até que o processo seja concluído [SWS_Dcm_01203].
Se a operação for concluída com sucesso com E_OK, o módulo DCM envia uma resposta positiva UDS com os dados fornecidos via dataOut de volta como routineStatusRecord [SWS_Dcm_00401]. Se a execução falhar com E_NOT_OK, o DCM transmite uma resposta negativa com o NRC especificado no parâmetro ErrorCode [SWS_Dcm_01203]. No contexto de rotinas de OBD, um valor de retorno diferente de E_OK leva ao envio de NRC 0x22 [SWS_Dcm_01394].
Este texto foi gerado por uma IA e serve para orientação. Apenas a especificação AUTOSAR é determinante.
Guia do implementador em breve (complexidade I2)
função Xxx_StartConfirmation [SWS_Dcm_91016] 📄 PDF
Std_ReturnType Xxx_StartConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);
This function indicates the transmission of a response to a StartRoutine request
usar
A função Xxx_StartConfirmation indica de forma vinculativa, de acordo com [SWS_Dcm_91016], a transmissão de uma resposta a uma solicitação StartRoutine precedente. A interface é declarada no arquivo de cabeçalho Dcm_Externals.h e possui uma semântica de execução síncrona ([SWS_Dcm_91016]). Como único parâmetro de entrada, é passado ConfirmationStatus do tipo Dcm_ConfirmationStatusType, o qual descreve o status de confirmação da transmissão da rotina. Parâmetros de entrada e saída adicionais não existem, de acordo com a especificação ([SWS_Dcm_91016]).
Tratamento de erros e valores de retorno
Como valor de retorno, a função fornece um valor de status do tipo Std_ReturnType ([SWS_Dcm_91016]). Nesse caso, o valor E_OK confirma a execução bem-sucedida da solicitação, enquanto E_NOT_OK sinaliza um processamento malsucedido. Códigos de erro específicos ou mensagens explícitas para o Development Error Tracer (DET) ou Diagnostic Event Manager (DEM) não estão definidos para esta função no payload.
Simultaneidade e restrições
Em relação à concorrência, Xxx_StartConfirmation é classificada como não reentrante (Non Reentrant) ([SWS_Dcm_91016]). Isso exige do chamador que execuções concorrentes ou sobrepostas sejam estritamente evitadas. Interpretação: a função deve ser chamada pelo DCM para notificar a implementação da rotina no lado da aplicação sobre a conclusão do processo de envio. Pergunta Q-be2dafd63bf2a9a5 (aberta)
Este texto foi gerado por uma IA e baseia-se no padrão AUTOSAR Release R20-11.
Guia do implementador em breve (complexidade I2)
função Xxx_Stop [SWS_Dcm_01204] 📄 PDF
Std_ReturnType Xxx_Stop ([ DcmDspRoutineSignalType dataIn_1, ... DcmDspRoutineSignalType dataIn_n ], [ const uint8* dataInVar ], [ DcmDspRoutineSignalType dataOut_1, ... DcmDspRoutineSignalType dataOut_n ], [ uint8* dataOutVar ], [ uint16* currentDataLength ], Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application to stop the execution of a routine
usar
A função [SWS_Dcm_01204] é chamada pelo DCM para encerrar a execução de uma rotina de diagnóstico em andamento na aplicação. A chamada ocorre no âmbito do serviço UDS RoutineControl (0x31) com a subfunção stopRoutine, assim que as verificações prévias necessárias forem concluídas com sucesso [SWS_Dcm_00402]. A interface possui o Service-ID 0x5c e é declarada por meio do arquivo de cabeçalho Dcm_Externals.h [SWS_Dcm_01204].
Parâmetros e valores de retorno
Dependendo da configuração da rotina, o DCM passa dados de entrada fixos ou variáveis (dataIn_1 a dataIn_n ou dataInVar) e referências de buffer para dados de saída (dataOut_1 a dataOut_n ou dataOutVar) [SWS_Dcm_01204], [SWS_Dcm_00402]. No caso de comprimento de dados variável, currentDataLength contém a quantidade de bytes dos dados de entrada ou saída [SWS_Dcm_01204]. Como valores de retorno de Std_ReturnType, estão definidos:
E_OK: Rotina encerrada com sucesso; o DCM transmite uma resposta UDS positiva com os dados de saída gerados como routineStatusRecord [SWS_Dcm_01204], [SWS_Dcm_00403].E_NOT_OK: Falha no cancelamento da rotina; o DCM envia uma resposta UDS negativa com o NRC armazenado emErrorCode[SWS_Dcm_01204].DCM_E_PENDING: A operação ainda está em processamento; o DCM chama a função novamente para conclusão [SWS_Dcm_01204].DCM_E_FORCE_RCRRP: A aplicação solicita ao DCM a transmissão de uma resposta pendente (NRC 0x78) [SWS_Dcm_01204].
Simultaneidade e restrições
A operação é especificada como assíncrona e não reentrante (Non Reentrant) [SWS_Dcm_01204]. Caso ocorra um erro durante a execução, a aplicação deve preencher o parâmetro ErrorCode com o Dcm_NegativeResponseCodeType adequado e retornar E_NOT_OK [SWS_Dcm_01204].
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I1)
função 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
A função síncrona Xxx_StopConfirmation serve para indicar a transmissão de uma resposta a uma solicitação StopRoutine anterior [SWS_Dcm_91017]. Durante a chamada, o sistema passa, através do parâmetro de entrada ConfirmationStatus do tipo Dcm_ConfirmationStatusType, o status de confirmação concreto do encerramento da rotina [SWS_Dcm_91017]. Como valor de retorno, a interface fornece um valor do tipo Std_ReturnType: aqui, E_OK indica que a solicitação foi processada com sucesso, enquanto E_NOT_OK sinaliza uma solicitação malsucedida [SWS_Dcm_91017].
Em termos de concorrência e condições de chamada, a interface é especificada como não reentrante (Non Reentrant) e possui o ID de serviço 0x69 [SWS_Dcm_91017]. A declaração é disponibilizada através do arquivo de cabeçalho Dcm_Externals.h [SWS_Dcm_91017]. Interpretação: devido à disponibilização via Dcm_Externals.h e ao prefixo adaptável Xxx_, a função deve ser chamada pelo módulo DCM e implementada por um componente de software específico da aplicação ou pelo manipulador de rotinas responsável. Pergunta Q-743e69ff8cf92321 (aberta)
Códigos de erro específicos ou notificações para o gerenciamento de erros de desenvolvimento (DET) ou para o Diagnostic Event Manager (DEM) não estão indicados nos requisitos. O comportamento em caso de erro limita-se formalmente, neste nível de interface, ao retorno do valor de erro E_NOT_OK se o processamento não pôde ser concluído com sucesso [SWS_Dcm_91017].
Esta nota de uso baseia-se na especificação AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I2)
função 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
A função [SWS_Dcm_91013] é chamada pelo módulo DCM para consultar da aplicação o resultado de uma execução de rotina. Isso ocorre no âmbito do serviço UDS RoutineControl (0x31) com a subfunção requestRoutineResults, assim que todas as verificações de entrada foram concluídas com sucesso [SWS_Dcm_00404]. A interface está disponível através de Dcm_Externals.h, opera de forma assíncrona e está especificada como não reentrante [SWS_Dcm_91013].
Através do parâmetro OpStatus, o módulo DCM controla o fluxo da operação. A função recebe dados de entrada fixos (dataIn_1 a dataIn_n) ou dados variáveis (dataInVar), derivados do routineControlOptionRecord [SWS_Dcm_00404]. Através de parâmetros de saída fixos (dataOut_1 a dataOut_n) ou buffers de saída variáveis (dataOutVar e variableDataLength), a aplicação transmite os dados de resultado ao DCM [SWS_Dcm_91013].
Se a consulta for concluída com sucesso com E_OK, o módulo DCM consolida os dados de saída com base no parâmetro de configuração DcmDspRequestRoutineResultsOut em um routineStatusRecord e envia uma resposta positiva [SWS_Dcm_00405]. Caso a operação ainda esteja em andamento, a aplicação pode retornar DCM_E_PENDING para chamadas subsequentes ou DCM_E_FORCE_RCRRP para o envio de uma resposta preliminar (NRC 0x78) [SWS_Dcm_91013].
Em caso de erro, a função retorna E_NOT_OK e define ErrorCode com o valor de NRC aplicável, após o que o módulo DCM transmite uma resposta negativa correspondente [SWS_Dcm_91013]. Como a função não é reentrante, ela não deve ser chamada em paralelo para a mesma rotina [SWS_Dcm_91013].
Nota de uso gerada automaticamente com base no AUTOSAR R20-11.
Guia do implementador em breve (complexidade I2)
função 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
Utilização e semântica
A função Xxx_RequestResultsConfirmation serve para confirmar uma resposta de diagnóstico transmitida referente a uma solicitação RequestRoutineResults [SWS_Dcm_91018]. Ela é declarada no arquivo de cabeçalho Dcm_Externals.h e possui o ID de serviço 0x70 [SWS_Dcm_91018]. Através do parâmetro de entrada ConfirmationStatus do tipo Dcm_ConfirmationStatusType, a implementação recebe informações sobre qual status finalizou a transmissão dos resultados da rotina [SWS_Dcm_91018]. A chamada é executada de forma síncrona e retorna um Std_ReturnType, onde E_OK indica um processamento bem-sucedido e E_NOT_OK sinaliza uma falha [SWS_Dcm_91018].
Simultaneidade e restrições
De acordo com a especificação, a função é classificada como não reentrante (Non Reentrant) [SWS_Dcm_91018]. Portanto, chamadas simultâneas para a mesma instância não devem ocorrer. Interpretação: a chamada pelo módulo DCM ocorre sequencialmente no contexto da confirmação de resposta, razão pela qual a função deve ser executada sem operações bloqueantes. Pergunta Q-935a06744e7b9af7 (aberta)
Tratamento de erros e interação
O tratamento de erros limita-se ao valor de retorno E_NOT_OK, uma vez que erros de desenvolvimento específicos (DET) ou erros de produção (DEM) não estão especificados para esta chamada [SWS_Dcm_91018]. Interpretação: a função serve como um ponto de confirmação específico da aplicação (callback) para o DCM, a fim de sincronizar a conclusão da tarefa de diagnóstico no nível do usuário após o envio dos resultados da rotina. Pergunta Q-d3dd0142a30e1363 (aberta)
Este texto foi gerado por uma IA. As informações baseiam-se no AUTOSAR CP R20-11.
Guia do implementador em breve (complexidade I2)
função 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
A função Xxx_RequestControl serve para a execução de uma função de controle específica de TID e é tipicamente empregada para a implementação do OBD Service $08 ([SWS_Dcm_01338]). O módulo DCM chama a função configurada de forma síncrona assim que uma solicitação de OBD Service $08 é recebida, cujo Test ID (TID) não representa um TID de disponibilidade (“availability TID”) ([SWS_Dcm_00419]). A declaração da interface é disponibilizada através do arquivo de cabeçalho Dcm_Externals.h ([SWS_Dcm_01338]).
Parâmetros e gestão de buffers
InBuffer: Ponteiro para os dados úteis da solicitação OBD recebida. O número de bytes desses dados de entrada deve corresponder exatamente ao tamanho configurado no módulo DCM ([SWS_Dcm_00419], [SWS_Dcm_01338]).OutBuffer: Ponteiro para o buffer de saída no qual a função de controle chamada armazena seus resultados. O tamanho do buffer é fixo e é obtido da configuração do módulo DCM ([SWS_Dcm_00419], [SWS_Dcm_01338]).
Valores de retorno e tratamento de erros
A função retorna Std_ReturnType como valor de status: O valor E_OK sinaliza um processamento bem-sucedido, enquanto E_NOT_OK indica um estado de erro ([SWS_Dcm_01338]). Se Xxx_RequestControl retornar um resultado diferente de E_OK, o módulo DCM reage com o código de resposta negativo NRC 0x22 (Conditions Not Correct) perante o testador de diagnóstico ([SWS_Dcm_01192]).
Simultaneidade e restrições
A função está especificada como não reentrante (Non Reentrant) e possui o Service ID 0x63 ([SWS_Dcm_01338]).
Nota da IA: Este texto foi gerado automaticamente com base na especificação AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I1)
função 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.
A função de callback Xxx_StartProtocol é disponibilizada por meio do cabeçalho Dcm_Externals.h e possibilita à aplicação, na primeira requisição de um protocolo de diagnóstico, verificar as condições ambientais atuais e liberar ou recusar o processamento posterior do protocolo [SWS_Dcm_01339].
Contexto de chamada e parâmetros
A chamada é realizada pelo submódulo DSL do DCM de forma síncrona e não reentrante para todas as funções configuradas [SWS_Dcm_00036], [SWS_Dcm_01339]. Os seguintes parâmetros de entrada são transmitidos à função [SWS_Dcm_01339]:
ProtocolType: Tipo do protocolo de diagnóstico a ser iniciado,TesterSourceAddress: Endereço de origem do testador solicitante,ConnectionId: Identificador unívoco da conexão.
Valores de retorno e tratamento de erros
Como valor de retorno, a função fornece Std_ReturnType com E_OK em caso de liberação bem-sucedida, E_NOT_OK em caso de verificação malsucedida ou E_PROTOCOL_NOT_ALLOWED se o protocolo for inadmissível [SWS_Dcm_01339]. Se pelo menos uma função Xxx_StartProtocol configurada não retornar E_OK, o DCM cancela o início do protocolo e responde com NRC 0x22 [SWS_Dcm_00674].
Inicialização após liberação bem-sucedida
Somente quando todos os callbacks Xxx_StartProtocol configurados tiverem retornado E_OK, o DCM executa as etapas adicionais de inicialização:
- Carregamento dos parâmetros de temporização padrão a partir da configuração da sessão padrão (Default Session) [SWS_Dcm_00144],
- Ativação da tabela de serviços [SWS_Dcm_00145],
- Redefinição do estado de segurança (Security State) [SWS_Dcm_00146],
- Redefinição do estado da sessão para a sessão de diagnóstico padrão, bem como execução da mudança de modo via
SchM_Switch_<bsnp>_DcmDiagnosticSessionControlparaRTE_MODE_DcmDiagnosticSessionControl_DEFAULT_SESSION[SWS_Dcm_00147].
Esta nota de uso foi gerada automaticamente com base nos requisitos de especificação do AUTOSAR R20-11.
Guia do implementador em breve (complexidade I2)
função 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.
A função de callback síncrona Xxx_StopProtocol informa a aplicação sobre o encerramento de um protocolo de diagnóstico ([SWS_Dcm_01340]). Ela é declarada por meio do arquivo de cabeçalho Dcm_Externals.h e é especificada como não reentrante (Non Reentrant) ([SWS_Dcm_01340]).
A chamada de todas as funções Xxx_StopProtocol configuradas (configuradas através do parâmetro DcmDslCallbackDCMRequestService) é disparada pelo submódulo DSL nos seguintes cenários de preempção:
- Uma solicitação de diagnóstico em andamento sofre preempção por uma solicitação de prioridade mais alta de outro protocolo ([SWS_Dcm_00459]).
- Uma solicitação com prioridade mais baixa ou igual substitui um protocolo de prioridade mais alta, desde que este esteja na Default Session e nenhuma solicitação ativa esteja na fase de execução ([SWS_Dcm_00625]).
Durante a chamada, são passados o tipo de protocolo (ProtocolType), o endereço de origem do testador (TesterSourceAddress), bem como o identificador da conexão (ConnectionId) ([SWS_Dcm_01340]). Como valor de retorno, a função fornece E_OK em caso de execução bem-sucedida ou E_NOT_OK ([SWS_Dcm_01340]). Se a função não retornar E_OK, o DCM responde com o código de resposta negativa NRC 0x22 ([SWS_Dcm_01190]).
Este texto foi gerado automaticamente e baseia-se exclusivamente nas especificações do AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I1)
função 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
A função síncrona e não reentrante Xxx_Indication é declarada através do cabeçalho Dcm_Externals.h [SWS_Dcm_01341]. Ela indica à aplicação a execução iminente de um serviço de diagnóstico e permite a ela rejeitar a execução da solicitação de serviço [SWS_Dcm_01341]. A chamada é efetuada sincronicamente pelo submódulo DSD em todas as portas ServiceRequestIndication configuradas, quando os contêineres de configuração DcmDsdServiceRequestManufacturerNotification [SWS_Dcm_00218] ou DcmDsdServiceRequestSupplierNotification [SWS_Dcm_00516] estiverem presentes.
Como parâmetros de entrada são passados o Service-ID (SID), os dados da solicitação sem SID (RequestData, DataSize), o tipo de endereçamento (ReqType), o ID de conexão (ConnectionId), o tipo de protocolo (ProtocolType) e o endereço de origem do tester (TesterSourceAddress) [SWS_Dcm_01341].
Através do valor de retorno do tipo Std_ReturnType, a aplicação controla a reação do submódulo DSD [SWS_Dcm_01341]:
E_OK: A solicitação foi bem-sucedida e continuará sendo processada regularmente [SWS_Dcm_01341].E_REQUEST_NOT_ACCEPTED: A solicitação não é aceita. Se pelo menos uma função de indicação chamada retornarE_REQUEST_NOT_ACCEPTED, o submódulo DSD suprime qualquer resposta ao tester [SWS_Dcm_00462], [SWS_Dcm_00517].E_NOT_OK: A solicitação não foi bem-sucedida. Neste caso, a aplicação escreve um código de resposta negativo no parâmetro de saídaErrorCode[SWS_Dcm_01341]. Desde que nenhuma chamada retorneE_REQUEST_NOT_ACCEPTED, o submódulo DSD envia uma resposta negativa com este NRC [SWS_Dcm_00463], [SWS_Dcm_00518].
Se, havendo várias notificações configuradas, múltiplas funções retornarem E_NOT_OK e nenhuma função retornar E_REQUEST_NOT_ACCEPTED, o submódulo DSD utiliza obrigatoriamente para a resposta negativa o ErrorCode da primeira função que responder com E_NOT_OK [SWS_Dcm_01321], [SWS_Dcm_01322].
Este texto foi gerado por uma IA com base na especificação AUTOSAR CP R20-11.
Guia do implementador em breve (complexidade I2)
função 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.
A função de callback Xxx_Confirmation serve para comunicar sincronicamente à aplicação a conclusão de uma transmissão de diagnóstico – seja o envio bem-sucedido ou um erro de transmissão ([SWS_Dcm_01342]). A declaração é disponibilizada através do cabeçalho Dcm_Externals.h ([SWS_Dcm_01342]).
Durante a chamada pelo submódulo DCM DSD (Diagnostic Service Dispatcher), são passados dados de contexto essenciais da solicitação de diagnóstico ([SWS_Dcm_01342], [SWS_Dcm_00741]):
SID: Identificador do serviço de diagnóstico ([SWS_Dcm_01342]).ReqType: Tipo de endereçamento (0para físico,1para funcional) ([SWS_Dcm_01342]).ConnectionId,ProtocolTypeeTesterSourceAddress: Atributos inequívocos de conexão e protocolo, bem como o endereço de origem do tester ([SWS_Dcm_01342]).ConfirmationStatus: Informação de status sobre o sucesso ou erro da transmissão ([SWS_Dcm_01342]).
Como valor de retorno, a operação fornece Std_ReturnType (E_OK em caso de processamento de confirmação bem-sucedido, caso contrário E_NOT_OK) ([SWS_Dcm_01342]). O DSD chama a função em todas as portas que utilizam a interface ServiceRequestNotification (configuradas através de DcmDsdServiceRequestManufacturerNotification ou DcmDsdServiceRequestSupplierNotification) ([SWS_Dcm_00741]).
Em relação à ordem de chamada, Xxx_Confirmation é executada regularmente logo após DspInternal_DcmConfirmation() ([SWS_Dcm_00742]). No entanto, se ocorrer o caso especial conforme [SWS_Dcm_01172], o DSD chama exclusivamente Xxx_Confirmation, enquanto a chamada interna é omitida.
Como Xxx_Confirmation está especificada como não reentrante (Non Reentrant) e síncrona ([SWS_Dcm_01342]), a implementação do lado da aplicação não deve conter processos bloqueantes nem disparar chamadas de retorno reentrantes para o DCM (interpretação). Pergunta Q-58ce3e44dc61540b (aberta)
Este texto foi criado por uma IA. Todas as informações baseiam-se exclusivamente no escopo de especificação AUTOSAR do release R20-11.
Guia do implementador em breve (complexidade I2)
função Xxx_ClearDTCCheckFnc [SWS_Dcm_01270] 📄 PDF
Std_ReturnType Xxx_ClearDTCCheckFnc (uint32 GoDTC, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function for condition check, manufacturer / supplier specific checks on the groupOf DTC, which is requested to clear.
usar
A função síncrona de callout Xxx_ClearDTCCheckFnc é disponibilizada para a aplicação por meio do arquivo de cabeçalho Dcm_Externals.h [SWS_Dcm_01270]. Ela serve para a verificação, específica do fabricante e do fornecedor, de condições antes da exclusão de um grupo solicitado de códigos de falha de diagnóstico (Group of DTC). Como parâmetro de entrada, é passado a ela o identificador GoDTC do tipo uint32, que especifica o grupo de códigos de falha a ser excluído [SWS_Dcm_01270].
Tratamento de erros e valores de retorno
A liberação da solicitação de exclusão ocorre por meio do valor de retorno do tipo Std_ReturnType em conjunto com o parâmetro de saída ErrorCode [SWS_Dcm_01270]:
E_OK: A aplicação permite a exclusão do grupo de códigos de falha solicitadoGoDTC[SWS_Dcm_01270].E_NOT_OK: A aplicação proíbe a exclusão do grupo. Nesse caso de erro, um código de resposta negativo deve ser definido através do parâmetro de saídaErrorCodedo tipoDcm_NegativeResponseCodeType*. Em seguida, o módulo DCM envia uma resposta negativa com o valor de NRC [SWS_Dcm_01270] especificado emErrorCode.
Simultaneidade e restrições
A função é provida com o Service ID 0x5f, opera de forma síncrona e está definida como não reentrante (Non Reentrant) [SWS_Dcm_01270]. O contexto de chamada deve, portanto, garantir que as chamadas ocorram sequencialmente e sem sobreposições concorrentes.
Esta nota de uso foi gerada por uma IA com base na especificação SWS_Dcm_01270 do AUTOSAR R20-11.
função 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.
A função de callout Xxx_ProcessRequestDownload ([SWS_Dcm_00754]) é chamada pelo módulo Dcm para iniciar um processo de download durante o processamento do serviço UDS RequestDownload. Ela é definida como assíncrona e não reentrante e é disponibilizada através do cabeçalho Dcm_Externals.h ([SWS_Dcm_00754]).
Utilização e parâmetros
A chamada ocorre gradualmente através do parâmetro OpStatus com os valores DCM_INITIAL, DCM_PENDING ou DCM_CANCEL ([SWS_Dcm_00754]). Como parâmetros de entrada são passados os métodos de compressão e criptografia (DataFormatIdentifier), o bloco de memória (MemoryIdentifier), o endereço inicial (MemoryAddress) e o tamanho da memória descompactada em bytes (MemorySize) ([SWS_Dcm_00754]). Antes da chamada, o Dcm escreve no parâmetro inout BlockLength com o tamanho máximo de buffer possível ([SWS_Dcm_01417]). A função ajusta esse valor para o comprimento de bloco máximo admissível para operações de escrita posteriores ([SWS_Dcm_00754]).
Valores de retorno e interação
A função retorna E_OK em caso de execução bem-sucedida, DCM_E_PENDING se o processamento ainda estiver em andamento, ou E_NOT_OK em caso de erro ([SWS_Dcm_00754]):
- Se a chamada retornar
E_OKe o valor negociadoBlockLengthfor menor ou igual ao comprimento de buffer suportado da conexão de protocolo atual, oDcmenvia uma resposta positiva com este valor comomaxNumberOfBlockLength([SWS_Dcm_01419]). - Se o comprimento de buffer retornado exceder o tamanho de buffer suportado da conexão de protocolo, o
Dcmreporta o erro DETDCM_E_INTERFACE_BUFFER_OVERFLOW([SWS_Dcm_01418]). - Em caso de retorno de
E_NOT_OK, oDcmenvia uma resposta UDS negativa (NRC) com o valor definido no parâmetro de saídaErrorCode([SWS_Dcm_00754], [SWS_Dcm_00757]).
Esta nota de utilização foi gerada automaticamente e serve como auxílio para a especificação AUTOSAR.
Guia do implementador em breve (complexidade I2)
função 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.
A função de callout Xxx_ProcessRequestTransferExit é chamada pelo módulo DCM para encerrar um processo de download ou upload em andamento no âmbito do serviço UDS RequestTransferExit [SWS_Dcm_00755]. A declaração da interface é disponibilizada por meio do cabeçalho Dcm_Externals.h [SWS_Dcm_00755].
Utilização e semântica
A função opera de forma assíncrona e é definida como não reentrante [SWS_Dcm_00755]. A chamada ocorre com a transmissão do status de execução atual OpStatus (valores possíveis: DCM_INITIAL, DCM_PENDING ou DCM_CANCEL) [SWS_Dcm_00755]. Como valores de retorno do tipo Std_ReturnType, estão especificados:
E_OK: a transferência foi encerrada com sucesso [SWS_Dcm_00755].DCM_E_PENDING: o encerramento da transferência ainda não foi concluído e requer chamadas subsequentes [SWS_Dcm_00755].E_NOT_OK: o encerramento falhou ou o buffer de resposta é muito pequeno [SWS_Dcm_00755].
Tratamento de erros e interação
Se a operação Xxx_ProcessRequestTransferExit retornar o valor de erro E_NOT_OK, deve ser passado um código de resposta negativo por meio do parâmetro de saída ErrorCode. O módulo DCM envia em seguida uma resposta UDS negativa (NRC) com exatamente esse código de erro para o testador de diagnóstico [SWS_Dcm_00759]. Em caso de uma chamada de cancelamento, o módulo DCM passa o status DCM_CANCEL para a função [SWS_Dcm_00755].
Este texto foi criado automaticamente. Todas as informações baseiam-se exclusivamente na especificação AUTOSAR.
Guia do implementador em breve (complexidade I2)
função 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.
A função de callout Xxx_ProcessRequestUpload é chamada pelo módulo DCM para iniciar o serviço UDS RequestUpload ([SWS_Dcm_00756]). Ela é disponibilizada por meio de Dcm_Externals.h e é especificada como não reentrante, bem como assíncrona ([SWS_Dcm_00756]). Por meio do parâmetro OpStatus (com os estados DCM_INITIAL, DCM_PENDING, DCM_CANCEL ou DCM_FORCE_RCRRP_OK), o DCM controla o fluxo da operação ([SWS_Dcm_00756]).
Durante a chamada, o DCM passa, entre outros, o método de compressão e criptografia (DataFormatIdentifier), o bloco de memória (MemoryIdentifier), o endereço inicial (MemoryAddress), bem como o tamanho de memória descompactado em bytes (MemorySize) ([SWS_Dcm_00756]). O parâmetro In/Out BlockLength define o número máximo de bytes para uma chamada subsequente de Dcm_ReadMemory; antes da chamada, o DCM escreve o tamanho máximo possível de buffer neste parâmetro ([SWS_Dcm_00756], [SWS_Dcm_01420]).
Como valores de retorno de Xxx_ProcessRequestUpload, estão definidos E_OK em caso de solicitação bem-sucedida, E_NOT_OK em caso de erros e DCM_E_PENDING em caso de processamento ainda não concluído ([SWS_Dcm_00756]):
- Se a função retornar
E_NOT_OK, o módulo DCM envia uma resposta UDS negativa com o valor de NRC definido no parâmetro de saídaErrorCode([SWS_Dcm_00756], [SWS_Dcm_00758]). - Se a função retornar um valor de buffer solicitado em
BlockLengthque seja menor ou igual ao comprimento de buffer suportado da conexão de protocolo atual, o DCM utiliza esse valor comomaxNumberOfBlockLengthna resposta positiva ([SWS_Dcm_01422]). - Se, por outro lado, o comprimento de buffer retornado for maior do que o comprimento de buffer suportado pela conexão de protocolo, o DCM reporta o erro DET
DCM_E_INTERFACE_BUFFER_OVERFLOW([SWS_Dcm_01421]).
Este texto foi gerado por uma IA. Baseia-se exclusivamente nas especificações do payload AUTOSAR fornecido.
Guia do implementador em breve (complexidade I2)
função 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
A função callout Xxx_ProcessTransferDataRead destina-se à leitura assíncrona de dados de memória da unidade de comando com base no endereço inicial (MemoryAddress) e no comprimento (MemorySize) de acordo com [SWS_Dcm_91070]. Ela é disponibilizada através do header Dcm_Externals.h e suporta os serviços UDS ReadMemoryByAddress, RequestUpload, TransferData, bem como ReadDataByIdentifier no caso de DIDs definidos dinamicamente através de endereços de memória [SWS_Dcm_91070].
A chamada é realizada de forma não reentrante (Non Reentrant) e é controlada através do parâmetro OpStatus ([SWS_Dcm_91070]):
DCM_INITIAL: Inicia a operação de leitura.DCM_PENDING: Continua um processo de leitura ainda não concluído.DCM_CANCEL: Cancela a operação em andamento.DCM_FORCE_RCRRP_OK: Confirma a transmissão de uma resposta pendente.
Para o endereçamento, é possível selecionar um bloco ou área de memória através de MemoryIdentifier; se este parâmetro não for utilizado, ele deve ser obrigatoriamente definido como 0 [SWS_Dcm_91070]. Os dados lidos são retornados através do parâmetro de saída MemoryData, que aponta diretamente para o buffer de diagnóstico do DCM [SWS_Dcm_91070].
Como valores de retorno, estão definidos DCM_READ_OK em caso de sucesso, DCM_READ_PENDING se a leitura ainda estiver em andamento, bem como DCM_READ_FORCE_RCRRP se a operação estiver pendente e uma mensagem de resposta pendente (Response Pending) deva ser enviada imediatamente [SWS_Dcm_91070]. Se a leitura falhar, a função fornece DCM_READ_FAILED; neste caso, deve ser passado através do ponteiro ErrorCode um código de resposta negativa (NRC), o qual o DCM transmite em uma resposta negativa [SWS_Dcm_91070]. (Interpretação: A nota de especificação relativa a ErrorCode menciona Dcm_ReadMemory, mas deve referir-se aqui, em termos de sentido, à falha deste callout.) Pergunta Q-fe76e2599624baf7 (aberta)
Esta nota de uso baseia-se na especificação AUTOSAR CP R20-11 e foi criada de forma automatizada.
Guia do implementador em breve (complexidade I2)
função 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
Utilização e semântica
O callout assíncrono Xxx_ProcessTransferDataWrite (Service-ID 0x27) está disponível através de Dcm_Externals.h e é chamado pelo módulo DCM para escrever dados de memória para os serviços UDS WriteMemoryByAddress, RequestDownload e TransferData [SWS_Dcm_91071]. O fluxo do processo de escrita é controlado através do parâmetro OpStatus com os valores DCM_INITIAL, DCM_PENDING, DCM_CANCEL ou DCM_FORCE_RCRRP_OK [SWS_Dcm_91071].
Parâmetros e valores de retorno
A função processa os seguintes parâmetros [SWS_Dcm_91071]:
MemoryIdentifier: Identificador do bloco de memória; se este parâmetro não for utilizado, deve ser definido como 0 [SWS_Dcm_91071].MemoryAddress: Endereço inicial da memória do servidor para a qual os dados são copiados; em caso de não utilização (por exemplo, no caso de dados comprimidos), deve ser passado o valor 0 [SWS_Dcm_91071].MemorySize: Número de bytes a serem escritos emMemoryData[SWS_Dcm_91071].MemoryData: Ponteiro para os dados a serem escritos no buffer de diagnóstico do DCM [SWS_Dcm_91071].ErrorCode: Parâmetro de saída para o código de resposta negativa (NRC) em caso de erro [SWS_Dcm_91071].
O valor de retorno do tipo Dcm_ReturnWriteMemoryType sinaliza o resultado da operação [SWS_Dcm_91071]:
DCM_WRITE_OK: Operação de escrita concluída com sucesso [SWS_Dcm_91071].DCM_WRITE_PENDING: O processo de escrita ainda não está concluído [SWS_Dcm_91071].DCM_WRITE_FORCE_RCRRP: O processo de escrita ainda está pendente; a transmissão da resposta pendente (Response Pending) inicia-se imediatamente [SWS_Dcm_91071].DCM_WRITE_FAILED: A operação de escrita falhou [SWS_Dcm_91071].
Tratamento de erros e simultaneidade
Se o callout retornar o valor DCM_WRITE_FAILED, o módulo DCM envia uma resposta negativa com o valor NRC passado no parâmetro ErrorCode [SWS_Dcm_91071]. O callout é especificado como não reentrante (Non Reentrant) e, portanto, não pode ser executado concorrentemente [SWS_Dcm_91071].
Esta nota de uso foi criada de forma automatizada com base na especificação AUTOSAR.
Guia do implementador em breve (complexidade I2)
tipo Dcm_StatusType [SWS_Dcm_00976] 📄 PDF
Base item type to transport status information.
O tipo Dcm_StatusType serve como tipo básico de status e retorno para a transmissão de informações de status dentro do módulo Dcm e é disponibilizado por meio do arquivo de cabeçalho Dcm.h [SWS_Dcm_00976]. Ele baseia-se no tipo padrão uint8 e define valores de status padronizados para retornos de interfaces específicas do DCM [SWS_Dcm_00976].
Valores de status definidos e tratamento de erros
A especificação define para Dcm_StatusType os seguintes códigos de status e de erro [SWS_Dcm_00976]:
DCM_E_OK(0x00): indica que a operação solicitada foi executada ou aceita com sucesso [SWS_Dcm_00976].DCM_E_ROE_NOT_ACCEPTED(0x06): indica que uma solicitação ResponseOnOneEvent foi rejeitada pelo DCM, por exemplo, porque um processo anterior de ResponseOnOneEvent ainda não foi concluído; o valor é utilizado na interfaceDcm_ResponseOnOneEvent()[SWS_Dcm_00976].DCM_E_PERIODICID_NOT_ACCEPTED(0x07): sinaliza que uma solicitação de transmissão periódica não foi aceita pelo DCM, por exemplo, porque uma transmissão periódica em andamento ainda não foi finalizada; este status é utilizado na interfaceDcm_ResponseOnOneDataByPeriodicId()[SWS_Dcm_00976].
Restrições e condições de chamada
Os chamadores das interfaces mencionadas devem avaliar o valor de retorno do tipo Dcm_StatusType para determinar se novas solicitações podem ser aceitas imediatamente ou se foram descartadas devido a transmissões ainda em andamento [SWS_Dcm_00976]. Uma solicitação repetida provavelmente só terá perspectiva de sucesso assim que os processos anteriores de eventos ou de envio estiverem completamente concluídos [SWS_Dcm_00976]. Pergunta Q-901ec7e3aac8901c (aberta)
Este texto foi criado por uma IA e baseia-se na especificação AUTOSAR.
Guia do implementador em breve (complexidade I1)
tipo Dcm_CommunicationModeType [SWS_Dcm_00981] 📄 PDF
Manager
O tipo de dados Dcm_CommunicationModeType é um tipo enumerado declarado em Dcm.h com base em uint8 ([SWS_Dcm_00981]). Ele define os modos de comunicação para o controle seletivo dos caminhos de transmissão (Tx) e recepção (Rx). O intervalo de valores compreende os valores de 0x00 a 0x0B para dados normais de aplicação (NORM), o gerenciamento de rede (NM), bem como ambos os ramos de comunicação combinados (NORM_NM) ([SWS_Dcm_00981]).
O tipo é utilizado como parâmetro em chamadas da interface BSW BswM_Dcm_CommunicationMode_CurrentState. Por meio dela, o DCM encaminha o modo atual para o BSW Mode Manager após a confirmação de envio (Sent Confirmation) de uma requisição de serviço UDS CommunicationControl (Service 0x28) ([SWS_Dcm_00512], [SWS_Dcm_00785]). O valor concreto do modo corresponde aos parâmetros communicationType e controlType da requisição de diagnóstico recebida ([SWS_Dcm_00512]).
A interação e as redes afetadas dependem do parâmetro de sub-rede da requisição UDS:
- Na sub-rede
0x00, a atualização é realizada para todos os canais de rede configurados emDcmDspComControlAllChannel([SWS_Dcm_00512]). - Na sub-rede
0x0F, é reportado o modo de comunicação do canal atual de recepção de diagnóstico ([SWS_Dcm_00785]). - Em sub-redes de
0x01a0x0E, o suporte é verificado; sub-redes não suportadas são rejeitadas com o código de resposta negativo 0x31 ([SWS_Dcm_00786]). - Em subfunções com endereçamento estendido (como
enableRxAndDisableTxWithEnhancedAddressInformationouenableRxAndTxWithEnhancedAddressInformation), a chamada é realizada para o canal referenciado pelo Sub-Node-ID ([SWS_Dcm_01077], [SWS_Dcm_01079]).
Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I2)
tipo Dcm_ConfigType [SWS_Dcm_00982] 📄 PDF
This type defines a data structure for the post build parameters of the DCM . At initialization the DCM gets a pointer to a structure of this type to get access to its configuration data, which is necessary for initialization.
tipo Dcm_ReturnReadMemoryType [SWS_Dcm_00985] 📄 PDF
Return values of Callout Dcm_ReadMemory
tipo Dcm_ReturnWriteMemoryType [SWS_Dcm_00986] 📄 PDF
Return type of callout Dcm_WriteMemory
tipo Dcm_EcuStartModeType [SWS_Dcm_00987] 📄 PDF
Allows the DCM to know if a diagnostic response shall be sent in the case of a jump from bootloader
O tipo de dados Dcm_EcuStartModeType é derivado de uint8 e é disponibilizado através do cabeçalho Dcm.h [SWS_Dcm_00987]. Ele serve ao Diagnostic Communication Manager (DCM) para determinar o modo de inicialização e sinaliza se uma resposta de diagnóstico deve ser transmitida após uma transição a partir do bootloader [SWS_Dcm_00987].
A faixa de valores compreende dois estados definidos [SWS_Dcm_00987]:
DCM_COLD_START(0x00): A unidade de controle inicia regularmente em operação normal [SWS_Dcm_00987].DCM_WARM_START(0x01): A unidade de controle inicia em decorrência de um salto a partir do bootloader [SWS_Dcm_00987].
Na interação entre as interfaces, Dcm_EcuStartModeType atua como valor de retorno síncrono do callout Dcm_GetProgConditions, o qual está disponível através de Dcm_Externals.h [SWS_Dcm_00544]. Essa função é chamada durante a inicialização do DCM para determinar se uma resposta positiva ($50 ou $51) precisa ser enviada [SWS_Dcm_00544]. As condições de contorno detalhadas do salto a partir do bootloader são transmitidas ao DCM por meio do parâmetro de saída ProgConditions [SWS_Dcm_00544].
Quanto à execução e tratamento de erros, o callout consultador é definido como síncrono e não reentrante [SWS_Dcm_00544]. Códigos de erro específicos ou notificações diretas para DET ou DEM não estão definidos para este tipo de dados.
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade 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.
A estrutura Dcm_ProgConditionsType serve para o intercâmbio de dados de estado e contexto entre a aplicação e o bootloader durante sequências de programação ou um reset da ECU [SWS_Dcm_00988]. Ela agrupa informações de conexão como ConnectionId e TesterAddress, identificadores de diagnóstico como Sid e SubFncId, bem como flags de controle como ReprogramingRequest, ApplUpdated e ResponseRequired [SWS_Dcm_00988].
A utilização ocorre através de duas interfaces centrais:
- Antes do salto para o bootloader ou durante um reset, o DCM passa a estrutura para a função assíncrona e não reentrante
Dcm_SetProgConditions()[SWS_Dcm_00543]. Valores de retorno possíveis sãoE_OK,E_NOT_OK,DCM_E_PENDINGbem comoDCM_E_FORCE_RCRRPmediante solicitação de uma mensagem Response-Pending (NRC 0x78) [SWS_Dcm_00543]. - Após a reinicialização, o DCM chama, durante sua inicialização, o callout síncrono e não reentrante
Dcm_GetProgConditions()para ler as condições salvas e determinar oDcm_EcuStartModeType[SWS_Dcm_00544]. O armazenamento desses dados pelo integrador deve ocorrer tipicamente através de RAM resistente a reset ou memória não volátil (interpretação). Pergunta Q-026bc7bc93f5502c (aberta)
Na interação adicional do sistema, o DCM avalia a estrutura: assim que o ComM reporta a capacidade total de comunicação, o DCM envia a resposta de diagnóstico pendente para o identificador de serviço armazenado em Sid [SWS_Dcm_00767]. Se ApplUpdated == True sinalizar uma atualização concluída via flash download após um salto para o bootloader, o DCM notifica o BswM através de BswM_Dcm_ApplicationUpdated() [SWS_Dcm_00768].
Esta nota de utilização foi gerada automaticamente e baseia-se exclusivamente nas especificações da versão AUTOSAR R20-11.
Guia do implementador em breve (complexidade I1)
tipo Dcm_MsgItemType [SWS_Dcm_00989] 📄 PDF
Base type for diagnostic message item
tipo Dcm_MsgType [SWS_Dcm_00990] 📄 PDF
Base type for diagnostic message (request, positive or negative response)
Utilização e definição de tipo
O tipo de dados Dcm_MsgType é o tipo de ponteiro central para mensagens de diagnóstico no Diagnostic Communication Manager e está disponível por meio do cabeçalho Dcm.h [SWS_Dcm_00990]. Ele é declarado como ponteiro para Dcm_MsgItemType* e serve como base comum para a referenciação de requisições, bem como de mensagens de resposta positivas e negativas [SWS_Dcm_00990]. Interpretação: Como o tipo base Dcm_MsgItemType não é detalhado na especificação, ele provavelmente deve representar um byte de dados individual (como uint8), por meio do qual o buffer de mensagens linear é acessado sequencialmente. Pergunta Q-2b6f46b51d3cb8e0 (aberta)
Interação e contexto estrutural
O uso primário de Dcm_MsgType ocorre dentro da estrutura de contexto Dcm_MsgContextType [SWS_Dcm_00994]. Nela, o tipo referencia duas áreas de dados separadas:
reqData: Aponta para os dados úteis da requisição de diagnóstico, iniciando imediatamente após o Service Identifier (SID), o qual não faz parte desses dados [SWS_Dcm_00994].resData: Aponta para os dados de uma resposta positiva e inicia igualmente logo após o Service Identifier [SWS_Dcm_00994].
Limites de buffer e restrições
Ao processar e preencher os buffers de resposta endereçados por meio de Dcm_MsgType, os usuários devem cumprir rigorosamente os respectivos limites de buffer [SWS_Dcm_00994]. O comprimento efetivo da resposta resDataLen não deve, sob hipótese alguma, exceder a capacidade do buffer definida por resMaxDataLen, uma vez que o tamanho máximo de resposta é estritamente restrito pela alocação do buffer atribuído [SWS_Dcm_00994].
Este texto foi gerado por uma IA com base na especificação 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.
O tipo de dados Dcm_MsgLenType está disponível por meio do cabeçalho Dcm.h e é derivado do tipo base uint32 [SWS_Dcm_00991]. Ele é utilizado no Diagnostic Communication Manager (DCM) para descrever o comprimento de mensagens de diagnóstico. Isso abrange tanto requisições de diagnóstico (Requests) quanto mensagens de resposta (Responses) positivas e negativas [SWS_Dcm_00991].
Em relação aos limites do intervalo de valores, a especificação estabelece que o comprimento máximo transmissível de uma mensagem de diagnóstico depende do respectivo protocolo de transporte subjacente ou meio de transmissão [SWS_Dcm_00991]. Interpretação: Embora o tipo de dados subjacente uint32 possa representar, do lado do software, comprimentos de mensagem de até 4 GiB, na prática o comprimento máximo real provavelmente estará sempre limitado pelo meio de comunicação e pelos tamanhos de buffer. Pergunta Q-ac43639ecb32605d (aberta)
Dcm_MsgLenType desempenha um papel central na estrutura Dcm_MsgContextType, que encapsula o contexto de uma solicitação de diagnóstico [SWS_Dcm_00994]. Dentro dessa estrutura, ele tipifica várias indicações de comprimento fundamentais:
reqDataLen: Representa o comprimento dos dados de requisição (Request Data). A contagem inicia imediatamente após o identificador de serviço, de modo que este não é incluído na indicação de comprimento [SWS_Dcm_00994].resDataLen: Indica o comprimento dos dados de resposta positiva, também excluindo o identificador de serviço [SWS_Dcm_00994].resMaxDataLen: Especifica o comprimento máximo possível de uma resposta, o qual é limitado pelo tamanho do buffer alocado [SWS_Dcm_00994].
Ao implementar manipuladores de serviço, deve-se atentar rigorosamente para que os cálculos de comprimento para reqDataLen e resDataLen sejam sempre efetuados sem o identificador de serviço e que os dados de resposta não excedam o limite de buffer predeterminado por resMaxDataLen [SWS_Dcm_00994].
Esta nota de uso foi gerada por uma IA com base na especificação AUTOSAR CP R20-11.
tipo Dcm_MsgAddInfoType [SWS_Dcm_00992] 📄 PDF
Additional information on message request. Datastructure: Bitfield
O tipo de dados Dcm_MsgAddInfoType é definido como uma estrutura de campo de bits de acordo com [SWS_Dcm_00992] e serve para fornecer informações complementares de status e controle para uma mensagem de diagnóstico. No AUTOSAR clássico, o tipo é disponibilizado por meio do arquivo de cabeçalho Dcm.h e é empregado como elemento msgAddInfo dentro da estrutura de contexto de nível superior Dcm_MsgContextType ([SWS_Dcm_00994]) para agrupar de forma consistente informações adicionais sobre requisições de serviço e as respostas correspondentes.
De acordo com [SWS_Dcm_00992], a estrutura de campo de bits especifica flags de controle individuais com posições de bit precisamente definidas:
reqType(posição LSB+0): Identifica o tipo de endereçamento da requisição de diagnóstico. Um valor0sinaliza uma requisição física (physical request), enquanto um valor1indica uma requisição funcional (functional request).suppressPosResponse(posição LSB+1): Determina o comportamento em relação a respostas positivas. Com0, a resposta positiva não é suprimida (do not suppress), ao passo que um valor1estipula que nenhuma resposta positiva pode ser enviada (no positive response will be sent).
Como Dcm_MsgAddInfoType representa uma estrutura puramente de dados para passagem de parâmetros e contexto, não existem para este tipo em si semânticas de chamada síncrona ou assíncrona, valores de retorno, diretrizes de reentrância ou mensagens de erro próprias para DET ou DEM. A avaliação concreta e a consideração dos bits definidos no fluxo subsequente cabem presumivelmente às rotinas internas de processamento do Diagnostic Communication Manager quando estas acessam o contexto da mensagem de [SWS_Dcm_00994]. Pergunta Q-b27248cc452ba1b1 (aberta)
Este texto foi gerado por uma IA e serve como guia de orientação no ambiente 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.
A estrutura de dados Dcm_MsgContextType fornece todas as informações necessárias para controlar uma requisição de diagnóstico, desde o processamento e a resposta até a confirmação [SWS_Dcm_00994]. Ela é passada como parâmetro de entrada/saída pMsgContext para rotinas de serviço assíncronas e reentrantes [SWS_Dcm_00763], [SWS_Dcm_00764]. Nesse processo, os ponteiros de dados úteis reqData e resData apontam sempre imediatamente após o identificador de serviço (SID), e as indicações de comprimento reqDataLen bem como resDataLen não incluem o SID [SWS_Dcm_00994]. O submódulo DSD reinsere o SID de resposta na primeira posição ao copiar para o buffer de transmissão [SWS_Dcm_00223], [SWS_Dcm_00224].
Ao utilizar, devem ser observados os seguintes aspectos:
- Comprimento da resposta e caso de erro: Se o comprimento da resposta gerada exceder o limite do buffer definido através do campo dependente do protocolo
resMaxDataLene forDcmPagedBufferEnabled == FALSE, o DCM responde com o código de resposta negativo 0x14 (DCM_E_RESPONSETOOLONG) [SWS_Dcm_01059]. Se o processamento no manipulador de serviço falhar, a aplicação retornaE_NOT_OKcom um código de erro [SWS_Dcm_00763]. - Informações adicionais e supressão de resposta: Através de
msgAddInfoé transportado, entre outros, osuppressPosRspMsgIndicationBit; se este estiver definido, o DSD suprime respostas positivas [SWS_Dcm_00202], [SWS_Dcm_00231]. - Tempo de vida e associação de contexto: Ao atingir a confirmação, a estrutura perde sua validade e todos os dados da mensagem são perdidos [SWS_Dcm_00994]. As aplicações devem salvar o identificador
idContextjá no início da requisição, a fim de associar uma confirmação posterior à requisição original [SWS_Dcm_00994]. - Relação com o protocolo: O campo
dcmRxPduIdidentifica a PDU de recepção e permite um tratamento diferenciado dependendo do protocolo de diagnóstico, por exemplo, entre OBD e diagnóstico estendido [SWS_Dcm_00994].
Interpretação: Como o contexto se torna inválido na confirmação, o buffer de memória subjacente deve ser liberado ou sobrescrito pela DSL imediatamente após o envio da resposta para comunicações subsequentes. Pergunta Q-88e3cf2f3d8f6076 (aberta)
Este texto foi gerado por uma IA com base na especificação AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I2)
tipo Dcm_ExtendedOpStatusType [SWS_Dcm_91015] 📄 PDF
O tipo Dcm_ExtendedOpStatusType é baseado em uint8 e é disponibilizado através do arquivo de cabeçalho Dcm.h [SWS_Dcm_91015]. Ele controla, como parâmetro de entrada OpStatus, as fases de execução e as confirmações em funções assíncronas de diagnóstico e de subserviço como <Module>_<DiagnosticService> [SWS_Dcm_00763], bem como <Module>_<DiagnosticService>_<SubService> [SWS_Dcm_00764].
Os valores de estado definidos sinalizam o progresso da operação e os retornos do DCM [SWS_Dcm_91015]:
DCM_INITIAL(0x00): Primeira chamada da operação.DCM_PENDING(0x01): Chamada subsequente após um estado intermediário (Pending) reportado na chamada anterior.DCM_CANCEL(0x02): Solicitação pelo DCM para cancelar a operação em andamento.DCM_FORCE_RCRRP_OK(0x03): Confirmação da transmissão de uma resposta pendente (Response Pending).DCM_POS_RESPONSE_SENT(0x04) eDCM_POS_RESPONSE_FAILED(0x05): Confirmação sobre o envio bem-sucedido ou com falha de uma resposta positiva.DCM_NEG_RESPONSE_SENT(0x06) eDCM_NEG_RESPONSE_FAILED(0x07): Confirmação sobre o envio bem-sucedido ou com falha de uma resposta negativa.
No que diz respeito à concorrência, as interfaces de diagnóstico chamadas são especificadas como reentrantes e assíncronas [SWS_Dcm_00763] [SWS_Dcm_00764]. Em caso de erros, a função de serviço fornece o valor de retorno E_NOT_OK e atribui ao parâmetro de saída ErrorCode um código de resposta negativa (NRC), momento em que o módulo DCM envia uma resposta negativa com esse código [SWS_Dcm_00763] [SWS_Dcm_00764].
Este texto foi gerado por uma IA com base na especificação.
Guia do implementador em breve (complexidade I2)
tipo Dcm_OpStatusType [SWS_Dcm_00984] 📄 PDF
O tipo Dcm_OpStatusType baseia-se em uint8 e é disponibilizado por meio do arquivo de cabeçalho Rte_Dcm_Type.h [SWS_Dcm_00984]. Ele controla o estado de execução e de ciclo de vida de operações diagnósticas assíncronas do Diagnostic Communication Manager (DCM), tais como Dcm_ReadMemory [SWS_Dcm_00539], Dcm_WriteMemory [SWS_Dcm_00540] ou Dcm_SetProgConditions [SWS_Dcm_00543].
Para o controle do fluxo da operação, estão definidos quatro valores de status [SWS_Dcm_00984]:
DCM_INITIAL(0x00): Caracteriza a primeira chamada de uma operação pelo DCM [SWS_Dcm_00527].DCM_PENDING(0x01): Sinaliza uma chamada subsequente após o retorno prévio de um estado pendente [SWS_Dcm_00984]. Se uma operação retornar o valor de erroDCM_E_PENDING, o DCM chamará essa operação novamente comOpStatus = DCM_PENDINGem cada ciclo subsequente deDcm_MainFunction, até que o processamento seja concluído [SWS_Dcm_00530].DCM_CANCEL(0x02): Solicita explicitamente à entidade chamada o cancelamento de uma operação assíncrona ainda pendente [SWS_Dcm_00984].DCM_FORCE_RCRRP_OK(0x03): Confirma a transmissão realizada de uma mensagem de Response-Pending (NRC 0x78) [SWS_Dcm_00984]. Se a operação responder comDCM_E_FORCE_RCRRP, o DCM inicia o envio de RCR-RP e interrompe novas chamadas da operação até que o envio seja concluído [SWS_Dcm_00528].
Em relação à concorrência e condições de contorno, as operações que recebem Dcm_OpStatusType como parâmetro de passagem são projetadas de forma assíncrona e especificadas como não reentrantes [SWS_Dcm_00539] [SWS_Dcm_00754].
Este texto foi gerado por uma IA e serve como guia de orientação para a especificação.
Guia do implementador em breve (complexidade I2)
tipo Dcm_ConfirmationStatusType [SWS_Dcm_00983] 📄 PDF
Utilização e gama de valores
O tipo de dados Dcm_ConfirmationStatusType é um tipo enumerado derivado de uint8, disponibilizado por meio do arquivo de cabeçalho Rte_Dcm_Type.h [SWS_Dcm_00983]. Ele é empregado para reportar o status de uma resposta de diagnóstico enviada – tanto em transmissões bem-sucedidas quanto em erros de transmissão – à aplicação ou a manipuladores internos de serviço [SWS_Dcm_01342]. O intervalo de valores compreende quatro estados discretos [SWS_Dcm_00983]:
DCM_RES_POS_OK(0x00): Interpretação: A resposta de diagnóstico positiva foi transmitida com sucesso. Pergunta (aberta)DCM_RES_POS_NOT_OK(0x01): Interpretação: Ocorreu um erro durante a transmissão da resposta de diagnóstico positiva. Pergunta (aberta)DCM_RES_NEG_OK(0x02): Interpretação: A resposta de diagnóstico negativa (NRC) foi transmitida com sucesso. Pergunta (aberta)DCM_RES_NEG_NOT_OK(0x03): Interpretação: Ocorreu um erro durante a transmissão da resposta de diagnóstico negativa. Pergunta (aberta)
Interação e interfaces
O status de confirmação é passado como parâmetro de entrada (IN) em funções de callback síncronas. Na interface de confirmação genérica Xxx_Confirmation, o parâmetro é transmitido juntamente com o identificador de serviço (SID), o tipo de endereçamento (ReqType), o ID de conexão (ConnectionId), o tipo de protocolo e o endereço de origem do testador [SWS_Dcm_01342]. Da mesma forma, a interface ServiceRequestNotification integra esse status por meio da operação Confirmation [SWS_Dcm_00694].
Na execução de serviços de rotina, o tipo é utilizado especificamente para reportar o status de transmissão após a conclusão de operações de rotina individuais. Para essa finalidade, são utilizados os callbacks declarados em Dcm_Externals.h: Xxx_StartConfirmation [SWS_Dcm_91016], Xxx_StopConfirmation [SWS_Dcm_91017] e Xxx_RequestResultsConfirmation [SWS_Dcm_91018].
Simultaneidade e execução
As funções de confirmação retornam um Std_ReturnType (por exemplo, E_OK ou E_NOT_OK) [SWS_Dcm_01342], [SWS_Dcm_91016]. Todas as chamadas de interface mencionadas são executadas de forma síncrona e declaradas como não reentrantes (Non Reentrant) [SWS_Dcm_01342], [SWS_Dcm_91016], [SWS_Dcm_91017], [SWS_Dcm_91018].
Esta nota de uso foi gerada automaticamente com base na especificação AUTOSAR CP R20-11.
Guia do implementador em breve (complexidade I2)
tipo Dcm_SecLevelType [SWS_Dcm_00977] 📄 PDF
Security Level type definition
tipo Dcm_SesCtrlType [SWS_Dcm_00978] 📄 PDF
Session type definition. 0, 127 and all values above 127 are reserved by ISO.
tipo Dcm_ProtocolType [SWS_Dcm_00979] 📄 PDF
Type Dcm_ProtocolType.
tipo Dcm_NegativeResponseCodeType [SWS_Dcm_00980] 📄 PDF
Type Dcm_NegativeResponseCodeType.
tipo Dcm_DataArrayType [SWS_Dcm_01121] 📄 PDF
tipo Dcm_InfoType [SWS_Dcm_01013] 📄 PDF
tipo Dcm_RequestDataArrayType [SWS_Dcm_01165] 📄 PDF
tipo Dcm_InputOutputControlParameterType [SWS_Dcm_01305] 📄 PDF
tipo Dcm_IOOperationResponseType [SWS_Dcm_01307] 📄 PDF
tipo Dcm_DidSupportedType [SWS_Dcm_01138] 📄 PDF
tipo Dcm_FileAndDirNameType [SWS_Dcm_91066] 📄 PDF
tipo Dcm_ResponseDataArrayType [SWS_Dcm_91064] 📄 PDF
tipo Dcm_AuthenticationRoleType [SWS_Dcm_91068] 📄 PDF
O tipo de dados Dcm_AuthenticationRoleType está especificado como array de bytes (uint8), cujo tamanho é determinado pelo parâmetro de configuração DcmDspAuthenticationRoleSize [SWS_Dcm_91068]. É disponibilizado através do ficheiro de cabeçalho Rte_Dcm_Type.h e serve, no módulo DCM, para a representação formal de papéis de autenticação [SWS_Dcm_91068].
Na aplicação prática, o tipo serve como parâmetro de entrada para definir papéis para ligações de diagnóstico não autenticadas:
- Utilização e semântica: O tipo é passado como parâmetro de entrada
deauthenticatedRolena função CDcm_SetDeauthenticatedRole(disponível através deDcm.h) [SWS_Dcm_91069] bem como na operaçãoSetDeauthenticatedRoleda interface de serviçoAuthentication[SWS_Dcm_91072]. Deste modo, é atribuído de forma síncrona um papel desautenticado a uma ligação, identificada através doconnectionId[SWS_Dcm_91069]. - Concorrência e validade: A API C
Dcm_SetDeauthenticatedRoleestá especificada como reentrante [SWS_Dcm_91069]. Um papel atribuído permanece ativo para a respetiva ligação até que esta mude para o estado autenticado ou a unidade de comando seja reiniciada [SWS_Dcm_91069], [SWS_Dcm_91072]. - Tratamento de erros: Não existem códigos de erro específicos para o tipo e as operações associadas; por padrão, a função retorna sempre
E_OK[SWS_Dcm_91069], [SWS_Dcm_91072].
Este texto foi gerado por uma IA com base na especificação.
Guia do implementador em breve (complexidade I1)
tipo DiagnosticSessionControlModeSwitchInterface [SWS_Dcm_91033] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Diagnostic Session
usar
O elemento de interface DiagnosticSessionControlModeSwitchInterface é declarado conforme [SWS_Dcm_91033] como uma porta fornecida (PPortPrototype ou ProvidedPort) do módulo DCM e utiliza a interface Dcm_DiagnosticSessionControlModeSwitchInterface. Conforme a especificação em [SWS_Dcm_91033], essa porta serve para notificar componentes de software (SW-Cs) sobre a troca e o estado atual da sessão de diagnóstico ativa (Diagnostic Session).
Interpretação: O módulo DCM assume aqui presumivelmente o papel do emissor, que encaminha alterações de estado da sessão de diagnóstico através da RTE para componentes de software interessados. Pergunta Q-6af0e97b6910087d (aberta) As SW-Cs conectadas devem receber e processar essas mudanças de modo por meio de eventos de mudança de modo configurados, a fim de adaptar sequências internas, liberações ou seu comportamento funcional à respectiva sessão de diagnóstico ativa.
Tratamento de erros e condições de contorno
Para esta porta, não estão definidos em [SWS_Dcm_91033] códigos de erro específicos, valores de retorno ou notificações para DET ou DEM. Interpretação: Quaisquer estados de erro durante a transmissão devem, portanto, ser totalmente monitorados e tratados pelos mecanismos gerais da AUTOSAR-RTE e do módulo básico DCM. Pergunta Q-a8055458432174f6 (aberta) Restrições especiais relativas à reentrância ou ao contexto de chamada não constam nos dados de especificação e, portanto, não são consideradas mais detalhadamente.
Este texto foi gerado por uma IA com base na especificação AUTOSAR R20-11.
Guia do implementador em breve (complexidade I1)
tipo EcuResetModeSwitchInterface [SWS_Dcm_91034] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about an upcoming ECU Reset and its type
De acordo com [SWS_Dcm_91034], o elemento de porta EcuResetModeSwitchInterface está especificado como porta fornecida (ProvidedPort ou PPortPrototype) do módulo DCM. Utiliza a interface Dcm_EcuResetModeSwitchInterface e serve para informar componentes de software (SW-Cs) sobre um reset iminente da unidade de comando, bem como sobre o tipo exato de reset [SWS_Dcm_91034].
Para a utilização e a interação no sistema aplicam-se os seguintes aspetos:
- Papel de comunicação: O DCM atua como emissor da mudança de modo. As SW-Cs interessadas conectam-se através de portas recetoras correspondentes (R-Ports) para reagir à notificação [SWS_Dcm_91034].
- Semântica da mudança de modo: Como
ModeSwitchInterface, não são transmitidos aqui valores de retorno cliente-servidor ou parâmetros de dados, mas sim sinalizadas mudanças de estado através da RTE [SWS_Dcm_91034]. A notificação ocorre, assim, por meio de declarações de modo da interface. - Reação dos componentes: Através do tipo de reset comunicado, as SW-Cs tomam conhecimento da natureza do reinício iminente [SWS_Dcm_91034]. Isso deve permitir às aplicações armazenar ordenadamente dados voláteis de tempo de execução na memória não volátil ou colocar o hardware periférico num estado seguro antes do reinício (interpretação). Pergunta Q-4dcf9314d84b53a0 (aberta)
- Tratamento de erros: A própria definição da interface não contém mensagens de erro nem canais de retorno para estados de erro das SW-Cs [SWS_Dcm_91034].
Este texto foi gerado por uma IA e baseia-se na release R20-11 da AUTOSAR.
Guia do implementador em breve (complexidade I1)
tipo ModeRapidPowerShutDownModeSwitchInterface [SWS_Dcm_91035] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the rapid power shut down mode
Segundo [SWS_Dcm_91035], a interface ModeRapidPowerShutDownModeSwitchInterface está especificada como PPortPrototype (ProvidedPort) para a interface Dcm_ModeRapidPowerShutDownModeSwitchInterface no módulo Dcm. Serve para notificar componentes de software (SW-Cs) sobre o modo de encerramento rápido (Rapid Power Shut Down Mode).
No que diz respeito à utilização, ao comportamento e à interação, são relevantes os seguintes aspetos:
- Utilização e semântica: Através do
ModeSwitchInterface, o DCM sinaliza mudanças de modo às SW-Cs conectadas. O contexto de chamada situa-se dentro do módulo DCM que aciona a alteração de modo; a transmissão para os recetores ocorre de forma assíncrona através da RTE [SWS_Dcm_91035]. - Tratamento de erros: A definição da porta não contém códigos de erro específicos, valores de retorno ou eventos de DET/DEM. Eventuais erros na transmissão de modo devem, portanto, ser totalmente intercetados pelos mecanismos padrão da AUTOSAR-RTE para portas de mudança de modo. Pergunta Q-16537a6a4e19e40b (aberta)
- Concorrência e restrições: A notificação ocorre no contexto de execução do DCM. As SW-Cs recetoras são presumivelmente ativadas através de runnables acionadas por modo e devem ser concebidas de modo a executar as ações para o encerramento rápido sem atrasos bloqueantes. Pergunta Q-20f196c7af208288 (aberta)
Este texto foi gerado por uma IA com base na especificação AUTOSAR.
Guia do implementador em breve (complexidade I1)
tipo ControlDTCSettingModeSwitchInterface [SWS_Dcm_91037] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the DTC Setting mode
Uso e finalidade
De acordo com [SWS_Dcm_91037], o elemento ControlDTCSettingModeSwitchInterface é um ModeSwitchInterface disponibilizado como Provided-Port (PPortPrototype) do gestor de comunicação de diagnóstico (DCM). A sua tarefa principal consiste em notificar componentes de software (SW-Cs) conectados sobre o estado atual do modo de configuração de DTC (DTC Setting mode).
Como interface de porta é utilizado aqui Dcm_ControlDTCSettingModeSwitchInterface [SWS_Dcm_91037]. Uma vez que o DCM declara esta porta como Provided-Port, o módulo de diagnóstico assume o papel de gestor de modo ou emissor. Os componentes de aplicação podem conectar-se através de Required-Ports correspondentes para receber alterações de estado e adaptar o seu comportamento interno.
Interação e integração do sistema
A interação no conjunto do sistema concentra-se no desacoplamento de comandos de diagnóstico e lógica de aplicação:
- Propagação de modo: Através da porta fornecida, o DCM informa as SW-Cs se o armazenamento e a atualização de códigos de falha de diagnóstico estão ativos ou bloqueados [SWS_Dcm_91037]. No ambiente de tempo de execução AUTOSAR, a notificação das SW-Cs deve ocorrer por meio de eventos de mudança de modo padrão da RTE. Pergunta Q-8c0918099f2aa797 (aberta)
- Origem diagnóstica: A comutação do modo de DTC-Setting está presumivelmente no contexto direto de serviços de diagnóstico UDS, como ControlDTCSetting (serviço 0x85), através dos quais um testador externo pode suspender temporariamente o registo de erros. Pergunta Q-f2555e0641476955 (aberta)
Tratamento de erros e condições de contorno
Como a especificação em [SWS_Dcm_91037] não define códigos de erro específicos, nem mensagens DET ou valores de retorno, a transmissão de modo ocorre de forma puramente declarativa através dos mecanismos da RTE. Não estão indicados contextos especiais de chamada ou diretrizes de reentrância para a própria declaração da porta.
Este texto foi gerado por uma IA com base na especificação AUTOSAR Classic R20-11.
Guia do implementador em breve (complexidade I1)
tipo SecurityAccessModeSwitchInterface [SWS_Dcm_91039] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Security Level
No módulo DCM, o elemento de porta SecurityAccessModeSwitchInterface fornece uma Provided-Port (PPortPrototype) com base na interface Dcm_SecurityAccessModeSwitchInterface [SWS_Dcm_91039]. O objetivo desta interface é notificar componentes de software (SW-Cs) sobre o nível de segurança (Security Level) atualmente ativo [SWS_Dcm_91039].
Utilização e interação
A notificação é realizada através da porta do DCM para os componentes conectados [SWS_Dcm_91039]. A disponibilização deve ser implementada como comunicação de mudança de modo através da AUTOSAR-RTE, para que as SW-Cs conectadas possam reagir a mudanças de estado do Security Level através de eventos de mudança de modo (interpretação). Pergunta Q-d86dacdb91979b87 (aberta) Parâmetros, valores de retorno ou chamadas de função síncronas específicas não estão definidos na descrição da porta [SWS_Dcm_91039]; a transmissão deve, assim, corresponder à semântica de difusão assíncrona de um gestor de modo (interpretação). Pergunta Q-9d750df4f73b1634 (aberta)
Tratamento de erros e restrições
Tratando-se de uma comutação de modo pura, a especificação não menciona códigos de erro específicos, verificações de parâmetros ou mensagens para DET ou DEM [SWS_Dcm_91039]. Um tratamento direto de erros na notificação não deve estar previsto na própria interface (interpretação). Pergunta (aberta) Restrições relativas à reentrância ou a variantes divergentes não estão especificadas para o elemento de porta [SWS_Dcm_91039].
Esta nota de utilização foi gerada automaticamente e baseia-se nos requisitos da release R20-11 da AUTOSAR.
Guia do implementador em breve (complexidade I1)
tipo DcmDiagnosticSessionControl [SWS_Dcm_91019] 📄 PDF
ModeDeclarationGroup representing the different diagnostic sessions Further modes to be added: {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspSession/ DcmDspSessionRow.SHORT-NAME)}
tipo DcmEcuReset [SWS_Dcm_91021] 📄 PDF
ModeDeclarationGroup representing the different ECU reset types
tipo DcmModeRapidPowerShutDown [SWS_Dcm_91023] 📄 PDF
ModeDeclarationGroup representing the enable/disable state of rapid power shutdown
O ModeDeclarationGroup DcmModeRapidPowerShutDown serve para representar o estado de ativação para o desligamento rápido (Rapid Power Shutdown) na ECU [SWS_Dcm_91023]. O elemento está associado à categoria EXPLICIT_ORDER e define dois modos concretos: o modo inicial DCM_ENABLE_RAPIDPOWERSHUTDOWN com o valor numérico 0, bem como DCM_DISABLE_RAPIDPOWERSHUTDOWN com o valor 1 [SWS_Dcm_91023]. Para transições de modo, o valor de transição 255 (On transition value) está especificado [SWS_Dcm_91023].
Interação e gerenciamento de modos
No sistema geral, o módulo DCM atua como Mode Manager para uma série de modos diagnósticos, aos quais também pertence DcmModeRapidPowerShutDown no contexto do serviço de diagnóstico 0x11 (ECU Reset) [SWS_Dcm_00775]. Dentro do software básico, o DCM define para isso o ModeDeclarationGroupPrototype DcmModeRapidPowerShutDown como provided-ModeGroup em sua instância de módulo BSW com base neste ModeDeclarationGroup [SWS_Dcm_00807].
Componentes de software (SW-Cs) que precisam ser informados sobre o estado de ativação atual do desligamento rápido conectam a interface de serviço padronizada Dcm_ModeRapidPowerShutDownModeSwitchInterface [SWS_Dcm_91024]. Através de seu grupo de modos modeRapidPowerShutDown, eles recebem as trocas de modo correspondentes do DCM em tempo de execução [SWS_Dcm_91024].
Esta nota de uso foi gerada automaticamente com base nos requisitos de especificação do AUTOSAR R20-11.
Guia do implementador em breve (complexidade 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)}
O ModeDeclarationGroup DcmSecurityAccess da categoria EXPLICIT_ORDER representa os diferentes níveis de segurança diagnósticos de uma ECU para o serviço UDS 0x27 (SecurityAccess) [SWS_Dcm_91031], [SWS_Dcm_00775]. Como modo inicial, DCM_SEC_LEV_LOCKED é predefinido como padrão com o valor fixo 0 [SWS_Dcm_91031], [SWS_Dcm_01327]. Níveis de segurança adicionais de DCM_SEC_LEV_1 a DCM_SEC_LEV_63 são complementados de forma específica ao projeto e à aplicação através da configuração das linhas de segurança em DcmDspSecurityRow [SWS_Dcm_91031], [SWS_Dcm_01327].
O módulo DCM assume o papel central de Mode Manager para este modo de diagnóstico [SWS_Dcm_00775]. A cada alteração do nível de segurança, o DCM atualiza o ModeGroup DcmSecurityAccess com o novo status de segurança assumido [SWS_Dcm_01329]. Durante uma mudança de estado em andamento entre modos individuais, o sistema sinaliza o valor de transição definido 255 (On transition value) [SWS_Dcm_91031].
O repasse do status de segurança atual para componentes de software ocorre através da interface de serviço Dcm_SecurityAccessModeSwitchInterface [SWS_Dcm_91032]:
- Para isso, o DCM disponibiliza o
ModeDeclarationGroupPrototypeDcmSecurityAccesscomo grupo de modos fornecido (provided-ModeGroup) através da interface [SWS_Dcm_01327], [SWS_Dcm_91032]. - Cada componente de software (SW-C) que precisa ser informado sobre o Security Level atual declara uma dependência da interface ModeSwitch
Dcm_SecurityAccessModeSwitchInterfacee a integra como Required-Port [SWS_Dcm_91032]. - A disponibilidade dos modos individuais na interface está sujeita às mesmas variantes de configuração das linhas de segurança subjacentes [SWS_Dcm_91032].
Este texto foi gerado por uma IA.
Guia do implementador em breve (complexidade 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#b7694397- Content hash
b7694397- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_DiagnosticCommunicationManager.pdf#nameddest=SWS_Dcm_00037
gemini-3.8-flash-low· 2026-10-13 · Original em alemão