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.
동기식이며 비재진입(non-reentrant) 함수인 Dcm_Init은 DCM 모듈의 기본 초기화에 사용됩니다[SWS_Dcm_00037]. 포스트 빌드(Post-Build) 변형의 경우 매개변수 ConfigPtr를 통해 구성 세트에 대한 포인터를 수신하며 반환값은 없습니다[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_Init이 완료된 후 DCM은 매개변수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(서비스 ID 0x2B)은 헤더 Dcm_Dem.h를 통해 제공되며 UDS 상태 바이트의 변경 사항을 DCM에 보고하는 데 사용됩니다 [SWS_Dcm_00614]. 이를 통해 DCM은 진단 서비스 하위 서비스 OnDTCStatusChanged에 대한 Response-on-Event 이벤트(ROE)를 트리거할 수 있습니다 [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에 선언되어 있으며, 서비스 ID 0x7a을(를) 갖고, 반환값을 반환하지 않으며(void), 동기식으로 실행됩니다 [SWS_Dcm_91088].
이 인터페이스에는 두 개의 전달 매개변수가 필요합니다 [SWS_Dcm_91088]:
BlockId(타입:BndM_BlockIdType): 쓰기 프로세스가 완료된 블록을 식별합니다.result(타입:BndM_ResultType): 쓰기 작업의 결과를 DCM에 전달합니다.
기능적 상호작용 및 오류 발생 시의 동작은 이전에 DCM에 의해 트리거된 원자적 BndM 쓰기 작업과 연결되어 있습니다:
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]. 따라서 호출자는 여러 컨텍스트에 의해 함수가 병렬로 호출되거나 인터럽트 방식으로 호출되지 않도록 보장해야 합니다.
이 사용 지침은 AI에 의해 생성되었으며 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에 의해 식별된 연결에 대해 인증되지 않은 상태를 위한 타입 Dcm_AuthenticationRoleType의 새로운 역할 deauthenticatedRole을 할당할 수 있습니다([SWS_Dcm_91069], [SWS_Dcm_01486]). 반환값으로는 예외 없이 E_OK이 반환됩니다([SWS_Dcm_91069]).
상태 조건 및 오류 처리
호출은 연결이 인증되지 않은 상태(deauthenticated state)에 있는 경우에만 DCM에 의해 처리됩니다([SWS_Dcm_01487]). 서명이 대안적인 오류 값을 제공하지 않고 항상 E_OK을 반환하므로([SWS_Dcm_91069]), 이 상태 외부에서의 호출은 아마도 오류 메시지 없이 폐기될 것으로 추정됩니다. 질문 Q-6f14770eae6ce896 (열림) 특정 DET 또는 DEM 이벤트는 사양에 정의되어 있지 않습니다.
유효 기간 및 라이프사이클
인증되지 않은 상태를 위한 역할이 성공적으로 적용되면([SWS_Dcm_01486]), 이 할당은 일시적으로 유지됩니다:
- 설정된 역할은 연결이 인증된 상태(authenticated state)로 전환되는 즉시 폐기됩니다([SWS_Dcm_01488]).
- 유효성은 늦어도 전자제어장치(ECU) 리셋 시 종료됩니다([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을(를) 통해 선언되며 확인된 상태 값을 Dcm_SecLevelType* 타입의 출력 매개변수 SecLevel을(를) 통해 호출자에게 전달합니다. 사양에 따르면 반환값은 예외 없이 E_OK이(가) 반환됩니다 [SWS_Dcm_00338].
내부 보안 레벨 결정은 고정된 변환 공식 SecurityLevel = (SecurityAccessType + 1) / 2에 따라 SecurityAccess 서비스의 일부로 테스터가 전송한 매개변수 SecurityAccessType을(를) 기반으로 합니다 [SWS_Dcm_00338].
상위 진단 서비스 처리와의 상호 작용에서 무엇보다도 DSP 서브모듈이 이 값에 접근합니다: 모듈이 서브기능 타입이 “requestSeed”(홀수 값)인 구성된 요청을 수신하고 관련 액세스 레벨이 Dcm_GetSecurityLevel에 따라 이미 활성화되어 있는 경우, DSP 서브모듈은 시드 내용을 0x00(으)로 설정합니다 [SWS_Dcm_00323].
동시성 및 오류 처리와 관련하여 이 함수는 재진입 가능(reentrant)한 것으로 정의되어 있습니다 [SWS_Dcm_00338]. 특정 오류 코드나 DET 검사가 명시되어 있지 않고 항상 E_OK이(가) 반환되므로 널 포인터 검사는 수행되지 않을 것으로 보입니다. 따라서 호출자는 아마도 항상 SecLevel을(를) 위한 메모리 공간을 가리키는 유효한 포인터를 전달해야 합니다. 질문 Q-5402d82ac0151b22 (열림)
이 텍스트는 AI에 의해 생성되었습니다. 정보가 불완전할 수 있으므로 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을 통해 서비스 ID0x2a로 제공되며, 시그니처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.h를 통해 제공되는 동기식 함수 Dcm_TriggerOnEvent(서비스 ID 0x2D)은 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].
동시성 및 특성
이 인터페이스는 재진입 가능하도록 명시되어 있습니다 [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]). 이 함수는 Block Size(BS) 계산을 위해 bufferSizePtr을 통해 사용 가능한 버퍼를 보고합니다([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]).
이 텍스트는 AI에 의해 작성되었습니다. 모든 정보는 오직 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이 0인 SduLength과 함께 호출되면 순수한 버퍼 쿼리 역할을 합니다 [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 사양을 바탕으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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은 TP-API를 통해 I-PDU를 수신한 후 일반적으로 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 서브모듈은 매개변수 값 result = E_OK으로 호출된 경우에만 수신된 데이터를 DSD 서브모듈로 전달합니다[SWS_Dcm_00111]. 이때 진단 요청에 대해 특정 규칙이 적용됩니다:
- 성공적으로 수신된 요청(
Result = E_OK)이suppressPosRspMsgIndicationBit가 설정된TesterPresent명령(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를 전달합니다. SduLength에 대한 0 값은 retry을 통해 상태 변경을 알리거나 사용 가능한 데이터의 양을 쿼리하는 데 사용될 수 있으며, 이 경우 SduDataPtr은 NULL_PTR일 수 있습니다 [SWS_Dcm_00092]. DCM은 송신 버퍼에 남아 있는 바이트 수를 availableDataPtr을 통해 보고하며, 이는 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 후의 중단이 확인되는 경우), 전송 작업을 공식적으로 완료하고 PduR_DcmTransmit()을 통한 새 전송을 활성화하기 위해 [SWS_Dcm_00350]는 이 최종 호출을 필수적으로 요구합니다. 확인에 오류가 있는 경우 DSD 서브모듈은 진단 응답을 재전송해서는 안 됩니다([SWS_Dcm_00118]).
또한 응답 확인(NRC 0x78 제외)은 진단 요청의 정상적인 완료를 나타냅니다([SWS_Dcm_01378]). EcuReset에 대한 긍정 응답 확인 후 DCM은 리셋 처리 중에 다른 모든 요청을 무시합니다([SWS_Dcm_00834]).
이 텍스트는 AI에 의해 작성되었으며 정확성을 보장할 수 없습니다.
구현자 가이드 준비 중 (복잡도 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(서비스 ID 0x40, Dcm.h에 선언됨)은 [SWS_Dcm_01092]에 따라 하위 통신 인터페이스 모듈에 의해 호출되어 PDU 송신을 확인하거나 전송 실패를 보고합니다. 이 함수는 반환값이 없으며 두 개의 입력 매개변수를 처리합니다:
TxPduId: 전송된 PDU의 식별자(PduIdType).result: 전송 상태(Std_ReturnType). 유효한 값은 전송 성공 시E_OK이며, PDU 전송이 실패한 경우E_NOT_OK입니다.
오류 처리 및 상태 피드백
전송 결과는 매개변수 result을 통해 DCM에 직접 전달됩니다([SWS_Dcm_01092]). 제공된 사양 발췌문에는 이 함수에 대한 특정 DET 또는 DEM 오류 메시지가 정의되어 있지 않습니다.
동시성 및 호출 컨텍스트
재진입성과 관련하여 Dcm_TxConfirmation은 서로 다른 PDU-ID를 사용한 호출에 대해서는 재진입 가능하지만, 동일한 TxPduId에 대해서는 재진입할 수 없습니다([SWS_Dcm_01092]). 하위 모듈에 의한 호출은 인터럽트 컨텍스트에서 발생할 수 있음에 유의해야 합니다([SWS_Dcm_01092]).
상호 작용
주기적 전송(PeriodicTransmission)의 경우, 각 송신 결과를 전달받기 위해 [SWS_Dcm_01073]에 따라 DCM이 Dcm_TxConfirmation를 통해 호출됩니다.
이 사용 지침은 R20-11용 AUTOSAR 사양을 기반으로 자동 작성되었습니다.
구현자 가이드 준비 중 (복잡도 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(서비스 ID 0x21)은 통신 네트워크가 COMM_NO_COMMUNICATION 상태로 전환되었음을 DCM 모듈에 알립니다[SWS_Dcm_00356]. 이 인터페이스는 헤더 Dcm_ComM.h를 통해 제공되며, 반환값이 없고 uint8 타입의 입력 매개변수 NetworkId를 통해 해당 네트워크를 식별합니다[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].
구성 매개변수 DcmDslProtocolComMChannelRef을 통해 DCM에서 참조되는 ComM 채널과 일치하지 않는 NetworkId으로 함수가 호출되는 경우, DCM 모듈은 어떠한 작업도 수행하지 않고 즉시 반환합니다[SWS_Dcm_01324].
이 텍스트는 AI에 의해 작성되었으며 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])은 통신 네트워크가 COMM_SILENT_COMMUNICATION 상태로 전환되었음을 DCM 모듈에 알리는 역할을 합니다. 이 인터페이스는 서비스 ID 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]).
오류 처리 및 제약 조건과 관련하여, 전달된 NetworkId이 구성 매개변수 DcmDslProtocolComMChannelRef을 통해 DCM에서 참조되지 않는 ComM 채널에 해당하는 경우 DCM은 추가 작업 없이 반환해야 한다고 규정되어 있습니다([SWS_Dcm_01325]). 이 호출에 대해 특정 개발 오류나 오류 반환값은 명시되어 있지 않습니다.
해석: 이 호출은 무음 통신 모드로의 전환이 완료되는 즉시 일반적으로 ComM 모듈에 의해 수행될 것으로 보입니다. 질문 Q-fc9b6303ae0c0e41 (열림)
이 사용 지침은 AI 시스템에 의해 생성되었으며 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을 통해 제공되며, 통신 네트워크가 COMM_FULL_COMMUNICATION 상태로 전환되었음을 DCM 모듈에 알립니다[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이 DCM에 구성되지 않은 ComM 채널(매개변수 DcmDslProtocolComMChannelRef)과 관련된 경우, 함수는 추가 작업 없이 즉시 반환합니다[SWS_Dcm_01326].
본 사용 지침은 AUTOSAR CP R20-11 사양을 바탕으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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]. 입력 매개변수로서 Csm_ResultType 타입의 result을(를) 통해 종료된 CSM 작업의 결과를 수신합니다 [SWS_Dcm_91076]. 반환값으로 이 함수는 항상 E_OK을(를) 반환합니다 [SWS_Dcm_91076].
구성 및 제약 조건
통합자는 CSM의 ECUC 구성에서 비동기 작업에 대한 콜백으로 이 함수의 이름을 구성해야 합니다 [SWS_Dcm_91076]. DCM의 경우 이러한 콜백이 오직 하나만 제공되며, 종료된 작업의 식별은 명세에 따라 작업 매개변수를 평가함으로써 이루어집니다 [SWS_Dcm_91076]. 그러나 C 함수 시그니처는 result만을 전달하므로, DCM은 진행 중인 인증의 트랜잭션 상태를 통해 내부적으로 연관된 작업을 식별할 것으로 추정됩니다. 질문 Q-04ad1d5fb514f467 (열림)
이 인터페이스는 구성에서 매개변수 DcmDspAuthenticationConnection이(가) 설정된 경우(null이(가) 아닌 경우)에만 사용할 수 있습니다 [SWS_Dcm_91076]. 반환값이 변경 불가능하게 E_OK이므로, 이 호출에 대해 특정 오류 처리나 DET 보고는 명세되어 있지 않습니다 [SWS_Dcm_91076].
이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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].
구성 및 제약 조건
통합자는 KeyM의 ECUC 구성에서 비동기 작업에 대한 콜백으로 이 함수 이름을 구성해야 합니다 [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
Dcm_Externals.h에 선언된 콜아웃 함수 Dcm_ReadMemory([SWS_Dcm_00539])은 시작 주소(MemoryAddress) 및 바이트 크기(MemorySize)를 기반으로 DCM이 서버 메모리 데이터를 읽어오는 데 사용됩니다. 이 함수는 UDS 서비스 ReadMemoryByAddress(0x23)([SWS_Dcm_00495]), 0xF200~0xF3FF 주소 범위의 동적 DID를 위한 ReadDataByIdentifier(0x22)([SWS_Dcm_00653]), RequestUpload 및 TransferData에 필요합니다([SWS_Dcm_00539]). 매개변수 MemoryIdentifier이 사용되지 않는 경우 0으로 설정해야 합니다([SWS_Dcm_00539]).
인터페이스는 비동기식이며 재진입이 불가능합니다([SWS_Dcm_00539]). 호출 상태는 DCM_INITIAL, DCM_PENDING, DCM_CANCEL 또는 DCM_FORCE_RCRRP_OK 값을 갖는 OpStatus을 통해 전달됩니다. 읽기 작업이 지속되는 동안 함수는 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에 선언된 콜아웃 함수 Dcm_WriteMemory은 시작 주소와 바이트 크기를 기반으로 메모리 데이터를 쓰기 위해 DCM에 의해 비동기식 및 비재진입 방식으로 호출됩니다[SWS_Dcm_00540]. 이 함수는 UDS 서비스 WriteMemoryByAddress(0x3D), RequestDownload 및 TransferData를 구현하는 데 사용됩니다[SWS_Dcm_00540]. WriteMemoryByAddress 수신 시 DCM은 요청을 검증한 후에만 콜아웃을 호출합니다[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은 출력 매개변수ErrorCode을 통해 전달된 NRC 값과 함께 부정 응답을 전송합니다[SWS_Dcm_00540], [SWS_Dcm_00643].
이 텍스트는 AUTOSAR Classic R20-11 명세서를 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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.
콜아웃 함수 Dcm_SetProgConditions은 통합자가 부트로더로 전환하거나 ECUReset 요청에 따른 리셋 전에 관련 정보를 영구적으로 저장할 수 있도록 합니다[SWS_Dcm_00543]. 관련 컨텍스트 데이터는 구조체 Dcm_ProgConditionsType에 대한 포인터를 통해 전달되며, 이 구조체는 연결 및 테스터 소스 주소, 서비스 및 서브기능 ID, ReprogramingRequest 및 ResponseRequired와 같은 제어 플래그 등을 번들로 제공합니다[SWS_Dcm_00988]. 서브기능 0x02가 포함된 UDS 서비스 0x10 수신 시 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].
조건이 오류 없이 설정되고 콜아웃이 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 릴리스 R20-11 명세서를 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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.
서비스 ID 0x62을 갖는 콜아웃 함수 Dcm_GetProgConditions은 서비스 $50 또는 $51에 대한 보류 중인 진단 응답을 전송해야 하는지 여부를 확인하기 위해 DCM 초기화 중에 호출됩니다[SWS_Dcm_00544]. 인터페이스의 선언은 헤더 파일 Dcm_Externals.h를 통해 제공됩니다[SWS_Dcm_00544].
사용법 및 매개변수
함수 실행은 동기식으로 이루어지며, 일반적인 입력 또는 입출력 매개변수는 전달되지 않습니다[SWS_Dcm_00544]:
- 출력 매개변수:
Dcm_ProgConditionsType*타입의 포인터ProgConditions을 통해 콜아웃은 부트로더로부터의 이전 점프가 요청되었던 조건을 반환합니다[SWS_Dcm_00544]. 관련 컨텍스트 매개변수는 데이터 타입Dcm_ProgConditionsType에 저장되어 있습니다[SWS_Dcm_00544]. - 반환값: 함수는
Dcm_EcuStartModeType타입의 상태 값을 호출자에게 반환합니다[SWS_Dcm_00544].
동시성 및 오류 처리
이 함수는 재진입 불가능(Non Reentrant)으로 분류되므로 동시에 실행되어서는 안 됩니다[SWS_Dcm_00544]. 이 콜아웃에 대해 인터페이스 명세서에는 DET 또는 DEM에 대한 구체적인 오류 코드가 정의되어 있지 않습니다[SWS_Dcm_00544].
이 사용 지침은 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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).
콜아웃 함수 Dcm_ProcessRequestAddFile은(는) 작동 모드 0x01(AddFile)(으)로 서비스 RequestFileTransfer을(를) 시작하기 위해 DCM에 의해 호출됩니다([SWS_Dcm_91078]). 이는 Dcm_Externals.h을(를) 통해 사용 가능하고 서비스 ID 0x72을(를) 가지며, 비재진입(non-reentrant)(Non Reentrant) 및 비동기식으로 명세되어 있습니다([SWS_Dcm_91078]).
비동기 호출 순서의 제어는 매개변수 OpStatus을(를) 통해 이루어집니다:
DCM_INITIAL: 모든 입력 매개변수가 유효합니다. 여기에는 파일 경로 및 파일명(filePathAndNameLength을(를) 포함한filePathAndName), 바이트dataFormatIdentifier(압축용 상위 니블, 암호화용 하위 니블), 그리고 압축되지 않은 파일 크기 및 압축된 파일 크기(fileSizeUncompressed,fileSizeCompressed)가 포함됩니다([SWS_Dcm_91078]).DCM_PENDING,DCM_CANCEL및DCM_FORCE_RCRRP_OK: 이 후속 호출들에서는 모든 입력 매개변수가0x00(으)로 설정됩니다([SWS_Dcm_91078]).
반환값으로서 함수는 성공적으로 실행된 경우 E_OK을(를), 처리가 지속 중인 경우 DCM_E_PENDING을(를), 애플리케이션이 임시 응답(NRC 0x78)의 전송을 요청하는 경우 DCM_E_FORCE_RCRRP을(를) 반환합니다([SWS_Dcm_91078], [SWS_Dcm_91086]). 성공 시 maxNumberOfBlockLength은(는) SID 및 블록 카운터를 제외한 향후 TransferData 메시지의 최대 허용 블록 길이를 정의합니다([SWS_Dcm_91078]).
오류 발생 시 함수는 E_NOT_OK을(를) 반환합니다. 이 경우 매개변수 ErrorCode을(를) 통해 부정 응답 코드(NRC)를 전달해야 하며, DCM은 이를 클라이언트로 보내는 부정 진단 응답에 실어 전송합니다([SWS_Dcm_91078]). 구성 DcmRequestFileTransferUsePort이(가) 활성화된 경우 이 기능은 대안적으로 인터페이스 RequestFileTransfer의 포트 오퍼레이션 ProcessRequestAddFile(으)로 제공됩니다([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
사용법 및 호출 시맨틱
콜아웃 함수 Dcm_ProcessRequestDeleteFile은(는) 진단 서비스 RequestFileTransfer의 일환으로 서버에서 파일 삭제(modeOfOperation = 0x02)를 시작하기 위해 DCM에 의해 호출됩니다 [SWS_Dcm_91079]. 이 함수는 Dcm_Externals.h에 선언되어 있으며 비동기식 및 비재진입(non-reentrant)(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을(를), 애플리케이션이 RequestFileTransfer 서비스와 유사하게 NRC 0x78(Response Pending) 중간 메시지 전송을 요청하는 경우 DCM_E_FORCE_RCRRP을(를) 반환합니다 [SWS_Dcm_91079], [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).
콜아웃 함수 Dcm_ProcessRequestReplaceFile은(는) 작동 모드 0x03(ReplaceFile)(으)로 RequestFileTransfer에 대한 진단 프로세스를 시작하기 위해 DCM에 의해 호출됩니다 [SWS_Dcm_91080]. 이 함수는 비재진입(Non Reentrant) 및 비동기식으로 정의되며 헤더 Dcm_Externals.h을(를) 통해 제공됩니다 [SWS_Dcm_91080].
비동기 처리 시퀀스의 제어는 매개변수 OpStatus을(를) 통해 이루어집니다:
DCM_INITIAL(으)로 초기 호출 시 DCM은 경로 및 파일명(길이 정보filePathAndNameLength을(를) 포함한filePathAndName), 압축 및 암호화 식별자(dataFormatIdentifier), 압축되지 않은 파일 크기 및 압축된 파일 크기(fileSizeUncompressed,fileSizeCompressed)를 포함하여 모든 입력 매개변수를 유효하게 전달합니다 [SWS_Dcm_91080].- 후속 호출 또는 중단 시(
DCM_PENDING,DCM_CANCEL,DCM_FORCE_RCRRP_OK) 모든 In 매개변수는0x00(으)로 설정됩니다 [SWS_Dcm_91080]. - 성공 시 함수는 Out 매개변수
maxNumberOfBlockLength을(를) 통해 후속TransferData요청을 위한 최대 페이로드 길이(SID 및 블록 시퀀스 카운터 제외)를 DCM에 반환합니다 [SWS_Dcm_91080].
반환값으로는 성공적인 실행 시 E_OK, 여전히 지속 중인 처리 시 DCM_E_PENDING, Response-Pending 응답(NRC 0x78) 요청을 위한 DCM_E_FORCE_RCRRP이(가) 규정되어 있습니다 [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).
콜아웃 함수 Dcm_ProcessRequestReadFile은(는) 작동 모드 ReadFile(modeOfOperation 0x04)(으)로 파일 전송 프로세스(서비스 RequestFileTransfer)를 시작하기 위해 DCM에 의해 호출됩니다 [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, 또는 "Response Pending" 응답(NRC 0x78) 요청을 위한 DCM_E_FORCE_RCRRP이(가) 정의되어 있습니다 [SWS_Dcm_91081]. 오퍼레이션이 실패하면 E_NOT_OK을(를) 반환하며, 이 경우 DCM은 출력 매개변수 ErrorCode에 설정된 NRC 값을 포함하는 부정 응답을 테스터에 전송합니다 [SWS_Dcm_91081]. 상호 작용은 ProcessRequestAddFile와(과) 같은 다른 파일 오퍼레이션에 대해 유사하게 구성되는 서비스 RequestFileTransfer의 일반적인 처리와 일치합니다 [SWS_Dcm_91086].
이 텍스트는 AI 시스템에 의해 생성되었으며 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을(를) 통해 선언되며, 작동 모드 0x05(ReadDir)(으)로 RequestFileTransfer 서비스를 비동기식으로 시작하기 위해 DCM에 의해 호출됩니다 [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을(를) 반환하거나, 중간 응답(NRC 0x78)의 전송을 유발하기 위해 DCM_E_FORCE_RCRRP을(를) 반환할 수 있습니다 [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은 UDS 서비스 TransferData(0x36)를 통해 데이터가 수신되고, 모드 0x01(AddFile) 또는 0x03(ReplaceFile)과 함께 RequestFileTransfer을(를) 통해 이전에 시작된 다운로드 프로세스가 활성 상태일 때 DCM에 의해 호출됩니다 [SWS_Dcm_01444]. 이 인터페이스는 Dcm_Externals.h을(를) 통해 사용할 수 있습니다 [SWS_Dcm_91083].
매개변수 할당은 진행 상태 OpStatus에 따라 달라집니다 [SWS_Dcm_91083]:
DCM_INITIAL: 모든 입력 매개변수가 유효합니다. 포인터Data은(는) 기록할 페이로드를 가리키며,DataLength은(는) 해당 바이트 길이를 지정합니다.DataLength의 값은 이전에Dcm_ProcessRequestFileTransfer에서 협상된 최대 블록 길이(NumberOfBlockLength)를 초과하지 않습니다.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].
이 텍스트는 AI 지원 시스템에 의해 생성되었으며 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은 진행 중인 파일 또는 디렉터리 업로드(이전에 ReadFile의 경우 모드 0x04 또는 ReadDir의 경우 0x05을(를) 사용하여 UDS 서비스 RequestFileTransfer을(를) 통해 시작됨)의 프레임워크 내에서 UDS 서비스 TransferData(0x36)에 대한 형식 준수 요청이 수신될 때 DCM 모듈에 의해 호출됩니다 [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이(가) 형식적으로 In 매개변수로 선언되어 있지만, 읽어올 페이로드를 전달하는 데 사용될 것으로 보입니다. 질문 Q-53de8a0bdbc4a2b4 (열림) - 반환값: 이 작업은 성공적인 데이터 제공 시
E_OK을(를), 처리가 아직 완료되지 않은 경우DCM_E_PENDING을(를), 애플리케이션이 중간 메시지(Response Pending, NRC 0x78)의 강제 전송을 원하는 경우DCM_E_FORCE_RCRRP을(를) 반환합니다 [SWS_Dcm_91085].
애플리케이션에서 처리에 실패하면 E_NOT_OK이(가) 반환됩니다. 이러한 오류 발생 시 DCM 모듈은 클라이언트에 음의 UDS 응답(NRC)을 전송하며, 해당 오류 코드는 출력 매개변수 ErrorCode에 설정된 값에 해당합니다 [SWS_Dcm_91085].
이 텍스트는 AI에 의해 생성되었으며 참고용으로 제공됩니다. 공식 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]).- 매개변수
FilterForFault-DetectionCounter이 설정된Dem_SetDTCFilter()의 호출은 반드시Dcm_MainFunction의 컨텍스트에서 수행되어야 합니다 ([SWS_Dcm_00519]). - RCR-RP 전송이 확인된 후 DCM은
Dcm_MainFunction의Dcm_WriteMemory또는Dcm_ReadMemory과 같은 작업을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을 통해 제공됨)은 애플리케이션이 DCM 모듈을 위한 시드 값을 비동기적으로 제공하는 데 사용됩니다 [SWS_Dcm_01151]. 이 함수는 하위 기능 타입이 “requestSeed”인 서비스 SecurityAccess(0x27)의 UDS 요청이 수신되고 요청된 보안 레벨이 아직 활성화되지 않은 즉시 호출됩니다 [SWS_Dcm_00862], [SWS_Dcm_00324].
호출 컨텍스트 및 매개변수
이 인터페이스는 재진입 불가(Non Reentrant)로 정의되며 비동기적으로 동작합니다 [SWS_Dcm_01151]:
SecurityAccessDataRecord: 시드 계산을 위한 추가 입력 데이터에 대한 포인터이며,DcmDspSecurityADRSize에 따른 최소 크기는 1바이트입니다 [SWS_Dcm_01151].OpStatus: 비동기 작업의 현재 상태를 나타냅니다 [SWS_Dcm_01151].Seed: 애플리케이션이 계산된 시드를 제공하는 출력 포인터입니다 [SWS_Dcm_01151].ErrorCode: 부정 오류 코드(NRC)를 반환하기 위한 출력 매개변수입니다 [SWS_Dcm_01151].
반환값 및 오류 처리
E_OK: 시드가 성공적으로 결정되어 제공되었습니다 [SWS_Dcm_01151].DCM_E_PENDING: 계산이 아직 완료되지 않았으며, 완료를 위해 후속 계산 또는 호출이 필요합니다 [SWS_Dcm_01151].E_NOT_OK: 요청이 실패했습니다. 이 경우 DCM 모듈은 매개변수ErrorCode로 전달된 NRC 값을 포함하는 UDS 부정 응답을 전송합니다 [SWS_Dcm_01151], [SWS_Dcm_00659].
통합 지침
DcmDspSecurityUsePort의 구성에 따라 USE_ASYNCH_FNC(DcmDspSecurityGetSeedFnc를 통해 참조됨)의 경우 C 함수로 연결되거나 [SWS_Dcm_00862], USE_ASYNCH_CLIENT_SERVER의 경우 Rte 작업으로 연결됩니다 [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은(는) UDS 서비스 SecurityAccess(0x27)의 범위 내에서 "requestSeed" 유형의 요청 시 시드 값을 제공하기 위해 DCM 모듈에서 애플리케이션으로 연결되는 비동기 인터페이스 역할을 합니다[SWS_Dcm_91003], [SWS_Dcm_00862]. 호출은 보안 레벨이 아직 활성화되지 않았고 구성에서 USE_ASYNCH_CLIENT_SERVER 또는 USE_ASYNCH_FNC을(를) 지정한 경우 DCM DSP 서브모듈에 의해 수행됩니다[SWS_Dcm_00324], [SWS_Dcm_00862].
인터페이스는 비동기 및 비재진입(non reentrant)(Non Reentrant)으로 구현되어 있습니다[SWS_Dcm_91003]. 처리 진행 상태 제어는 입력 매개변수 OpStatus(타입 Dcm_OpStatusType)을(를) 통해 이루어집니다[SWS_Dcm_91003]. 반환값으로는 성공적으로 제공된 경우의 E_OK, 오류 발생 시의 E_NOT_OK, 시드 생성이 아직 진행 중이며 추가 호출이 필요한 경우의 DCM_E_PENDING이(가) 정의되어 있습니다[SWS_Dcm_91003]. 생성된 값은 포인터 Seed(Inout/Out 버퍼)를 통해 전달됩니다[SWS_Dcm_91003].
연산이 실패하고 Xxx_GetSeed이(가) E_NOT_OK을(를) 반환하면, DCM 모듈은 출력 매개변수 ErrorCode(Dcm_NegativeResponseCodeType)을(를) 통해 설정된 오류 코드로 부정 응답(NRC)을 전송해야 합니다[SWS_Dcm_91003], [SWS_Dcm_00659]. 이 서비스는 헤더 Dcm_Externals.h을(를) 통해 선언됩니다[SWS_Dcm_91003].
이 텍스트는 AUTOSAR 표준 R20-11을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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은 UDS 서비스 SecurityAccess(0x27, 하위 기능 sendKey)의 프레임워크 내에서 수신된 키를 애플리케이션의 내부 로직과 비교하기 위해 Diagnostic Communication Manager([SWS_Dcm_91004])에 의해 비동기 및 재진입 불가로 호출됩니다([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은 내부 보안 레벨을 변경하거나 실패 시도 카운터(AttemptCounter)를 증가시키지 않고ErrorCode에 설정된 NRC가 포함된 부정 UDS 응답을 전송합니다([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은 지속 시간 DcmDspSecurityDelayTime을 갖는 SecurityDelayTimer을 시작하고 NRC 0x36(exceededNumberOfAttempts)을 전송합니다([SWS_Dcm_01349]). 두 경우 모두 보안 레벨은 변경되지 않은 상태로 유지됩니다.
이 사용 지침은 자동으로 생성되었으며 AUTOSAR Classic R20-11 DCM 모듈 사양을 기반으로 합니다.
구현자 가이드 준비 중 (복잡도 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 초기화 시 애플리케이션에서 구성된 보안 레벨의 현재 실패 시도 횟수 카운터를 읽어옵니다. 이 호출은 구성 매개변수 DcmDspSecurityAttemptCounterEnabled가 TRUE으로 설정된 DcmDspSecurityRow의 각 항목에 대해 수행됩니다 [SWS_Dcm_01154].
흐름 제어는 DCM_INITIAL, DCM_PENDING 또는 DCM_CANCEL 값을 갖는 매개변수 OpStatus을 통해 관리됩니다 [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)에 대한 모든 요청을 부정 응답 코드 conditionsNotCorrect(0x22)과 함께 거부합니다 [SWS_Dcm_01354]. 쿼리 체인이 완료된 후 DCM은 카운터 값을 확인합니다. 하나 이상의 카운터가 임계값 DcmDspSecurityNumAttDelay에 도달하거나 초과하면 DCM은 DcmDspSecurityDelayTimeOnBoot와 DcmDspSecurityDelayTime 중 더 높은 값으로 SecurityDelayTimer를 시작합니다 [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]). 호출은 DCM_INITIAL, DCM_PENDING 또는 DCM_CANCEL 값을 갖는 OpStatus 매개변수를 통해 흐름을 제어합니다. 새로운 카운터 값은 입력 매개변수 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]). 이를 위해서는 해당 DcmDspSecurityRow에 대한 구성 매개변수 DcmDspSecurityAttemptCounterEnabled가 TRUE로 구성되어 있어야 합니다([SWS_Dcm_01155]). 인터페이스가 재진입 불가능하므로 애플리케이션은 동일한 인스턴스에 대한 동시 실행을 배제해야 합니다([SWS_Dcm_01153]).
이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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은(는) 구성 매개변수 DcmDspDataUsePort이(가) USE_DATA_SYNCH_CLIENT_SERVER(으)로 설정되어 있을 때 애플리케이션에 DID 또는 PID의 현재 데이터 값을 요청합니다 [SWS_Dcm_00793]. 인터페이스는 헤더 Dcm_Externals.h을(를) 통해 제공되며 서비스 ID 0x34을(를) 가집니다 [SWS_Dcm_00793]. 호출된 애플리케이션은 요청된 페이로드를 전달받은 버퍼 Data에 직접 복사합니다 [SWS_Dcm_00793].
반환값과 관련하여, 호출은 예외 없이 E_OK을(를) 반환하도록 규정되어 있습니다 [SWS_Dcm_00793]. 이 서명에 대해 특정 오류 코드, 부정 응답 또는 DET/DEM 알림은 명시되어 있지 않습니다. 해석: 비동기 변형 [SWS_Dcm_91005]과(와) 달리 부정 응답 코드(NRC)를 위한 매개변수 ErrorCode도, E_NOT_OK 또는 DCM_E_PENDING와(과) 같은 반환값도 존재하지 않으므로, 이 인터페이스 레벨에서는 데이터 제공 실패가 아마도 상정되어 있지 않은 것으로 보입니다. 질문 Q-adcf0171ecfd37c4 (열림)
동시성 및 경계 조건과 관련하여, 이 함수는 재진입 불가(Non Reentrant)로 명시되어 있으며 완전히 동기식으로 동작합니다 [SWS_Dcm_00793]. 진단 요청과의 상호 작용은 여러 시나리오에서 수행됩니다:
- 가용성 PID가 아닌 PID를 포함한 OBD 서비스 $01 요청을 수신할 때, DCM은 응답 값을 수집하기 위해 PID의 모든 데이터에 대해 각각 구성된
Xxx_ReadData함수를 호출합니다 [SWS_Dcm_00408]. - 가용성 식별자가 아닌 식별자를 포함한 서비스 0x22(ReadDataByIdentifier)의 UDS 요청 시, DCM은
OBDDataIdentifier[SWS_Dcm_01380] 및OBDInfoTypeDataIdentifier[SWS_Dcm_01389]의 모든 데이터에 대해 함수들을 호출합니다. - 반면에 비동기 동작이 필요한 경우에는 [SWS_Dcm_91006] 또는 [SWS_Dcm_91005]에 따른
OpStatus이(가) 포함된 별도의 서명이 적용됩니다.
이 텍스트는 AI에 의해 생성되었으며 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은(는) 매개변수 DcmDspDataUsePort이(가) USE_DATA_ASYNCH_CLIENT_SERVER(으)로 구성된 경우([SWS_Dcm_91006]), 애플리케이션으로부터 DID 또는 PID의 데이터 값을 비동기식으로 조회하는 역할을 합니다. 이는 헤더 파일 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은 구성된
Xxx_ReadData함수들을 통해 현재 PID 값(가용성 PID 제외)을 읽어옵니다([SWS_Dcm_00408]). - UDS Service 0x22(
ReadDataByIdentifier)의 경우 DCM은 OBDDataIdentifier([SWS_Dcm_01380]) 및 OBDInfoTypeDataIdentifier([SWS_Dcm_01389])에 대해 함수를 호출합니다.
실행과 관련하여 이 함수는 재진입 불가(Non Reentrant)로 명시되어 있습니다([SWS_Dcm_91006]). 동기식 인터페이스([SWS_Dcm_00793]) 또는 추가 ErrorCode 매개변수가 있는 비동기 변형([SWS_Dcm_91005])과 달리, 이 함수 형태는 부정 응답 코드의 직접적인 반환을 규정하지 않습니다.
이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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은(는) 구성 매개변수 DcmDspDataUsePort이(가) USE_DATA_ASYNCH_CLIENT_SERVER(으)로 설정된 경우 애플리케이션으로부터 DID 또는 PID의 데이터 값을 비동기식으로 요청합니다[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)(
Non Reentrant)으로 정의됩니다[SWS_Dcm_91005]. 해석: 처리가 보류 중일 때의 반복적인 호출은 DCM 메인 처리의 주기 내에서 순차적으로 수행될 것으로 보입니다. 질문 Q-541226d5f242f7c2 (열림) - 상호작용: DCM 모듈은 비가용성 PID에 대한 OBD Service $01 요청 시 [SWS_Dcm_00408]뿐만 아니라
OBDDataIdentifier[SWS_Dcm_01380] 및OBDInfoTypeDataIdentifier[SWS_Dcm_01389]에 대한 UDS Service ReadDataByIdentifier(0x22)에서도 이 함수를 호출합니다. 동기 변형 [SWS_Dcm_00793] 또는 NRC 매개변수가 없는 비동기 인터페이스 [SWS_Dcm_91006]과(와) 비교하여 이 시그니처는 구체적인 부정 오류 전송을 가능하게 합니다.
이 텍스트는 AI에 의해 작성되었으며 전적으로 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 함수는 애플리케이션에 DID(Data Identifier) 데이터 값 쓰기를 요청하기 위해 Diagnostic Communication Manager(DCM)에 의해 호출됩니다([SWS_Dcm_00794]). 선언은 헤더 Dcm_Externals.h를 통해 제공됩니다. 호출은 서비스 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]). 또한 장시간 실행되는 프로세스의 경우 고정 데이터 길이([SWS_Dcm_91008]) 및 가변 길이 매개변수([SWS_Dcm_91009]) 모두에서 OpStatus 및 가능한 DCM_E_PENDING 반환을 갖는 비동기 변형이 존재합니다.
이 텍스트는 AUTOSAR CP R20-11 명세를 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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은(는) 데이터 식별자(DID)의 데이터 값을 쓰도록 애플리케이션에 요청하는 역할을 합니다 [SWS_Dcm_91007]. 이 인터페이스는 헤더 Dcm_Externals.h을(를) 통해 선언되며 서비스 ID 0x52을(를) 가집니다 [SWS_Dcm_91007]. 호출은 동기식으로 수행되며 재진입 불가(Non Reentrant)로 명시되어 있으므로, 동일한 함수에 대한 동시 호출이 발생해서는 안 됩니다 [SWS_Dcm_91007].
매개변수로 함수는 기록할 유효 데이터가 포함된 버퍼 Data 및 바이트 단위의 길이 정보가 포함된 DataLength을(를) 수신합니다 [SWS_Dcm_91007]. 반환값으로는 성공적인 실행 시 E_OK, 오류 발생 시 E_NOT_OK을(를) 갖는 Std_ReturnType 타입을 제공합니다 [SWS_Dcm_91007]. 작업이 실패하고 E_NOT_OK을(를) 반환하는 경우, DCM 모듈은 진단 테스터에 부정 응답을 전송해야 합니다. 이때 부정 응답 코드(NRC)는 포인터 매개변수 ErrorCode을(를) 통해 전달된 값과 일치합니다 [SWS_Dcm_91007].
전체 시스템에서 [SWS_Dcm_91007]은(는) 명시적인 길이 정보를 갖는 DID를 위한 동기식 변형을 나타냅니다. 이에 더해 [SWS_Dcm_00794](서비스 ID 0x51)을(를) 통해 매개변수 DataLength이(가) 없는 동기식 변형이 존재합니다. 더 긴 쓰기 프로세스의 경우 표준은 비동기 인터페이스를 규정합니다: 길이 정보가 없는 [SWS_Dcm_91008](서비스 ID 0x35) 및 DataLength이(가) 포함된 [SWS_Dcm_91009](서비스 ID 0x3e). 두 비동기 함수 모두 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에 선언되어 있으며 서비스 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 모듈은 출력 매개변수 ErrorCode에 전달된 NRC 값과 함께 부정 응답을 전송해야 합니다 [SWS_Dcm_91008]. 이 함수는 재진입 불가로 명시되어 있으므로 [SWS_Dcm_91008], 동일한 인스턴스에 대한 동시 또는 중첩 호출은 허용되지 않습니다.
상호작용 및 변형
[SWS_Dcm_91008]에 따른 이 인터페이스는 별도의 길이 매개변수가 없는 비동기 쓰기 액세스를 다룹니다. AUTOSAR는 이와 관련하여 DCM 내의 관련 변형들을 정의합니다: 길이 정보가 없는 동기식 서명 [SWS_Dcm_00794] 및 동기식 [SWS_Dcm_91007] 및 비동기식 시퀀스 [SWS_Dcm_91009]를 위한 추가 매개변수 DataLength이(가) 있는 서명.
이 사용 지침은 AUTOSAR CP R20-11 사양을 기반으로 AI 시스템을 통해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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은(는) Data Identifier(DID)의 데이터 값을 쓰도록 애플리케이션에 요청합니다 [SWS_Dcm_91009]. 이는 헤더 파일 Dcm_Externals.h을(를) 통해 선언되며 서비스 ID 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] (서비스 ID
0x51). - 길이 정보가 있는 동기식 실행: [SWS_Dcm_91007] (서비스 ID
0x52). - 길이 정보가 없는 비동기식 실행: [SWS_Dcm_91008] (서비스 ID
0x35).
참고: 이 사용 지침은 Release R20-11용 AUTOSAR Classic 사양을 기반으로 자동 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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.
사용
DCM 모듈은 함수 Xxx_ReadDataLength을 사용하여 애플리케이션이 데이터의 바이트 단위 데이터 길이를 확인하여 반환하도록 요청합니다 [SWS_Dcm_00796]. 이 인터페이스는 헤더 Dcm_Externals.h에 선언되어 있으며 서비스 ID 0x36을 갖습니다 [SWS_Dcm_00796]. 쿼리는 동기적으로 실행됩니다 [SWS_Dcm_00796]. uint16* 유형의 출력 매개변수 DataLength을 통해 애플리케이션은 읽을 데이터의 바이트 길이를 DCM에 전달합니다 [SWS_Dcm_00796]. 입력 또는 입출력 매개변수는 정의되어 있지 않습니다 [SWS_Dcm_00796]. 반환값으로 함수는 항상 Std_ReturnType 유형의 E_OK을 반환합니다 [SWS_Dcm_00796].
동시성 및 제약사항
이 인터페이스는 재진입 불가능(Non Reentrant)한 것으로 명시되어 있습니다 [SWS_Dcm_00796]. 이 함수는 동기적으로 작동하고 사양에 따라 항상 E_OK를 보고하므로, 이 호출에 대해 특정 오류 코드나 다른 상태 반환값은 제공되지 않습니다 [SWS_Dcm_00796].
상호 작용
동기 함수 외에도 동일한 이름을 가진 서비스 ID 0x4c의 비동기 변형이 존재하며, 이 역시 Dcm_Externals.h을 통해 제공됩니다 [SWS_Dcm_91010]. 동기 버전 [SWS_Dcm_00796]은 작업 상태 없이 작동하지만, 비동기 대응 항목은 Dcm_OpStatusType 유형의 입력 매개변수 OpStatus를 요구합니다 [SWS_Dcm_91010]. 또한 비동기 인터페이스는 요청이 아직 완료되지 않아 완료를 위해 추가 호출이 필요한 경우 E_OK 외에 반환값 DCM_E_PENDING을 반환할 수 있습니다 [SWS_Dcm_91010].
이 텍스트는 AI에 의해 생성되었으며 참고용으로 제공됩니다. 각 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](서비스 ID 0x4c)은 데이터 요소의 데이터 길이를 바이트 단위로 확인하도록 애플리케이션에 요청합니다. 이 함수는 헤더 Dcm_Externals.h에 선언되어 있으며, Diagnostic Communication Manager(DCM)가 진단 데이터를 유연하게 길이 조회하는 데 사용됩니다.
사용법 및 의미론
호출 시 DCM 모듈은 타입 Dcm_OpStatusType의 입력 매개변수 OpStatus을 통해 현재 진행 상태를 전달합니다([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](서비스 ID 0x36)과 구별됩니다. 후자는 매개변수 OpStatus을 갖지 않으며 동기식으로 실행되고 항상 즉시 E_OK로 길이를 반환합니다. 반면 [SWS_Dcm_91010]는 애플리케이션이 시간이 많이 걸리는 계산을 여러 호출 주기에 걸쳐 비동기식으로 분산할 수 있도록 합니다.
이 텍스트는 AUTOSAR 명세를 바탕으로 AI에 의해 작성되었습니다.
구현자 가이드 준비 중 (복잡도 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.
동기 콜아웃 함수 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 모듈은 애플리케이션이 출력 매개변수 ErrorCode(타입 Dcm_NegativeResponseCodeType*)을 통해 전달한 오류 코드를 포함하는 부정 응답(Negative Response)을 전송합니다[SWS_Dcm_00797].
동시성과 관련하여 이 함수는 재진입이 불가능한 것(Non Reentrant)으로 명시되어 있으며 서비스 ID 0x49로 동기식으로 실행됩니다[SWS_Dcm_00797]. 따라서 동기식 DCM 호출자의 지연을 방지하기 위해 애플리케이션 측 검사는 블로킹 대기 시간 없이 즉시 평가될 것으로 보입니다. 질문 Q-ada29c78c29d961e (열림)
이러한 동기 작업과 구별하여 [SWS_Dcm_91011]은 서비스 ID 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]. 실행은 서비스 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를 통해 타입Dcm_NegativeResponseCodeType의 부정 응답 코드(NRC)를 설정해야 합니다. 그러면 DCM 모듈은 이 NRC를 포함한 부정 응답을 전송합니다[SWS_Dcm_91011].DCM_E_PENDING: 검사가 아직 완료되지 않아 완료를 위해 추가 호출이 필요합니다[SWS_Dcm_91011].
동시성 및 구별
이 인터페이스는 재진입 불가(Non Reentrant)로 명시되어 있습니다[SWS_Dcm_91011]. 이 비동기 변형과 달리 [SWS_Dcm_00797]는 서비스 ID 0x49 하에서 OpStatus 매개변수가 없고 오직 E_OK 또는 E_NOT_OK만을 반환하는 동기 서명을 정의합니다[SWS_Dcm_00797].
이 사용 지침은 AUTOSAR R20-11 명세를 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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 모듈은 출력 매개변수 ErrorCode을 통해 제공된 값에 해당하는 NRC로 부정 응답을 전송해야 합니다[SWS_Dcm_91012]. 이 함수는 재진입 불가(Non Reentrant)로 명시되어 있습니다[SWS_Dcm_91012]. 해석: OpStatus를 포함한 이 비동기 함수가 호출되는지, 아니면 대안으로 명시된 OpStatus 없는 동기 변형[SWS_Dcm_00798]이 호출되는지는 해당 DID의 구성에 따라 달라질 것으로 추정됩니다. 질문 Q-c4054a798f17a52c (열림)
이 텍스트는 AI에 의해 작성되었으며, 정보의 정확성과 완전성은 보장되지 않습니다.
구현자 가이드 준비 중 (복잡도 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로 설정되고 마스크 크기가 최대 4바이트(DcmDspDidControlMaskSize <= 0x04)인 경우,Dcm_ControlMask_{DID}Type타입의 입력 매개변수controlMask이 전달됩니다 [SWS_Dcm_01285].- 마스크 크기가 5바이트 이상(
DcmDspDidControlMaskSize >= 0x05)인 경우, 대신uint8*타입의 포인터controlMask2이 사용됩니다 [SWS_Dcm_01285]. - 오류 발생 시 함수는 출력 매개변수
ErrorCode(타입Dcm_NegativeResponseCodeType*)을 통해 특정 부정 응답 코드(NRC)를 DCM에 전달합니다 [SWS_Dcm_01285].
반환값 및 오류 처리
이 함수는 Std_ReturnType 상태를 반환합니다. 제어권 반환이 성공하면 애플리케이션은 E_OK을 보고합니다 [SWS_Dcm_01285]. 작업이 실패하면 함수는 E_NOT_OK을 반환해야 하며, 이 경우 DCM 모듈은 ErrorCode에 저장된 NRC를 포함하는 부정 응답을 진단 테스터에 전송합니다 [SWS_Dcm_01285].
상호작용 및 호출 컨텍스트
DCM은 DcmDspDataUsePort이 USE_DATA_SYNCH_FNC, USE_DATA_ASYNCH_FNC 또는 USE_DATA_ASYNCH_FNC_ERROR로 구성된 경우 구성된 함수 인터페이스(매개변수 DcmDspDataReturnControlToEcuFnc)를 호출합니다 [SWS_Dcm_01435]. 일반적인 진단 동작 외에도 DCM은 활성 IO 제어 시퀀스를 중단해야 할 때 특히 Xxx_ReturnControlToECU을 호출합니다 [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을 통해 제공되며, I/O 제어(IOControl)를 기본값으로 리셋하도록 애플리케이션에 요청하는 데 사용됩니다[SWS_Dcm_01286].
호출 컨텍스트 및 매개변수
이 함수는 서비스 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 및 서비스 ID 0x3c을 갖는 비동기 변형이 사용됩니다[SWS_Dcm_01314].
이 텍스트는 AI에 의해 생성되었으며 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에 선언되어 있으며 서비스 ID 0x3c를 갖습니다. 매개변수 OpStatus을 통해 작업의 진행 상태가 제어됩니다. 처리가 아직 완료되지 않은 경우 함수는 DCM_E_PENDING를 반환하며, 성공적인 완료는 E_OK로 확인됩니다.
구성 및 마스크 크기(DcmDspDidControlMaskSize~4바이트 또는 5바이트 이상)에 따라 외부 마스킹 시 controlMask 또는 controlMask2가 추가로 전달됩니다[SWS_Dcm_01314]. 리셋에 실패하면 함수는 E_NOT_OK를 반환합니다. 이 경우 출력 매개변수 ErrorCode를 통해 부정 응답 코드(NRC)를 전달해야 하며, DCM 모듈은 이를 부정 응답으로 테스터에 전송합니다[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].
이 텍스트는 AI에 의해 작성되었으며 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을 통해 사용할 수 있으며 서비스 ID 0x4a를 갖습니다 AUTOSAR_SWS_DiagnosticCommunicationManager 279쪽. (해석: 접두사 Xxx은 해당 애플리케이션 모듈의 플레이스홀더를 나타내는 것으로 보입니다.) 질문 Q-f8c864cda732acc2 (열림)
인터페이스 매개변수는 외부 제어 마스크의 구성(DCM_CONTROLMASK_EXTERNAL의 DcmDspDidControlMask)에 따라 결정됩니다 [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]. 호출자는 동일한 인스턴스에 대한 호출이 동시 중첩 없이 동기식으로 처리되도록 보장해야 합니다.
이 텍스트는 AI에 의해 작성되었으며 참고용으로 제공됩니다. 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은 응용 소프트웨어에 입출력 제어(IOControl)의 현재 상태 고정을 요청하기 위해 DCM 모듈에 의해 호출됩니다 [SWS_Dcm_01315]. 선언은 헤더 Dcm_Externals.h를 통해 제공됩니다 [SWS_Dcm_01315].
매개변수 및 제어 마스크
호출은 다음 매개변수와 함께 수행됩니다[SWS_Dcm_01315]:
OpStatus: 비동기 작업의 현재 상태를 전달합니다(Dcm_OpStatusType).controlMask및controlMask2: 제어 마스크가 외부로 구성되고(DcmDspDidControlMask == DCM_CONTROLMASK_EXTERNAL) 비동기 함수 인터페이스가 사용되는 경우, DCM은DcmDspDidControlMaskSize에 따라 최대 4바이트까지는controlMask매개변수(Dcm_ControlMask_{DID}Type타입)를 전달하고 5바이트부터는 포인터controlMask2(uint8*)을 전달합니다.ErrorCode: 오류 코드 반환을 위한Dcm_NegativeResponseCodeType포인터입니다.
반환값 및 오류 처리
이 함수는 Std_ReturnType 타입의 상태를 반환합니다[SWS_Dcm_01315]:
E_OK: 상태 고정이 성공적으로 완료되었습니다.DCM_E_PENDING: 요청이 아직 처리 중이며 후속 공급이 필요합니다.E_NOT_OK: 작업이 실패했습니다. 이 경우 DCM은ErrorCode을 통해 설정된 NRC 값을 포함하는 부정 진단 응답을 전송합니다.
동시성
이 인터페이스는 재진입 불가(Non Reentrant)로 정의되어 있으므로 제어 인스턴스당 동기화된 처리가 필요합니다 [SWS_Dcm_01315].
이 텍스트는 AI에 의해 작성되었으며 편집 지침에 따라 큐레이팅되었습니다.
구현자 가이드 준비 중 (복잡도 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은 특정 I/O 신호를 일시적으로 조정하도록 애플리케이션에 요청합니다 [SWS_Dcm_00802]. 이는 헤더 Dcm_Externals.h를 통해 제공되며 서비스 ID 0x50을 갖습니다 [SWS_Dcm_00802].
포인터 ControlStateInfo을 통해 함수는 진단 요청의 매개변수 ControlOptionRecord로부터 제어 상태 정보를 수신합니다 InputOutputControlByIdentifier [SWS_Dcm_00802]. 외부 제어 마스크가 구성된 경우(DcmDspDidControlMask == DCM_CONTROLMASK_EXTERNAL), DcmDspDidControlMaskSize에 따라 추가로 Dcm_ControlMask_{DID}Type 유형의 controlMask(최대 4바이트) 또는 uint8*로서 controlMask2(5바이트 이상)이 전달됩니다 [SWS_Dcm_00802].
작업은 반환값으로 Std_ReturnType을 제공합니다 [SWS_Dcm_00802]:
E_OK: I/O 신호의 조정이 성공적으로 실행되었습니다 [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)의 경우 서비스 ID 0x55과 OpStatus 및 DataLength을 포함하는 확장된 매개변수 세트를 갖춘 비동기 변형이 존재합니다 [SWS_Dcm_01316].
이 텍스트는 AI에 의해 작성되었으며 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의 프레임워크 내에서 IO 신호를 조정하도록 애플리케이션에 비동기식으로 요청합니다. 제어 데이터는 바이트 길이 DataLength가 추가된 포인터 ControlStateInfo(매개변수 ControlOptionRecord에서 유래)을 통해 전달됩니다. 동작 순서는 OpStatus을 통해 제어됩니다: 조정이 지속되는 동안 애플리케이션은 DCM_E_PENDING을 반환하며, 성공적으로 완료된 후에는 E_OK을 보고합니다.
변형 및 마스크 매개변수
제어 마스크가 외부에 구성된 경우(DCM_CONTROLMASK_EXTERNAL) 추가 매개변수가 전달됩니다[SWS_Dcm_01316]:
- 마스크 크기가 4바이트 이하인 경우, 타입
Dcm_ControlMask_{DID}Type의controlMask이 전달됩니다. - 마스크 크기가 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]. 이는 OpStatus와 DataLength을 모두 사용하지 않으며 정적 데이터 타입의 동기 포트용으로 지정된 동기 변형 [SWS_Dcm_00802]와 구별됩니다.
이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI 큐레이션 어시스턴트에 의해 자동 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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를 통해 제공되며 서비스 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에 대한 병렬 호출은 허용되지 않습니다.
이 텍스트는 AI에 의해 작성되었으며 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(서비스 ID 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 모듈은 매개변수 ErrorCode를 통해 설정된 NRC 코드를 포함하는 부정 응답을 진단 테스터로 전송합니다 [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은 애플리케이션에 DID의 데이터 값을 쓰도록 요청하기 위해 DCM 모듈에 의해 호출됩니다 [SWS_Dcm_00805]. 선언은 헤더 Dcm_Externals.h를 통해 제공됩니다 [SWS_Dcm_00805].
호출 및 시맨틱
호출은 비동기적으로 수행되며 재진입 불가(Non Reentrant)로 정의됩니다 [SWS_Dcm_00805]. 호출 시 다음 매개변수가 전달됩니다 [SWS_Dcm_00805]:
DID: 기록할 데이터 식별자의 ID.Data: 쓸 데이터가 포함된 버퍼를 가리키는 포인터입니다.OpStatus: 현재 작업의 상태.DataLength: 기록할 데이터의 바이트 단위 길이.ErrorCode: 부정 응답 코드(NRC)를 위한 출력 매개변수.
반환값 및 오류 처리
반환값으로 함수는 다음과 같은 의미를 가진 Std_ReturnType을 반환합니다 [SWS_Dcm_00805]:
E_OK: 쓰기 요청이 성공적으로 실행되었습니다.DCM_E_PENDING: 작업이 아직 완료되지 않았으며 완료를 위해 추가 호출이 필요합니다.E_NOT_OK: 작업이 실패했습니다. 이 경우 DCM 모듈은 출력 매개변수ErrorCode로 전달된 NRC 값을 포함하는 부정 응답을 전송합니다.
이 텍스트는 AUTOSAR CP R20-11 명세를 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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의 일부이며, 서비스 ID 0x5e을 갖고 헤더 파일 Dcm_Externals.h를 통해 제공됩니다 [SWS_Dcm_01271].
호출은 다음 인터페이스 매개변수를 통해 비동기 시맨틱(Asynchronous)으로 수행됩니다 [SWS_Dcm_01271]:
DID(IN,uint16): 요청된 DID 범위의 구체적인 데이터 식별자(Data ID value)를 나타냅니다 [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].
AUTOSAR Classic R20-11의 DCM 사양을 기반으로 생성된 사용 지침입니다.
구현자 가이드 준비 중 (복잡도 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은 OBD Service $09에 대한 진단 요청이 수신되고 요청된 InfoType이 가용성 InfoType(\"availability InfoType\")이 아닐 때 DCM 모듈에 의해 호출됩니다 [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].
이 텍스트는 AI에 의해 생성되었으며 참고용으로 제공됩니다. 공식 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 모듈은 하위 기능 startRoutine이 포함된 RoutineControl(0x31)용 UDS 서비스 요청이 수신되어 성공적으로 검증되었을 때[SWS_Dcm_00400], 또는 가용성 식별자가 아닌 OBDTestId가 포함된 RoutineControl 요청이 수신될 때[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 모듈은 dataOut을 통해 제공된 데이터를 routineStatusRecord로 포함하여 긍정 UDS 응답을 반환합니다[SWS_Dcm_00401]. 실행이 E_NOT_OK으로 실패하면, DCM은 매개변수 ErrorCode에 지정된 NRC가 포함된 부정 응답을 전송합니다[SWS_Dcm_01203]. OBD 루틴의 맥락에서 E_OK 이외의 반환값은 NRC 0x22 전송을 초래합니다[SWS_Dcm_01394].
이 텍스트는 AI에 의해 생성되었으며 참고용입니다. 오직 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])을 갖습니다. 유일한 입력 매개변수로 루틴 전송의 확인 상태를 설명하는 타입 Dcm_ConfirmationStatusType의 ConfirmationStatus가 전달됩니다. 사양에 따르면 추가적인 입력 및 출력 매개변수는 존재하지 않습니다([SWS_Dcm_91016]).
오류 처리 및 반환값
반환값으로 함수는 타입 Std_ReturnType의 상태 값을 반환합니다([SWS_Dcm_91016]). 여기서 값 E_OK는 요청의 성공적인 수행을 확인하는 반면, E_NOT_OK은 성공적이지 않은 처리를 알립니다. 특정 오류 코드나 Development Error Tracer(DET) 또는 Diagnostic Event Manager(DEM)로의 명시적 보고는 이 함수의 페이로드에 정의되어 있지 않습니다.
동시성 및 제약사항
동시성과 관련하여 Xxx_StartConfirmation은 재진입 불가(Non Reentrant)로 분류됩니다([SWS_Dcm_91016]). 이는 호출자가 경쟁적 또는 중복 실행을 엄격히 방지해야 함을 요구합니다. 해석: 이 함수는 전송 프로세스의 완료를 애플리케이션 측 루틴 구현에 알리기 위해 DCM에 의해 호출되는 것으로 추정됩니다. 질문 Q-be2dafd63bf2a9a5 (열림)
이 텍스트는 AI에 의해 작성되었으며 AUTOSAR 표준 릴리스 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에 의해 호출됩니다. 호출은 필요한 사전 검사가 성공적으로 완료되는 즉시 stopRoutine 서브기능을 사용하는 UDS 서비스 RoutineControl (0x31)의 일부로 수행됩니다 [SWS_Dcm_00402]. 이 인터페이스는 서비스 ID 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은 생성된 출력 데이터를 routineStatusRecord로 포함하여 긍정 UDS 응답을 전송합니다 [SWS_Dcm_01204], [SWS_Dcm_00403].E_NOT_OK: 루틴 중단 실패; DCM은ErrorCode에 저장된 NRC를 포함하여 부정 UDS 응답을 전송합니다 [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]. 실행 중 오류가 발생하면 애플리케이션은 매개변수 ErrorCode에 적절한 Dcm_NegativeResponseCodeType을 기록하고 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]. 호출 시 시스템은 타입 Dcm_ConfirmationStatusType의 입력 매개변수 ConfirmationStatus을 통해 루틴 종료의 구체적인 확인 상태를 전달합니다[SWS_Dcm_91017]. 인터페이스는 반환값으로 타입 Std_ReturnType의 값을 반환합니다: 여기서 E_OK은 요청이 성공적으로 처리되었음을 나타내는 반면, E_NOT_OK은 성공적이지 않은 요청을 알립니다[SWS_Dcm_91017].
동시성 및 호출 조건과 관련하여 인터페이스는 재진입 불가(Non Reentrant)로 명시되어 있으며 서비스 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 모듈에 의해 호출됩니다. 이는 모든 입력 측 검사가 성공적으로 완료되는 즉시 requestRoutineResults 서브기능을 사용하는 UDS 서비스 RoutineControl (0x31)의 일부로 수행됩니다 [SWS_Dcm_00404]. 이 인터페이스는 Dcm_Externals.h를 통해 사용할 수 있으며, 비동기식으로 작동하고 재진입 불가로 명시되어 있습니다 [SWS_Dcm_91013].
DCM 모듈은 OpStatus 매개변수를 통해 작업의 진행을 제어합니다. 이 함수는 고정 입력 데이터(dataIn_1~dataIn_n) 또는 routineControlOptionRecord로부터 파생되는 가변 데이터(dataInVar)를 수신합니다 [SWS_Dcm_00404]. 애플리케이션은 고정 출력 매개변수(dataOut_1~dataOut_n) 또는 가변 출력 버퍼(dataOutVar 및 variableDataLength)를 통해 결과 데이터를 DCM에 전달합니다 [SWS_Dcm_91013].
조회가 E_OK으로 성공적으로 완료되면 DCM 모듈은 구성 매개변수 DcmDspRequestRoutineResultsOut을 기반으로 출력 데이터를 routineStatusRecord로 결합하고 긍정 응답을 전송합니다 [SWS_Dcm_00405]. 작업이 아직 진행 중인 경우 애플리케이션은 후속 호출을 위해 DCM_E_PENDING를 반환하거나 임시 응답(NRC 0x78)을 전송하기 위해 DCM_E_FORCE_RCRRP를 반환할 수 있습니다 [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에 선언되어 있으며 서비스 ID 0x70을 갖습니다[SWS_Dcm_91018]. 타입 Dcm_ConfirmationStatusType의 입력 매개변수 ConfirmationStatus를 통해 구현체는 루틴 결과 전송이 완료된 상태에 관한 정보를 수신합니다[SWS_Dcm_91018]. 호출은 동기식으로 실행되며 Std_ReturnType을 반환하는데, 여기서 E_OK는 성공적인 처리를 나타내고 E_NOT_OK은 실패를 알립니다[SWS_Dcm_91018].
동시성 및 제약사항
사양에 따르면 이 함수는 재진입 불가(Non Reentrant)로 분류됩니다[SWS_Dcm_91018]. 따라서 동일한 인스턴스에 대한 동시 호출은 발생하지 않아야 합니다. 해석: DCM 모듈에 의한 호출은 응답 확인의 맥락에서 순차적으로 이루어지므로, 이 함수는 차단 작업 없이 실행되어야 합니다. 질문 Q-935a06744e7b9af7 (열림)
오류 처리 및 상호 작용
이 호출에 대해 별도의 개발 오류(DET) 또는 프로덕션 오류(DEM)가 명시되어 있지 않으므로, 오류 처리는 반환값 E_NOT_OK으로 제한됩니다[SWS_Dcm_91018]. 해석: 이 함수는 루틴 결과 전송 후 사용자 레벨에서 진단 작업의 완료를 동기화하기 위한 DCM의 애플리케이션별 확인 엔드포인트(콜백) 역할을 합니다. 질문 Q-d3dd0142a30e1363 (열림)
이 텍스트는 AI에 의해 작성되었습니다. 명시된 내용은 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 모듈은 테스트 ID(TID)가 가용성 TID(\"availability TID\")가 아닌 OBD Service $08 요청이 수신되는 즉시 구성된 함수를 동기식으로 호출합니다([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)로 명시되어 있으며 서비스 ID 0x63을 갖습니다([SWS_Dcm_01338]).
AI 참고 사항: 이 텍스트는 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].
호출 컨텍스트 및 매개변수
호출은 구성된 모든 [SWS_Dcm_00036], [SWS_Dcm_01339] 함수에 대해 DCM의 DSL 서브모듈에 의해 동기식 및 재진입 불가로 수행됩니다. 함수에는 다음 입력 매개변수가 전달됩니다[SWS_Dcm_01339]:
ProtocolType: 시작할 진단 프로토콜의 타입,TesterSourceAddress: 요청 테스터의 소스 주소,ConnectionId: 연결의 고유 식별자.
반환값 및 오류 처리
반환값으로 함수는 성공적으로 승인된 경우 E_OK을 갖는 Std_ReturnType을 반환하고, 검사가 성공하지 못한 경우 E_NOT_OK를 반환하거나, 프로토콜이 허용되지 않는 경우 E_PROTOCOL_NOT_ALLOWED을 반환합니다[SWS_Dcm_01339]. 구성된 Xxx_StartProtocol 함수 중 하나 이상이 E_OK을 반환하지 않으면, DCM은 프로토콜 시작을 중단하고 NRC 0x22로 응답합니다[SWS_Dcm_00674].
성공적인 승인 후 초기화
구성된 모든 Xxx_StartProtocol 콜백이 E_OK을 반환한 후에만 DCM은 후속 초기화 단계를 실행합니다:
- Default Session 구성 [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.
동기 콜백 함수 Xxx_StopProtocol은 애플리케이션에 진단 프로토콜([SWS_Dcm_01340])의 종료를 알립니다. 이 함수는 헤더 파일 Dcm_Externals.h를 통해 선언되며 재진입 불가(Non Reentrant)로 명시되어 있습니다([SWS_Dcm_01340]).
구성된 모든 Xxx_StopProtocol 함수(매개변수 DcmDslCallbackDCMRequestService을 통해 구성됨)의 호출은 다음 선점(Preemption) 시나리오에서 DSL 서브모듈에 의해 트리거됩니다:
- 진행 중인 진단 요청이 다른 프로토콜의 더 높은 우선순위 요청에 의해 선점되는 경우([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]. 구성 컨테이너 DcmDsdServiceRequestManufacturerNotification [SWS_Dcm_00218] 또는 DcmDsdServiceRequestSupplierNotification [SWS_Dcm_00516]이 존재하는 경우 DSD 서브모듈에 의해 구성된 모든 ServiceRequestIndication 포트에서 동기식으로 호출됩니다.
입력 매개변수로는 서비스 ID(SID), SID를 제외한 요청 데이터(RequestData, DataSize), 어드레싱 유형(ReqType), 연결 ID(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 서브모듈은 부정 응답을 위해 E_NOT_OK(으)로 응답하는 첫 번째 함수의 ErrorCode을(를) 구속력 있게 사용합니다[SWS_Dcm_01321], [SWS_Dcm_01322].
이 텍스트는 AUTOSAR CP R20-11 명세를 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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)(Non Reentrant) 및 동기식으로 명세되어 있으므로([SWS_Dcm_01342]), 애플리케이션 측 구현에는 블로킹 시퀀스가 포함되지 않아야 하며 DCM으로의 재진입 콜백을 트리거하지 않아야 합니다(해석). 질문 Q-58ce3e44dc61540b (열림)
이 텍스트는 AI에 의해 작성되었습니다. 모든 내용은 전적으로 R20-11 릴리스의 AUTOSAR 명세 범위를 기반으로 합니다.
구현자 가이드 준비 중 (복잡도 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.
사용
동기 콜아웃 함수 Xxx_ClearDTCCheckFnc은 헤더 파일 Dcm_Externals.h을 통해 애플리케이션에 제공됩니다 [SWS_Dcm_01270]. 이 함수는 요청된 진단 오류 코드 그룹(Group of DTC)을 삭제하기 전에 제조업체 및 공급업체별 조건을 검사하는 역할을 합니다. 입력 매개변수로는 삭제할 오류 코드 그룹을 지정하는 uint32 타입의 식별자 GoDTC이 전달됩니다 [SWS_Dcm_01270].
오류 처리 및 반환값
삭제 요청의 승인은 출력 매개변수 ErrorCode과 함께 Std_ReturnType 타입의 반환값을 통해 이루어집니다 [SWS_Dcm_01270]:
E_OK: 애플리케이션이 요청된 오류 코드 그룹의 삭제를 허용합니다GoDTC[SWS_Dcm_01270].E_NOT_OK: 애플리케이션이 그룹 삭제를 불허합니다. 이 오류의 경우Dcm_NegativeResponseCodeType*타입의 출력 매개변수ErrorCode을 통해 부정 응답 코드를 설정해야 합니다. 그러면 DCM 모듈은ErrorCode에 지정된 NRC 값을 포함하는 부정 응답을 전송합니다 [SWS_Dcm_01270].
동시성 및 제약사항
이 함수는 서비스 ID 0x5f을 가지며, 동기식으로 작동하고 재진입 불가(Non Reentrant)로 정의되어 있습니다 [SWS_Dcm_01270]. 따라서 호출 컨텍스트는 호출이 동시 중첩 없이 순차적으로 발생하도록 보장해야 합니다.
이 사용 지침은 AUTOSAR R20-11의 SWS_Dcm_01270 사양을 기반으로 AI에 의해 생성되었습니다.
함수 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.
콜아웃 함수 Xxx_ProcessRequestDownload([SWS_Dcm_00754])은 UDS 서비스 RequestDownload 처리 시 다운로드 프로세스를 시작하기 위해 Dcm 모듈에 의해 호출됩니다. 비동기식 및 비재진입으로 정의되며 헤더 Dcm_Externals.h을 통해 제공됩니다([SWS_Dcm_00754]).
사용법 및 매개변수
호출은 DCM_INITIAL, DCM_PENDING 또는 DCM_CANCEL 값을 갖는 매개변수 OpStatus을 통해 단계별로 수행됩니다([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은 DET 오류DCM_E_INTERFACE_BUFFER_OVERFLOW을 보고합니다([SWS_Dcm_01418]). E_NOT_OK이 반환되면Dcm은 출력 매개변수ErrorCode에 설정된 값을 포함하는 UDS 부정 응답(NRC)을 전송합니다([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.
콜아웃 함수 Xxx_ProcessRequestTransferExit은 UDS 서비스 RequestTransferExit의 프레임워크 내에서 진행 중인 다운로드 또는 업로드 프로세스를 종료하기 위해 DCM 모듈에 의해 호출됩니다 [SWS_Dcm_00755]. 인터페이스 선언은 헤더 Dcm_Externals.h를 통해 제공됩니다 [SWS_Dcm_00755].
사용법 및 의미론
이 함수는 비동기식으로 작동하며 재진입 불가능으로 정의되어 있습니다 [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.
콜아웃 함수 Xxx_ProcessRequestUpload은 UDS 서비스 RequestUpload를 시작하기 위해 DCM 모듈에 의해 호출됩니다([SWS_Dcm_00756]). 이 함수는 Dcm_Externals.h를 통해 제공되며 재진입 불가능 및 비동기식으로 명시되어 있습니다([SWS_Dcm_00756]). DCM은 매개변수 OpStatus(상태 DCM_INITIAL, DCM_PENDING, DCM_CANCEL 또는 DCM_FORCE_RCRRP_OK 가짐)를 통해 작업 진행을 제어합니다([SWS_Dcm_00756]).
호출 시 DCM은 무엇보다도 압축 및 암호화 방식(DataFormatIdentifier), 메모리 블록(MemoryIdentifier), 시작 주소(MemoryAddress), 바이트 단위의 비압축 메모리 크기(MemorySize)를 전달합니다([SWS_Dcm_00756]). 입출력(In/Out) 매개변수 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 모듈은 출력 매개변수ErrorCode에 설정된 NRC 값을 포함하는 UDS 부정 응답을 전송합니다([SWS_Dcm_00756], [SWS_Dcm_00758]). - 함수가
BlockLength에 현재 프로토콜 연결의 지원되는 버퍼 길이 이하인 요청 버퍼 길이를 반환하는 경우, DCM은 이 값을 긍정 응답의maxNumberOfBlockLength으로 사용합니다([SWS_Dcm_01422]). - 반면 반환된 버퍼 길이가 프로토콜 연결에서 지원하는 버퍼 길이보다 큰 경우, DCM은 DET 오류
DCM_E_INTERFACE_BUFFER_OVERFLOW을 보고합니다([SWS_Dcm_01421]).
이 텍스트는 AI에 의해 작성되었습니다. 전달된 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
콜아웃 함수 Xxx_ProcessTransferDataRead은(는) [SWS_Dcm_91070]에 따라 시작 주소(MemoryAddress) 및 길이(MemorySize)를 기반으로 ECU에서 메모리 데이터를 비동기식으로 판독하는 역할을 합니다. 헤더 Dcm_Externals.h을(를) 통해 제공되며 UDS 서비스 ReadMemoryByAddress, RequestUpload, TransferData 및 메모리 주소를 통해 동적으로 정의된 DID에 대한 ReadDataByIdentifier를 지원합니다[SWS_Dcm_91070].
호출은 비재진입(Non Reentrant)으로 수행되며 매개변수 OpStatus을(를) 통해 제어됩니다([SWS_Dcm_91070]):
DCM_INITIAL: 읽기 연산을 시작합니다.DCM_PENDING: 아직 완료되지 않은 읽기 프로세스를 계속합니다.DCM_CANCEL: 진행 중인 연산을 중단합니다.DCM_FORCE_RCRRP_OK: 보류 중인 응답의 전송을 확인합니다.
어드레싱을 위해 MemoryIdentifier을(를) 통해 메모리 블록 또는 영역을 선택할 수 있으며, 이 매개변수를 사용하지 않는 경우 반드시 0으로 설정해야 합니다[SWS_Dcm_91070]. 판독된 데이터는 DCM의 진단 버퍼를 직접 가리키는 출력 매개변수 MemoryData을(를) 통해 반환됩니다[SWS_Dcm_91070].
반환값으로는 성공 시 DCM_READ_OK, 판독이 아직 진행 중인 경우 DCM_READ_PENDING, 프로세스가 보류 중이며 Response-Pending 메시지를 즉시 전송해야 하는 경우 DCM_READ_FORCE_RCRRP이(가) 정의되어 있습니다[SWS_Dcm_91070]. 읽기에 실패하면 함수는 DCM_READ_FAILED을(를) 반환합니다. 이 경우 포인터 ErrorCode을(를) 통해 부정 응답 코드(NRC)를 전달해야 하며, DCM은 이를 부정 응답으로 전송합니다[SWS_Dcm_91070]. (해석: ErrorCode에 대한 명세 노트에 Dcm_ReadMemory이(가) 언급되어 있으나, 여기서는 맥락상 이 콜아웃의 실패를 지칭하는 것으로 보입니다.) 질문 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
사용법 및 의미론
비동기 콜아웃 Xxx_ProcessTransferDataWrite(서비스 ID 0x27)은(는) Dcm_Externals.h을(를) 통해 사용할 수 있으며, UDS 서비스 WriteMemoryByAddress, RequestDownload 및 TransferData를 위한 메모리 데이터를 쓰기 위해 DCM 모듈에 의해 호출됩니다[SWS_Dcm_91071]. 쓰기 프로세스의 흐름은 DCM_INITIAL, DCM_PENDING, DCM_CANCEL 또는 DCM_FORCE_RCRRP_OK 값을 갖는 매개변수 OpStatus을(를) 통해 제어됩니다[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].
오류 처리 및 동시성
콜아웃이 DCM_WRITE_FAILED 값을 반환하면, DCM 모듈은 매개변수 ErrorCode에 전달된 NRC 값으로 부정 응답을 전송합니다[SWS_Dcm_91071]. 이 콜아웃은 비재진입(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 프로세스가 아직 완료되지 않는 등의 이유로 ResponseOnOneEvent 요청이 DCM에 의해 거부되었음을 나타내며, 이 값은 인터페이스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 (열림)
이 텍스트는 AI에 의해 작성되었으며 AUTOSAR 사양을 기반으로 합니다.
구현자 가이드 준비 중 (복잡도 I1)
타입 Dcm_CommunicationModeType [SWS_Dcm_00981] 📄 PDF
Manager
데이터 타입 Dcm_CommunicationModeType은 Dcm.h에 선언된 uint8 기반의 열거형 타입입니다([SWS_Dcm_00981]). 이는 송신(Tx) 및 수신(Rx) 경로를 선택적으로 제어하기 위한 통신 모드를 정의합니다. 값 범위에는 일반 응용 데이터(NORM), 네트워크 관리(NM), 그리고 두 통신 분기를 결합한 경우(NORM_NM)를 위한 0x00부터 0x0B까지의 값이 포함됩니다([SWS_Dcm_00981]).
이 타입은 BSW 인터페이스 BswM_Dcm_CommunicationMode_CurrentState을 호출할 때 매개변수로 사용됩니다. DCM은 UDS 서비스 요청 CommunicationControl(서비스 0x28)의 전송 확인(Sent Confirmation) 후 이를 통해 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)의 경우, 서브 노드 ID를 통해 참조되는 채널에 대해 호출이 수행됩니다([SWS_Dcm_01077], [SWS_Dcm_01079]).
이 텍스트는 AUTOSAR 사양 R20-11을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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): 전자 제어 장치(ECU)가 정상 작동 상태로 정규 시작됩니다 [SWS_Dcm_00987].DCM_WARM_START(0x01): 전자 제어 장치(ECU)가 부트로더로부터의 점프 결과로 시작됩니다 [SWS_Dcm_00987].
인터페이스 간의 상호작용에서 Dcm_EcuStartModeType은 Dcm_Externals.h를 통해 제공되는 콜아웃 Dcm_GetProgConditions의 동기 반환값 역할을 합니다 [SWS_Dcm_00544]. 이 함수는 긍정 응답($50 또는 $51)을 전송해야 하는지 여부를 확인하기 위해 DCM 초기화 중에 호출됩니다 [SWS_Dcm_00544]. 부트로더 점프의 상세한 세부 조건은 출력 매개변수 ProgConditions를 통해 DCM에 전달됩니다 [SWS_Dcm_00544].
실행 및 오류 처리와 관련하여, 호출 콜아웃은 동기식 및 재진입 불가능으로 정의되어 있습니다 [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및 응답 보류(Response-Pending) 메시지(NRC 0x78) 요청 시DCM_E_FORCE_RCRRP입니다[SWS_Dcm_00543]. - 재부팅 후 DCM은 초기화 중에 동기 비재진입 콜아웃
Dcm_GetProgConditions()을 호출하여 저장된 조건을 읽고Dcm_EcuStartModeType을 확인합니다[SWS_Dcm_00544]. 통합자에 의한 이러한 데이터 저장은 일반적으로 리셋 비휘발성 RAM 또는 비휘발성 메모리를 통해 이루어질 것으로 보입니다(해석). 질문 Q-026bc7bc93f5502c (열림)
추가적인 시스템 상호작용에서 DCM은 구조체를 평가합니다. ComM이 완전한 통신 기능을 보고하는 즉시 DCM은 Sid에 저장된 서비스 식별자에 대한 대기 중인 진단 응답을 전송합니다[SWS_Dcm_00767]. 부트로더 점프 후 ApplUpdated == True가 플래시 다운로드를 통한 업데이트 완료를 알리면, 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) 바로 뒤부터 시작하는 진단 요청의 페이로드를 가리키며, SID 자체는 이 데이터의 일부가 아닙니다 [SWS_Dcm_00994].resData: 긍정 응답의 데이터를 가리키며 역시 서비스 식별자 바로 뒤부터 시작합니다 [SWS_Dcm_00994].
버퍼 경계 및 제한 사항
Dcm_MsgType을 통해 주소 지정되는 응답 버퍼를 처리하고 채울 때 사용자는 관련 버퍼 제한을 엄격히 준수해야 합니다 [SWS_Dcm_00994]. 최대 응답 크기는 할당된 버퍼의 할당에 의해 엄격하게 제한되므로, 실제 응답 길이 resDataLen는 resMaxDataLen에 의해 정의된 버퍼 용량을 절대로 초과해서는 안 됩니다 [SWS_Dcm_00994].
이 텍스트는 AUTOSAR Classic 릴리스 R20-11 사양을 기반으로 AI에 의해 생성되었습니다.
타입 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)에서 진단 메시지의 길이를 설명하는 데 사용됩니다. 여기에는 진단 요청(Request)뿐만 아니라 긍정 및 부정 응답 메시지(Response)가 모두 포함됩니다 [SWS_Dcm_00991].
값 범위 제한과 관련하여, 사양에는 진단 메시지의 최대 전송 가능 길이가 각각의 기본 전송 프로토콜 또는 전송 매체에 따라 달라진다고 명시되어 있습니다 [SWS_Dcm_00991]. 해석: 기본 데이터 타입 uint32은 소프트웨어 측면에서 최대 4 GiB의 메시지 길이를 나타낼 수 있지만, 실제 최대 길이는 통신 매체 및 버퍼 크기에 의해 항상 제한될 것으로 추정됩니다. 질문 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 사양을 바탕으로 AI에 의해 생성되었습니다.
타입 Dcm_MsgAddInfoType [SWS_Dcm_00992] 📄 PDF
Additional information on message request. Datastructure: Bitfield
데이터 타입 Dcm_MsgAddInfoType은 [SWS_Dcm_00992]에 따라 비트 필드 구조체로 정의되며 진단 메시지에 대한 추가 상태 및 제어 정보를 제공하는 역할을 합니다. 이 타입은 클래식 AUTOSAR에서 헤더 파일 Dcm.h를 통해 제공되며 상위 컨텍스트 구조체 Dcm_MsgContextType([SWS_Dcm_00994]) 내의 요소 msgAddInfo으로 사용되어 서비스 요청 및 관련 응답에 대한 추가 정보를 일관되게 묶습니다.
비트 필드 구조체는 [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 (열림)
이 텍스트는 AI에 의해 생성되었으며 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 하위 모듈은 전송 버퍼로 복사할 때 첫 번째 위치에 응답 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 명세를 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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].
이 텍스트는 사양을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I2)
타입 Dcm_OpStatusType [SWS_Dcm_00984] 📄 PDF
유형 Dcm_OpStatusType은 uint8을 기반으로 하며 헤더 파일 Rte_Dcm_Type.h를 통해 제공됩니다 [SWS_Dcm_00984]. 이는 Dcm_ReadMemory [SWS_Dcm_00539], Dcm_WriteMemory [SWS_Dcm_00540] 또는 Dcm_SetProgConditions [SWS_Dcm_00543]와 같은 Diagnostic Communication Manager(DCM)의 비동기 진단 작업의 실행 및 수명 주기 상태를 제어합니다.
작업 흐름을 제어하기 위해 4가지 상태 값이 정의되어 있습니다 [SWS_Dcm_00984]:
DCM_INITIAL(0x00): DCM에 의한 작업의 첫 번째 호출을 나타냅니다 [SWS_Dcm_00527].DCM_PENDING(0x01): 이전 보류(pending) 상태 반환 후의 후속 호출을 나타냅니다 [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].
이 텍스트는 AI에 의해 생성되었으며 사양에 대한 참고 가이드 역할을 합니다.
구현자 가이드 준비 중 (복잡도 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)로 전달됩니다. 일반 확인 인터페이스 Xxx_Confirmation에서는 이 매개변수가 서비스 식별자(SID), 주소 지정 모드(ReqType), 연결 ID(ConnectionId), 프로토콜 타입 및 테스터 소스 주소와 함께 전달됩니다 [SWS_Dcm_01342]. 마찬가지로 인터페이스 ServiceRequestNotification도 작업 Confirmation을 통해 이 상태를 통합합니다 [SWS_Dcm_00694].
루틴 서비스 실행 시, 개별 루틴 작업 완료 후 전송 상태를 보고하기 위해 이 타입이 구체적으로 사용됩니다. 이를 위해 Dcm_Externals.h에 선언된 콜백인 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].
실제 적용에서 이 타입은 인증되지 않은 진단 연결에 대한 역할을 설정하기 위한 입력 매개변수로 사용됩니다:
- 사용 및 시맨틱: 이 타입은 C 함수
Dcm_SetDeauthenticatedRole(Dcm.h을(를) 통해 사용 가능) [SWS_Dcm_91069] 및 서비스 인터페이스Authentication의 오퍼레이션SetDeauthenticatedRole[SWS_Dcm_91072]에서 입력 매개변수deauthenticatedRole(으)로 전달됩니다. 이를 통해connectionId을(를) 통해 식별되는 연결에 비인증 역할이 동기식으로 할당됩니다 [SWS_Dcm_91069]. - 동시성 및 유효성: C API
Dcm_SetDeauthenticatedRole은(는) 재진입 가능(reentrant)하도록 명세되어 있습니다 [SWS_Dcm_91069]. 할당된 역할은 해당 연결이 인증된 상태로 전환되거나 제어기가 리셋될 때까지 해당 연결에 대해 유효하게 유지됩니다 [SWS_Dcm_91069], [SWS_Dcm_91072]. - 오류 처리: 해당 타입 및 관련 오퍼레이션에 대해 특정 오류 코드는 존재하지 않으며, 함수는 기본적으로 항상
E_OK을(를) 반환합니다 [SWS_Dcm_91069], [SWS_Dcm_91072].
이 텍스트는 사양을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
타입 DiagnosticSessionControlModeSwitchInterface [SWS_Dcm_91033] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Diagnostic Session
사용
인터페이스 요소 DiagnosticSessionControlModeSwitchInterface은(는) [SWS_Dcm_91033]에 따라 DCM 모듈의 제공된 포트(PPortPrototype 또는 ProvidedPort)(으)로 선언되어 있으며, 인터페이스 Dcm_DiagnosticSessionControlModeSwitchInterface을(를) 사용합니다. [SWS_Dcm_91033]의 명세에 따라 이 포트는 활성 진단 세션(Diagnostic Session)의 전환 및 현재 상태에 대해 소프트웨어 컴포넌트(SW-C)에 통지하는 역할을 합니다.
해석: 여기서 DCM 모듈은 진단 세션의 상태 변경 사항을 RTE를 통해 관심 있는 소프트웨어 컴포넌트로 전달하는 송신자 역할을 수행하는 것으로 추정됩니다. 질문 Q-6af0e97b6910087d (열림) 연결된 SW-C는 구성된 Mode-Switch 이벤트를 통해 이러한 모드 변경을 수신 및 처리하여 내부 시퀀스, 활성화 조건 또는 기능적 동작을 각각의 활성 진단 세션에 맞게 조정할 것으로 보입니다.
오류 처리 및 제약 조건
이 포트에 대해서는 [SWS_Dcm_91033]에 특정 오류 코드, 반환값 또는 DET나 DEM으로의 알림이 정의되어 있지 않습니다. 해석: 따라서 전송 시 발생 가능한 오류 상태는 AUTOSAR RTE 및 DCM 기본 모듈의 일반적인 메커니즘을 통해 완전히 모니터링되고 처리될 것으로 추정됩니다. 질문 Q-a8055458432174f6 (열림) 재진입성 또는 호출 컨텍스트와 관련된 특별한 제한 사항은 명세 데이터에 포함되어 있지 않으므로 추가로 고려하지 않습니다.
이 텍스트는 AUTOSAR R20-11 사양을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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]에 따라 DCM 모듈의 제공된 포트(ProvidedPort 또는 PPortPrototype)(으)로 명세되어 있습니다. 이는 인터페이스 Dcm_EcuResetModeSwitchInterface을(를) 사용하며, 예정된 제어기 리셋 및 정확한 리셋 유형에 대해 소프트웨어 컴포넌트(SW-C)에 알리는 역할을 합니다 [SWS_Dcm_91034].
시스템 내 사용 및 상호 작용과 관련하여 다음 사항이 적용됩니다:
- 통신 역할: DCM은 모드 변경의 송신자 역할을 합니다. 관심 있는 SW-C는 해당 수신 포트(R-Port)를 통해 바인딩되어 알림에 대응합니다 [SWS_Dcm_91034].
- 모드 변경 시맨틱:
ModeSwitchInterface(으)로서 여기서는 클라이언트-서버 반환값이나 데이터 매개변수가 전송되지 않으며, RTE를 통해 상태 변경이 신호화됩니다 [SWS_Dcm_91034]. 따라서 알림은 인터페이스의 Mode 선언을 통해 이루어집니다. - 컴포넌트의 반응: 통지된 리셋 유형을 통해 SW-C는 예정된 재기동 유형에 대한 정보를 얻습니다 [SWS_Dcm_91034]. 이를 통해 애플리케이션은 휘발성 런타임 데이터를 비휘발성 메모리에 정돈된 방식으로 저장하거나 재기동 전에 주변 하드웨어를 안전한 상태로 전환할 수 있을 것으로 추정됩니다(해석). 질문 Q-4dcf9314d84b53a0 (열림)
- 오류 처리: 인터페이스 정의 자체에는 SW-C의 오류 상태에 대한 오류 메시지나 반환 채널이 포함되어 있지 않습니다 [SWS_Dcm_91034].
이 텍스트는 AI에 의해 생성되었으며 AUTOSAR 릴리스 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]에 따라 모듈 Dcm 내에서 인터페이스 Dcm_ModeRapidPowerShutDownModeSwitchInterface에 대한 PPortPrototype(ProvidedPort)(으)로 명세되어 있습니다. 이는 소프트웨어 컴포넌트(SW-C)에 빠른 셧다운 모드(Rapid Power Shut Down Mode)에 대해 통지하는 역할을 합니다.
사용, 동작 및 상호 작용과 관련하여 다음 사항이 관련됩니다:
- 사용 및 시맨틱: DCM은
ModeSwitchInterface을(를) 통해 연결된 SW-C에 모드 변경을 신호화합니다. 호출 컨텍스트는 모드 변경을 유발하는 DCM 모듈 내에 있으며, 수신자로의 전송은 RTE를 통해 비동기식으로 이루어집니다 [SWS_Dcm_91035]. - 오류 처리: 포트 정의에는 특정 오류 코드, 반환값 또는 DET/DEM 이벤트가 포함되어 있지 않습니다. 따라서 모드 전송 시의 오류는 Mode-Switch 포트에 대한 AUTOSAR RTE의 표준 메커니즘을 통해 완전히 처리될 것으로 추정됩니다. 질문 Q-16537a6a4e19e40b (열림)
- 동시성 및 제한 사항: 알림은 DCM의 실행 컨텍스트에서 수행됩니다. 수신 측 SW-C는 모드 트리거 방식의 Runnable을 통해 활성화되는 것으로 추정되며, 빠른 셧다운을 위한 동작을 차단성 지연 없이 실행하도록 설계되어야 합니다. 질문 Q-20f196c7af208288 (열림)
이 텍스트는 AUTOSAR 사양을 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
타입 ControlDTCSettingModeSwitchInterface [SWS_Dcm_91037] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the DTC Setting mode
용도 및 목적
요소 ControlDTCSettingModeSwitchInterface은(는) [SWS_Dcm_91037]에 따라 진단 통신 관리자(DCM)의 Provided 포트(PPortPrototype)(으)로 제공되는 ModeSwitchInterface입니다. 이것의 주된 역할은 연결된 소프트웨어 컴포넌트(SW-C)에 DTC 설정 모드(DTC Setting mode)의 현재 상태를 통지하는 것입니다.
포트 인터페이스로는 여기서 Dcm_ControlDTCSettingModeSwitchInterface이(가) 사용됩니다 [SWS_Dcm_91037]. DCM이 이 포트를 Provided 포트로 선언하므로 진단 모듈이 모드 관리자 또는 송신자 역할을 맡습니다. 애플리케이션 컴포넌트는 해당 Required 포트를 통해 연결되어 상태 변경을 수신하고 내부 동작을 조정할 수 있습니다.
상호작용 및 시스템 통합
시스템 연계에서의 상호 작용은 진단 명령과 애플리케이션 로직의 분리에 중점을 둡니다:
- 모드 전파: 제공된 포트를 통해 DCM은 진단 고장 코드의 저장 및 업데이트가 활성 상태인지 비활성(잠금) 상태인지를 SW-C에 전달합니다 [SWS_Dcm_91037]. SW-C에 대한 알림은 AUTOSAR 런타임 환경에서 RTE의 표준 Mode-Switch 이벤트를 통해 이루어질 것으로 추정됩니다. 질문 Q-8c0918099f2aa797 (열림)
- 진단적 기원: DTC 설정 모드의 전환은 외부 테스터가 고장 로깅을 일시적으로 억제할 수 있는 ControlDTCSetting(서비스 0x85)과 같은 UDS 진단 서비스의 직접적인 맥락에 있는 것으로 추정됩니다. 질문 Q-f2555e0641476955 (열림)
오류 처리 및 제약 조건
[SWS_Dcm_91037]의 명세에 특정 오류 코드나 DET 메시지 또는 반환값이 정의되어 있지 않으므로 모드 전송은 RTE의 메커니즘을 통해 순수하게 선언적으로 수행됩니다. 포트 선언 자체에 대해 특별한 호출 컨텍스트나 재진입성 규정은 명시되어 있지 않습니다.
이 텍스트는 AUTOSAR Classic R20-11 명세서를 기반으로 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 I1)
타입 SecurityAccessModeSwitchInterface [SWS_Dcm_91039] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Security Level
포트 요소 SecurityAccessModeSwitchInterface은(는) DCM 모듈에서 인터페이스 Dcm_SecurityAccessModeSwitchInterface을(를) 기반으로 하는 Provided 포트(PPortPrototype)를 제공합니다 [SWS_Dcm_91039]. 이 인터페이스의 목적은 소프트웨어 컴포넌트(SW-C)에 현재 활성화된 보안 수준(Security Level)을 통지하는 것입니다 [SWS_Dcm_91039].
사용법 및 상호작용
알림은 DCM의 포트를 통해 연결된 컴포넌트로 전달됩니다 [SWS_Dcm_91039]. 이 제공 방식은 AUTOSAR RTE를 통한 Mode-Switch 통신으로 구현되어 연결된 SW-C가 Mode-Switch 이벤트를 통해 Security Level의 상태 변경에 대응할 수 있을 것으로 추정됩니다(해석). 질문 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은 제어기(ECU)에서 빠른 종료(Rapid Power Shutdown)의 활성화 상태를 표현하는 데 사용됩니다 [SWS_Dcm_91023]. 이 요소는 EXPLICIT_ORDER 카테고리에 할당되며 두 가지 구체적인 모드를 정의합니다: 숫자 값 0를 갖는 초기 모드 DCM_ENABLE_RAPIDPOWERSHUTDOWN 및 값 1을 갖는 DCM_DISABLE_RAPIDPOWERSHUTDOWN [SWS_Dcm_91023]. 모드 전환에 대해서는 전환 값 255 (On transition value)가 명시되어 있습니다 [SWS_Dcm_91023].
상호작용 및 모드 관리
전체 시스템에서 DCM 모듈은 일련의 진단 모드에 대한 모드 관리자(Mode Manager) 역할을 하며, 여기에는 진단 서비스 0x11 (ECU Reset) 컨텍스트의 DcmModeRapidPowerShutDown도 포함됩니다 [SWS_Dcm_00775]. 베이직 소프트웨어 내에서 DCM은 이 ModeDeclarationGroup [SWS_Dcm_00807]을 기반으로 자체 BSW 모듈 인스턴스에서 ModeDeclarationGroupPrototype DcmModeRapidPowerShutDown을 provided-ModeGroup로 정의합니다.
빠른 종료의 현재 활성화 상태에 대한 정보를 받아야 하는 응용 컴포넌트(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)}
EXPLICIT_ORDER 카테고리의 ModeDeclarationGroup DcmSecurityAccess은 UDS 서비스 0x27 (SecurityAccess)에 대한 제어기(ECU)의 다양한 진단 보안 수준을 나타냅니다 [SWS_Dcm_91031], [SWS_Dcm_00775]. 초기 모드로는 기본적으로 고정값 0을 갖는 DCM_SEC_LEV_LOCKED이 지정됩니다 [SWS_Dcm_91031], [SWS_Dcm_01327]. DCM_SEC_LEV_1부터 DCM_SEC_LEV_63까지의 추가 보안 수준은 DcmDspSecurityRow 아래의 보안 행 구성을 통해 프로젝트 및 애플리케이션별로 보완됩니다 [SWS_Dcm_91031], [SWS_Dcm_01327].
DCM 모듈은 이 진단 모드 [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]. - 현재 Security Level에 대한 정보를 받아야 하는 각 소프트웨어 컴포넌트(SW-C)는 ModeSwitch 인터페이스
Dcm_SecurityAccessModeSwitchInterface에 대한 의존성을 선언하고 이를 Required-Port로 바인딩합니다 [SWS_Dcm_91032]. - 인터페이스 내 개별 모드의 가용성은 기반이 되는 보안 행 [SWS_Dcm_91032]과 동일한 구성 변형의 적용을 받습니다.
이 텍스트는 AI에 의해 생성되었습니다.
구현자 가이드 준비 중 (복잡도 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#9ef89b81- Content hash
9ef89b81- 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 · 독일어 원문