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
функция Dcm_Init [SWS_Dcm_00037] 📄 PDF
void Dcm_Init (const Dcm_ConfigType* ConfigPtr);
Service for basic initialization of DCM module.
Синхронная и нереентерабельная функция Dcm_Init служит для базовой инициализации модуля DCM [SWS_Dcm_00037]. Она принимает через параметр ConfigPtr указатель на набор конфигурации для вариантов Post-Build и не имеет возвращаемого значения [SWS_Dcm_00037]. Во время выполнения модуль инициализирует все глобальные переменные DCM значениями из конфигурации [SWS_Dcm_00334].
В рамках процесса инициализации конфигурируются различные функциональные области и состояния:
- Управление DDDID: если параметр конфигурации
DcmDDDIDStorageустановлен вFALSE, DCM при запуске инициализирует все динамически определенные идентификаторы данных (DDDID) как отсутствующие [SWS_Dcm_00866]. Если параметр установлен вTRUE, определения DDDID восстанавливаются из NvM [SWS_Dcm_00867]. - Response on Event (ROE): DCM переводит состояние каждого события во время
Dcm_Initв статус «ROE cleared» [SWS_Dcm_00872]. - Статус аутентификации: если
DcmDspAuthenticationPersistStateModeRuleRefне сконфигурирован или если вычисление ссылочного правила режима даетfalse, модуль переводит все состояния аутентификации в состояние «deauthenticated» [SWS_Dcm_01480]. - Статус коммуникации: после завершения
Dcm_InitDCM устанавливает параметрActiveDiagnosticв «DCM_COMM_ACTIVE» [SWS_Dcm_01069].
Относительно среды выполнения установлено, что Dcm_Init не является реентерабельной [SWS_Dcm_00037]. Специфические коды ошибок, а также стандартизированные сообщения об ошибках в DET или DEM для этой службы инициализации в спецификации интерфейса не указаны [SWS_Dcm_00037].
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I2)
функция Dcm_GetVersionInfo [SWS_Dcm_00065] 📄 PDF
void Dcm_GetVersionInfo (Std_VersionInfoType* versionInfo);
Returns the version information of this module
функция 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.
Использование
Синхронный интерфейс Dcm_DemTriggerOnDTCStatus (Service-ID 0x2B) доступен через заголовочный файл Dcm_Dem.h и служит для сообщения об изменениях байта статуса UDS модулю DCM [SWS_Dcm_00614]. Это позволяет DCM инициировать события Response-on-Event (ROE) для подсервиса диагностической службы OnDTCStatusChanged [SWS_Dcm_00614]. При вызове функция принимает три входных параметра: затронутый код ошибки DTC (uint32), предыдущее состояние DTCStatusOld (Dem_UdsStatusByteType), а также обновленное состояние DTCStatusNew (Dem_UdsStatusByteType) [SWS_Dcm_00614]. Входные/выходные параметры отсутствуют [SWS_Dcm_00614].
Возвращаемые значения и обработка ошибок
В качестве возвращаемого значения функция возвращает тип Std_ReturnType, причем согласно спецификации без исключений возвращается E_OK [SWS_Dcm_00614]. Специфические коды ошибок, значения отката или отдельные уведомления для DEM или DET для этого вызова не предусмотрены.
Параллелизм и взаимодействие
Функция классифицирована как реентерабельная и обладает семантикой синхронного выполнения [SWS_Dcm_00614]. В отношении взаимодействия с диагностическими запросами действует жесткое граничное условие: если в DCM в текущий момент обрабатывается запрос на очистку памяти событий (EventMemory), DCM должен игнорировать входящие вызовы функции обратного вызова Dcm_DemTriggerOnDTCStatus [SWS_Dcm_01410].
Это указание по использованию основано на спецификациях AUTOSAR Classic релиза R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция Dcm_GetVin [SWS_Dcm_00950] 📄 PDF
Std_ReturnType Dcm_GetVin (uint8* Data);
Function to get the VIN (as defined in SAE J1979-DA)
функция 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.
Функция Dcm_BndMWriteBlockFinish служит интерфейсом уведомления от BndM к DCM для индикации завершения операции записи блока [SWS_Dcm_91088]. Функция объявлена в заголовочном файле Dcm.h, имеет идентификатор службы 0x7a, не возвращает значения (void) и выполняется синхронно [SWS_Dcm_91088].
Интерфейс ожидает два передаваемых параметра [SWS_Dcm_91088]:
BlockId(тип:BndM_BlockIdType): идентифицирует блок, операция записи которого была завершена.result(тип:BndM_ResultType): передает результат операции записи в DCM.
Функциональное взаимодействие и поведение в случае ошибки привязаны к атомарным операциям записи BndM, ранее инициированным DCM:
- Если
Dcm_BndMWriteBlockFinishвызывается со статусомresult = E_OK, DCM отправляет положительный диагностический ответ на ожидающий запрос [SWS_Dcm_01584]. - Если функция вызывается с
result = E_NOT_OK, DCM в случае ошибки реагирует отрицательным диагностическим ответом0x72(generalProgrammingFailure) [SWS_Dcm_01585].
В отношении параллелизма Dcm_BndMWriteBlockFinish специфицирована как нереентерабельная (Non Reentrant) [SWS_Dcm_91088]. Вызывающие стороны, следовательно, должны обеспечить, чтобы функция не вызывалась параллельно или с прерыванием из нескольких контекстов.
Это указание по использованию было сгенерировано ИИ и базируется на спецификации AUTOSAR R20-11.
функция 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.
Использование и контекст вызова
Функция Dcm_SetDeauthenticatedRole выполняется синхронно и реентерабельно ([SWS_Dcm_91069]). Она позволяет программному компоненту назначить для соединения, идентифицированного с помощью connectionId, новую роль deauthenticatedRole типа Dcm_AuthenticationRoleType для деаутентифицированного состояния ([SWS_Dcm_91069], [SWS_Dcm_01486]). В качестве возвращаемого значения без исключения возвращается E_OK ([SWS_Dcm_91069]).
Условия состояния и обработка ошибок
Вызов обрабатывается DCM исключительно в том случае, если соединение находится в деаутентифицированном состоянии (deauthenticated state) ([SWS_Dcm_01487]). Поскольку сигнатура не предусматривает альтернативных значений ошибок и всегда возвращает E_OK ([SWS_Dcm_91069]), вызов вне этого состояния, предположительно, отбрасывается без сообщения об ошибке. Вопрос Q-6f14770eae6ce896 (открытый) Специфические события DET или DEM в спецификации не определены.
Срок действия и жизненный цикл
Если роль для деаутентифицированного состояния успешно принята ([SWS_Dcm_01486]), это назначение сохраняется временно:
- установленная роль сбрасывается, как только соединение переходит в аутентифицированное состояние (authenticated state) ([SWS_Dcm_01488]).
- срок действия заканчивается не позднее сброса блока управления ([SWS_Dcm_91069]).
Это указание по использованию сгенерировано автоматически на основе спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I2)
функция Dcm_GetSecurityLevel [SWS_Dcm_00338] 📄 PDF
Std_ReturnType Dcm_GetSecurityLevel (Dcm_SecLevelType* SecLevel);
This function provides the active security level value.
Синхронная и реентерабельная функция Dcm_GetSecurityLevel запрашивает текущий активный уровень безопасности DCM и предоставляет его [SWS_Dcm_00338]. Функция объявлена через заголовочный файл Dcm.h и передает определенное значение статуса вызывающей стороне через выходной параметр SecLevel типа Dcm_SecLevelType*. В качестве возвращаемого значения согласно спецификации без исключения возвращается E_OK [SWS_Dcm_00338].
Определение внутреннего уровня безопасности основано на параметре SecurityAccessType, переданном тестером в рамках службы SecurityAccess, в соответствии с фиксированной формулой пересчета SecurityLevel = (SecurityAccessType + 1) / 2 [SWS_Dcm_00338].
Во взаимодействии с вышестоящей обработкой диагностических служб подмодуль DSP среди прочего обращается к этому значению: если модуль принимает сконфигурированный запрос с типом подфункции «requestSeed» (нечетное значение) и соответствующий уровень доступа согласно Dcm_GetSecurityLevel уже активен, подмодуль DSP устанавливает содержимое Seed в 0x00 [SWS_Dcm_00323].
В отношении конкурентности и обработки ошибок функция определена как reentrant [SWS_Dcm_00338]. Поскольку специфические коды ошибок или проверки DET не специфицированы и всегда возвращается E_OK, проверка на нулевой указатель, вероятно, не выполняется; поэтому вызывающие стороны, предположительно, всегда должны передавать действительный указатель на область памяти для SecLevel. Вопрос Q-5402d82ac0151b22 (открытый)
Этот текст был создан ИИ. Данные могут быть неполными; определяющей является спецификация AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
функция Dcm_GetSesCtrlType [SWS_Dcm_00339] 📄 PDF
Std_ReturnType Dcm_GetSesCtrlType (Dcm_SesCtrlType* SesCtrlType);
This function provides the active session control type value.
функция 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
функция 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.
Синхронная функция Dcm_ResetToDefaultSession позволяет приложению сбросить активную диагностическую сессию в стандартную сессию (Default Session) [SWS_Dcm_00520]. Типичным сценарием применения является автоматическое завершение расширенной диагностической сессии, как только автомобиль превышает заданный порог скорости [SWS_Dcm_00520].
Использование и обработка ошибок
-
Интерфейс и параметры: функция доступна через
Dcm.hс идентификатором службы0x2a, имеет сигнатуруStd_ReturnType Dcm_ResetToDefaultSession (void)и не требует передаваемых параметров [SWS_Dcm_00520]. -
Возвращаемое значение и ошибки: в качестве возвращаемого типа передается
Std_ReturnType, причем без исключений возвращается значениеE_OK[SWS_Dcm_00520]. Специфические коды ошибок, проверки времени выполнения DET или события DEM в требованиях для этого вызова не специфицированы.
Параллелизм и взаимодействие
Выполнение происходит синхронно и объявлено как реентерабельное [SWS_Dcm_00520].
Помимо фактической смены сессии, Dcm_ResetToDefaultSession в обязательном порядке инициирует смену режима для ModeDeclarationGroupPrototype DcmDiagnosticSessionControl [SWS_Dcm_01062]. При этом функция внутренне вызывает SchM_Switch_<bsnp>_DcmDiagnosticSessionControl(RTE_MODE_DcmDiagnosticSessionControl_DCM_DEFAULT_SESSION), чтобы уведомить системное окружение о переходе в стандартную сессию [SWS_Dcm_01062].
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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'.
Синхронная функция Dcm_TriggerOnEvent (Service-ID 0x2D), предоставляемая через заголовочный файл Dcm.h, служит для вызова события, связанного с запросом ResponseOnEvent (ROE) [SWS_Dcm_00521].
Вызов и принцип работы
Вызывающая сторона передаёт в качестве единственного параметра RoeEventId (входной параметр типа uint8), идентифицирующий инициируемое событие; входные или выходные параметры отсутствуют [SWS_Dcm_00521]. Как только функция вызывается, DCM проверяет состояние события: если переданный RoeEvent активен, DCM инициирует соответствующее событие [SWS_Dcm_00920]. DCM выполняет связанную с событием службу при условии, что соответствующий режим RoeEventId находится в состоянии «ROE started» [SWS_Dcm_00521].
Возвращаемые значения и валидация
Вызов синхронно возвращает статус типа Std_ReturnType, предоставляющий информацию о валидности параметра [SWS_Dcm_00521]:
E_OK: переданное значение дляRoeEventIdвалидно [SWS_Dcm_00521].E_NOT_OK: значениеRoeEventIdневалидно [SWS_Dcm_00521].
Параллелизм и свойства
Интерфейс специфицирован как реверсивный (reentrant) [SWS_Dcm_00521]. Таким образом, он может вызываться параллельно для синхронного оповещения DCM о событиях [SWS_Dcm_00521].
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция Dcm_SetActiveDiagnostic [SWS_Dcm_01068] 📄 PDF
Std_ReturnType Dcm_SetActiveDiagnostic (boolean active);
Allows to activate and deactivate the call of ComM_DCM_ActiveDiagnostic() function.
функция Dcm_StartOfReception [SWS_Dcm_00094] 📄 PDF
BufReq_ReturnType Dcm_StartOfReception (PduIdType id, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);
This function is called at the start of receiving an N-SDU. The N-SDU might be fragmented into multiple N-PDUs (FF with one or more following CFs) or might consist of a single N-PDU (SF). The service shall provide the currently available maximum buffer size when invoked with TpSdu Length equal to 0. This function might be called in interrupt context.
Синхронная и реентерабельная функция Dcm_StartOfReception ([SWS_Dcm_00094]) вызывается модулем транспортного протокола в начале приема N-SDU — как для несегментированных сообщений (Single Frame, SF), так и для сегментированных сообщений (First Frame, FF). Она может вызываться в контексте прерывания ([SWS_Dcm_00094]). Вызов приводит, помимо прочего, к остановке таймера S3Server в начале приема ([SWS_Dcm_00141]).
Через info передаются полезные данные и метаданные; для универсальных соединений через него, среди прочего, сохраняются SOURCE_ADDRESS_16 ([SWS_Dcm_00848]) и проверяются TARGET_ADDRESS_16 ([SWS_Dcm_01347]). Если нет ни полезных данных, ни метаданных, передается NULL_PTR ([SWS_Dcm_00094]). Через bufferSizePtr функция возвращает доступный буфер для вычисления размера блока (Block Size, BS) ([SWS_Dcm_00094]). При успешном принятии она возвращает BUFREQ_OK, после чего последующие данные копируются через Dcm_CopyRxData ([SWS_Dcm_00443]).
Случаи ошибок и отклонений сигнализируются через возвращаемое значение:
BUFREQ_E_OVFL: возвращается, если запрошенная длинаTpSduLengthпревышает доступный в DCM буфер ([SWS_Dcm_00094], [SWS_Dcm_00444]).bufferSizePtrостается без изменений ([SWS_Dcm_00094]).BUFREQ_E_NOT_OK: возвращается, еслиTpSduLengthравно 0 ([SWS_Dcm_00642]) или текущий запрос блокируется на том же соединении ([SWS_Dcm_00557]). При другом соединении параметрDcmDslDiagRespOnSecondDeclinedRequestопределяет, отклоняется ли он сBUFREQ_E_NOT_OK([SWS_Dcm_00790]) или принимается сBUFREQ_OK([SWS_Dcm_00788]). Конкурентные запросы TesterPresent также квитируются сBUFREQ_OK([SWS_Dcm_00557]).
Этот текст был создан ИИ. Все данные основаны исключительно на выдержке из спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Использование
Синхронная функция Dcm_CopyRxData вызывается для передачи принятых данных сегмента I-PDU (N-PDU) верхнему уровню в DCM [SWS_Dcm_00556]. Каждый вызов предоставляет следующую часть данных I-PDU [SWS_Dcm_00556]. Через параметр id идентифицируется принятый I-PDU [SWS_Dcm_00556]. Указатель info предоставляет через SduDataPtr буфер источника, а также через SduLength — количество копируемых байтов [SWS_Dcm_00556]. После завершения операции копирования оставшийся свободный размер буфера в DCM возвращается через bufferSizePtr [SWS_Dcm_00556], [SWS_Dcm_00443].
Если Dcm_CopyRxData вызывается с SduLength, равным 0, это служит исключительно для опроса буфера [SWS_Dcm_00556]. В этом случае SduDataPtr может быть NULL_PTR; функция возвращает BUFREQ_OK и записывает оставшийся размер буфера приема в bufferSizePtr [SWS_Dcm_00556], [SWS_Dcm_00996].
Взаимодействие
Перед копированием функция Dcm_StartOfReception должна быть завершена с BUFREQ_OK; последующие вызовы Dcm_CopyRxData копируют данные из предоставленного буфера в буфер DCM и обновляют bufferSizePtr [SWS_Dcm_00443].
Обработка ошибок
Функция возвращает статус в виде BufReq_ReturnType: BUFREQ_OK подтверждает успешное копирование или опрос буфера, тогда как BUFREQ_E_NOT_OK указывает на то, что из-за ошибки данные скопированы не были [SWS_Dcm_00556], [SWS_Dcm_00996].
Параллелизм и ограничения
Dcm_CopyRxData специфицирована как реентерабельная и может вызываться в контексте прерывания [SWS_Dcm_00556]. Интерфейс предоставляется через Dcm.h [SWS_Dcm_00556].
Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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.
Использование и контекст вызова
Синхронная функция Dcm_TpRxIndication вызывается после приема I-PDU через TP-API, обычно модулем PduR [SWS_Dcm_00093], [SWS_Dcm_00112]. Она передает идентификатор PDU (id), а также результат приема (result) и не возвращает значения [SWS_Dcm_00093]. Поскольку функция является реентерабельной и может вызываться в контексте прерывания, вызывающая сторона и состояния модуля должны быть рассчитаны на соответствующую конкурентность [SWS_Dcm_00093].
Поведение при ошибочном приеме
Если Dcm_TpRxIndication вызывается со значением результата, отличным от E_OK, модуль Dcm не должен анализировать буфер, назначенный ссылочному I-PDU [SWS_Dcm_00344].
Взаимодействие субмодулей
Субмодуль DSL передает принятые данные субмодулю DSD исключительно в том случае, если вызов был выполнен со значением параметра result = E_OK [SWS_Dcm_00111]. При этом для диагностических запросов действуют специфические правила:
- Если успешно принятый запрос (
Result = E_OK) представляет собой командуTesterPresentс установленнымsuppressPosRspMsgIndicationBit(SID0x3E, субфункция0x80), субмодуль DSL сбрасывает таймер таймаута сессииS3Server[SWS_Dcm_00112]. - В этом случае запрос не передается субмодулем DSL субмодулю DSD для дальнейшей интерпретации [SWS_Dcm_00113].
Это указание по использованию было автоматически сгенерировано на основе спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Использование и семантика
Синхронная и реентерабельная функция Dcm_CopyTxData вызывается модулями нижнего уровня (такими как транспортные протоколы) для извлечения данных сегмента I-PDU (N-PDU) для передачи [SWS_Dcm_00092]. Через параметр info вызывающая сторона передает целевой буфер SduDataPtr и требуемую длину в байтах SduLength. Значение 0 для SduLength может использоваться для сигнализации об изменениях статуса через retry или для запроса количества доступных данных; SduDataPtr в этом случае может быть NULL_PTR [SWS_Dcm_00092]. Через availableDataPtr DCM сообщает оставшееся количество байтов в буфере передачи, которое может использоваться модулями TP для определения размеров последующих сегментов и не должно превышать количество байтов, которые еще предстоит отправить [SWS_Dcm_00092], [SWS_Dcm_00350].
Управление буфером и повтор передачи
Через параметр retry управляется квитирование или повтор данных [SWS_Dcm_00092]:
- Если
retryпредставляет собойNULL_PTR, данные разрешается удалить из буфера непосредственно после процесса копирования [SWS_Dcm_00092]. - При
TP_CONFPENDINGранее скопированные данные должны оставаться в буфере TP для возможного устранения ошибок [SWS_Dcm_00092]. TP_DATACONFподтверждает освобождение всех данных, скопированных до этого вызова [SWS_Dcm_00092].TP_DATARETRYповторно копирует данные начиная со смещенияTxTpDataCntотносительно текущей позиции [SWS_Dcm_00092].
Возвращаемые значения и обработка ошибок
Если данные были успешно и полностью скопированы, функция возвращает BUFREQ_OK [SWS_Dcm_00092], [SWS_Dcm_00346]. Если недостаточно данных для передачи доступно, операция копирования не выполняется и возвращается BUFREQ_E_BUSY; нижний уровень может повторить вызов позже [SWS_Dcm_00092]. Если запрос завершается неудачно, функция возвращает BUFREQ_E_NOT_OK [SWS_Dcm_00092]. В этом случае запрос на отправку из PduR_DcmTransmit() еще не завершен; только завершающий вызов Dcm_TpTxConfirmation завершает операцию и делает возможными новые передачи [SWS_Dcm_00350].
Параллелизм
Функция является реентерабельной и может также вызываться в контексте прерывания [SWS_Dcm_00092].
Данное указание по использованию основано на спецификациях платформы AUTOSAR Classic релиза R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Функция обратного вызова Dcm_TpTxConfirmation ([SWS_Dcm_00351]) синхронно вызывается нижним транспортным уровнем после того, как диагностический I-PDU был передан по сети. Через параметр id идентифицируется соответствующий I-PDU, в то время как result сообщает об успехе или неудаче операции отправки ([SWS_Dcm_00351]). Функция не имеет возвращаемого значения, является реентерабельной и может явно выполняться в контексте прерывания ([SWS_Dcm_00351]).
При вызове Dcm_TpTxConfirmation модуль DCM выполняет центральные процедуры очистки и переходы состояний:
- Назначенный буфер передачи разблокируется ([SWS_Dcm_00352]).
- Текущие процедуры контроля ошибок, такие как таймауты страничного буфера, а также таймауты
P2ServerMaxиP2*ServerMax, останавливаются ([SWS_Dcm_00353]). - Заблокированный с момента приема (
Dcm_TpRxIndication)DcmPduIdсоединения освобождается, благодаря чему могут приниматься последующие запросы ([SWS_Dcm_00241]). - Текущий протокол не завершается подтверждением ответа DSL (вызов
xxx_StopProtocolотсутствует) ([SWS_Dcm_00624]).
В случае ошибки (если result указывает на ошибку или подтверждается прерывание после неудачного Dcm_CopyTxData) [SWS_Dcm_00350] обязательно требует этого завершающего вызова, чтобы формально закрыть задание на передачу и сделать возможными новые передачи через PduR_DcmTransmit(). При ошибочном подтверждении субмодуль DSD не должен повторно отправлять диагностический ответ ([SWS_Dcm_00118]).
Кроме того, подтверждение ответа (отличного от NRC 0x78) отмечает регулярное завершение диагностического запроса ([SWS_Dcm_01378]). После подтверждения положительного ответа на EcuReset модуль DCM во время обработки сброса игнорирует все дальнейшие запросы ([SWS_Dcm_00834]).
Этот текст был создан ИИ; правильность не гарантируется.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Использование
Синхронный интерфейс Dcm_TxConfirmation (идентификатор службы 0x40, объявленный в Dcm.h) согласно [SWS_Dcm_01092] вызывается нижележащим интерфейсным модулем связи для подтверждения отправки PDU или сообщения о сбое передачи. Функция не имеет возвращаемого значения и обрабатывает два входных параметра:
TxPduId: идентификатор (PduIdType) отправленного PDU.result: статус передачи (Std_ReturnType). Допустимыми значениями являютсяE_OKпри успешной передаче, а такжеE_NOT_OKв случае, если передача PDU не удалась.
Обработка ошибок и обратная связь по состоянию
Результат передачи сигнализируется DCM напрямую через параметр result ([SWS_Dcm_01092]). Специфические сообщения об ошибках DET или DEM в предоставленном фрагменте спецификации для этой функции не определены.
Параллелизм и контекст вызова
Что касается реентерабельности, Dcm_TxConfirmation является реентерабельной для вызовов с различными идентификаторами PDU-ID, однако нереентерабельна для одного и того же TxPduId ([SWS_Dcm_01092]). Следует учитывать, что вызов нижележащим модулем может происходить в контексте прерывания ([SWS_Dcm_01092]).
Взаимодействие
В случае периодической передачи (PeriodicTransmission) DCM согласно [SWS_Dcm_01073] вызывается через Dcm_TxConfirmation для получения соответствующего результата отправки.
Это указание по использованию было создано автоматически на основе спецификации AUTOSAR для R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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.
Синхронная и реентерабельная функция Dcm_ComM_NoComModeEntered (идентификатор службы 0x21) информирует модуль DCM о переходе коммуникационной сети в состояние COMM_NO_COMMUNICATION [SWS_Dcm_00356]. Интерфейс предоставляется через заголовочный файл Dcm_ComM.h, не имеет возвращаемого значения и идентифицирует затронутую сеть через входной параметр NetworkId типа uint8 [SWS_Dcm_00356].
При этом вызове DCM отключает любую коммуникацию в указанной сети, так что как прием, так и передача сообщений полностью деактивируются [SWS_Dcm_00148]. Это в обязательном порядке включает следующие виды передачи:
- предотвращение передач ResponseOnEvent [SWS_Dcm_00149],
- деактивация периодических передач через
ReadDataByPeriodicIdentifier(periodicId) [SWS_Dcm_00150], а также - отключение обычных передач [SWS_Dcm_00151].
Вследствие этого модуль DCM после выполнения Dcm_ComM_NoComModeEntered для данного контекста больше не должен вызывать функцию PduR PduR_DcmTransmit() [SWS_Dcm_00152].
Если функция вызывается с NetworkId, который не соответствует ни одному каналу ComM, на который ссылается DCM через параметр конфигурации DcmDslProtocolComMChannelRef, модуль DCM не выполняет никаких действий и немедленно возвращает управление [SWS_Dcm_01324].
Этот текст был создан ИИ и прошел контроль качества с помощью autodocs.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Синхронная и реентерабельная функция Dcm_ComM_SilentComModeEntered ([SWS_Dcm_00358]) служит для того, чтобы проинформировать модуль DCM о переходе коммуникационной сети в состояние COMM_SILENT_COMMUNICATION. Интерфейс имеет идентификатор службы 0x22, не возвращает значения и ожидает в качестве входного параметра NetworkId идентификатор соответствующей сети ([SWS_Dcm_00358]). Он предоставляется через заголовочный файл Dcm_ComM.h ([SWS_Dcm_00358]).
Как только происходит этот вызов, DCM должен полностью прекратить все действия по передаче на соответствующем сетевом канале ([SWS_Dcm_00153]). В деталях это включает следующие меры:
- деактивацию всех обычных передач ([SWS_Dcm_00156]),
- предотвращение передач Response-on-Event ([SWS_Dcm_00154]), а также
- деактивацию периодических отправок в рамках
ReadDataByPeriodicIdentifier([SWS_Dcm_00155]).
Относительно обработки ошибок и граничных условий установлено, что DCM должен возвращать управление без каких-либо дальнейших действий, если переданный NetworkId соответствует каналу ComM, на который в DCM нет ссылки через параметр конфигурации DcmDslProtocolComMChannelRef ([SWS_Dcm_01325]). Специфические ошибки разработки или возвращаемые значения ошибок для этого вызова не специфицированы.
Интерпретация: вызов, вероятно, обычно выполняется модулем ComM, как только совершается переход в тихий режим коммуникации. Вопрос Q-fc9b6303ae0c0e41 (открытый)
Это указание по использованию было сгенерировано системой ИИ и опирается исключительно на спецификацию AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Синхронная и реентерабельная функция Dcm_ComM_FullComModeEntered предоставляется через заголовочный файл Dcm_ComM.h и информирует модуль DCM о переходе коммуникационной сети в состояние COMM_FULL_COMMUNICATION [SWS_Dcm_00360]. В качестве входного параметра служит NetworkId, идентифицирующий сеть, затронутую сменой режима [SWS_Dcm_00360].
Благодаря вызову активируется вся коммуникация для этой сети, так что разрешаются как прием, так и передача сообщений [SWS_Dcm_00157]. Это включает следующие виды передачи:
- обычные передачи [SWS_Dcm_00161],
- передачи Response-on-Event [SWS_Dcm_00159], а также
- периодические передачи с помощью
ReadDataByPeriodicIdentifier[SWS_Dcm_00160].
Как только Dcm_ComM_FullComModeEntered была вызвана, DCM без ограничений обрабатывает внутренние функции DslInternal_ResponseOnOneDataByPeriodicId() и DslInternal_ResponseOnOneEvent() [SWS_Dcm_00162]. В хронологической последовательности DCM должен дождаться этого вызова перед тем, как инициировать передачу диагностического ответа; время ожидания с момента поступления запроса не должно превышать P2ServerMax [SWS_Dcm_01142].
В случае ошибки, если переданный NetworkId относится к каналу ComM, который не сконфигурирован в DCM (параметр DcmDslProtocolComMChannelRef), функция немедленно возвращает управление без дальнейших действий [SWS_Dcm_01326].
Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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).
Использование и семантика
Синхронная и реэнтрантная функция обратного вызова Dcm_CsmAsyncJobFinished вызывается Crypto Service Manager (CSM), как только завершается асинхронная обработка задания [SWS_Dcm_91076]. В качестве входного параметра она принимает через result типа Csm_ResultType результат завершённого задания CSM [SWS_Dcm_91076]. В качестве возвращаемого значения функция всегда возвращает E_OK [SWS_Dcm_91076].
Конфигурация и граничные условия
Интеграторы должны сконфигурировать имя этой функции в конфигурации ECUC модуля CSM в качестве обратного вызова для асинхронных заданий [SWS_Dcm_91076]. Для DCM доступен исключительно единственный такой обратный вызов; идентификация завершённого задания выполняется согласно спецификации путём анализа параметра задания [SWS_Dcm_91076]. Однако, поскольку сигнатура C-функции передаёт только result, DCM, вероятно, определяет соответствующее задание внутренне по состоянию транзакции текущей аутентификации. Вопрос Q-04ad1d5fb514f467 (открытый)
Интерфейс доступен только в том случае, если в конфигурации установлен параметр DcmDspAuthenticationConnection (не равен null) [SWS_Dcm_91076]. Специфическая обработка ошибок или сообщения DET для этого вызова не специфицированы, поскольку возвращаемое значение неизменно равно E_OK [SWS_Dcm_91076].
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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).
Синхронная и реэнтрантная функция обратного вызова Dcm_KeyMAsyncCertificateVerifyFinished вызывается модулем KeyM после завершения асинхронной верификации сертификата [SWS_Dcm_91077]. Она информирует DCM о завершении, а также о результате процесса проверки и всегда возвращает E_OK в качестве возвращаемого значения [SWS_Dcm_91077].
Параметры и принцип работы
CertID: идентификатор сертификата, верификация которого была завершена. На основе этого идентификатора DCM определяет, какое задание проверки завершилось [SWS_Dcm_91077].Result: возвращаемое значение и статус асинхронного задания верификации из KeyM [SWS_Dcm_91077].
Конфигурация и граничные условия
Интеграторы должны сконфигурировать это имя функции в конфигурации ECUC модуля KeyM в качестве обратного вызова для асинхронных заданий [SWS_Dcm_91077]. Поскольку для этого уведомления доступен только один обратный вызов, DCM вынужден определять соответствующий сертификат через параметр CertID [SWS_Dcm_91077].
Интерфейс доступен исключительно тогда, когда сконфигурирован параметр конфигурации DcmDspAuthenticationConnection по пути Dcm/DcmDsp/DcmDspAuthentication (!= null) [SWS_Dcm_91077]. Особые коды ошибок или сообщения DET для этого вызова не специфицированы [SWS_Dcm_91077].
Это указание по использованию сгенерировано автоматически.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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
Функция callout Dcm_ReadMemory ([SWS_Dcm_00539]), объявленная в Dcm_Externals.h, служит модулю DCM для считывания данных памяти сервера на основе начального адреса (MemoryAddress) и размера в байтах (MemorySize). Функция требуется для UDS-сервисов ReadMemoryByAddress (0x23) ([SWS_Dcm_00495]), ReadDataByIdentifier (0x22) для динамических DID в диапазоне адресов от 0xF200 до 0xF3FF ([SWS_Dcm_00653]), RequestUpload, а также TransferData ([SWS_Dcm_00539]). Если параметр MemoryIdentifier не используется, он должен быть установлен в 0 ([SWS_Dcm_00539]).
Интерфейс является асинхронным и нереентерабельным ([SWS_Dcm_00539]). Статус вызова передается через OpStatus со значениями DCM_INITIAL, DCM_PENDING, DCM_CANCEL или DCM_FORCE_RCRRP_OK. Пока процесс чтения продолжается, функция возвращает DCM_READ_PENDING ([SWS_Dcm_00985]). Если вызов возвращает DCM_READ_FORCE_RCRRP, DCM незамедлительно инициирует отправку сообщения RCR-RP (NRC 0x78) и приостанавливает дальнейшие вызовы до подтверждения отправки ([SWS_Dcm_00839]). После подтверждения RCR-RP модуль DCM повторно вызывает функцию из Dcm_MainFunction с OpStatus = DCM_FORCE_RCRRP_OK ([SWS_Dcm_00840]).
В случае успеха считанные данные записываются в буфер MemoryData и возвращается DCM_READ_OK ([SWS_Dcm_00539], [SWS_Dcm_00985]). Если операция завершается сбоем, функция возвращает DCM_READ_FAILED и устанавливает ErrorCode. После этого DCM отправляет отрицательный ответ с соответствующим значением NRC ([SWS_Dcm_00644]).
Автоматически сгенерированное указание по использованию на основе спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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
Объявленная в Dcm_Externals.h функция callout Dcm_WriteMemory вызывается модулем DCM асинхронно и нереентерабельно для записи данных памяти на основе начального адреса и размера в байтах [SWS_Dcm_00540]. Она служит для реализации UDS-сервисов WriteMemoryByAddress (0x3D), RequestDownload и TransferData [SWS_Dcm_00540]. При приеме WriteMemoryByAddress DCM вызывает callout только после проверки запроса [SWS_Dcm_00491].
Для управления последовательностью передается OpStatus (возможные значения: DCM_INITIAL, DCM_PENDING, DCM_CANCEL или DCM_FORCE_RCRRP_OK) [SWS_Dcm_00540]. Параметры MemoryAddress и MemorySize определяют целевую область памяти, в то время как MemoryData указывает на диагностический буфер DCM [SWS_Dcm_00540]. Если MemoryIdentifier или MemoryAddress не используются (например, при сжатых данных), они должны быть установлены в 0 [SWS_Dcm_00540].
Возвращаемое значение Dcm_ReturnWriteMemoryType [SWS_Dcm_00986] определяет дальнейшую обработку в DCM:
DCM_WRITE_OK: процесс записи прошел успешно [SWS_Dcm_00540], [SWS_Dcm_00986].DCM_WRITE_PENDING: операция еще не завершена и требует последующих вызовов [SWS_Dcm_00540], [SWS_Dcm_00986].DCM_WRITE_FORCE_RCRRP: DCM незамедлительно инициирует отправку ответа Response Pending (NRC 0x78) и приостанавливает дальнейшие вызовы до подтверждения отправки [SWS_Dcm_00837]. После этого выполняется повторный вызов изDcm_MainFunctionсDCM_FORCE_RCRRP_OK[SWS_Dcm_00838].DCM_WRITE_FAILED: при ошибке DCM отправляет отрицательный ответ со значением NRC, переданным через выходной параметрErrorCode[SWS_Dcm_00540], [SWS_Dcm_00643].
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Функция callout Dcm_SetProgConditions позволяет интегратору персистентно сохранять актуальную информацию перед переходом в загрузчик или сбросом в результате запроса ECUReset [SWS_Dcm_00543]. Соответствующие данные контекста передаются через указатель на структуру Dcm_ProgConditionsType, которая объединяет, среди прочего, адреса соединений и исходные адреса тестера, идентификаторы сервисов и субфункций, а также управляющие флаги, такие как ReprogramingRequest и ResponseRequired [SWS_Dcm_00988]. При приеме UDS-сервиса 0x10 с субфункцией 0x02 DCM устанавливает эти флаги и вызывает интерфейс [SWS_Dcm_01182].
Вызов выполняется асинхронно и не является реентерабельным (Non Reentrant) [SWS_Dcm_00543]. Через параметр OpStatus управляются состояния DCM_INITIAL, DCM_PENDING, DCM_CANCEL или DCM_FORCE_RCRRP_OK [SWS_Dcm_00543]. Если выполнение продолжается и функция возвращает DCM_E_PENDING, DCM снова вызывает интерфейс в следующем цикле главной функции, чтобы завершить установку [SWS_Dcm_00543], [SWS_Dcm_01184]. С помощью DCM_E_FORCE_RCRRP можно принудительно запустить передачу ответа Response Pending (NRC 0x78) [SWS_Dcm_00543]. В зависимости от конфигурации вызов со стороны DCM выполняется только после успешной передачи NRC 0x78 [SWS_Dcm_00535].
Если условия были установлены безошибочно и callout возвращает E_OK, DCM инициирует смену режима ModeDeclarationGroupPrototype DcmEcuReset на EXECUTE [SWS_Dcm_00719], [SWS_Dcm_01163], [SWS_Dcm_01180]. Если же состояние сохранить невозможно и функция отвечает E_NOT_OK, сброс и переход в загрузчик не выполняются, смена режима блокируется и DCM отправляет отрицательный ответ NRC 0x22 (Conditions not correct) [SWS_Dcm_00715], [SWS_Dcm_01181].
Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR Classic Release R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Функция callout Dcm_GetProgConditions с идентификатором сервиса 0x62 вызывается во время инициализации DCM, чтобы определить, необходимо ли отправить ожидающий диагностический ответ на сервис $50 или $51 [SWS_Dcm_00544]. Объявление интерфейса предоставляется через заголовочный файл Dcm_Externals.h [SWS_Dcm_00544].
Использование и параметры
Выполнение функции происходит синхронно, при этом обычные входные или входные/выходные параметры не передаются [SWS_Dcm_00544]:
- Выходные параметры: через указатель
ProgConditionsтипаDcm_ProgConditionsType*callout возвращает условия, при которых был запрошен предыдущий переход из загрузчика [SWS_Dcm_00544]. Соответствующие параметры контекста сохранены в типе данныхDcm_ProgConditionsType[SWS_Dcm_00544]. - Возвращаемое значение: функция возвращает вызывающей стороне значение статуса типа
Dcm_EcuStartModeType[SWS_Dcm_00544].
Параллелизм и обработка ошибок
Функция классифицирована как нереентерабельная (Non Reentrant) и поэтому не может выполняться параллельно [SWS_Dcm_00544]. Для этого callout в спецификации интерфейса не определены конкретные коды ошибок для DET или DEM [SWS_Dcm_00544].
Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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).
Callout-функция Dcm_ProcessRequestAddFile вызывается DCM для инициации службы RequestFileTransfer с режимом работы 0x01 (AddFile) ([SWS_Dcm_91078]). Она доступна через Dcm_Externals.h, имеет идентификатор службы (Service ID) 0x72 и специфицирована как нереэнтрантная (Non Reentrant), а также асинхронная ([SWS_Dcm_91078]).
Управление ходом асинхронного вызова осуществляется через параметр OpStatus:
DCM_INITIAL: все входные параметры валидны. Сюда входят путь и имя файла (filePathAndNameсfilePathAndNameLength), байтdataFormatIdentifier(старший полубайт для сжатия, младший полубайт для шифрования), а также несжатый и сжатый размер файла (fileSizeUncompressed,fileSizeCompressed) ([SWS_Dcm_91078]).DCM_PENDING,DCM_CANCELиDCM_FORCE_RCRRP_OK: в этих последующих вызовах все входные параметры установлены в0x00([SWS_Dcm_91078]).
В качестве возвращаемых значений функция возвращает E_OK при успешном выполнении, DCM_E_PENDING при продолжающейся обработке или DCM_E_FORCE_RCRRP, если приложение запрашивает отправку предварительного ответа (NRC 0x78) ([SWS_Dcm_91078], [SWS_Dcm_91086]). В случае успеха maxNumberOfBlockLength определяет максимально допустимую длину блока будущих сообщений TransferData без SID и счётчика блоков ([SWS_Dcm_91078]).
В случае ошибки функция возвращает E_NOT_OK. В этом случае через параметр ErrorCode должен быть передан отрицательный код ответа (NRC), который DCM отправляет клиенту в отрицательном диагностическом ответе ([SWS_Dcm_91078]). Если конфигурация DcmRequestFileTransferUsePort активирована, эта функциональность альтернативно предоставляется как операция порта ProcessRequestAddFile интерфейса RequestFileTransfer ([SWS_Dcm_91086]).
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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
Использование и семантика вызова
Callout-функция Dcm_ProcessRequestDeleteFile вызывается DCM, чтобы в рамках диагностической службы RequestFileTransfer инициировать удаление файла (modeOfOperation = 0x02) на сервере [SWS_Dcm_91079]. Функция объявлена в Dcm_Externals.h и работает асинхронно, а также нереэнтрантно (Non Reentrant) [SWS_Dcm_91079].
Передача и анализ осуществляются на основе параметра OpStatus:
DCM_INITIAL: указывает на старт операции. При этом все входные параметры валидны;filePathAndNameпередаёт место сохранения и имя удаляемого файла, длина которого в байтах специфицирована черезfilePathAndNameLength[SWS_Dcm_91079].DCM_PENDING,DCM_CANCELилиDCM_FORCE_RCRRP_OK: при продолжении обработки или отмене все входные параметры установлены в0x00[SWS_Dcm_91079].
В качестве возвращаемых значений функция возвращает E_OK при успешном выполнении, DCM_E_PENDING, если выполнение всё ещё продолжается и требует дальнейших вызовов, или DCM_E_FORCE_RCRRP, если приложение запрашивает отправку промежуточного сообщения с NRC 0x78 (Response Pending) [SWS_Dcm_91079], аналогично службе RequestFileTransfer [SWS_Dcm_91086].
Обработка ошибок
Если обработка завершается неудачно, функция возвращает E_NOT_OK. В этом случае через выходной параметр ErrorCode должен быть предоставлен отрицательный код ответа, который DCM передаёт тестеру в качестве отрицательного ответа (NRC) [SWS_Dcm_91079].
Это указание по использованию было автоматически сгенерировано на основе спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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).
Callout-функция Dcm_ProcessRequestReplaceFile вызывается DCM для инициации диагностического процесса для RequestFileTransfer с режимом работы 0x03 (ReplaceFile) [SWS_Dcm_91080]. Функция определена как нереэнтрантная (Non Reentrant) и асинхронная и предоставляется через заголовочный файл Dcm_Externals.h [SWS_Dcm_91080].
Управление процессом асинхронной обработки осуществляется через параметр OpStatus:
- При начальном вызове с
DCM_INITIALDCM передаёт все входные параметры валидными, включая путь и имя файла (filePathAndNameс указанием длиныfilePathAndNameLength), идентификатор для сжатия и шифрования (dataFormatIdentifier), а также несжатый и сжатый размер файла (fileSizeUncompressed,fileSizeCompressed) [SWS_Dcm_91080]. - При последующих вызовах или отмене (
DCM_PENDING,DCM_CANCEL,DCM_FORCE_RCRRP_OK) все входные параметры установлены в0x00[SWS_Dcm_91080]. - В случае успеха функция возвращает DCM через выходной параметр
maxNumberOfBlockLengthмаксимальную длину полезных данных для последующих запросовTransferData(без SID и счётчика последовательности блоков) [SWS_Dcm_91080].
В качестве возвращаемых значений предусмотрены E_OK при успешном выполнении, DCM_E_PENDING при продолжающейся обработке, а также DCM_E_FORCE_RCRRP для запроса ответа Response Pending (NRC 0x78) [SWS_Dcm_91080], [SWS_Dcm_91086]. Если выполнение завершается неудачно, функция возвращает E_NOT_OK и присваивает параметру ErrorCode соответствующий отрицательный диагностический код ответа (NRC), который DCM передаёт тестеру [SWS_Dcm_91080].
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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).
Callout-функция Dcm_ProcessRequestReadFile вызывается DCM, чтобы запустить процесс передачи файлов (служба RequestFileTransfer) с режимом работы ReadFile (modeOfOperation 0x04) [SWS_Dcm_91081]. Функция объявлена в заголовочном файле Dcm_Externals.h, работает асинхронно и является нереэнтрантной (Non Reentrant) [SWS_Dcm_91081].
Вызов выполняется через параметр состояния OpStatus: при начальном вызове DCM_INITIAL все входные параметры действительны, тогда как при последующих вызовах с DCM_PENDING, DCM_CANCEL или DCM_FORCE_RCRRP_OK они устанавливаются в 0x00 [SWS_Dcm_91081]. Приложение получает путь и имя файла через filePathAndName (длина в filePathAndNameLength), формат сжатия и шифрования через dataFormatIdentifier, а также размеры файлов через fileSizeUncompressed и fileSizeCompressed [SWS_Dcm_91081]. В качестве выходного параметра приложение должно заполнить maxNumberOfBlockLength максимальным количеством байтов для последующих ответов TransferData (без SID и счетчика последовательности блоков) [SWS_Dcm_91081].
В качестве возвращаемых значений Std_ReturnType определены E_OK при успешном выполнении, DCM_E_PENDING при все еще продолжающейся асинхронной обработке или DCM_E_FORCE_RCRRP для запроса ответа «Response Pending» (NRC 0x78) [SWS_Dcm_91081]. Если операция завершается сбоем, она возвращает E_NOT_OK; в этом случае DCM передает тестеру отрицательный ответ со значением NRC, заданным в выходном параметре ErrorCode [SWS_Dcm_91081]. Взаимодействие соответствует общей процедуре обработки службы RequestFileTransfer, аналогично тому, как она настраивается для других файловых операций, таких как ProcessRequestAddFile [SWS_Dcm_91086].
Этот текст был сгенерирован системой ИИ и опирается исключительно на спецификацию AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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).
Использование
Колбэк-функция Dcm_ProcessRequestReadDir объявляется через заголовочный файл Dcm_Externals.h и вызывается DCM для асинхронного запуска службы RequestFileTransfer с режимом работы 0x05 (ReadDir) [SWS_Dcm_91082]. Ход обработки управляется через передаваемый параметр OpStatus [SWS_Dcm_91082]. При первом вызове с DCM_INITIAL DCM передает путь или имя через filePathAndName вместе с длиной в байтах filePathAndNameLength [SWS_Dcm_91082]. При последующих вызовах или при отмене (DCM_PENDING, DCM_CANCEL, DCM_FORCE_RCRRP_OK) все входные параметры установлены в 0x00 [SWS_Dcm_91082].
В качестве выходных значений приложение должно предоставить размер данных каталога через dirInfoLength и максимально допустимый размер блока для последующих передач через maxNumberOfBlockLength [SWS_Dcm_91082]. Помимо E_OK при успешном выполнении, функция может возвращать DCM_E_PENDING, если операция все еще продолжается, или DCM_E_FORCE_RCRRP, чтобы инициировать отправку промежуточного ответа (NRC 0x78) [SWS_Dcm_91082].
Обработка ошибок
При возникновении ошибки функция должна возвращать E_NOT_OK. В этом случае DCM считывает параметр ErrorCode и передает его значение тестеру в качестве отрицательного кода ответа (NRC) [SWS_Dcm_91082]. Специфические сообщения DET или DEM для данного интерфейса не предусмотрены; поэтому проверка ошибок переданного пути, предположительно, полностью возлагается на реализацию на стороне приложения. Вопрос Q-278dbc3db7b4363b (открытый)
Параллелизм и взаимодействие
Функция специфицирована как нереентерабельная (Non Reentrant) и, следовательно, не должна вызываться параллельно для нескольких диагностических запросов [SWS_Dcm_91082]. Она входит в группу интерфейсов службы RequestFileTransfer, подключение которой может регулироваться конфигурационными параметрами [SWS_Dcm_91086].
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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).
Использование и контекст вызова
Колбэк-функция Dcm_WriteFile вызывается DCM, когда через UDS-службу TransferData (0x36) принимаются данные и активен процесс загрузки, ранее запущенный с помощью RequestFileTransfer с режимами 0x01 (AddFile) или 0x03 (ReplaceFile) [SWS_Dcm_01444]. Интерфейс доступен через Dcm_Externals.h [SWS_Dcm_91083].
Значения параметров зависят от статуса выполнения OpStatus [SWS_Dcm_91083]:
DCM_INITIAL: все входные параметры действительны. УказательDataссылается на записываемые полезные данные, аDataLengthуказывает их длину в байтах. ЗначениеDataLengthне превышает максимальную длину блока (NumberOfBlockLength), ранее согласованную вDcm_ProcessRequestFileTransfer.DCM_PENDING,DCM_CANCELиDCM_FORCE_RCRRP_OK: все входные параметры установлены в0x00.
Асинхронная семантика и возвращаемые значения
Функция работает асинхронно и является нереентерабельной (Non Reentrant) [SWS_Dcm_91083]. Она возвращает следующие значения состояния:
E_OK: операция записи успешно завершена.DCM_E_PENDING: обработка еще не завершена и требует дальнейших вызовов.DCM_E_FORCE_RCRRP: приложение запрашивает отправку ответа ожидания (Response Pending, NRC 0x78).E_NOT_OK: операция завершилась сбоем.
Обработка ошибок
Если Dcm_WriteFile возвращает значение E_NOT_OK, модуль DCM отправляет отрицательный UDS-ответ, чей NRC соответствует значению, предоставленному через выходной параметр ErrorCode [SWS_Dcm_91083].
Этот текст был сгенерирован системой на базе ИИ и подлежит обязательной сверке со спецификацией AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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).
Колбэк-функция Dcm_ReadFileOrDir вызывается модулем DCM, когда в рамках текущей выгрузки файла или каталога (ранее запущенной через UDS-службу RequestFileTransfer с режимом 0x04 для ReadFile или 0x05 для ReadDir) поступает корректный по формату запрос для UDS-службы TransferData (0x36) [SWS_Dcm_01445]. Функция служит для предоставления данных, отправляемых клиенту в качестве ответа [SWS_Dcm_91085]. Объявление интерфейса доступно через заголовочный файл Dcm_Externals.h [SWS_Dcm_91085].
Выполнение происходит асинхронно и специфицировано как нереентерабельное (Non Reentrant) [SWS_Dcm_91085]. Взаимодействие и значения параметров зависят от переданного рабочего статуса:
- Рабочий статус (
OpStatus): при начальном вызове сDCM_INITIALвсе входные параметры действительны. При последующих вызовах или вызовах отмены сDCM_PENDING,DCM_CANCELилиDCM_FORCE_RCRRP_OKвсе входные параметры установлены в0x00[SWS_Dcm_91085]. - Буфер и длина блока: параметр
DataLengthна входе передает максимально допустимую длину блока (соответствующую значениюmaxNumberOfBlockLength, сообщенному клиенту), а на выходе возвращает фактическую длину в байтах, предоставленную вData, которая не должна превышать входное значение [SWS_Dcm_91085]. Интерпретация: хотяDataв интерфейсе формально объявлен как входной параметр, он, вероятно, служит для передачи считываемых полезных данных. Вопрос Q-53de8a0bdbc4a2b4 (открытый) - Возвращаемые значения: операция возвращает
E_OKпри успешном предоставлении данных,DCM_E_PENDINGпри еще не завершенной обработке илиDCM_E_FORCE_RCRRP, если приложение хочет принудительно инициировать отправку промежуточного сообщения (Response Pending, NRC 0x78) [SWS_Dcm_91085].
Если обработка в приложении завершается сбоем, возвращается E_NOT_OK. В этом случае ошибки модуль DCM передает клиенту отрицательный UDS-ответ (NRC), код ошибки которого соответствует значению, установленному в выходном параметре ErrorCode [SWS_Dcm_91085].
Этот текст был сгенерирован ИИ и служит в качестве справочного материала. Определяющее значение имеют официальные спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I2)
функция Dcm_MainFunction [SWS_Dcm_00053] 📄 PDF
void Dcm_MainFunction (void);
This service is used for processing the tasks of the main loop.
Функция Dcm_MainFunction служит для обработки центральных задач основного цикла Diagnostic Communication Manager ([SWS_Dcm_00053]). Она имеет сигнатуру void Dcm_MainFunction(void) и не возвращает значений. Поскольку она предоставляется через заголовочный файл SchM_Dcm.h, ее вызов, вероятно, должен происходить циклически в контексте задачи планировщика базового программного обеспечения. Вопрос Q-e083a72aae447ab5 (открытый)
Важнейшей задачей является управление и продолжение асинхронных процессов через границы циклов:
- Если операция с
Dcm_OpStatusTypeвозвращает значениеDCM_E_PENDING, DCM повторно вызывает операцию при каждом вызовеDcm_MainFunctionсOpStatus = DCM_PENDING, пока сохраняется этот статус ([SWS_Dcm_00530]). - Если
Dem_ClearDTC()возвращает статусDEM_PENDING, функция повторно вызывается в следующем циклеDcm_MainFunction; DCM при необходимости отправляет NRC 78 (ResponsePending) ([SWS_Dcm_00703]). - Вызовы
Dem_SetDTCFilter()с установленным параметромFilterForFault-DetectionCounterобязательно должны выполняться в контекстеDcm_MainFunction([SWS_Dcm_00519]). - После подтверждения передачи RCR-RP DCM снова вызывает операции, такие как
Dcm_WriteMemoryилиDcm_ReadMemory, изDcm_MainFunctionсOpStatus = DCM_FORCE_RCRRP_OK([SWS_Dcm_00529], [SWS_Dcm_00838], [SWS_Dcm_00840]). - Если при
Xxx_GetSecurityAttemptCounterвозвращается значениеDCM_E_PENDING, вызов прерывается и продолжается в следующем цикле ([SWS_Dcm_01351]); при превышении сконфигурированного тайм-аута DCM отменяет отложенную операцию сOpStatus = DCM_CANCEL([SWS_Dcm_01352]).
Это указание по использованию сгенерировано автоматически на основе спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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
Функция Xxx_GetSeed (предоставляемая через Dcm_Externals.h) служит для асинхронного предоставления значения Seed приложением для модуля DCM [SWS_Dcm_01151]. Она вызывается, как только принимается UDS-запрос службы SecurityAccess (0x27) с типом подфункции «requestSeed» и запрошенный уровень безопасности ещё не активен [SWS_Dcm_00862], [SWS_Dcm_00324].
Контекст вызова и параметры
Интерфейс определён как нереентерабельный (Non Reentrant) и функционирует асинхронно [SWS_Dcm_01151]:
SecurityAccessDataRecord: указатель на дополнительные входные данные для вычисления Seed; минимальный размер составляет один байт согласноDcmDspSecurityADRSize[SWS_Dcm_01151].OpStatus: указывает текущий статус асинхронной операции [SWS_Dcm_01151].Seed: выходной указатель, через который приложение предоставляет вычисленный Seed [SWS_Dcm_01151].ErrorCode: выходной параметр для возврата отрицательного кода ошибки (NRC) [SWS_Dcm_01151].
Возвращаемые значения и обработка ошибок
E_OK: Seed успешно определён и предоставлен [SWS_Dcm_01151].DCM_E_PENDING: вычисление ещё не завершено; для окончания необходимы последующие вычисления или вызовы [SWS_Dcm_01151].E_NOT_OK: запрос завершился неудачей. В этом случае модуль DCM отправляет отрицательный UDS-ответ со значением NRC, переданным в параметреErrorCode[SWS_Dcm_01151], [SWS_Dcm_00659].
Указания по интеграции
В зависимости от конфигурации DcmDspSecurityUsePort привязка осуществляется как функция Си в USE_ASYNCH_FNC (ссылка через DcmDspSecurityGetSeedFnc) [SWS_Dcm_00862] или как операция Rte в USE_ASYNCH_CLIENT_SERVER [SWS_Dcm_00324]. Если дополнительные данные доступа передавать не требуется, используется альтернативная сигнатура функции без параметра SecurityAccessDataRecord [SWS_Dcm_91003].
Данное указание по использованию было создано автоматически на основе спецификации AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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
Функция Xxx_GetSeed служит асинхронным интерфейсом модуля DCM к приложению для предоставления значения seed в рамках службы UDS SecurityAccess (0x27) при запросе типа «requestSeed» [SWS_Dcm_91003], [SWS_Dcm_00862]. Вызов выполняется субмодулем DCM DSP, если уровень безопасности еще не активен и конфигурация предусматривает USE_ASYNCH_CLIENT_SERVER или USE_ASYNCH_FNC [SWS_Dcm_00324], [SWS_Dcm_00862].
Интерфейс реализован как асинхронный и нереентерабельный (Non Reentrant) [SWS_Dcm_91003]. Управление ходом обработки осуществляется через входной параметр OpStatus (тип Dcm_OpStatusType) [SWS_Dcm_91003]. В качестве возвращаемых значений определены E_OK при успешном предоставлении, E_NOT_OK в случае ошибки, а также DCM_E_PENDING, если генерация seed все еще продолжается и требуются дальнейшие вызовы [SWS_Dcm_91003]. Сгенерированное значение передается через указатель Seed (буфер Inout/Out) [SWS_Dcm_91003].
Если операция завершается неудачно и Xxx_GetSeed возвращает E_NOT_OK, модуль DCM должен отправить отрицательный ответ (NRC) с кодом ошибки, который был установлен через выходной параметр ErrorCode (Dcm_NegativeResponseCodeType) [SWS_Dcm_91003], [SWS_Dcm_00659]. Служба объявлена через заголовочный файл Dcm_Externals.h [SWS_Dcm_91003].
Этот текст был сгенерирован ИИ на основе стандарта AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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)
Функция Xxx_CompareKey вызывается модулем Diagnostic Communication Manager ([SWS_Dcm_91004]) асинхронно и нереентерабельно для сверки полученного ключа в рамках UDS-службы SecurityAccess (0x27, подфункция sendKey) с внутренней логикой приложения ([SWS_Dcm_00863]). Она используется, если статус доступа еще не активен, запрос seed был успешным и параметр конфигурации DcmDspSecurityUsePort установлен в USE_ASYNCH_CLIENT_SERVER ([SWS_Dcm_00324]) либо согласно [SWS_Dcm_00863] функциональный интерфейс был сконфигурирован через USE_ASYNCH_FNC/DcmDspSecurityCompareKeyFnc. Интерфейс объявлен в Dcm_Externals.h ([SWS_Dcm_91004]).
Передача включает указатель на проверяемый ключ Key, текущий статус операции OpStatus (типа Dcm_OpStatusType), а также указатель ErrorCode для выдаваемого в случае ошибки кода отрицательного ответа ([SWS_Dcm_91004]). В качестве возвращаемых значений специфицированы:
E_OK: проверка ключа успешна ([SWS_Dcm_91004]).DCM_E_PENDING: проверка еще не завершена; для завершения требуются дальнейшие вызовы модулем DCM ([SWS_Dcm_91004]).E_NOT_OK: обработка не удалась. Затем DCM отправляет отрицательный ответ UDS с кодом NRC, установленным вErrorCode, не изменяя внутренний уровень безопасности и не увеличивая счетчик неудачных попыток (AttemptCounter) ([SWS_Dcm_01150]).DCM_E_COMPARE_KEY_FAILED: ключ не совпадает ([SWS_Dcm_91004]).
Если сравнение ключа завершается неудачно (DCM_E_COMPARE_KEY_FAILED), при сконфигурированном DcmDspSecurityNumAttDelay инкрементируется AttemptCounter ([SWS_Dcm_01397]). Если значение счетчика ниже предельного значения, DCM отправляет NRC 0x35 (InvalidKey) ([SWS_Dcm_00660]). Если количество неудачных попыток достигает или превышает сконфигурированный предел DcmDspSecurityNumAttDelay, DCM запускает SecurityDelayTimer с длительностью DcmDspSecurityDelayTime и отправляет NRC 0x36 (exceededNumberOfAttempts) ([SWS_Dcm_01349]). В обоих случаях уровень безопасности остается без изменений.
Это указание по использованию было сгенерировано автоматически и основано на спецификациях модуля DCM стандарта AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I3)
функция 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
Асинхронная и нереентерабельная функция [SWS_Dcm_01152] при инициализации DCM считывает из приложения текущий счётчик неудачных попыток для сконфигурированного уровня безопасности. Вызов выполняется для каждой записи в DcmDspSecurityRow, в которой параметр конфигурации DcmDspSecurityAttemptCounterEnabled установлен в TRUE [SWS_Dcm_01154].
Управление последовательностью выполнения осуществляется через параметр OpStatus со значениями DCM_INITIAL, DCM_PENDING или DCM_CANCEL [SWS_Dcm_01152]. Если функция возвращает DCM_E_PENDING, DCM прерывает цепочку вызовов и возобновляет её в следующем цикле Dcm_MainFunction() [SWS_Dcm_01351]. Если контроль времени DcmDspSecurityMaxAttemptCounterReadoutTime, сконфигурированный после первого цикла, превышен, DCM прерывает ещё ожидающую операцию с помощью DCM_CANCEL [SWS_Dcm_01352].
В случае успеха интерфейс возвращает E_OK и передаёт показание счётчика через выходной параметр AttemptCounter [SWS_Dcm_01152]. Если вызов возвращает E_NOT_OK, DCM автоматически устанавливает счётчик в значение, сконфигурированное для этого уровня безопасности DcmDspSecurityNumAttDelay [SWS_Dcm_01156].
Пока все значения счётчиков не будут окончательно определены или прерваны, DCM отклоняет любой запрос на SecurityAccess (0x27) для запроса Seed с отрицательным кодом ответа conditionsNotCorrect (0x22) [SWS_Dcm_01354]. После завершения цепочки опроса DCM проверяет значения счётчиков: если хотя бы один счётчик достигает или превышает пороговое значение DcmDspSecurityNumAttDelay, DCM запускает SecurityDelayTimer с большим значением из DcmDspSecurityDelayTimeOnBoot и DcmDspSecurityDelayTime [SWS_Dcm_01355].
Данное указание по использованию было создано автоматически на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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
Функция Xxx_SetSecurityAttemptCounter служит для установки счётчика попыток для конкретного уровня безопасности в приложении ([SWS_Dcm_01153]). Она предоставляется через заголовочный файл Dcm_Externals.h.
Вызов и семантика
Выполнение происходит асинхронно и специфицировано как нереентерабельное (Non Reentrant) ([SWS_Dcm_01153]). Вызов управляет ходом выполнения через параметр OpStatus со значениями DCM_INITIAL, DCM_PENDING или DCM_CANCEL. Новое значение счётчика передаётся через входной параметр AttemptCounter (uint8).
Возвращаемые значения и обработка ошибок
В качестве возвращаемого типа используется Std_ReturnType ([SWS_Dcm_01153]):
E_OK: запрос успешно завершён.E_NOT_OK: выполнение завершилось неудачно.DCM_E_PENDING: обработка ещё не окончена; для завершения требуются дальнейшие вызовы.
Если текущая асинхронная операция прерывается, DCM передаёт статус DCM_CANCEL ([SWS_Dcm_01153]).
Взаимодействие и граничные условия
Модуль DCM вызывает Xxx_SetSecurityAttemptCounter, как только он изменил счётчик попыток, чтобы уведомить приложение об обновлении ([SWS_Dcm_01155]). Это предполагает, что параметр конфигурации DcmDspSecurityAttemptCounterEnabled для соответствующего DcmDspSecurityRow сконфигурирован в TRUE ([SWS_Dcm_01155]). Поскольку интерфейс не является реентерабельным, приложение должно исключить параллельное выполнение для одного и того же экземпляра ([SWS_Dcm_01153]).
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Синхронная функция Xxx_ReadData запрашивает у приложения текущее значение данных DID или PID, если конфигурационный параметр DcmDspDataUsePort установлен в USE_DATA_SYNCH_CLIENT_SERVER [SWS_Dcm_00793]. Интерфейс предоставляется через заголовочный файл Dcm_Externals.h и имеет Service ID 0x34 [SWS_Dcm_00793]. Вызванное приложение копирует запрошенные полезные данные непосредственно в переданный буфер Data [SWS_Dcm_00793].
В отношении возвращаемого значения установлено, что вызов без исключения возвращает E_OK [SWS_Dcm_00793]. Специфические коды ошибок, отрицательные ответы или сообщения DET/DEM для этой сигнатуры не специфицированы. Интерпретация: сбой предоставления данных на этом уровне интерфейса, вероятно, не предусмотрен, так как в отличие от асинхронного варианта [SWS_Dcm_91005] не существует ни параметра ErrorCode для кодов отрицательного ответа (NRC), ни возвращаемых значений, таких как E_NOT_OK или DCM_E_PENDING. Вопрос Q-adcf0171ecfd37c4 (открытый)
Относительно конкурентности и граничных условий функция специфицирована как не reentrant (Non Reentrant) и работает полностью синхронно [SWS_Dcm_00793]. Взаимодействие с диагностическими запросами осуществляется в нескольких сценариях:
- При получении запроса службы OBD $01 с PID, отличными от PID доступности, DCM вызывает соответствующие сконфигурированные функции
Xxx_ReadDataдля всех данных PID, чтобы получить значения ответа [SWS_Dcm_00408]. - При UDS-запросе службы 0x22 (ReadDataByIdentifier) с идентификаторами, отличными от идентификаторов доступности, DCM вызывает функции для всех данных
OBDDataIdentifier[SWS_Dcm_01380], а такжеOBDInfoTypeDataIdentifier[SWS_Dcm_01389]. - Если же требуется асинхронное поведение, задействуются отдельные сигнатуры с
OpStatusсогласно [SWS_Dcm_91006] или [SWS_Dcm_91005].
Этот текст был создан ИИ и основан исключительно на спецификациях релиза R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Функция Xxx_ReadData служит для того, чтобы асинхронно опрашивать значения данных DID или PID у приложения, если параметр DcmDspDataUsePort сконфигурирован на USE_DATA_ASYNCH_CLIENT_SERVER ([SWS_Dcm_91006]). Она объявляется через заголовочный файл Dcm_Externals.h ([SWS_Dcm_91006]).
При вызове параметр OpStatus (тип Dcm_OpStatusType) управляет ходом текущей операции, тогда как через указатель Data (тип uint8*) передается выходной буфер, в который необходимо скопировать запрошенные данные ([SWS_Dcm_91006]). В качестве возвращаемых значений определены E_OK при успешном завершении и DCM_E_PENDING, если обработка все еще продолжается и требует дальнейших вызовов для завершения ([SWS_Dcm_91006]).
Модуль DCM интегрирует эту функцию в следующие диагностические процессы:
- При получении OBD Service $01 DCM считывает текущие значения PID (за исключением PID доступности) через сконфигурированные функции
Xxx_ReadData([SWS_Dcm_00408]). - При UDS Service 0x22 (
ReadDataByIdentifier) DCM вызывает функцию для OBDDataIdentifier ([SWS_Dcm_01380]) и OBDInfoTypeDataIdentifier ([SWS_Dcm_01389]).
В отношении выполнения функция специфицирована как не reentrant (Non Reentrant) ([SWS_Dcm_91006]). В отличие от синхронного интерфейса ([SWS_Dcm_00793]) или асинхронного варианта с дополнительным параметром ErrorCode ([SWS_Dcm_91005]) данная реализация функции не предусматривает прямого возврата кода отрицательного ответа.
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I3)
функция 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.
Функция Xxx_ReadData асинхронно запрашивает у приложения значение данных DID или PID, если параметр конфигурации DcmDspDataUsePort установлен в USE_DATA_ASYNCH_CLIENT_SERVER [SWS_Dcm_91005]. Объявление функции предоставляется через файл интерфейса Dcm_Externals.h [SWS_Dcm_91005].
Интерфейс обладает следующими характеристиками вызова и выполнения:
- Семантика и параметры: входной параметр
OpStatusуправляет ходом текущей операции [SWS_Dcm_91005]. При успешном завершении запрошенные полезные данные копируются в выходной буферDataи возвращаетсяE_OK[SWS_Dcm_91005]. Если приложению требуется дополнительное время на обработку, оно сигнализируетDCM_E_PENDING, после чего требуются последующие действия [SWS_Dcm_91005]. - Обработка ошибок: если операция завершается сбоем и возвращает
E_NOT_OK, модуль DCM анализирует выходной параметрErrorCodeи отправляет отрицательный диагностический ответ с этим кодом NRC [SWS_Dcm_91005]. - Параллелизм: функция определена как нереентерабельная (
Non Reentrant) [SWS_Dcm_91005]. Интерпретация: повторные вызовы при незавершенной обработке, вероятно, выполняются последовательно в цикле основной обработки DCM. Вопрос Q-541226d5f242f7c2 (открытый) - Взаимодействие: модуль DCM вызывает функцию при запросах OBD Service $01 для PID недоступности [SWS_Dcm_00408], а также при UDS-сервисе ReadDataByIdentifier (0x22) для
OBDDataIdentifier[SWS_Dcm_01380] иOBDInfoTypeDataIdentifier[SWS_Dcm_01389]. По сравнению с синхронным вариантом [SWS_Dcm_00793] или асинхронными интерфейсами без параметра NRC [SWS_Dcm_91006] данная сигнатура обеспечивает передачу конкретной отрицательной ошибки.
Этот текст сгенерирован ИИ и основан исключительно на требованиях спецификации AUTOSAR релиза R20-11.
Руководство разработчика реализации в подготовке (сложность I3)
функция 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.
Использование
Функция Xxx_WriteData вызывается модулем Diagnostic Communication Manager (DCM), чтобы запросить приложение на запись значения данных DID (Data Identifier) ([SWS_Dcm_00794]). Объявление предоставляется через заголовочный файл Dcm_Externals.h. Вызов выполняется синхронно под service ID 0x51 ([SWS_Dcm_00794]).
Параметры и возвращаемые значения:
Data(in): указатель на буфер с записываемыми полезными данными ([SWS_Dcm_00794]).ErrorCode(out): указатель на переменную, в которую в случае сбоя должен быть внесен отрицательный код диагностики (NRC) ([SWS_Dcm_00794]).- Возвращаемое значение (
Std_ReturnType):E_OKсигнализирует об успешной записи,E_NOT_OK— о сбое операции ([SWS_Dcm_00794]).
Обработка ошибок
Если функция возвращает E_NOT_OK, модуль DCM считывает параметр ErrorCode и отправляет отрицательный диагностический ответ с этим кодом NRC ([SWS_Dcm_00794]).
Параллелизм и ограничения
Функция специфицирована как нереентерабельная (Non Reentrant) ([SWS_Dcm_00794]) и не должна выполняться параллельно.
Взаимодействие
Поскольку параметр длины отсутствует, этот вариант, вероятно, предназначен для DID с фиксированной длиной данных. Вопрос Q-ebc074ac1cb66aaa (открытый) Для DID с переменной длиной AUTOSAR предоставляет синхронную сигнатуру с параметром DataLength ([SWS_Dcm_91007]). Кроме того, для длительных процессов существуют асинхронные варианты с OpStatus и возможным возвратом DCM_E_PENDING, как с фиксированной длиной данных ([SWS_Dcm_91008]), так и с параметром переменной длины ([SWS_Dcm_91009]).
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Функция обратного вызова Xxx_WriteData служит для того, чтобы запросить у приложения запись значения данных Data Identifier (DID) [SWS_Dcm_91007]. Интерфейс объявлен через заголовочный файл Dcm_Externals.h и имеет Service ID 0x52 [SWS_Dcm_91007]. Вызов происходит синхронно и специфицирован как не reentrant (Non Reentrant), поэтому параллельные вызовы для одной и той же функции не допускаются [SWS_Dcm_91007].
В качестве параметров функция принимает буфер Data с записываемыми полезными данными, а также DataLength с указанием длины в байтах [SWS_Dcm_91007]. В качестве возвращаемого значения она возвращает тип Std_ReturnType с E_OK при успешном выполнении или E_NOT_OK в случае ошибки [SWS_Dcm_91007]. Если операция завершается неудачно и возвращает E_NOT_OK, модуль DCM должен отправить отрицательный ответ диагностическому тестеру; при этом Negative Response Code (NRC) соответствует значению, переданному через параметр-указатель ErrorCode [SWS_Dcm_91007].
В общей системе [SWS_Dcm_91007] представляет собой синхронный вариант для DID с явным указанием длины. В дополнение к этому с [SWS_Dcm_00794] (Service ID 0x51) существует синхронный вариант без параметра DataLength. Для более длительных процессов записи стандарт предусматривает асинхронные интерфейсы: [SWS_Dcm_91008] (Service ID 0x35) без указания длины, а также [SWS_Dcm_91009] (Service ID 0x3e) с DataLength. Обе асинхронные функции управляются через OpStatus и могут наряду с E_OK и E_NOT_OK также возвращать DCM_E_PENDING [SWS_Dcm_91008] [SWS_Dcm_91009].
Это указание по использованию было автоматически сгенерировано на основе спецификации AUTOSAR Classic Release R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Использование
Функция Xxx_WriteData запрашивает у приложения запись значения данных Data Identifier (DID) [SWS_Dcm_91008]. Она объявлена в заголовочном файле Dcm_Externals.h и обладает асинхронной семантикой выполнения с Service ID 0x35 [SWS_Dcm_91008].
Параметры и возвращаемые значения подразделяются следующим образом [SWS_Dcm_91008]:
Data(IN): указатель на буфер, содержащий записываемые данные.OpStatus(IN): статус текущей операции для управления ходом асинхронного вызова.ErrorCode(OUT): указатель на код ошибки (NRC), который устанавливается в случае ошибки.- Возвращаемое значение (
Std_ReturnType):E_OKподтверждает успешный процесс записи,E_NOT_OKсообщает о сбое, аDCM_E_PENDINGуказывает на то, что операция все еще продолжается и требует дальнейших вызовов для завершения.
Обработка ошибок и параллелизм
Если вызов возвращает значение E_NOT_OK, модуль DCM должен отправить отрицательный ответ со значением NRC, переданным в выходном параметре ErrorCode [SWS_Dcm_91008]. Функция специфицирована как не reentrant [SWS_Dcm_91008], так что одновременные или перекрывающиеся вызовы для одного и того же экземпляра недопустимы.
Взаимодействие и варианты
Этот интерфейс согласно [SWS_Dcm_91008] охватывает асинхронный доступ на запись без отдельного параметра длины. AUTOSAR определяет для этого родственные варианты в DCM: синхронную сигнатуру без указания длины [SWS_Dcm_00794], а также сигнатуры с дополнительным параметром DataLength для синхронных [SWS_Dcm_91007] и асинхронных процессов [SWS_Dcm_91009].
Это указание по использованию было сгенерировано системой ИИ на основе спецификации AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Использование и семантика
Функция Xxx_WriteData запрашивает у приложения запись значения данных идентификатора данных (DID) [SWS_Dcm_91009]. Она объявляется через заголовочный файл Dcm_Externals.h и имеет идентификатор службы 0x3e [SWS_Dcm_91009]. Выполнение происходит асинхронно (Asynchronous), для чего передаются следующие параметры:
Data(in): указатель на буфер с записываемыми полезными данными [SWS_Dcm_91009].DataLength(in): длина записываемых данных в байтах [SWS_Dcm_91009].OpStatus(in): статус операции (Dcm_OpStatusType) для управления ходом асинхронной обработки [SWS_Dcm_91009].ErrorCode(out): указатель для получения кода отрицательного ответа (NRC) в случае ошибки [SWS_Dcm_91009].
В качестве возвращаемых значений типа Std_ReturnType определены E_OK (запрос на запись успешно завершён), E_NOT_OK (сбой запроса), а также DCM_E_PENDING [SWS_Dcm_91009]. Статус DCM_E_PENDING сигнализирует о том, что процесс ещё не завершён и для его окончания требуются дальнейшие последующие вызовы [SWS_Dcm_91009]. Интерпретация: вероятно, DCM циклически вызывает функцию снова при возврате DCM_E_PENDING с продолженным OpStatus до тех пор, пока не будет получен окончательный результат. Вопрос Q-fdbd734dab052f5c (открытый)
Обработка ошибок и параллелизм
Если функция возвращает значение E_NOT_OK, через параметр ErrorCode должен быть предоставлен соответствующий код ошибки; модуль DCM после этого отправляет отрицательный ответ с этим значением NRC [SWS_Dcm_91009]. Специфические сообщения DET или DEM в полезной нагрузке для данного интерфейса не определены. Что касается параллелизма, функция специфицирована как нереэнтрантная (Non Reentrant) [SWS_Dcm_91009].
Взаимодействие и варианты интерфейса
Сигнатура [SWS_Dcm_91009] охватывает асинхронные операции записи с явным указанием длины. В DCM существуют другие варианты Xxx_WriteData:
- Синхронное выполнение без указания длины: [SWS_Dcm_00794] (идентификатор службы
0x51). - Синхронное выполнение с указанием длины: [SWS_Dcm_91007] (идентификатор службы
0x52). - Асинхронное выполнение без указания длины: [SWS_Dcm_91008] (идентификатор службы
0x35).
Примечание: данное указание по использованию было создано автоматически на основе спецификации AUTOSAR Classic для релиза R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Использование
С помощью функции Xxx_ReadDataLength модуль DCM запрашивает у приложения определение и возврат длины данных некоторого элемента данных в байтах [SWS_Dcm_00796]. Интерфейс объявлен в заголовочном файле Dcm_Externals.h и имеет Service-ID 0x36 [SWS_Dcm_00796]. Запрос выполняется синхронно [SWS_Dcm_00796]. Через выходной параметр DataLength типа uint16* приложение передает модулю DCM длину читаемых данных в байтах [SWS_Dcm_00796]. Входные или входные/выходные параметры не определены [SWS_Dcm_00796]. В качестве возвращаемого значения функция всегда возвращает E_OK типа Std_ReturnType [SWS_Dcm_00796].
Параллелизм и ограничения
Интерфейс специфицирован как нереентерабельный (Non Reentrant) [SWS_Dcm_00796]. Поскольку функция работает синхронно и по спецификации всегда сообщает E_OK, для этого вызова не предусмотрено специфических кодов ошибок или отклоняющихся возвратов статуса [SWS_Dcm_00796].
Взаимодействие
Наряду с синхронной функцией существует одноименный асинхронный вариант с Service-ID 0x4c, который также предоставляется через Dcm_Externals.h [SWS_Dcm_91010]. В то время как синхронная версия [SWS_Dcm_00796] обходится без статуса операции, асинхронный аналог требует входной параметр OpStatus типа Dcm_OpStatusType [SWS_Dcm_91010]. Кроме того, асинхронный интерфейс наряду с E_OK может возвращать значение DCM_E_PENDING, если запрос еще не завершен и требует дальнейших вызовов для завершения [SWS_Dcm_91010].
Этот текст был сгенерирован ИИ и служит в качестве вспомогательного руководства. Обязательными являются требования соответствующей спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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.
Функция [SWS_Dcm_91010] (Service-ID 0x4c) запрашивает у приложения определение длины элемента данных в байтах. Она объявлена в заголовке Dcm_Externals.h и служит модулю Diagnostic Communication Manager (DCM) для гибкого запроса длины диагностических данных.
Использование и семантика
При вызове модуль DCM передает текущий ход выполнения через входной параметр OpStatus типа Dcm_OpStatusType ([SWS_Dcm_91010]). Результат запроса приложение записывает в выходной параметр DataLength (тип uint16*). Если длина данных недоступна непосредственно, функция сигнализирует через возвращаемое значение DCM_E_PENDING, что обработка продолжается и требуются дальнейшие вызовы ([SWS_Dcm_91010]). Как только результат готов, приложение сообщает о завершении возвратом E_OK.
Параллелизм и ограничения
Согласно спецификации функция классифицирована как нереентерабельная ([SWS_Dcm_91010]), поэтому одновременные вызовы со стороны DCM должны быть исключены. Поскольку спецификация не предусматривает конкретных значений ошибок, кроме DCM_E_PENDING, DCM при возврате E_OK, вероятно, всегда исходит из корректно установленного размера в байтах. Вопрос Q-e7ecd3a518e2cbcb (открытый)
Взаимодействие
Асинхронный интерфейс [SWS_Dcm_91010] отличается от родственного синхронного варианта [SWS_Dcm_00796] (Service-ID 0x36). Последний не имеет параметра OpStatus, выполняется синхронно и всегда возвращает длину непосредственно с E_OK. Напротив, [SWS_Dcm_91010] позволяет приложению распределять трудоемкие вычисления асинхронно по нескольким циклам вызова.
Этот текст был создан ИИ на основе спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Синхронная функция callout Xxx_ConditionCheckRead предоставляется через заголовочный файл Dcm_Externals.h и служит для того, чтобы запросить у приложения, выполнены ли условия для считывания диагностических данных [SWS_Dcm_00797].
Интерфейс не имеет входных параметров и сигнализирует о статусе проверки через возвращаемое значение типа Std_ReturnType [SWS_Dcm_00797]:
E_OK: проверка прошла успешно, условия для чтения данных выполнены [SWS_Dcm_00797].E_NOT_OK: проверка завершилась неудачно, считывание недопустимо [SWS_Dcm_00797].
Если функция возвращает E_NOT_OK, модуль DCM отправляет отрицательный ответ (Negative Response) с кодом ошибки, который приложение передало через выходной параметр ErrorCode (тип Dcm_NegativeResponseCodeType*) [SWS_Dcm_00797].
Относительно параллелизма функция специфицирована как нереентерабельная (Non Reentrant) и выполняется синхронно с идентификатором службы 0x49 [SWS_Dcm_00797]. Поэтому проверка на стороне приложения должна вычисляться непосредственно без блокирующих задержек во избежание замедления синхронной вызывающей стороны DCM. Вопрос Q-ada29c78c29d961e (открытый)
В отличие от этой синхронной операции, [SWS_Dcm_91011] определяет асинхронный вариант под идентификатором службы 0x37. Он дополнительно использует входной параметр OpStatus (тип Dcm_OpStatusType) и помимо E_OK и E_NOT_OK может также возвращать DCM_E_PENDING, если для завершения проверки необходимы последующие шаги [SWS_Dcm_91011].
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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.
Использование и семантика
Функция Xxx_ConditionCheckRead предоставляется через заголовочный файл Dcm_Externals.h и служит для запроса у прикладного программного обеспечения, выполнены ли условия для считывания диагностических данных [SWS_Dcm_91011]. Выполнение происходит под Service-ID 0x37 асинхронно [SWS_Dcm_91011]. Через входной параметр OpStatus (тип Dcm_OpStatusType) передается текущий статус выполняемой операции [SWS_Dcm_91011].
Возвращаемые значения и обработка ошибок
В качестве возвращаемого значения функция возвращает статус типа Std_ReturnType [SWS_Dcm_91011]:
E_OK: запрос был успешен, и условия считывания выполнены [SWS_Dcm_91011].E_NOT_OK: проверка завершилась неудачно [SWS_Dcm_91011]. В этом случае приложение должно через выходной параметрErrorCodeустановить код отрицательного ответа (NRC) типаDcm_NegativeResponseCodeType; модуль DCM затем отправляет отрицательный ответ с этим NRC [SWS_Dcm_91011].DCM_E_PENDING: проверка еще не завершена, поэтому для завершения требуются дальнейшие вызовы [SWS_Dcm_91011].
Параллелизм и разграничение
Интерфейс специфицирован как нереентерабельный (Non Reentrant) [SWS_Dcm_91011]. В отличие от этого асинхронного варианта, [SWS_Dcm_00797] под Service-ID 0x49 определяет синхронную сигнатуру без параметра OpStatus, которая возвращает исключительно E_OK или E_NOT_OK [SWS_Dcm_00797].
Это указание по использованию сгенерировано ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
функция 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.
Асинхронный интерфейс Xxx_GetScalingInformation предоставляется через заголовок Dcm_Externals.h и служит для запроса информации о масштабировании элемента данных из приложения [SWS_Dcm_91012]. Модуль DCM вызывает эту функцию, как только принимается диагностический запрос для UDS-службы ReadScalingByIdentifier, а именно для каждого элемента данных, сконфигурированного для запрошенного DID [SWS_Dcm_00394].
Параметры и возвращаемые значения
Функция определяет следующие параметры и семантику [SWS_Dcm_91012]:
OpStatus(in): передает текущий статус выполняемой операции.ScalingInfo(out): буфер для приема информации о масштабировании (scalingByteиscalingByteExtension).ErrorCode(out): принимает код отрицательного ответа, если операция завершается неудачно.
В качестве возвращаемых значений специфицированы E_OK при успешном завершении, E_NOT_OK при ошибке, а также DCM_E_PENDING, если обработка еще не завершена и для окончания требуются дальнейшие вызовы [SWS_Dcm_91012].
Обработка ошибок и параллелизм
Если вызов возвращает E_NOT_OK, модуль DCM должен отправить отрицательный ответ, NRC которого соответствует значению, предоставленному через выходной параметр ErrorCode [SWS_Dcm_91012]. Функция специфицирована как нереентерабельная (Non Reentrant) [SWS_Dcm_91012]. Интерпретация: вызывается ли эта асинхронная функция с OpStatus или альтернативно специфицированный синхронный вариант без OpStatus [SWS_Dcm_00798], вероятно, зависит от конфигурации соответствующего DID. Вопрос Q-c4054a798f17a52c (открытый)
Этот текст был создан ИИ; правильность и полнота сведений не могут быть гарантированы.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Функция Xxx_ReturnControlToECU предоставляется через заголовочный файл Dcm_Externals.h и запрашивает у приложения возврат управления входом/выходом (IOControl) электронному блоку управления (ECU) [SWS_Dcm_01285]. Вызов выполняется синхронно и специфицирован как нереэнтрантный [SWS_Dcm_01285].
Параметры и варианты
Сигнатура функции зависит от конфигурации внешней маски управления [SWS_Dcm_01285]:
- Если
DcmDspDidControlMaskустановлен вDCM_CONTROLMASK_EXTERNALи размер маски составляет до четырёх байт (DcmDspDidControlMaskSize <= 0x04), передаётся входной параметрcontrolMaskтипаDcm_ControlMask_{DID}Type[SWS_Dcm_01285]. - Если размер маски составляет пять или более байт (
DcmDspDidControlMaskSize >= 0x05), вместо этого используется указательcontrolMask2типаuint8*[SWS_Dcm_01285]. - Через выходной параметр
ErrorCode(типDcm_NegativeResponseCodeType*) функция в случае ошибки передаёт специфический отрицательный код ответа (NRC) модулю DCM [SWS_Dcm_01285].
Возвращаемые значения и обработка ошибок
Функция возвращает статус Std_ReturnType. При успешном возврате управления приложение сообщает E_OK [SWS_Dcm_01285]. Если операция завершается неудачно, функция должна возвратить E_NOT_OK; в этом случае модуль DCM отправляет диагностическому тестеру отрицательный ответ с кодом NRC, сохранённым в ErrorCode [SWS_Dcm_01285].
Взаимодействие и контекст вызова
DCM вызывает сконфигурированный интерфейс функции (параметр DcmDspDataReturnControlToEcuFnc), если DcmDspDataUsePort сконфигурирован на USE_DATA_SYNCH_FNC, USE_DATA_ASYNCH_FNC или USE_DATA_ASYNCH_FNC_ERROR [SWS_Dcm_01435]. Помимо регулярных диагностических действий, Xxx_ReturnControlToECU вызывается модулем DCM, в частности, когда активная последовательность управления входами/выходами должна быть прервана [SWS_Dcm_01435].
Это указание по использованию было сгенерировано автоматически на основе спецификации.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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.
Синхронный функциональный интерфейс Xxx_ResetToDefault предоставляется через заголовочный файл Dcm_Externals.h и служит для запроса приложения сбросить управление вводом-выводом (IOControl) к значению по умолчанию [SWS_Dcm_01286].
Контекст вызова и параметры
Функция имеет Service-ID 0x4d, работает синхронно и специфицирована как нереентерабельная [SWS_Dcm_01286]. В зависимости от сконфигурированного размера внешней маски управления передается один из двух альтернативных входных параметров:
controlMask(типDcm_ControlMask_{DID}Type) используется, когдаDcmDspDataUsePortсконфигурирован наUSE_DATA_SYNCH_FNC,DcmDspDidControlMaskустановлено наDCM_CONTROLMASK_EXTERNALиDcmDspDidControlMaskSizeсоставляет не более0x04[SWS_Dcm_01286].controlMask2(типuint8*) используется, когда при идентичных граничных условияхDcmDspDidControlMaskSizeсконфигурирован больше или равен0x05[SWS_Dcm_01286].
Возвращаемые значения и обработка ошибок
Если сброс удалось выполнить успешно, функция возвращает E_OK [SWS_Dcm_01286]. Если операция завершилась неудачно, должно быть возвращено E_NOT_OK. В этом случае приложение заполняет выходной параметр ErrorCode (тип Dcm_NegativeResponseCodeType*) соответствующим отрицательным кодом ответа (NRC), который модуль DCM передает тестеру в качестве отрицательного ответа [SWS_Dcm_01286].
Взаимодействие и разграничение
Если система рассчитана на асинхронное выполнение интерфейса через USE_DATA_ASYNCH_FNC или USE_DATA_ASYNCH_FNC_ERROR, вместо этой синхронной функции используется асинхронный вариант с дополнительным параметром OpStatus и Service-ID 0x3c [SWS_Dcm_01314].
Этот текст был сгенерирован ИИ и основан на спецификациях AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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.
Асинхронная функция [SWS_Dcm_01314] запрашивает у приложения сброс управления вводом-выводом (IOControl) к его значению по умолчанию. Она объявлена в Dcm_Externals.h и имеет Service-ID 0x3c. Через параметр OpStatus управляется ход выполнения операции. При еще не завершенной обработке функция возвращает DCM_E_PENDING, тогда как успешное завершение подтверждается значением E_OK.
В зависимости от конфигурации и размера маски (от DcmDspDidControlMaskSize до 4 байт или от 5 байт) при внешней маскировке дополнительно передается controlMask или controlMask2 соответственно [SWS_Dcm_01314]. Если сброс завершается неудачно, функция возвращает E_NOT_OK. В этом случае через выходной параметр ErrorCode должен передаваться отрицательный код ответа (NRC), который модуль DCM отправляет тестеру в виде отрицательного ответа (negative response) [SWS_Dcm_01314].
Функция специфицирована как нереентерабельная (Non Reentrant) [SWS_Dcm_01314]. Она используется, когда DcmDspDataUsePort установлено на USE_DATA_ASYNCH_FNC или USE_DATA_ASYNCH_FNC_ERROR. Для синхронных конфигураций интерфейса (USE_DATA_SYNCH_FNC) альтернативно существует синхронный вариант без OpStatus [SWS_Dcm_01286].
Этот текст был создан ИИ и основан на состоянии спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Использование
Синхронная функция Xxx_FreezeCurrentState (представленная в каталоге элементов как Xxx_FreezeCurrentStateManager) служит для того, чтобы запросить у приложения фиксацию текущего состояния управления входом/выходом (IOControl) [SWS_Dcm_01290]. Функция доступна через заголовочный файл Dcm_Externals.h и имеет идентификатор службы (Service ID) 0x4a AUTOSAR_SWS_DiagnosticCommunicationManager с. 279. (Интерпретация: префикс Xxx, вероятно, выступает в качестве заполнителя для соответствующего модуля приложения.) Вопрос Q-f8c864cda732acc2 (открытый)
Параметры интерфейса определяются конфигурацией внешней маски управления (DcmDspDidControlMask на DCM_CONTROLMASK_EXTERNAL) [SWS_Dcm_01290]:
controlMask(вход, типDcm_ControlMask_{DID}Type): передаётся, если размер маскиDcmDspDidControlMaskSizeсконфигурирован меньше или равен 4 байтам (<= 0x04).controlMask2(вход, типuint8*): используется вместо этого, если размер маски составляет не менее 5 байт (=> 0x05).ErrorCode(выход, типDcm_NegativeResponseCodeType*): указатель для приёма отрицательного кода ответа в случае ошибок.
Обработка ошибок и возвращаемые значения
Функция возвращает в качестве Std_ReturnType либо E_OK при успешном выполнении, либо E_NOT_OK, если запрос не был успешным [SWS_Dcm_01290]. При возникновении ошибки и возврате E_NOT_OK приложение должно записать в параметр ErrorCode специфический отрицательный код ответа (NRC); после этого модуль DCM отправляет отрицательный диагностический ответ с этим кодом NRC AUTOSAR_SWS_DiagnosticCommunicationManager с. 279.
Параллелизм и ограничения
Операция специфицирована как нереэнтрантная (Non Reentrant) [SWS_Dcm_01290]. Вызывающие компоненты должны гарантировать, что вызовы для одного и того же экземпляра обрабатываются синхронно и без одновременного перекрытия.
Этот текст подготовлен ИИ и служит в качестве ориентировочного руководства. Обязательную силу имеет спецификация AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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.
Использование и контекст вызова
Асинхронная функция Xxx_FreezeCurrentState вызывается модулем DCM, чтобы запросить у прикладного программного обеспечения фиксацию текущего состояния управления входом/выходом (IOControl) [SWS_Dcm_01315]. Объявление предоставляется через заголовочный файл Dcm_Externals.h [SWS_Dcm_01315].
Параметры и маски управления
Вызов выполняется со следующими параметрами [SWS_Dcm_01315]:
OpStatus: передаёт текущий статус асинхронной операции (Dcm_OpStatusType).controlMaskилиcontrolMask2: если маска управления сконфигурирована как внешняя (DcmDspDidControlMask == DCM_CONTROLMASK_EXTERNAL) и используется асинхронный интерфейс функции, DCM в зависимости отDcmDspDidControlMaskSizeпередаёт параметрcontrolMask(типаDcm_ControlMask_{DID}Type) при размере до 4 байт и указательcontrolMask2(uint8*) при размере от 5 байт.ErrorCode: указатель наDcm_NegativeResponseCodeTypeдля возврата кода ошибки.
Возвращаемые значения и обработка ошибок
Функция возвращает статус типа Std_ReturnType [SWS_Dcm_01315]:
E_OK: фиксация состояния успешно завершена.DCM_E_PENDING: запрос всё ещё находится в обработке и требует последующих передач данных.E_NOT_OK: операция завершилась неудачно. В этом случае DCM отправляет отрицательный диагностический ответ со значением NRC, установленным черезErrorCode.
Параллелизм
Интерфейс определён как нереэнтрантный (Non Reentrant) и поэтому требует синхронизированной обработки для каждого экземпляра управления [SWS_Dcm_01315].
Этот текст был создан ИИ и отредактирован в соответствии с редакционными требованиями.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Синхронная функция Xxx_ShortTermAdjustment запрашивает у приложения временную корректировку определенного сигнала ввода-вывода [SWS_Dcm_00802]. Она предоставляется через заголовочный файл Dcm_Externals.h и имеет Service-ID 0x50 [SWS_Dcm_00802].
Через указатель ControlStateInfo функция получает информацию о состоянии управления из параметра ControlOptionRecord диагностического запроса InputOutputControlByIdentifier [SWS_Dcm_00802]. Если сконфигурирована внешняя маска управления (DcmDspDidControlMask == DCM_CONTROLMASK_EXTERNAL), то в зависимости от DcmDspDidControlMaskSize дополнительно передается либо controlMask (до 4 байт) типа Dcm_ControlMask_{DID}Type, либо controlMask2 (от 5 байт) как uint8* [SWS_Dcm_00802].
В качестве возвращаемого значения операция возвращает Std_ReturnType [SWS_Dcm_00802]:
E_OK: корректировка сигнала ввода-вывода выполнена успешно [SWS_Dcm_00802].E_NOT_OK: корректировка не удалась [SWS_Dcm_00802]. В этом случае приложение должно через выходной параметрErrorCodeустановить определенный отрицательный код ответа (Dcm_NegativeResponseCodeType), который модуль DCM отправляет обратно тестеру в отрицательном диагностическом ответе [SWS_Dcm_00802].
Функция является нереентерабельной (Non Reentrant) и вызывается синхронно [SWS_Dcm_00802]. Этот синхронный вариант используется, когда элемент данных сконфигурирован для синхронных вызовов функций (DcmDspDataUsePort == USE_DATA_SYNCH_FNC) [SWS_Dcm_00802]. Для портов, сконфигурированных как асинхронные (USE_DATA_ASYNCH_FNC или USE_DATA_ASYNCH_FNC_ERROR), напротив, существует асинхронный вариант с Service-ID 0x55 и расширенным набором параметров, включая OpStatus и DataLength [SWS_Dcm_01316].
Этот текст был создан ИИ и основан на AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Использование и контекст вызова
Функция [SWS_Dcm_01316] вызывается Diagnostic Communication Manager (DCM) и предоставляется через Dcm_Externals.h. Она асинхронно запрашивает у приложения корректировку сигнала ввода-вывода в рамках диагностической службы InputOutputControlByIdentifier. Данные управления передаются через указатель ControlStateInfo (из параметра ControlOptionRecord), дополненный длиной в байтах DataLength. Процесс управляется через OpStatus: пока продолжается корректировка, приложение возвращает DCM_E_PENDING; после успешного завершения оно сообщает E_OK.
Варианты и параметры маски
При внешней конфигурации маски управления (DCM_CONTROLMASK_EXTERNAL) передаются дополнительные параметры [SWS_Dcm_01316]:
- Если размер маски меньше или равен 4 байтам, передается
controlMaskтипаDcm_ControlMask_{DID}Type. - Если размер маски составляет не менее 5 байтов, вместо этого передается
controlMask2как указатель наuint8.
Обработка ошибок и параллелизм
Если управление сигналом завершается неудачно, функция возвращает E_NOT_OK и через указатель ErrorCode устанавливает отрицательный код ответа (NRC), который DCM передает в отрицательном ответе [SWS_Dcm_01316]. Функция специфицирована как нереентерабельная.
Взаимодействие и разграничение
Интерфейс используется, когда порт данных DID сконфигурирован на USE_DATA_ASYNCH_FNC или USE_DATA_ASYNCH_FNC_ERROR, а тип данных — на UINT8_DYN [SWS_Dcm_01316]. Он отличается от синхронного варианта [SWS_Dcm_00802], который не использует ни OpStatus, ни DataLength и предназначен для синхронных портов при статических типах данных.
Этот текст был автоматически сгенерирован ИИ-ассистентом курации на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Функция Xxx_IsDidAvailable служит для асинхронной проверки того, доступен ли запрошенный Diagnostic Identifier (DID) в пределах определенного диапазона DID [SWS_Dcm_00803]. Она предоставляется через заголовочный файл Dcm_Externals.h и имеет Service-ID 0x53 [SWS_Dcm_00803].
Использование и параметры
Вызов выполняется со следующими параметрами [SWS_Dcm_00803]:
DID(In): опрашиваемое значение идентификатора DID [SWS_Dcm_00803].OpStatus(In): текущий статус операции для управления асинхронным процессом [SWS_Dcm_00803].supported(Out): указывает, доступен ли DID в диапазоне;DCM_DID_SUPPORTEDозначает поддержку, тогда какDCM_DID_NOT_SUPPORTEDуказывает на отсутствие поддержки [SWS_Dcm_00803].
Асинхронная семантика и возвращаемые значения
Поскольку функция выполняется асинхронно, определение при определенных обстоятельствах требует нескольких шагов вызова [SWS_Dcm_00803]. Возвращаемое значение DCM_E_PENDING сигнализирует о том, что запрос еще не завершен и для его окончания необходимы дальнейшие вызовы [SWS_Dcm_00803]. Возвращаемое значение E_OK возвращается, когда проверка завершена [SWS_Dcm_00803] (интерпретация: вероятно, E_OK завершает опрос, после чего параметр supported содержит действительный результат). Вопрос Q-22c62d306a7ac4f1 (открытый)
Параллелизм и ограничения
Интерфейс специфицирован как нереентерабельный (Non Reentrant) [SWS_Dcm_00803]. Поэтому параллельные вызовы для того же самого или других DID в пределах одного и того же экземпляра недопустимы.
Этот текст был создан ИИ и основан исключительно на данных спецификации из AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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
Использование и интерфейс параметров
Функция Xxx_ReadDidData (идентификатор службы 0x40) доступна через Dcm_Externals.h и запрашивает у приложения значения данных диагностического идентификатора (DID) [SWS_Dcm_00804]. Передача и обратная связь осуществляются через следующие параметры:
DID: идентификатор запрошенного Data Identifier [SWS_Dcm_00804].Data: указатель на буфер, в который должны быть скопированы прочитанные полезные данные [SWS_Dcm_00804].OpStatus: статус выполнения или операции текущего запроса [SWS_Dcm_00804].DataLength: длина считываемых данных [SWS_Dcm_00804].ErrorCode: выходной параметр для приёма отрицательного кода ответа (NRC) [SWS_Dcm_00804].
Асинхронная семантика и возвращаемые значения
Функция определена как асинхронная (Asynchronous) и возвращает статус типа Std_ReturnType [SWS_Dcm_00804]:
E_OK: считывание данных прошло успешно [SWS_Dcm_00804].DCM_E_PENDING: запрос ещё не завершён; для окончания требуются дальнейшие вызовы [SWS_Dcm_00804].E_NOT_OK: операция не увенчалась успехом [SWS_Dcm_00804].
Обработка ошибок и параллелизм
Если приложение возвращает для Xxx_ReadDidData возвращаемое значение E_NOT_OK, модуль DCM отправляет диагностическому тестеру отрицательный ответ с кодом NRC, установленным через параметр ErrorCode [SWS_Dcm_00804]. Функция специфицирована как нереентерабельная (Non Reentrant) [SWS_Dcm_00804]. Интерпретация: из-за асинхронной обработки с DCM_E_PENDING вызов обычно должен осуществляться в контексте циклической задачи DCM. Вопрос Q-5e41e9fb7dc261b9 (открытый)
Это указание по использованию сгенерировано автоматически на основе спецификации в SWS_Dcm_00804.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Функция Xxx_WriteDidData вызывается модулем DCM для запроса приложения на запись значения данных DID [SWS_Dcm_00805]. Объявление доступно через заголовочный файл Dcm_Externals.h [SWS_Dcm_00805].
Вызов и семантика
Вызов осуществляется асинхронно и определён как нереентерабельный (Non Reentrant) [SWS_Dcm_00805]. При вызове передаются следующие параметры [SWS_Dcm_00805]:
DID: идентификатор записываемого идентификатора данных.Data: указатель на буфер с записываемыми данными.OpStatus: статус текущей операции.DataLength: длина записываемых данных в байтах.ErrorCode: выходной параметр для отрицательного кода ответа (NRC).
Возвращаемые значения и обработка ошибок
В качестве возвращаемого значения функция возвращает Std_ReturnType со следующими значениями [SWS_Dcm_00805]:
E_OK: запрос на запись успешно выполнен.DCM_E_PENDING: операция еще не завершена; для завершения требуются дальнейшие вызовы.E_NOT_OK: операция не увенчалась успехом. В этом случае модуль DCM отправляет отрицательный ответ со значением NRC, переданным в выходном параметреErrorCode.
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Функция Xxx_ReadDidRangeDataLength служит для того, чтобы запросить прикладное программное обеспечение о возврате длины данных для диапазона DID (DID Range) [SWS_Dcm_01271]. Она является частью модуля AUTOSAR Dcm, имеет идентификатор службы 0x5e и предоставляется через заголовочный файл Dcm_Externals.h [SWS_Dcm_01271].
Вызов осуществляется с асинхронной семантикой (Asynchronous) через следующие параметры интерфейса [SWS_Dcm_01271]:
DID(IN,uint16): обозначает конкретный идентификатор данных (Data ID value) запрошенного диапазона DID [SWS_Dcm_01271].OpStatus(IN,Dcm_OpStatusType): указывает текущий статус обработки выполняющейся операции [SWS_Dcm_01271].DataLength(OUT,uint16*): указатель на длину данных, которые должны быть прочитаны или записаны [SWS_Dcm_01271].
Возвращаемое значение типа Std_ReturnType сигнализирует о результате запроса длины [SWS_Dcm_01271]:
E_OK: запрос был успешен, и определённая длина готова [SWS_Dcm_01271].E_NOT_OK: запрос завершился неудачей [SWS_Dcm_01271].DCM_E_PENDING: выполнение ещё не завершено и требует дальнейших последующих вызовов для завершения [SWS_Dcm_01271].
С точки зрения параллелизма интерфейс определён как нереэнтрантный (Non Reentrant) [SWS_Dcm_01271].
Указание по использованию сгенерировано на основе спецификации DCM в AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Асинхронный интерфейс Xxx_GetInfotypeValueData вызывается модулем DCM, как только принимается диагностический запрос для OBD Service $09 и запрошенный InfoType не является InfoType доступности («availability InfoType») [SWS_Dcm_00423]. Для предоставления данных DCM вызывает все функции, сконфигурированные для этого InfoType, и объединяет значения в качестве ответа на Service $09 [SWS_Dcm_00423]. Объявление доступно через Dcm_Externals.h [SWS_Dcm_91014].
Передача данных и обратная связь осуществляются через определённые параметры буфера и статуса [SWS_Dcm_91014]:
OpStatus(in): отображает текущий статус выполнения текущей операции.DataValueBuffer(out): буфер для приёма специфических полезных данных InfoType.DataValueBufferSize(inout): содержит при вызове максимально доступный для записи размер буфера в байтах и заполняется вызванной функцией фактическим количеством записанных байтов данных.
Будучи асинхронной функцией, она возвращает E_OK при успешном завершении, E_NOT_OK при ошибках или DCM_E_PENDING, если операция ещё не завершена и требует дальнейших вызовов для завершения [SWS_Dcm_91014]. Поскольку функция специфицирована как нереэнтрантная (Non Reentrant), параллельные вызовы для одной и той же функции недопустимы [SWS_Dcm_91014].
Этот текст сгенерирован ИИ и служит в качестве ориентира. Определяющей является официальная спецификация AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Функция Xxx_Start объявляется через заголовочный файл Dcm_Externals.h и запрашивает прикладное программное обеспечение запустить выполнение диагностической процедуры [SWS_Dcm_01203]. Модуль DCM вызывает эту функцию, как только запрос службы UDS для RoutineControl (0x31) с подфункцией startRoutine был принят и успешно верифицирован [SWS_Dcm_00400], или когда поступает запрос RoutineControl с OBDTestId, не относящимся к проверке доступности [SWS_Dcm_01392].
Интерфейс поддерживает как фиксированные, так и переменные форматы данных и работает асинхронно [SWS_Dcm_01203]:
- Входные параметры: фиксированные входные сигналы от
dataIn_1доdataIn_nили переменные данные через массив байтовdataInVar, а также статус операцииOpStatus[SWS_Dcm_01203]. - Выходные параметры: фиксированные выходные сигналы от
dataOut_1доdataOut_nили переменные выходные данныеdataOutVar, а также код ошибкиErrorCodeдля сообщений отрицательного ответа [SWS_Dcm_01203]. - Параметр длины: входной и выходной параметр
currentDataLengthпри переменной длине данных передает количество полезных байтов вdataInVarилиdataOutVarсоответственно [SWS_Dcm_01203]. - Возвращаемые значения:
E_OKподтверждает успешный запуск,E_NOT_OKсообщает о сбое,DCM_E_PENDINGсигнализирует о продолжающихся шагах обработки, аDCM_E_FORCE_RCRRPзапрашивает досрочную отправку ответа ожидания (NRC 0x78) [SWS_Dcm_01203].
Что касается параллелизма, Xxx_Start определена как нереентерабельная (Non Reentrant) [SWS_Dcm_01203]. При асинхронных процессах с возвращаемым значением DCM_E_PENDING модуль DCM повторно вызывает функцию циклически с продолжающимся OpStatus до тех пор, пока процесс не завершится [SWS_Dcm_01203].
Если операция успешно завершается с E_OK, модуль DCM отправляет обратно положительный ответ UDS с данными, предоставленными через dataOut, в качестве routineStatusRecord [SWS_Dcm_00401]. Если выполнение завершается неудачно с E_NOT_OK, DCM передает отрицательный ответ с NRC, указанным в параметре ErrorCode [SWS_Dcm_01203]. В контексте процедур OBD возвращаемое значение, отличное от E_OK, приводит к отправке NRC 0x22 [SWS_Dcm_01394].
Этот текст был сгенерирован ИИ и служит для ориентировки. Определяющей является исключительно спецификация AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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
Использование
Функция Xxx_StartConfirmation согласно [SWS_Dcm_91016] достоверно указывает на передачу ответа на предшествующий запрос StartRoutine. Интерфейс объявлен в заголовочном файле Dcm_Externals.h и обладает синхронной семантикой выполнения ([SWS_Dcm_91016]). В качестве единственного входного параметра передается ConfirmationStatus типа Dcm_ConfirmationStatusType, описывающий статус подтверждения передачи рутины. Дополнительные входные и выходные параметры согласно спецификации отсутствуют ([SWS_Dcm_91016]).
Обработка ошибок и возвращаемые значения
В качестве возвращаемого значения функция возвращает значение статуса типа Std_ReturnType ([SWS_Dcm_91016]). При этом значение E_OK подтверждает успешное выполнение запроса, тогда как E_NOT_OK сигнализирует о неуспешной обработке. Конкретные коды ошибок или явные сообщения в Development Error Tracer (DET) или Diagnostic Event Manager (DEM) для этой функции в payload не определены.
Параллелизм и ограничения
В отношении параллелизма Xxx_StartConfirmation классифицирована как нереентерабельная (Non Reentrant) ([SWS_Dcm_91016]). Это требует от вызывающей стороны строгого избегания конкурентных или перекрывающихся выполнений. Интерпретация: функция, вероятно, вызывается модулем DCM для уведомления реализации рутины на стороне приложения о завершении процесса отправки. Вопрос Q-be2dafd63bf2a9a5 (открытый)
Этот текст был создан ИИ и основан на стандарте AUTOSAR Release R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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
Использование
Функция [SWS_Dcm_01204] вызывается DCM для завершения выполнения текущей диагностической рутины в приложении. Вызов происходит в рамках UDS-службы RoutineControl (0x31) с подфункцией stopRoutine, как только требуемые предварительные проверки успешно завершены [SWS_Dcm_00402]. Интерфейс имеет идентификатор службы 0x5c и объявлен через заголовочный файл Dcm_Externals.h [SWS_Dcm_01204].
Параметры и возвращаемые значения
В зависимости от конфигурации рутины DCM передаёт фиксированные или переменные входные данные (от dataIn_1 до dataIn_n или dataInVar) и ссылки на буферы для выходных данных (от dataOut_1 до dataOut_n или dataOutVar) [SWS_Dcm_01204], [SWS_Dcm_00402]. При переменной длине данных currentDataLength содержит количество байтов входных или выходных данных [SWS_Dcm_01204]. В качестве возвращаемых значений Std_ReturnType установлены:
E_OK: рутина успешно завершена; DCM передаёт положительный UDS-ответ со сгенерированными выходными данными в качестве routineStatusRecord [SWS_Dcm_01204], [SWS_Dcm_00403].E_NOT_OK: прерывание рутины не удалось; DCM отправляет отрицательный UDS-ответ с сохранённым вErrorCodeNRC [SWS_Dcm_01204].DCM_E_PENDING: операция всё ещё находится в обработке; DCM снова вызывает функцию для завершения [SWS_Dcm_01204].DCM_E_FORCE_RCRRP: приложение запрашивает DCM о передаче ответа ожидания (NRC 0x78) [SWS_Dcm_01204].
Параллелизм и ограничения
Операция специфицирована как асинхронная и нереентерабельная (Non Reentrant) [SWS_Dcm_01204]. Если при выполнении возникает ошибка, приложение должно записать подходящий Dcm_NegativeResponseCodeType в параметр ErrorCode и вернуть E_NOT_OK [SWS_Dcm_01204].
Данное указание по использованию было автоматически сгенерировано на основе спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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
Синхронная функция Xxx_StopConfirmation служит для индикации передачи ответа на предшествующий запрос StopRoutine [SWS_Dcm_91017]. При вызове система через входной параметр ConfirmationStatus типа Dcm_ConfirmationStatusType передает конкретный статус подтверждения завершения рутины [SWS_Dcm_91017]. В качестве возвращаемого значения интерфейс возвращает значение типа Std_ReturnType: при этом E_OK указывает на то, что запрос был успешно обработан, тогда как E_NOT_OK сигнализирует о неуспешном запросе [SWS_Dcm_91017].
В отношении параллелизма и условий вызова интерфейс специфицирован как нереентерабельный (Non Reentrant) и имеет Service-ID 0x69 [SWS_Dcm_91017]. Объявление предоставляется через заголовочный файл Dcm_Externals.h [SWS_Dcm_91017]. Интерпретация: благодаря предоставлению через Dcm_Externals.h и настраиваемому префиксу Xxx_ функция, вероятно, вызывается модулем DCM и реализуется программным компонентом приложения или соответствующим обработчиком рутин. Вопрос Q-743e69ff8cf92321 (открытый)
Специфические коды ошибок или уведомления в подсистему управления ошибками разработки (DET) либо Diagnostic Event Manager (DEM) в требованиях не указаны. Поведение в случае ошибки на этом уровне интерфейса формально ограничивается возвратом значения ошибки E_NOT_OK, если обработка не могла быть успешно завершена [SWS_Dcm_91017].
Данное указание по использованию основано на спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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
Функция [SWS_Dcm_91013] вызывается модулем DCM, чтобы запросить у приложения результат выполнения рутины. Это происходит в рамках службы UDS RoutineControl (0x31) с подфункцией requestRoutineResults, как только все входные проверки были успешно пройдены [SWS_Dcm_00404]. Интерфейс доступен через Dcm_Externals.h, работает асинхронно и специфицирован как нереэнтрантный [SWS_Dcm_91013].
Через параметр OpStatus модуль DCM управляет ходом операции. Функция принимает фиксированные входные данные (от dataIn_1 до dataIn_n) или переменные данные (dataInVar), которые выводятся из routineControlOptionRecord [SWS_Dcm_00404]. Через фиксированные выходные параметры (от dataOut_1 до dataOut_n) или переменные выходные буферы (dataOutVar и variableDataLength) приложение передаёт данные результатов модулю DCM [SWS_Dcm_91013].
Если опрос успешно завершается со значением E_OK, модуль DCM объединяет выходные данные на основе параметра конфигурации DcmDspRequestRoutineResultsOut в routineStatusRecord и отправляет положительный ответ [SWS_Dcm_00405]. Если операция всё ещё продолжается, приложение может возвратить DCM_E_PENDING для последующих вызовов или DCM_E_FORCE_RCRRP для отправки предварительного ответа (NRC 0x78) [SWS_Dcm_91013].
В случае ошибки функция возвращает E_NOT_OK и устанавливает ErrorCode в соответствующее значение NRC, после чего модуль DCM передаёт соответствующий отрицательный ответ [SWS_Dcm_91013]. Поскольку функция не является реэнтрантной, её нельзя вызывать параллельно для одной и той же рутины [SWS_Dcm_91013].
Автоматически сгенерированное указание по использованию на основе AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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
Использование и семантика
Функция Xxx_RequestResultsConfirmation служит для подтверждения переданного диагностического ответа на запрос RequestRoutineResults [SWS_Dcm_91018]. Она объявлена в заголовочном файле Dcm_Externals.h и имеет Service-ID 0x70 [SWS_Dcm_91018]. Через входной параметр ConfirmationStatus типа Dcm_ConfirmationStatusType реализация получает информацию о том, с каким статусом была завершена передача результатов рутины [SWS_Dcm_91018]. Вызов выполняется синхронно и возвращает Std_ReturnType, причем E_OK указывает на успешную обработку, а E_NOT_OK сигнализирует о сбое [SWS_Dcm_91018].
Параллелизм и ограничения
Согласно спецификации функция классифицирована как нереентерабельная (Non Reentrant) [SWS_Dcm_91018]. Поэтому одновременные вызовы для одного и того же экземпляра выполняться не должны. Интерпретация: вызов со стороны модуля DCM происходит последовательно в контексте подтверждения ответа, поэтому функция должна выполняться без блокирующих операций. Вопрос Q-935a06744e7b9af7 (открытый)
Обработка ошибок и взаимодействие
Обработка ошибок ограничивается возвращаемым значением E_NOT_OK, так как отдельные ошибки разработки (DET) или производственные ошибки (DEM) для этого вызова не специфицированы [SWS_Dcm_91018]. Интерпретация: функция служит специфической для приложения точкой подтверждения (callback) для DCM, чтобы после отправки результатов рутины синхронизировать завершение диагностической задачи на уровне пользователя. Вопрос Q-d3dd0142a30e1363 (открытый)
Этот текст был создан ИИ. Данные основаны на AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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
Функция Xxx_RequestControl служит для выполнения специфичной для TID функции управления и обычно применяется для реализации службы OBD Service $08 ([SWS_Dcm_01338]). Модуль DCM вызывает сконфигурированную функцию синхронно, как только принимается запрос OBD Service $08, идентификатор теста (TID) которого не является идентификатором доступности («availability TID») ([SWS_Dcm_00419]). Объявление интерфейса предоставляется через заголовочный файл Dcm_Externals.h ([SWS_Dcm_01338]).
Параметры и управление буфером
InBuffer: указатель на полезные данные принятого OBD-запроса. Количество байт этих входных данных должно точно соответствовать размеру, сконфигурированному в модуле DCM ([SWS_Dcm_00419], [SWS_Dcm_01338]).OutBuffer: указатель на выходной буфер, в котором вызванная функция управления сохраняет свои результаты. Размер буфера фиксирован и берется из конфигурации модуля DCM ([SWS_Dcm_00419], [SWS_Dcm_01338]).
Возвращаемые значения и обработка ошибок
Функция возвращает в качестве значения статуса Std_ReturnType: значение E_OK сигнализирует об успешной обработке, тогда как E_NOT_OK указывает на состояние ошибки ([SWS_Dcm_01338]). Если Xxx_RequestControl возвращает результат, отличный от E_OK, модуль DCM реагирует отрицательным кодом ответа NRC 0x22 (Conditions Not Correct) по отношению к диагностическому тестеру ([SWS_Dcm_01192]).
Параллелизм и ограничения
Функция специфицирована как нереэнтрантная (Non Reentrant) и имеет идентификатор службы (Service ID) 0x63 ([SWS_Dcm_01338]).
Примечание ИИ: этот текст был автоматически сгенерирован на основе спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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.
Функция обратного вызова Xxx_StartProtocol предоставляется через заголовочный файл Dcm_Externals.h и позволяет приложению при первом запросе диагностического протокола проверять текущие условия окружения и разрешать или отклонять дальнейшую обработку протокола [SWS_Dcm_01339].
Контекст вызова и параметры
Вызов выполняется субмодулем DSL модуля DCM синхронно и нереентерабельно для всех сконфигурированных функций [SWS_Dcm_00036], [SWS_Dcm_01339]. В функцию передаются следующие входные параметры [SWS_Dcm_01339]:
ProtocolType: тип запускаемого диагностического протокола,TesterSourceAddress: исходный адрес запрашивающего тестера,ConnectionId: уникальный идентификатор соединения.
Возвращаемые значения и обработка ошибок
В качестве возвращаемого значения функция Std_ReturnType возвращает E_OK при успешном разрешении, E_NOT_OK при неуспешной проверке или E_PROTOCOL_NOT_ALLOWED, если протокол недопустим [SWS_Dcm_01339]. Если хотя бы одна сконфигурированная функция Xxx_StartProtocol не возвращает E_OK, DCM прерывает запуск протокола и отвечает с NRC 0x22 [SWS_Dcm_00674].
Инициализация после успешного разрешения
Только после того, как все сконфигурированные callback-функции Xxx_StartProtocol вернут E_OK, DCM выполняет дальнейшие шаги инициализации:
- загрузка стандартных параметров тайминга из конфигурации сессии по умолчанию [SWS_Dcm_00144],
- активация таблицы служб [SWS_Dcm_00145],
- сброс состояния безопасности (Security State) [SWS_Dcm_00146],
- сброс состояния сессии на стандартную диагностическую сессию, а также выполнение смены режима через
SchM_Switch_<bsnp>_DcmDiagnosticSessionControlнаRTE_MODE_DcmDiagnosticSessionControl_DEFAULT_SESSION[SWS_Dcm_00147].
Это указание по использованию было создано автоматически на основе требований спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Синхронная callback-функция Xxx_StopProtocol информирует приложение о завершении диагностического протокола ([SWS_Dcm_01340]). Она объявляется через заголовочный файл Dcm_Externals.h и специфицирована как нереентерабельная (Non Reentrant) ([SWS_Dcm_01340]).
Вызов всех сконфигурированных функций Xxx_StopProtocol (сконфигурированных через параметр DcmDslCallbackDCMRequestService) инициируется подмодулем DSL в следующих сценариях вытеснения (preemption):
- текущий диагностический запрос вытесняется более высокоприоритетным запросом другого протокола ([SWS_Dcm_00459]).
- запрос с более низким или равным приоритетом вытесняет более высокоприоритетный протокол, если тот находится в Default Session и ни один активный запрос не находится в фазе выполнения ([SWS_Dcm_00625]).
При вызове передаются тип протокола (ProtocolType), исходный адрес тестера (TesterSourceAddress), а также идентификатор соединения (ConnectionId) ([SWS_Dcm_01340]). В качестве возвращаемого значения функция возвращает E_OK при успешном выполнении или E_NOT_OK ([SWS_Dcm_01340]). Если функция возвращает значение, отличное от E_OK, DCM отвечает с кодом отрицательного ответа NRC 0x22 ([SWS_Dcm_01190]).
Этот текст был сгенерирован автоматически и основан исключительно на требованиях спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
функция 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
Синхронная, нереентерабельная функция Xxx_Indication объявляется через заголовочный файл Dcm_Externals.h [SWS_Dcm_01341]. Она указывает приложению на предстоящее выполнение диагностической службы и позволяет ему отклонить выполнение запроса службы [SWS_Dcm_01341]. Вызов выполняется синхронно субмодулем DSD на всех сконфигурированных портах ServiceRequestIndication, если присутствуют конфигурационные контейнеры DcmDsdServiceRequestManufacturerNotification [SWS_Dcm_00218] или DcmDsdServiceRequestSupplierNotification [SWS_Dcm_00516].
В качестве входных параметров передаются идентификатор службы (SID), данные запроса без SID (RequestData, DataSize), тип адресации (ReqType), идентификатор соединения (ConnectionId), тип протокола (ProtocolType) и исходный адрес тестера (TesterSourceAddress) [SWS_Dcm_01341].
Через возвращаемое значение типа Std_ReturnType приложение управляет реакцией субмодуля DSD [SWS_Dcm_01341]:
E_OK: запрос был успешен и обрабатывается далее в штатном режиме [SWS_Dcm_01341].E_REQUEST_NOT_ACCEPTED: запрос не принимается. Если хотя бы одна вызванная функция индикации возвращаетE_REQUEST_NOT_ACCEPTED, субмодуль DSD подавляет любой ответ тестеру [SWS_Dcm_00462], [SWS_Dcm_00517].E_NOT_OK: запрос завершился неудачно. В этом случае приложение записывает код отрицательного ответа в выходной параметрErrorCode[SWS_Dcm_01341]. Если ни один вызов не возвращаетE_REQUEST_NOT_ACCEPTED, субмодуль DSD отправляет отрицательный ответ с этим NRC [SWS_Dcm_00463], [SWS_Dcm_00518].
Если при нескольких сконфигурированных уведомлениях несколько функций возвращают E_NOT_OK и ни одна функция не возвращает E_REQUEST_NOT_ACCEPTED, субмодуль DSD в обязательном порядке использует для отрицательного ответа ErrorCode первой функции, ответившей E_NOT_OK [SWS_Dcm_01321], [SWS_Dcm_01322].
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Функция обратного вызова Xxx_Confirmation служит для того, чтобы синхронно уведомить приложение о завершении диагностической передачи — об успешной отправке либо об ошибке передачи ([SWS_Dcm_01342]). Объявление предоставляется через заголовочный файл Dcm_Externals.h ([SWS_Dcm_01342]).
При вызове субмодулем DCM DSD (Diagnostic Service Dispatcher) передаются важные контекстные данные диагностического задания ([SWS_Dcm_01342], [SWS_Dcm_00741]):
SID: идентификатор диагностической службы ([SWS_Dcm_01342]).ReqType: тип адресации (0для физической,1для функциональной) ([SWS_Dcm_01342]).ConnectionId,ProtocolTypeиTesterSourceAddress: однозначные атрибуты соединения и протокола, а также исходный адрес тестера ([SWS_Dcm_01342]).ConfirmationStatus: информация о состоянии относительно успеха или ошибки передачи ([SWS_Dcm_01342]).
В качестве возвращаемого значения операция возвращает Std_ReturnType (E_OK при успешной обработке подтверждения, иначе E_NOT_OK) ([SWS_Dcm_01342]). DSD вызывает функцию на всех портах, использующих интерфейс ServiceRequestNotification (сконфигурированный через DcmDsdServiceRequestManufacturerNotification или DcmDsdServiceRequestSupplierNotification) ([SWS_Dcm_00741]).
Относительно порядка вызова Xxx_Confirmation штатно выполняется непосредственно вслед за DspInternal_DcmConfirmation() ([SWS_Dcm_00742]). Однако если имеет место особый случай согласно [SWS_Dcm_01172], DSD вызывает исключительно Xxx_Confirmation, в то время как внутренний вызов опускается.
Поскольку Xxx_Confirmation специфицирована как нереентерабельная (Non Reentrant) и синхронная ([SWS_Dcm_01342]), реализация на стороне приложения не должна содержать блокирующих процессов и вызывать реентерабельных обратных вызовов в DCM (интерпретация). Вопрос Q-58ce3e44dc61540b (открытый)
Этот текст был создан ИИ. Все данные основаны исключительно на объеме спецификации AUTOSAR релиза R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Использование
Синхронная callout-функция Xxx_ClearDTCCheckFnc предоставляется для приложения через заголовочный файл Dcm_Externals.h [SWS_Dcm_01270]. Она служит для специфической для производителя и поставщика проверки условий перед удалением запрошенной группы диагностических кодов неисправностей (Group of DTC). В качестве входного параметра ей передаётся идентификатор GoDTC типа uint32, специфицирующий удаляемую группу кодов неисправностей [SWS_Dcm_01270].
Обработка ошибок и возвращаемые значения
Разрешение запроса на удаление происходит через возвращаемое значение типа Std_ReturnType во взаимодействии с выходным параметром ErrorCode [SWS_Dcm_01270]:
E_OK: приложение разрешает удаление запрошенной группы кодов неисправностейGoDTC[SWS_Dcm_01270].E_NOT_OK: приложение запрещает удаление группы. В этом ошибочном случае через выходной параметрErrorCodeтипаDcm_NegativeResponseCodeType*должен быть установлен отрицательный код ответа. Модуль DCM после этого отправляет отрицательный ответ со значением NRC, указанным вErrorCode[SWS_Dcm_01270].
Параллелизм и ограничения
Функция снабжена идентификатором службы 0x5f, работает синхронно и определена как нереентерабельная (Non Reentrant) [SWS_Dcm_01270]. Поэтому контекст вызова должен гарантировать, что вызовы осуществляются последовательно и без параллельных перекрытий.
Это указание по использованию сгенерировано ИИ на основе спецификации SWS_Dcm_01270 из AUTOSAR R20-11.
функция 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.
Функция callout Xxx_ProcessRequestDownload ([SWS_Dcm_00754]) вызывается модулем Dcm для инициации операции загрузки при обработке службы UDS RequestDownload. Она определена как асинхронная и нереентерабельная и предоставляется через заголовочный файл Dcm_Externals.h ([SWS_Dcm_00754]).
Использование и параметры
Вызов выполняется пошагово через параметр OpStatus со значениями DCM_INITIAL, DCM_PENDING или DCM_CANCEL ([SWS_Dcm_00754]). В качестве входных параметров передаются методы сжатия и шифрования (DataFormatIdentifier), блок памяти (MemoryIdentifier), начальный адрес (MemoryAddress) и несжатый размер памяти в байтах (MemorySize) ([SWS_Dcm_00754]). Перед вызовом Dcm записывает максимально возможный размер буфера во входной/выходной параметр BlockLength ([SWS_Dcm_01417]). Функция адаптирует это значение к максимально допустимой длине блока для последующих операций записи ([SWS_Dcm_00754]).
Возвращаемые значения и взаимодействие
Функция возвращает E_OK при успешном выполнении, DCM_E_PENDING, если обработка еще продолжается, или E_NOT_OK при ошибке ([SWS_Dcm_00754]):
- Если вызов возвращает
E_OKи согласованное значениеBlockLengthменьше или равно поддерживаемой длине буфера текущего соединения протокола,Dcmотправляет положительный ответ с этим значением в качествеmaxNumberOfBlockLength([SWS_Dcm_01419]). - Если возвращенная длина буфера превышает поддерживаемый размер буфера соединения протокола,
Dcmсообщает об ошибке DETDCM_E_INTERFACE_BUFFER_OVERFLOW([SWS_Dcm_01418]). - При возврате
E_NOT_OKDcmотправляет отрицательный ответ UDS (NRC) со значением, установленным в выходном параметреErrorCode([SWS_Dcm_00754], [SWS_Dcm_00757]).
Это указание по использованию было создано автоматически и служит вспомогательным материалом к спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Callout-функция Xxx_ProcessRequestTransferExit вызывается модулем DCM для завершения текущего процесса скачивания или выгрузки в рамках UDS-службы RequestTransferExit [SWS_Dcm_00755]. Объявление интерфейса предоставляется через заголовочный файл Dcm_Externals.h [SWS_Dcm_00755].
Использование и семантика
Функция работает асинхронно и определена как нереентерабельная (nicht reentrant) [SWS_Dcm_00755]. Вызов осуществляется с передачей текущего статуса выполнения OpStatus (возможные значения: DCM_INITIAL, DCM_PENDING или DCM_CANCEL) [SWS_Dcm_00755]. В качестве возвращаемых значений типа Std_ReturnType специфицированы:
E_OK: передача успешно завершена [SWS_Dcm_00755].DCM_E_PENDING: завершение передачи ещё не окончено и требует последующих вызовов [SWS_Dcm_00755].E_NOT_OK: завершение завершилось сбоем или буфер ответа слишком мал [SWS_Dcm_00755].
Обработка ошибок и взаимодействие
Если операция Xxx_ProcessRequestTransferExit возвращает значение ошибки E_NOT_OK, через выходной параметр ErrorCode должен быть передан отрицательный код ответа. После этого модуль DCM отправляет диагностическому тестеру отрицательный UDS-ответ (NRC) именно с этим кодом ошибки [SWS_Dcm_00759]. При вызове прерывания модуль DCM передаёт функции статус DCM_CANCEL [SWS_Dcm_00755].
Этот текст был сформирован автоматически. Все сведения основаны исключительно на спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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.
Callout-функция Xxx_ProcessRequestUpload вызывается модулем DCM для инициализации UDS-службы RequestUpload ([SWS_Dcm_00756]). Она предоставляется через Dcm_Externals.h и специфицирована как нереентерабельная, а также асинхронная ([SWS_Dcm_00756]). Через параметр OpStatus (с состояниями DCM_INITIAL, DCM_PENDING, DCM_CANCEL или DCM_FORCE_RCRRP_OK) DCM управляет ходом операции ([SWS_Dcm_00756]).
При вызове DCM передаёт, среди прочего, метод сжатия и шифрования (DataFormatIdentifier), блок памяти (MemoryIdentifier), начальный адрес (MemoryAddress), а также несжатый размер памяти в байтах (MemorySize) ([SWS_Dcm_00756]). Входной/выходной параметр BlockLength определяет максимальное количество байтов для последующего вызова Dcm_ReadMemory; перед вызовом DCM записывает максимально возможный размер буфера в этот параметр ([SWS_Dcm_00756], [SWS_Dcm_01420]).
В качестве возвращаемых значений Xxx_ProcessRequestUpload определены E_OK при успешном запросе, E_NOT_OK при ошибках и DCM_E_PENDING при ещё не завершённой обработке ([SWS_Dcm_00756]):
- Если функция возвращает
E_NOT_OK, модуль DCM отправляет отрицательный UDS-ответ со значением NRC, установленным в выходном параметреErrorCode([SWS_Dcm_00756], [SWS_Dcm_00758]). - Если функция возвращает запрошенное значение буфера в
BlockLength, которое меньше или равно поддерживаемой длине буфера текущего протокольного соединения, DCM использует это значение в качествеmaxNumberOfBlockLengthв положительном ответе ([SWS_Dcm_01422]). - Если же возвращённая длина буфера оказывается больше поддерживаемой протокольным соединением длины буфера, DCM сообщает об ошибке DET
DCM_E_INTERFACE_BUFFER_OVERFLOW([SWS_Dcm_01421]).
Этот текст создан ИИ. Он основан исключительно на спецификациях переданного полезного содержимого AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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
Callout-функция Xxx_ProcessTransferDataRead служит для асинхронного считывания данных памяти из электронного блока управления по начальному адресу (MemoryAddress) и длине (MemorySize) согласно [SWS_Dcm_91070]. Она предоставляется через заголовочный файл Dcm_Externals.h и поддерживает UDS-сервисы ReadMemoryByAddress, RequestUpload, TransferData, а также ReadDataByIdentifier для DID, динамически определенных через адреса памяти [SWS_Dcm_91070].
Вызов является нереентерабельным (Non Reentrant) и управляется с помощью параметра OpStatus ([SWS_Dcm_91070]):
DCM_INITIAL: запускает операцию чтения.DCM_PENDING: возобновляет еще не завершенную операцию чтения.DCM_CANCEL: прерывает текущую операцию.DCM_FORCE_RCRRP_OK: подтверждает передачу ожидающего ответа.
Для адресации с помощью MemoryIdentifier можно выбрать блок или диапазон памяти; если этот параметр не используется, ему обязательно должно быть присвоено значение 0 [SWS_Dcm_91070]. Считанные данные возвращаются через выходной параметр MemoryData, который указывает непосредственно на диагностический буфер DCM [SWS_Dcm_91070].
В качестве возвращаемых значений определены DCM_READ_OK при успехе, DCM_READ_PENDING при продолжающемся считывании и DCM_READ_FORCE_RCRRP, если процесс находится в состоянии ожидания и необходимо немедленно отправить сообщение Response Pending [SWS_Dcm_91070]. Если чтение завершается сбоем, функция возвращает DCM_READ_FAILED; в этом случае через указатель ErrorCode должен быть передан отрицательный код ответа (NRC), который DCM передает в отрицательном ответе [SWS_Dcm_91070]. (Интерпретация: примечание в спецификации к ErrorCode хотя и упоминает Dcm_ReadMemory, здесь, вероятно, по смыслу относится к сбою данной callout-функции.) Вопрос Q-fe76e2599624baf7 (открытый)
Это примечание по использованию основано на спецификации AUTOSAR CP R20-11 и сформировано автоматически.
Руководство разработчика реализации в подготовке (сложность I2)
функция 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
Использование и семантика
Асинхронная callout-функция Xxx_ProcessTransferDataWrite (идентификатор сервиса 0x27) доступна через Dcm_Externals.h и вызывается модулем DCM для записи данных памяти для UDS-сервисов WriteMemoryByAddress, RequestDownload и TransferData [SWS_Dcm_91071]. Процесс записи управляется с помощью параметра OpStatus со значениями DCM_INITIAL, DCM_PENDING, DCM_CANCEL или DCM_FORCE_RCRRP_OK [SWS_Dcm_91071].
Параметры и возвращаемые значения
Функция обрабатывает следующие параметры [SWS_Dcm_91071]:
MemoryIdentifier: идентификатор блока памяти; если этот параметр не используется, его следует установить в 0 [SWS_Dcm_91071].MemoryAddress: начальный адрес памяти сервера, в которую копируются данные; если не используется (например, для сжатых данных), должно быть передано значение 0 [SWS_Dcm_91071].MemorySize: количество записываемых байтов вMemoryData[SWS_Dcm_91071].MemoryData: указатель на записываемые данные в диагностическом буфере DCM [SWS_Dcm_91071].ErrorCode: выходной параметр для отрицательного кода ответа (NRC) в случае ошибки [SWS_Dcm_91071].
Возвращаемое значение типа Dcm_ReturnWriteMemoryType сигнализирует о результате операции [SWS_Dcm_91071]:
DCM_WRITE_OK: операция записи успешно завершена [SWS_Dcm_91071].DCM_WRITE_PENDING: операция записи еще не завершена [SWS_Dcm_91071].DCM_WRITE_FORCE_RCRRP: операция записи ожидает выполнения; передача ожидающего ответа (Response Pending) начинается незамедлительно [SWS_Dcm_91071].DCM_WRITE_FAILED: операция записи завершилась сбоем [SWS_Dcm_91071].
Обработка ошибок и параллелизм
Если callout-функция возвращает значение DCM_WRITE_FAILED, модуль DCM отправляет отрицательный ответ со значением NRC, переданным в параметре ErrorCode [SWS_Dcm_91071]. Callout-функция определена как нереентерабельная (Non Reentrant) и поэтому не может выполняться параллельно [SWS_Dcm_91071].
Это указание по использованию было создано автоматически на основе спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I2)
тип Dcm_StatusType [SWS_Dcm_00976] 📄 PDF
Base item type to transport status information.
Тип Dcm_StatusType служит базовым типом состояния и возврата для передачи информации о состоянии внутри модуля Dcm и предоставляется через заголовочный файл Dcm.h [SWS_Dcm_00976]. Он основан на стандартном типе uint8 и определяет стандартизированные значения состояния для обратной связи конкретных интерфейсов DCM [SWS_Dcm_00976].
Определённые значения состояния и обработка ошибок
Спецификация определяет для Dcm_StatusType следующие коды состояния и ошибок [SWS_Dcm_00976]:
DCM_E_OK(0x00): указывает на то, что запрошенная операция успешно выполнена или принята [SWS_Dcm_00976].DCM_E_ROE_NOT_ACCEPTED(0x06): указывает на то, что запрос ResponseOnOneEvent был отклонён DCM, например, потому что предыдущий процесс ResponseOnOneEvent ещё не завершён; значение используется на интерфейсеDcm_ResponseOnOneEvent()[SWS_Dcm_00976].DCM_E_PERIODICID_NOT_ACCEPTED(0x07): сигнализирует о том, что запрос периодической передачи не был принят DCM, например, из-за того, что текущая периодическая передача ещё не завершена; этот статус используется на интерфейсеDcm_ResponseOnOneDataByPeriodicId()[SWS_Dcm_00976].
Ограничения и условия вызова
Вызывающие стороны указанных интерфейсов должны оценивать возвращаемое значение типа Dcm_StatusType, чтобы определить, могут ли новые запросы быть приняты немедленно или же они были отклонены из-за всё ещё выполняющихся передач [SWS_Dcm_00976]. Повторный запрос, вероятно, будет иметь шансы на успех только после того, как предыдущие процессы событий или отправки будут полностью завершены [SWS_Dcm_00976]. Вопрос Q-901ec7e3aac8901c (открытый)
Этот текст был создан ИИ и основан на спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
тип Dcm_CommunicationModeType [SWS_Dcm_00981] 📄 PDF
Manager
Тип данных Dcm_CommunicationModeType представляет собой объявленный в Dcm.h тип перечисления на базе uint8 ([SWS_Dcm_00981]). Он определяет режимы связи для выборочного управления путями передачи (Tx) и приёма (Rx). Диапазон значений охватывает значения от 0x00 до 0x0B для обычных данных приложения (NORM), сетевого управления (NM), а также обоих каналов связи совокупно (NORM_NM) ([SWS_Dcm_00981]).
Тип используется в качестве параметра при вызовах BSW-интерфейса BswM_Dcm_CommunicationMode_CurrentState. Через него DCM после подтверждения (Sent Confirmation) запроса UDS-службы CommunicationControl (служба 0x28) передаёт текущий режим далее в BSW Mode Manager ([SWS_Dcm_00512], [SWS_Dcm_00785]). При этом конкретное значение режима соответствует параметрам communicationType и controlType принятого диагностического запроса ([SWS_Dcm_00512]).
Взаимодействие и затронутые сети зависят от параметра подсети UDS-запроса:
- При подсети
0x00обновление выполняется для всех сетевых каналов, сконфигурированных вDcmDspComControlAllChannel([SWS_Dcm_00512]). - При подсети
0x0Fсообщается режим связи текущего диагностического канала приёма ([SWS_Dcm_00785]). - При подсетях от
0x01до0x0Eпроверяется поддержка; неподдерживаемые подсети отклоняются с отрицательным кодом ответа 0x31 ([SWS_Dcm_00786]). - При подфункциях с расширенной адресацией (таких как
enableRxAndDisableTxWithEnhancedAddressInformationилиenableRxAndTxWithEnhancedAddressInformation) вызов выполняется для канала, на который ссылается Sub-Node-ID ([SWS_Dcm_01077], [SWS_Dcm_01079]).
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
тип 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.
тип Dcm_ReturnReadMemoryType [SWS_Dcm_00985] 📄 PDF
Return values of Callout Dcm_ReadMemory
тип Dcm_ReturnWriteMemoryType [SWS_Dcm_00986] 📄 PDF
Return type of callout Dcm_WriteMemory
тип 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
Тип данных Dcm_EcuStartModeType является производным от uint8 и предоставляется через заголовочный файл Dcm.h [SWS_Dcm_00987]. Он служит Diagnostic Communication Manager (DCM) для определения режима запуска и сигнализирует о том, должен ли передаваться диагностический ответ после перехода из загрузчика [SWS_Dcm_00987].
Диапазон значений включает два определенных состояния [SWS_Dcm_00987]:
DCM_COLD_START(0x00): электронный блок управления запускается в штатном нормальном режиме [SWS_Dcm_00987].DCM_WARM_START(0x01): электронный блок управления запускается в результате перехода из загрузчика [SWS_Dcm_00987].
Во взаимодействии интерфейсов Dcm_EcuStartModeType выступает в качестве синхронного возвращаемого значения вызова callout Dcm_GetProgConditions, который доступен через Dcm_Externals.h [SWS_Dcm_00544]. Эта функция вызывается во время инициализации DCM, чтобы определить, должен ли отправляться положительный ответ ($50 или $51) [SWS_Dcm_00544]. Подробные граничные условия перехода из загрузчика передаются DCM при этом через выходной параметр ProgConditions [SWS_Dcm_00544].
В отношении выполнения и обработки ошибок опрашивающий callout определен как синхронный и нереентерабельный [SWS_Dcm_00544]. Специфические коды ошибок или прямые уведомления для DET или DEM для этого типа данных не определены.
Данное указание по использованию было автоматически сгенерировано на основе спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
тип 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.
Структура Dcm_ProgConditionsType служит для обмена данными состояния и контекста между приложением и загрузчиком при процедурах программирования или сбросе блока управления [SWS_Dcm_00988]. Она объединяет такую информацию о соединении, как ConnectionId и TesterAddress, такие диагностические идентификаторы, как Sid и SubFncId, а также такие управляющие флаги, как ReprogramingRequest, ApplUpdated и ResponseRequired [SWS_Dcm_00988].
Использование осуществляется через два центральных интерфейса:
- Перед переходом в загрузчик или при сбросе DCM передает структуру в асинхронную нереентерабельную функцию
Dcm_SetProgConditions()[SWS_Dcm_00543]. Возможными возвращаемыми значениями являютсяE_OK,E_NOT_OK,DCM_E_PENDING, а такжеDCM_E_FORCE_RCRRPпри запросе сообщения ожидания ответа (Response Pending, NRC 0x78) [SWS_Dcm_00543]. - После перезапуска DCM во время своей инициализации вызывает синхронный нереентерабельный callout
Dcm_GetProgConditions(), чтобы считать сохраненные условия и определитьDcm_EcuStartModeType[SWS_Dcm_00544]. Сохранение этих данных интегратором, вероятно, обычно осуществляется в энергонезависимой памяти или устойчивом к сбросу RAM (интерпретация). Вопрос Q-026bc7bc93f5502c (открытый)
В дальнейшем взаимодействии системы DCM анализирует структуру: как только ComM сообщает о полной готовности к коммуникации, DCM отправляет ожидающий диагностический ответ для идентификатора службы, сохраненного в Sid [SWS_Dcm_00767]. Если после перехода в загрузчик ApplUpdated == True сигнализирует о выполненном обновлении путем Flash-Download, DCM через BswM_Dcm_ApplicationUpdated() уведомляет BswM [SWS_Dcm_00768].
Это указание по использованию было сгенерировано автоматически и основано исключительно на спецификациях версии AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
тип Dcm_MsgItemType [SWS_Dcm_00989] 📄 PDF
Base type for diagnostic message item
тип Dcm_MsgType [SWS_Dcm_00990] 📄 PDF
Base type for diagnostic message (request, positive or negative response)
Использование и определение типа
Тип данных Dcm_MsgType является центральным типом указателя для диагностических сообщений в Diagnostic Communication Manager и доступен через заголовочный файл Dcm.h [SWS_Dcm_00990]. Он объявлен как указатель на Dcm_MsgItemType* и служит общей основой для адресации запросов, а также сообщений положительного и отрицательного ответа [SWS_Dcm_00990]. Интерпретация: поскольку базовый тип Dcm_MsgItemType подробно не раскрыт в спецификации, он, вероятно, обычно представляет собой отдельный байт данных (например, uint8), через который осуществляется последовательный доступ к линейному буферу сообщений. Вопрос Q-2b6f46b51d3cb8e0 (открытый)
Взаимодействие и контекст структуры
Основное использование Dcm_MsgType происходит внутри структуры контекста Dcm_MsgContextType [SWS_Dcm_00994]. Там этот тип ссылается на две раздельные области данных:
reqData: указывает на полезные данные диагностического запроса, начиная непосредственно после идентификатора службы (SID), который сам по себе не является частью этих данных [SWS_Dcm_00994].resData: указывает на данные положительного ответа и также начинается непосредственно за идентификатором службы [SWS_Dcm_00994].
Границы буфера и ограничения
При обработке и заполнении буферов ответа, адресуемых через Dcm_MsgType, пользователи должны строго соблюдать соответствующие ограничения буфера [SWS_Dcm_00994]. Фактическая длина ответа resDataLen ни в коем случае не должна превышать емкость буфера, определенную параметром resMaxDataLen, поскольку максимальный размер ответа строго ограничен выделенным объемом назначенного буфера [SWS_Dcm_00994].
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR Classic релиза R20-11.
тип 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.
Тип данных Dcm_MsgLenType доступен через заголовочный файл Dcm.h и является производным от базового типа uint32 [SWS_Dcm_00991]. Он используется в Diagnostic Communication Manager (DCM) для описания длины диагностических сообщений. Это охватывает как диагностические запросы (Requests), так и положительные и отрицательные ответные сообщения (Responses) [SWS_Dcm_00991].
Что касается границ диапазона значений, спецификация определяет, что максимально передаваемая длина диагностического сообщения зависит от соответствующего нижележащего транспортного протокола или среды передачи [SWS_Dcm_00991]. Интерпретация: хотя базовый тип данных uint32 программно может представлять длины сообщений до 4 ГиБ, фактическая максимальная длина на практике, вероятно, всегда ограничена коммуникационной средой и размерами буферов. Вопрос Q-ac43639ecb32605d (открытый)
Центральную роль Dcm_MsgLenType играет в структуре Dcm_MsgContextType, которая инкапсулирует контекст диагностического задания [SWS_Dcm_00994]. Внутри этой структуры он типизирует несколько фундаментальных указаний длины:
reqDataLen: представляет длину данных запроса (Request Data). Отсчёт начинается непосредственно после идентификатора службы, так что он не входит в указание длины [SWS_Dcm_00994].resDataLen: указывает длину данных положительного ответа, также без учёта идентификатора службы [SWS_Dcm_00994].resMaxDataLen: специфицирует максимально возможную длину ответа, которая ограничена размером выделенного буфера [SWS_Dcm_00994].
Поэтому при реализации обработчиков служб необходимо строго следить за тем, чтобы расчёты длины для reqDataLen и resDataLen всегда производились без учёта идентификатора службы, а данные ответа не превышали границу буфера, заданную resMaxDataLen [SWS_Dcm_00994].
Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR CP R20-11.
тип Dcm_MsgAddInfoType [SWS_Dcm_00992] 📄 PDF
Additional information on message request. Datastructure: Bitfield
Тип данных Dcm_MsgAddInfoType согласно [SWS_Dcm_00992] определён как структура битового поля и служит для предоставления дополнительной информации о состоянии и управлении для диагностического сообщения. Данный тип предоставляется в классическом AUTOSAR через заголовочный файл Dcm.h и используется как элемент msgAddInfo внутри вышестоящей структуры контекста Dcm_MsgContextType ([SWS_Dcm_00994]) для согласованного объединения дополнительной информации о запросах служб и соответствующих ответах.
Структура битового поля согласно [SWS_Dcm_00992] специфицирует отдельные управляющие флаги с точно определённой позицией бита:
reqType(позиция LSB+0): обозначает тип адресации диагностического запроса. Значение0сигнализирует о физическом запросе (physical request), в то время как значение1указывает на функциональный запрос (functional request).suppressPosResponse(позиция LSB+1): определяет поведение относительно положительных ответов. При0положительный ответ не подавляется (do not suppress), тогда как значение1предписывает, что положительный ответ отправляться не должен (no positive response will be sent).
Поскольку Dcm_MsgAddInfoType представляет собой чистую структуру данных для передачи параметров и контекста, для самого этого типа не существует синхронных или асинхронных семантик вызова, возвращаемых значений, предписаний по реентерабельности или собственных сообщений об ошибках для DET или DEM. Конкретный анализ и учёт установленных битов в дальнейшем ходе выполнения возлагается, предположительно, на внутренние процедуры обработки Diagnostic Communication Manager при их обращении к контексту сообщения из [SWS_Dcm_00994]. Вопрос Q-b27248cc452ba1b1 (открытый)
Этот текст сгенерирован ИИ и служит в качестве ориентировочного руководства в среде AUTOSAR.
тип Dcm_IdContextType [SWS_Dcm_00993] 📄 PDF
This message context identifier can be used to determine the relation between request and response confirmation.
тип 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.
Структура данных Dcm_MsgContextType предоставляет всю необходимую информацию для управления диагностическим запросом от обработки через ответ до подтверждения [SWS_Dcm_00994]. Она передается как входной/выходной параметр pMsgContext в асинхронные и реентерабельные сервисные подпрограммы [SWS_Dcm_00763], [SWS_Dcm_00764]. При этом указатели полезных данных reqData и resData всегда указывают непосредственно за идентификатор сервиса (SID), а данные о длине reqDataLen и resDataLen не включают в себя SID [SWS_Dcm_00994]. Подмодуль DSD при копировании в буфер отправки снова вставляет Response-SID на первую позицию [SWS_Dcm_00223], [SWS_Dcm_00224].
При использовании необходимо учитывать следующие аспекты:
- Длина ответа и случай ошибки: если сформированная длина ответа превышает границу буфера, определенную через зависимое от протокола поле
resMaxDataLen, и выполняетсяDcmPagedBufferEnabled == FALSE, DCM отвечает отрицательным кодом ответа 0x14 (DCM_E_RESPONSETOOLONG) [SWS_Dcm_01059]. Если обработка в обработчике сервиса завершается сбоем, приложение возвращаетE_NOT_OKс кодом ошибки [SWS_Dcm_00763]. - Дополнительная информация и подавление ответа: через
msgAddInfoпередается, среди прочего,suppressPosRspMsgIndicationBit; если он установлен, DSD подавляет положительные ответы [SWS_Dcm_00202], [SWS_Dcm_00231]. - Время жизни и сопоставление контекста: при достижении подтверждения структура теряет свою валидность, и все данные сообщения теряются [SWS_Dcm_00994]. Приложения должны сохранять идентификатор
idContextуже при запуске запроса, чтобы сопоставить последующее подтверждение с исходным запросом [SWS_Dcm_00994]. - Привязка к протоколу: поле
dcmRxPduIdидентифицирует принимаемый PDU и обеспечивает дифференцированную обработку в зависимости от диагностического протокола, например между OBD и расширенной диагностикой [SWS_Dcm_00994].
Интерпретация: поскольку контекст становится недействительным при подтверждении, базовый буфер памяти после отправки ответа, вероятно, сразу же освобождается или перезаписывается DSL для последующих сеансов связи. Вопрос Q-88e3cf2f3d8f6076 (открытый)
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
тип Dcm_ExtendedOpStatusType [SWS_Dcm_91015] 📄 PDF
Тип Dcm_ExtendedOpStatusType основан на uint8 и предоставляется через заголовочный файл Dcm.h [SWS_Dcm_91015]. В качестве входного параметра OpStatus он управляет фазами выполнения и подтверждениями при асинхронных функциях служб и субслужб диагностики, таких как <Module>_<DiagnosticService> [SWS_Dcm_00763], а также <Module>_<DiagnosticService>_<SubService> [SWS_Dcm_00764].
Определенные значения состояния сигнализируют о ходе выполнения операции и обратной связи от DCM [SWS_Dcm_91015]:
DCM_INITIAL(0x00): первый вызов операции.DCM_PENDING(0x01): последующий вызов после промежуточного состояния (Pending), о котором было сообщено в предыдущем вызове.DCM_CANCEL(0x02): запрос со стороны DCM на отмену выполняемой операции.DCM_FORCE_RCRRP_OK(0x03): подтверждение передачи ожидающего ответа (Response Pending).DCM_POS_RESPONSE_SENT(0x04) иDCM_POS_RESPONSE_FAILED(0x05): квитирование успешной или неуспешной отправки положительного ответа.DCM_NEG_RESPONSE_SENT(0x06) иDCM_NEG_RESPONSE_FAILED(0x07): подтверждение успешной или неудачной отправки отрицательного ответа.
В отношении параллелизма вызываемые диагностические интерфейсы специфицированы как реентерабельные и асинхронные [SWS_Dcm_00763] [SWS_Dcm_00764]. При ошибках функция службы возвращает возвращаемое значение E_NOT_OK и присваивает выходному параметру ErrorCode код отрицательного ответа (NRC), после чего модуль DCM отправляет отрицательный ответ с этим кодом [SWS_Dcm_00763] [SWS_Dcm_00764].
Этот текст сгенерирован ИИ на основе спецификации.
Руководство разработчика реализации в подготовке (сложность I2)
тип Dcm_OpStatusType [SWS_Dcm_00984] 📄 PDF
Тип Dcm_OpStatusType основан на uint8 и предоставляется через заголовочный файл Rte_Dcm_Type.h [SWS_Dcm_00984]. Он управляет состоянием выполнения и жизненного цикла асинхронных диагностических операций Diagnostic Communication Manager (DCM), таких как Dcm_ReadMemory [SWS_Dcm_00539], Dcm_WriteMemory [SWS_Dcm_00540] или Dcm_SetProgConditions [SWS_Dcm_00543].
Для управления ходом операции определены четыре значения статуса [SWS_Dcm_00984]:
DCM_INITIAL(0x00): обозначает первый вызов операции модулем DCM [SWS_Dcm_00527].DCM_PENDING(0x01): сигнализирует о последующем вызове после предшествующего возврата состояния ожидания [SWS_Dcm_00984]. Если операция возвращает значение ошибкиDCM_E_PENDING, DCM вызывает эту операцию в каждом последующем циклеDcm_MainFunctionснова сOpStatus = DCM_PENDINGдо тех пор, пока обработка не будет завершена [SWS_Dcm_00530].DCM_CANCEL(0x02): явно запрашивает вызываемую сторону прервать еще незавершенную асинхронную операцию [SWS_Dcm_00984].DCM_FORCE_RCRRP_OK(0x03): подтверждает состоявшуюся передачу сообщения Response-Pending (NRC 0x78) [SWS_Dcm_00984]. Если операция отвечает сDCM_E_FORCE_RCRRP, DCM инициирует отправку RCR-RP и приостанавливает дальнейшие вызовы операции до тех пор, пока отправка не завершится [SWS_Dcm_00528].
В отношении параллелизма и граничных условий операции, принимающие Dcm_OpStatusType в качестве передаваемого параметра, спроектированы как асинхронные и специфицированы как нереентерабельные [SWS_Dcm_00539] [SWS_Dcm_00754].
Этот текст был сгенерирован ИИ и служит в качестве вспомогательного руководства к спецификации.
Руководство разработчика реализации в подготовке (сложность I2)
тип Dcm_ConfirmationStatusType [SWS_Dcm_00983] 📄 PDF
Использование и диапазон значений
Тип данных Dcm_ConfirmationStatusType представляет собой производный от uint8 тип перечисления, предоставляемый через заголовочный файл Rte_Dcm_Type.h [SWS_Dcm_00983]. Он используется для сообщения приложению или внутренним обработчикам служб статуса отправленного диагностического ответа — как при успешной отправке, так и при ошибках передачи [SWS_Dcm_01342]. Диапазон значений включает четыре дискретных состояния [SWS_Dcm_00983]:
DCM_RES_POS_OK(0x00): интерпретация: положительный диагностический ответ успешно передан. Вопрос (открытый)DCM_RES_POS_NOT_OK(0x01): интерпретация: при передаче положительного диагностического ответа возникла ошибка. Вопрос (открытый)DCM_RES_NEG_OK(0x02): интерпретация: отрицательный диагностический ответ (NRC) успешно передан. Вопрос (открытый)DCM_RES_NEG_NOT_OK(0x03): интерпретация: при передаче отрицательного диагностического ответа возникла ошибка. Вопрос (открытый)
Взаимодействие и интерфейсы
Статус подтверждения передаётся как входной параметр (IN) в синхронных callback-функциях. В универсальном интерфейсе подтверждения Xxx_Confirmation этот параметр передаётся вместе с идентификатором службы (SID), типом адресации (ReqType), идентификатором соединения (ConnectionId), типом протокола и исходным адресом тестера [SWS_Dcm_01342]. Также интерфейс ServiceRequestNotification включает этот статус через операцию Confirmation [SWS_Dcm_00694].
При выполнении служб рутин этот тип используется специально для сообщения статуса передачи после завершения отдельных операций рутины. Для этого служат объявленные в Dcm_Externals.h callback-функции Xxx_StartConfirmation [SWS_Dcm_91016], Xxx_StopConfirmation [SWS_Dcm_91017] и Xxx_RequestResultsConfirmation [SWS_Dcm_91018].
Параллелизм и выполнение
Функции подтверждения возвращают Std_ReturnType (напр., E_OK или E_NOT_OK) [SWS_Dcm_01342], [SWS_Dcm_91016]. Все упомянутые вызовы интерфейсов выполняются синхронно и объявлены как нереентерабельные (Non Reentrant) [SWS_Dcm_01342], [SWS_Dcm_91016], [SWS_Dcm_91017], [SWS_Dcm_91018].
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR CP R20-11.
Руководство разработчика реализации в подготовке (сложность I2)
тип Dcm_SecLevelType [SWS_Dcm_00977] 📄 PDF
Security Level type definition
тип Dcm_SesCtrlType [SWS_Dcm_00978] 📄 PDF
Session type definition. 0, 127 and all values above 127 are reserved by ISO.
тип Dcm_ProtocolType [SWS_Dcm_00979] 📄 PDF
Type Dcm_ProtocolType.
тип Dcm_NegativeResponseCodeType [SWS_Dcm_00980] 📄 PDF
Type Dcm_NegativeResponseCodeType.
тип Dcm_DataArrayType [SWS_Dcm_01121] 📄 PDF
тип Dcm_InfoType [SWS_Dcm_01013] 📄 PDF
тип Dcm_RequestDataArrayType [SWS_Dcm_01165] 📄 PDF
тип Dcm_InputOutputControlParameterType [SWS_Dcm_01305] 📄 PDF
тип Dcm_IOOperationResponseType [SWS_Dcm_01307] 📄 PDF
тип Dcm_DidSupportedType [SWS_Dcm_01138] 📄 PDF
тип Dcm_FileAndDirNameType [SWS_Dcm_91066] 📄 PDF
тип Dcm_ResponseDataArrayType [SWS_Dcm_91064] 📄 PDF
тип Dcm_AuthenticationRoleType [SWS_Dcm_91068] 📄 PDF
Тип данных Dcm_AuthenticationRoleType специфицирован как массив байтов (uint8), размер которого определяется параметром конфигурации DcmDspAuthenticationRoleSize [SWS_Dcm_91068]. Он предоставляется через заголовочный файл Rte_Dcm_Type.h и служит в модуле DCM для формального представления ролей аутентификации [SWS_Dcm_91068].
В практическом применении тип служит входным параметром для задания ролей для неаутентифицированных диагностических соединений:
- Использование и семантика: тип передаётся в качестве входного параметра
deauthenticatedRoleв C-функцииDcm_SetDeauthenticatedRole(доступной черезDcm.h) [SWS_Dcm_91069], а также операцииSetDeauthenticatedRoleсервисного интерфейсаAuthentication[SWS_Dcm_91072]. Тем самым соединению, идентифицируемому черезconnectionId, синхронно назначается деаутентифицированная роль [SWS_Dcm_91069]. - Параллелизм и валидность: C-API
Dcm_SetDeauthenticatedRoleспецифицирован как реэнтрантный [SWS_Dcm_91069]. Назначенная роль остаётся активной для соответствующего соединения до тех пор, пока оно не перейдёт в аутентифицированное состояние или пока электронный блок управления не будет сброшен [SWS_Dcm_91069], [SWS_Dcm_91072]. - Обработка ошибок: для типа и связанных с ним операций специфических кодов ошибок не существует; функция по умолчанию всегда возвращает
E_OK[SWS_Dcm_91069], [SWS_Dcm_91072].
Этот текст сгенерирован ИИ на основе спецификации.
Руководство разработчика реализации в подготовке (сложность I1)
тип DiagnosticSessionControlModeSwitchInterface [SWS_Dcm_91033] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Diagnostic Session
Использование
Элемент интерфейса DiagnosticSessionControlModeSwitchInterface согласно [SWS_Dcm_91033] объявлен как предоставляемый порт (PPortPrototype или ProvidedPort) модуля DCM и использует интерфейс Dcm_DiagnosticSessionControlModeSwitchInterface. В соответствии со спецификацией в [SWS_Dcm_91033] этот порт служит для уведомления программных компонентов (SW-C) о смене и текущем состоянии активного диагностического сеанса (Diagnostic Session).
Интерпретация: модуль DCM при этом, вероятно, берёт на себя роль отправителя, который пересылает изменения статуса диагностического сеанса через RTE заинтересованным программным компонентам. Вопрос Q-6af0e97b6910087d (открытый) Подключённые SW-C, вероятно, принимают и обрабатывают эти переключения режимов через сконфигурированные события переключения режимов (Mode-Switch Events), чтобы адаптировать внутренние процессы, разрешения или своё функциональное поведение к активному в данный момент диагностическому сеансу.
Обработка ошибок и граничные условия
Для этого порта в [SWS_Dcm_91033] не определены специфические коды ошибок, возвращаемые значения или уведомления для DET или DEM. Интерпретация: любые состояния ошибок при передаче, вероятно, полностью отслеживаются и обрабатываются общими механизмами AUTOSAR-RTE и базового модуля DCM. Вопрос Q-a8055458432174f6 (открытый) Особые ограничения относительно реэнтрантности или контекста вызова в данных спецификации отсутствуют и поэтому далее не рассматриваются.
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
тип EcuResetModeSwitchInterface [SWS_Dcm_91034] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about an upcoming ECU Reset and its type
Элемент порта EcuResetModeSwitchInterface согласно [SWS_Dcm_91034] специфицирован как предоставляемый порт (ProvidedPort или PPortPrototype) модуля DCM. Он использует интерфейс Dcm_EcuResetModeSwitchInterface и служит для информирования программных компонентов (SW-C) о предстоящем сбросе электронного блока управления, а также о точном типе сброса [SWS_Dcm_91034].
Для применения и взаимодействия в системе действуют следующие аспекты:
- Роль в коммуникации: DCM выступает в роли отправителя переключения режима. Заинтересованные SW-C подключаются через соответствующие порты-приёмники (R-порты), чтобы реагировать на уведомление [SWS_Dcm_91034].
- Семантика переключения режима: в качестве
ModeSwitchInterfaceздесь не передаются возвращаемые значения клиент-сервер или параметры данных, а сигнализируются изменения состояния через RTE [SWS_Dcm_91034]. Таким образом, уведомление происходит через объявления режимов интерфейса. - Реакция компонентов: через переданный тип сброса SW-C получают сведения о характере предстоящего перезапуска [SWS_Dcm_91034]. Это, вероятно, позволяет приложениям упорядоченно сохранять энергозависимые данные времени выполнения в энергонезависимой памяти или переводить периферийное аппаратное обеспечение в безопасное состояние перед перезапуском (интерпретация). Вопрос Q-4dcf9314d84b53a0 (открытый)
- Обработка ошибок: само определение интерфейса не содержит сообщений об ошибках или каналов возврата для состояний ошибок SW-C [SWS_Dcm_91034].
Этот текст был сгенерирован ИИ и основан на AUTOSAR Release R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
тип ModeRapidPowerShutDownModeSwitchInterface [SWS_Dcm_91035] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the rapid power shut down mode
Интерфейс ModeRapidPowerShutDownModeSwitchInterface согласно [SWS_Dcm_91035] специфицирован как PPortPrototype (ProvidedPort) для интерфейса Dcm_ModeRapidPowerShutDownModeSwitchInterface в модуле Dcm. Он служит для уведомления программных компонентов (SW-C) о режиме быстрого выключения питания (Rapid Power Shut Down Mode).
В отношении использования, поведения и взаимодействия актуальны следующие аспекты:
- Использование и семантика: через
ModeSwitchInterfaceDCM сигнализирует о смене режима подключённым SW-C. Контекст вызова находится внутри модуля DCM, который инициирует изменение режима; передача получателям осуществляется асинхронно через RTE [SWS_Dcm_91035]. - Обработка ошибок: определение порта не содержит специфических кодов ошибок, возвращаемых значений или событий DET/DEM. Ошибки при передаче режима, вероятно, полностью перехватываются стандартными механизмами AUTOSAR-RTE для портов переключения режимов (Mode-Switch-портов). Вопрос Q-16537a6a4e19e40b (открытый)
- Параллелизм и ограничения: уведомление осуществляется в контексте выполнения DCM. Принимающие SW-C, вероятно, активируются через управляемые режимами исполняемые сущности (mode-getriggerte Runnables) и должны быть спроектированы так, чтобы выполнять действия для быстрого выключения питания без блокирующих задержек. Вопрос Q-20f196c7af208288 (открытый)
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
тип ControlDTCSettingModeSwitchInterface [SWS_Dcm_91037] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the DTC Setting mode
Использование и назначение
Элемент ControlDTCSettingModeSwitchInterface согласно [SWS_Dcm_91037] представляет собой предоставляемый в качестве Provided-порта (PPortPrototype) ModeSwitchInterface менеджера диагностической связи (Diagnostic Communication Manager, DCM). Его основная задача заключается в уведомлении подключённых программных компонентов (SW-C) о текущем состоянии режима настройки DTC (DTC Setting mode).
В качестве интерфейса порта здесь используется Dcm_ControlDTCSettingModeSwitchInterface [SWS_Dcm_91037]. Поскольку DCM объявляет этот порт как Provided-порт, диагностический модуль берёт на себя роль менеджера режимов или отправителя. Компоненты приложения могут подключаться через соответствующие Required-порты, чтобы принимать изменения статуса и адаптировать своё внутреннее поведение.
Взаимодействие и системная интеграция
Взаимодействие в системном комплексе сосредоточено на разделении диагностических команд и логики приложения:
- Распространение режима: через предоставляемый порт DCM сообщает SW-C, активно или заблокировано сохранение и обновление диагностических кодов неисправностей [SWS_Dcm_91037]. Уведомление SW-C в среде выполнения AUTOSAR, вероятно, происходит через стандартные события переключения режимов (Mode-Switch Events) RTE. Вопрос Q-8c0918099f2aa797 (открытый)
- Диагностическое происхождение: переключение режима настройки DTC, вероятно, находится в прямом контексте диагностических служб UDS, таких как ControlDTCSetting (служба 0x85), с помощью которых внешний тестер может временно отключить регистрацию ошибок. Вопрос Q-f2555e0641476955 (открытый)
Обработка ошибок и граничные условия
Поскольку спецификация в [SWS_Dcm_91037] не определяет ни специфических кодов ошибок, ни сообщений DET, ни возвращаемых значений, передача режима происходит чисто декларативно через механизмы RTE. Особые контексты вызова или требования к реэнтрантности для самого объявления порта не указаны.
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR Classic R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
тип SecurityAccessModeSwitchInterface [SWS_Dcm_91039] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Security Level
Элемент порта SecurityAccessModeSwitchInterface предоставляет в модуле DCM предоставляемый порт (PPortPrototype) на основе интерфейса Dcm_SecurityAccessModeSwitchInterface [SWS_Dcm_91039]. Назначение этого интерфейса — уведомлять программные компоненты (SW-C) об активном в данный момент уровне безопасности (Security Level) [SWS_Dcm_91039].
Использование и взаимодействие
Уведомление осуществляется через порт DCM подключённым компонентам [SWS_Dcm_91039]. Предоставление, вероятно, реализовано как коммуникация переключения режимов через AUTOSAR-RTE, так что подключённые SW-C могут реагировать на изменения состояния Security Level через события Mode-Switch (интерпретация). Вопрос Q-d86dacdb91979b87 (открытый) Параметры, возвращаемые значения или специфические синхронные вызовы функций в описании порта не определены [SWS_Dcm_91039]; таким образом, передача, вероятно, соответствует асинхронной широковещательной семантике менеджера режимов (интерпретация). Вопрос Q-9d750df4f73b1634 (открытый)
Обработка ошибок и ограничения
Поскольку речь идёт о простом переключении режима, спецификация не приводит специфических кодов ошибок, проверок параметров или сообщений в DET или DEM [SWS_Dcm_91039]. Прямая обработка ошибок при уведомлении, вероятно, не предусмотрена в самом интерфейсе (интерпретация). Вопрос (открытый) Ограничения относительно реэнтрантности или альтернативных вариантов для элемента порта не специфицированы [SWS_Dcm_91039].
Это указание по использованию было сгенерировано автоматически и основано на требованиях релиза AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
тип DcmDiagnosticSessionControl [SWS_Dcm_91019] 📄 PDF
ModeDeclarationGroup representing the different diagnostic sessions Further modes to be added: {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspSession/ DcmDspSessionRow.SHORT-NAME)}
тип DcmEcuReset [SWS_Dcm_91021] 📄 PDF
ModeDeclarationGroup representing the different ECU reset types
тип DcmModeRapidPowerShutDown [SWS_Dcm_91023] 📄 PDF
ModeDeclarationGroup representing the enable/disable state of rapid power shutdown
ModeDeclarationGroup DcmModeRapidPowerShutDown служит для представления состояния активации для быстрого выключения питания (Rapid Power Shutdown) в электронном блоке управления [SWS_Dcm_91023]. Элемент соотнесён с категорией EXPLICIT_ORDER и определяет два конкретных режима: исходный режим DCM_ENABLE_RAPIDPOWERSHUTDOWN с числовым значением 0, а также DCM_DISABLE_RAPIDPOWERSHUTDOWN со значением 1 [SWS_Dcm_91023]. Для переходов между режимами специфицировано значение перехода 255 (On transition value) [SWS_Dcm_91023].
Взаимодействие и управление режимами
В системе в целом модуль DCM действует как Mode Manager для ряда диагностических режимов, к которым относится и DcmModeRapidPowerShutDown в контексте диагностической службы 0x11 (ECU Reset) [SWS_Dcm_00775]. В рамках базового программного обеспечения DCM определяет для этого ModeDeclarationGroupPrototype DcmModeRapidPowerShutDown как provided-ModeGroup в своём экземпляре BSW-модуля на основе этого ModeDeclarationGroup [SWS_Dcm_00807].
Компоненты программного обеспечения (SW-C), которые должны быть проинформированы о текущем состоянии активации быстрого выключения питания, подключают стандартизированный сервисный интерфейс Dcm_ModeRapidPowerShutDownModeSwitchInterface [SWS_Dcm_91024]. Через его группу режимов modeRapidPowerShutDown они принимают соответствующие переключения режимов DCM во время выполнения [SWS_Dcm_91024].
Данное указание по использованию было сгенерировано автоматически на основе требований спецификации AUTOSAR R20-11.
Руководство разработчика реализации в подготовке (сложность I1)
тип DcmCommunicationControl [SWS_Dcm_91025] 📄 PDF
ModeDeclarationGroup representing the different communication control states
тип DcmControlDTCSetting [SWS_Dcm_91027] 📄 PDF
ModeDeclarationGroup representing the enable/disable state for DTC storage
тип DcmResponseOnEvent [SWS_Dcm_91029] 📄 PDF
ModeDeclarationGroup representing the state of a Response On Event
тип 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)}
ModeDeclarationGroup DcmSecurityAccess категории EXPLICIT_ORDER представляет различные диагностические уровни безопасности электронного блока управления для службы UDS 0x27 (SecurityAccess) [SWS_Dcm_91031], [SWS_Dcm_00775]. В качестве начального режима по умолчанию задан DCM_SEC_LEV_LOCKED с фиксированным значением 0 [SWS_Dcm_91031], [SWS_Dcm_01327]. Дополнительные уровни безопасности от DCM_SEC_LEV_1 до DCM_SEC_LEV_63 добавляются под конкретный проект и приложение через конфигурацию строк безопасности в DcmDspSecurityRow [SWS_Dcm_91031], [SWS_Dcm_01327].
Модуль DCM берет на себя центральную роль в качестве Mode Manager для этого диагностического режима [SWS_Dcm_00775]. При каждом изменении уровня безопасности DCM обновляет группу режимов DcmSecurityAccess с вновь принятым статусом безопасности [SWS_Dcm_01329]. Во время текущей смены состояния между отдельными режимами система сигнализирует определённое значение перехода 255 (On transition value) [SWS_Dcm_91031].
Передача текущего статуса безопасности программным компонентам осуществляется через сервисный интерфейс Dcm_SecurityAccessModeSwitchInterface [SWS_Dcm_91032]:
- DCM предоставляет для этого
ModeDeclarationGroupPrototypeDcmSecurityAccessв качестве предоставляемой группы режимов (provided-ModeGroup) через интерфейс [SWS_Dcm_01327], [SWS_Dcm_91032]. - Каждый программный компонент (SW-C), который должен быть проинформирован о текущем Security Level, объявляет зависимость от интерфейса ModeSwitch
Dcm_SecurityAccessModeSwitchInterfaceи подключает его как Required-порт [SWS_Dcm_91032]. - Доступность отдельных режимов в интерфейсе подчиняется тем же конфигурационным вариантам, что и лежащие в их основе строки безопасности [SWS_Dcm_91032].
Этот текст был сгенерирован ИИ.
Руководство разработчика реализации в подготовке (сложность 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#61834ce2- Content hash
61834ce2- 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 · Немецкий оригинал