Diagnostic Communication Manager (DCM)
The DCM implements unified diagnostic services according to ISO 14229-1 (UDS) and ISO 15765-4 (OBD). It manages diagnostic sessions, security levels, and service routing.
Funktionen — Übersicht
void Dcm_Init (const Dcm_ConfigType* ConfigPtr);Service for basic initialization of DCM module.void Dcm_GetVersionInfo (Std_VersionInfoType* versionInfo);Returns the version information of this moduleStd_ReturnType Dcm_DemTriggerOnDTCStatus (uint32 DTC, Dem_UdsStatusByteType DTCStatusOld, Dem_UdsStatusByteType DTCStatusNew);Triggers on changes of the UDS status byte.Std_ReturnType Dcm_GetVin (uint8* Data);Function to get the VIN (as defined in SAE J1979-DA)void Dcm_BndMWriteBlockFinish (BndM_BlockIdType BlockId, BndM_ResultType result);Called by BndM to indicate that a block write operation has finished.Std_ReturnType Dcm_SetDeauthenticatedRole (uint16 connectionId, Dcm_AuthenticationRoleType deauthenticatedRole);Sets a new role used in deauthenticated state for that connection.Std_ReturnType Dcm_GetSecurityLevel (Dcm_SecLevelType* SecLevel);This function provides the active security level value.Std_ReturnType Dcm_GetSesCtrlType (Dcm_SesCtrlType* SesCtrlType);This function provides the active session control type value.Std_ReturnType Dcm_GetActiveProtocol (Dcm_ProtocolType* ActiveProtocolType, uint16* ConnectionId, uint16* TesterSourceAddress);This function returns the active UDS protocol detailsStd_ReturnType Dcm_ResetToDefaultSession (void);The call to this function allows the application to reset the current session to Default session.Std_ReturnType Dcm_TriggerOnEvent (uint8 RoeEventId);The call to this function allows to trigger an event linked to a ResponseOnEvent request.Std_ReturnType Dcm_SetActiveDiagnostic (boolean active);Allows to activate and deactivate the call of ComM_DCM_ActiveDiagnostic() function.BufReq_ReturnType Dcm_StartOfReception (PduIdType id, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);This function is called at the start of receiving an N-SDU.BufReq_ReturnType Dcm_CopyRxData (PduIdType id, const PduInfoType* info, PduLengthType* bufferSizePtr);This function is called to provide the received data of an I-PDU segment (N-PDU) to the upper layer.void Dcm_TpRxIndication (PduIdType id, Std_ReturnType result);Called after an I-PDU has been received via the TP API, the result indicates whether the transmission was successful or not.BufReq_ReturnType Dcm_CopyTxData (PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);This function is called to acquire the transmit data of an I-PDU segment (N-PDU).void Dcm_TpTxConfirmation (PduIdType id, Std_ReturnType result);This function is called after the I-PDU has been transmitted on its network, the result indicates whether the transmission was...void Dcm_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.void Dcm_ComM_NoComModeEntered (uint8 NetworkId);This call informs the Dcm module about a ComM mode change to COMM_NO_ COMMUNICATION.void Dcm_ComM_SilentComModeEntered (uint8 NetworkId);This call informs the Dcm module about a ComM mode change to COMM_SILENT_ COMMUNICATION.void Dcm_ComM_FullComModeEntered (uint8 NetworkId);This call informs the Dcm module about a ComM mode change to COMM_FULL_ COMMUNICATION.Std_ReturnType Dcm_CsmAsyncJobFinished (Csm_ResultType result);Can be called from Csm upon finishing an asynchronous job processing.Std_ReturnType Dcm_KeyMAsyncCertificateVerifyFinished (KeyM_CertificateIdType CertID, KeyM_CertificateStatusType Result);Can be called from Key upon finishing an asynchronous certificate verification.Dcm_ReturnReadMemoryType Dcm_ReadMemory (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint8* MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);The Dcm_ReadMemory callout is used to request memory data identified by the parameter memoryAddress and memorySize from the...Dcm_ReturnWriteMemoryType Dcm_WriteMemory (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, const uint8* MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);The Dcm_WriteMemory callout is used to write memory data identified by the parameter memoryAddress and memorySize.Std_ReturnType Dcm_SetProgConditions (Dcm_OpStatusType OpStatus, const Dcm_ProgConditionsType* ProgConditions);The Dcm_SetProgConditions callout allows the integrator to store relevant information prior to jumping to bootloader / jump...Dcm_EcuStartModeType Dcm_GetProgConditions (Dcm_ProgConditionsType* ProgConditions);The Dcm_GetProgConditions callout is called upon Dcm initialization and allows to determine if a response ($50 or $51) has to...Std_ReturnType Dcm_ProcessRequestAddFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Dcm_ProcessRequestDeleteFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Dcm_ProcessRequestReplaceFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Dcm_ProcessRequestReadFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Dcm_ProcessRequestReadDir (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint64* dirInfoLength, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Dcm_WriteFile (Dcm_OpStatusType OpStatus, uint64 DataLength, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Dcm_ReadFileOrDir (Dcm_OpStatusType OpStatus, uint64* DataLength, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.void Dcm_MainFunction (void);This service is used for processing the tasks of the main loop.Std_ReturnType Xxx_GetSeed (const uint8* SecurityAccessDataRecord, Dcm_OpStatusType OpStatus, uint8* Seed, Dcm_NegativeResponseCodeType* ErrorCode);Request to application for asynchronous provision of seed valueStd_ReturnType Xxx_GetSeed (Dcm_OpStatusType OpStatus, uint8* Seed, Dcm_NegativeResponseCodeType* ErrorCode);Request to application for asynchronous provision of seed valueStd_ReturnType Xxx_CompareKey (const uint8* Key, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);Request to application for asynchronous comparing key (DcmDspSecurityUsePort = USE_ ASYNCH_CLIENT_SERVER)Std_ReturnType Xxx_GetSecurityAttemptCounter (Dcm_OpStatusType OpStatus, uint8* AttemptCounter);Read the attempt counter for a specific security level from the applicationStd_ReturnType Xxx_SetSecurityAttemptCounter (Dcm_OpStatusType OpStatus, uint8 AttemptCounter);Set the attempt counter for a specific security level in the applicationStd_ReturnType Xxx_ReadData (uint8* Data);This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_SYNCH_CLIENT_SERVER.Std_ReturnType Xxx_ReadData (Dcm_OpStatusType OpStatus, uint8* Data);This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_ASYNCH_CLIENT_SERVER.Std_ReturnType Xxx_ReadData (Dcm_OpStatusType OpStatus, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_ASYNCH_CLIENT_SERVER.Std_ReturnType Xxx_WriteData (const uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);This function requests the application to write a data value of a DID.Std_ReturnType Xxx_WriteData (const uint8* Data, uint16 DataLength, Dcm_NegativeResponseCodeType* ErrorCode);This function requests the application to write a data value of a DID.Std_ReturnType Xxx_WriteData (const uint8* Data, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);This function requests the application to write a data value of a DID.Std_ReturnType Xxx_WriteData (const uint8* Data, uint16 DataLength, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);This function requests the application to write a data value of a DID.Std_ReturnType Xxx_ReadDataLength (uint16* DataLength);This function requests the application to return the data length in byte of a Data.Std_ReturnType Xxx_ReadDataLength (Dcm_OpStatusType OpStatus, uint16* DataLength);This function requests the application to return the data length in byte of a Data.Std_ReturnType Xxx_ConditionCheckRead (Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application if the conditions to read the Data are correct.Std_ReturnType Xxx_ConditionCheckRead (Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application if the conditions to read the Data are correct.Std_ReturnType Xxx_GetScalingInformation (uint8* ScalingInfo, Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application for the scaling information of a Data.Std_ReturnType Xxx_GetScalingInformation (Dcm_OpStatusType OpStatus, uint8* ScalingInfo, Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application for the scaling information of a Data.Std_ReturnType Xxx_ReturnControlToECU ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to return control to ECU of an IOControl.Std_ReturnType Xxx_ResetToDefault ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to reset an IOControl to default value.Std_ReturnType Xxx_ResetToDefault (Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to reset an IOControl to default value.Std_ReturnType Xxx_FreezeCurrentStateManager ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to freeze the current state of an IOControl.Std_ReturnType Xxx_FreezeCurrentStateManager (Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to freeze the current state of an IOControl.Std_ReturnType Xxx_ShortTermAdjustment (const uint8* ControlStateInfo, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to adjust the IO signal.Std_ReturnType Xxx_ShortTermAdjustment (const uint8* ControlStateInfo, uint16 DataLength, Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to adjust the IO signal.Std_ReturnType Xxx_IsDidAvailable (uint16 DID, Dcm_OpStatusType OpStatus, Dcm_DidSupportedType* supported);This function requests if a specific DID is available within the range or not.Std_ReturnType Xxx_ReadDidData (uint16 DID, uint8* Data, Dcm_OpStatusType OpStatus, uint16 DataLength, Dcm_NegativeResponseCodeType ErrorCode);This function requests to the application a data value of a DIDStd_ReturnType Xxx_WriteDidData (uint16 DID, const uint8* Data, Dcm_OpStatusType OpStatus, uint16 DataLength, Dcm_NegativeResponseCodeType ErrorCode);This function requests the application to write a data value of a DID.Std_ReturnType Xxx_ReadDidRangeDataLength (uint16 DID, Dcm_OpStatusType OpStatus, uint16* DataLength);This function requests the application to return the data length of a DID Range.Std_ReturnType Xxx_GetInfotypeValueData (Dcm_OpStatusType OpStatus, uint8* DataValueBuffer, uint8* DataValueBufferSize);The function provides the data related to the requested Infotype.Std_ReturnType Xxx_Start ([ DcmDspRoutineSignalType dataIn_1, ... DcmDspRoutineSignalType dataIn_n ], [ const uint8* dataInVar ], Manager Dcm_OpStatusType OpStatus, [ DcmDspRoutineSignalType dataOut_1, ... DcmDspRoutineSignalType dataOut_n ], [ uint8* dataOutVar ], [ uint16* currentDataLength ], Dcm_NegativeResponseCodeType ErrorCode); ⚠️This function requests to the application to start the execution of a routine.Std_ReturnType Xxx_StartConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);This function indicates the transmission of a response to a StartRoutine requestStd_ReturnType Xxx_Stop ([ DcmDspRoutineSignalType dataIn_1, ... DcmDspRoutineSignalType dataIn_n ], [ const uint8* dataInVar ], [ DcmDspRoutineSignalType dataOut_1, ... DcmDspRoutineSignalType dataOut_n ], [ uint8* dataOutVar ], [ uint16* currentDataLength ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application to stop the execution of a routineStd_ReturnType Xxx_StopConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);This function indicates the transmission of a response to a StopRoutine requestStd_ReturnType Xxx_RequestResults (Dcm_OpStatusType OpStatus, [ DcmDspRoutineSignalType* dataIn_1, ... DcmDspRoutineSignalType* dataIn_n ], [ const uint8* dataInVar ], [ DcmDspRoutineSignalType* dataOut_1, ... DcmDspRoutineSignalType* dataOut_n ], [ uint8* dataOutVar ], [ uint16* variableDataLength ], Dcm_NegativeResponseCodeType* ErrorCode);This function requests to the application the result of a routine executionStd_ReturnType Xxx_RequestResultsConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);This function indicates the transmission of a response to a RequestRoutineResults requestStd_ReturnType Xxx_RequestControl (uint8* OutBuffer, const uint8* InBuffer);Invokes a TID-specific function taking a configured number of bytes as input and returing a fixed number of bytes as output.Std_ReturnType Xxx_StartProtocol (Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress, uint16 ConnectionId);This function allows the application to examine the environment conditions and enable/disable further processing of the protocol.Std_ReturnType Xxx_StopProtocol (Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress, uint16 ConnectionId);This function informs the application of the protocol stop.Std_ReturnType Xxx_Indication (uint8 SID, const uint8* RequestData, uint32 DataSize, uint8 ReqType, uint16 ConnectionId, Dcm_NegativeResponseCodeType* ErrorCode, Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress);This function indicates to the application that a service is about to be executed and allows the application to reject the...Std_ReturnType Xxx_Confirmation (uint8 SID, uint8 ReqType, uint16 ConnectionId, Dcm_ConfirmationStatusType ConfirmationStatus, Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress);This function confirms to the application the successful transmission or a transmission error of a diagnostic service.Std_ReturnType Xxx_ClearDTCCheckFnc (uint32 GoDTC, Dcm_NegativeResponseCodeType* ErrorCode);Callout function for condition check, manufacturer / supplier specific checks on the groupOf DTC, which is requested to clear.Std_ReturnType Xxx_ProcessRequestDownload (Dcm_OpStatusType OpStatus, uint8 DataFormatIdentifier, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint32* BlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Xxx_ProcessRequestTransferExit (Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Std_ReturnType Xxx_ProcessRequestUpload (Dcm_OpStatusType OpStatus, uint8 DataFormatIdentifier, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint32* BlockLength, Dcm_NegativeResponseCodeType* ErrorCode);Callout function.Dcm_ReturnReadMemoryType Xxx_ProcessTransferDataRead (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, Dcm_RequestDataArrayType MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);The ProcessTransferDataRead callout is used to request memory data identified by the parameter memoryAddress and memorySize...Dcm_ReturnWriteMemoryType Xxx_ProcessTransferDataWrite (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, const Dcm_RequestDataArrayType MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);The ProcessTransferDataWrite callout is used to write memory data identified by the parameter memoryAddress and memorySize.
Typen — Übersicht
enum Dcm_StatusTypeBase item type to transport status information.enum Dcm_CommunicationModeType Managerstruct Dcm_ConfigTypeThis type defines a data structure for the post build parameters of the DCM.Dcm_ReturnReadMemoryTypeReturn values of Callout Dcm_ReadMemoryDcm_ReturnWriteMemoryTypeReturn type of callout Dcm_WriteMemoryenum Dcm_EcuStartModeTypeAllows the DCM to know if a diagnostic response shall be sent in the case of a jump from bootloaderDcm_ProgConditionsTypeUsed in Dcm_SetProgConditions() to allow the integrator to store relevant information prior to jumping to bootloader / jump...Dcm_MsgItemTypeBase type for diagnostic message itemDcm_MsgTypeBase type for diagnostic message (request, positive or negative response)Dcm_MsgLenTypeLength of diagnostic message (request, positive or negative response).struct Dcm_MsgAddInfoTypeAdditional information on message request.Dcm_IdContextTypeThis message context identifier can be used to determine the relation between request and response confirmation.struct Dcm_MsgContextTypeThis data structure contains all information which is necessary to process a diagnostic message from request to response and...enum Dcm_ExtendedOpStatusTypeenum Dcm_OpStatusTypeenum Dcm_ConfirmationStatusTypeDcm_SecLevelTypeSecurity Level type definitionDcm_SesCtrlTypeSession type definition.Dcm_ProtocolTypeType Dcm_ProtocolType.Dcm_NegativeResponseCodeTypeType Dcm_NegativeResponseCodeType.Dcm_DataArrayTypeDcm_InfoTypeDcm_RequestDataArrayTypeDcm_InputOutputControlParameterTypeDcm_IOOperationResponseTypeDcm_DidSupportedTypeDcm_FileAndDirNameTypeDcm_ResponseDataArrayTypeDcm_AuthenticationRoleTypeDiagnosticSessionControlModeSwitchInterfaceA ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Diagnostic SessionEcuResetModeSwitchInterfaceA ModeSwitchInterface PPortPrototype used to notify SW-Cs about an upcoming ECU Reset and its typeModeRapidPowerShutDownModeSwitchInterfaceA ModeSwitchInterface PPortPrototype used to notify SW-Cs about the rapid power shut down modeControlDTCSettingModeSwitchInterfaceA ModeSwitchInterface PPortPrototype used to notify SW-Cs about the DTC Setting modeSecurityAccessModeSwitchInterfaceA ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Security LevelDcmDiagnosticSessionControlModeDeclarationGroup representing the different diagnostic sessions Further modes to be added:...DcmEcuResetModeDeclarationGroup representing the different ECU reset typesDcmModeRapidPowerShutDownModeDeclarationGroup representing the enable/disable state of rapid power shutdownDcmCommunicationControlModeDeclarationGroup representing the different communication control statesDcmControlDTCSettingModeDeclarationGroup representing the enable/disable state for DTC storageDcmResponseOnEventModeDeclarationGroup representing the state of a Response On EventDcmSecurityAccessModeDeclarationGroup representing the different diagnostic security levels Further modes to be added:...
Funktionen & Typen — Detailansicht
دالة Dcm_Init [SWS_Dcm_00037] 📄 PDF
void Dcm_Init (const Dcm_ConfigType* ConfigPtr);
Service for basic initialization of DCM module.
تُستخدم الدالة المتزامنة وغير القابلة لإعادة الدخول Dcm_Init للتهيئة الأساسية لوحدة DCM [SWS_Dcm_00037]. تستقبل عبر المعلمة ConfigPtr مؤشرًا إلى مجموعة التكوين في متغيرات ما بعد البناء (Post-Build) وليس لها قيمة إرجاع [SWS_Dcm_00037]. أثناء التنفيذ، تهيئ الوحدة جميع متغيرات DCM العامة بالقيم المستمدة من التكوين [SWS_Dcm_00334].
في إطار تسلسل التهيئة، يتم تكوين نطاقات وظيفية وحالات مختلفة:
- إدارة DDDID: إذا تم ضبط معلمة التكوين
DcmDDDIDStorageإلىFALSE، فإن DCM يهيئ عند بدء التشغيل جميع معرّفات البيانات المعرفة ديناميكيًا (DDDIDs) كغير موجودة [SWS_Dcm_00866]. وإذا تم ضبط المعلمة إلىTRUE، تتم استعادة تعريفات DDDID من NvM [SWS_Dcm_00867]. - الاستجابة عند وقوع حدث (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 (معرّف الخدمة 0x2B) متاحة عبر ملف الترويسة Dcm_Dem.h وتُستخدم للإبلاغ عن تغييرات بايت حالة UDS إلى DCM [SWS_Dcm_00614]. يتيح ذلك لـ DCM إطلاق أحداث الاستجابة عند الحدث (ROE) للخدمة الفرعية لخدمة التشخيص OnDTCStatusChanged [SWS_Dcm_00614]. وعند الاستدعاء، تستقبل الدالة ثلاثة معاملات إدخال: كود العطل المتأثر DTC (uint32)، والحالة السابقة DTCStatusOld (Dem_UdsStatusByteType) بالإضافة إلى الحالة المحدثة DTCStatusNew (Dem_UdsStatusByteType) [SWS_Dcm_00614]. ولا توجد معاملات إدخال وإخراج مشتركة [SWS_Dcm_00614].
قيم الإرجاع ومعالجة الأخطاء
كقيمة مرجعة، تُرجع الدالة النوع Std_ReturnType، حيث يتم وفقًا للمواصفة إرجاع E_OK بلا استثناء [SWS_Dcm_00614]. ولا توجد أكواد أخطاء محددة أو قيم احتياطية أو إخطارات منفصلة إلى DEM أو DET مخصصة لهذا الاستدعاء.
التزامن والتفاعل
تم تصنيف الدالة على أنها قابلة لإعادة الدخول وتتميز بدلالات تنفيذ متزامنة [SWS_Dcm_00614]. وفيما يتعلق بالتفاعل مع طلبات التشخيص، ينطبق شرط حدي ثابت: إذا كان DCM يعالج حاليًا طلبًا لمسح ذاكرة الأحداث (EventMemory)، فيجب على DCM تجاهل الاستدعاءات الواردة لرد النداء Dcm_DemTriggerOnDTCStatus [SWS_Dcm_01410].
تستند ملاحظة الاستخدام هذه إلى مواصفات إصدار AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Dcm_GetVin [SWS_Dcm_00950] 📄 PDF
Std_ReturnType Dcm_GetVin (uint8* Data);
Function to get the VIN (as defined in SAE J1979-DA)
دالة Dcm_BndMWriteBlockFinish [SWS_Dcm_91088] 📄 PDF
void Dcm_BndMWriteBlockFinish (BndM_BlockIdType BlockId, BndM_ResultType result);
Called by BndM to indicate that a block write operation has finished.
تُستخدم الدالة Dcm_BndMWriteBlockFinish كواجهة إشعار من BndM إلى DCM للإشارة إلى اكتمال عملية كتابة كتلة [SWS_Dcm_91088]. الدالة مصرح عنها في ملف الرأس Dcm.h، ولها معرّف الخدمة (Service ID) 0x7a، ولا تُرجع أي قيمة (void)، ويتم تنفيذها بشكل متزامن [SWS_Dcm_91088].
تتوقع الواجهة معاملي تمرير [SWS_Dcm_91088]:
BlockId(النوع:BndM_BlockIdType): يحدد الكتلة التي اكتملت عملية كتابتها.result(النوع:BndM_ResultType): ينقل نتيجة عملية الكتابة إلى DCM.
يرتبط التفاعل الوظيفي والسلوك في حالة الخطأ بعمليات كتابة BndM الذرية التي تم تشغيلها مسبقاً بواسطة DCM:
- إذا تم استدعاء
Dcm_BndMWriteBlockFinishبالحالةresult = E_OK، يُرسل DCM استجابة تشخيصية إيجابية على الطلب المعلق [SWS_Dcm_01584]. - إذا تم استدعاء الدالة بـ
result = E_NOT_OK، يستجيب DCM في حالة الخطأ باستجابة تشخيصية سلبية0x72(generalProgrammingFailure) [SWS_Dcm_01585].
فيما يتعلق بالتزامن، تم تحديد Dcm_BndMWriteBlockFinish على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_Dcm_91088]. وبالتالي يجب على الجهات المستدعية التأكد من عدم استدعاء الدالة بالتوازي أو بشكل مقاطع بواسطة عدة سياقات.
تم إنشاء ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي وتستند إلى مواصفة AUTOSAR R20-11.
دالة Dcm_SetDeauthenticatedRole [SWS_Dcm_91069] 📄 PDF
Std_ReturnType Dcm_SetDeauthenticatedRole (uint16 connectionId, Dcm_AuthenticationRoleType deauthenticatedRole);
Sets a new role used in deauthenticated state for that connection. The set role is valid until the connection switches into authenticated state or the ECU is reset.
الاستخدام وسياق الاستدعاء
تُنفذ الدالة Dcm_SetDeauthenticatedRole بشكل متزامن وقابل لإعادة الدخول ([SWS_Dcm_91069]). وهي تتيح لمكون برمجي تعيين دور جديد deauthenticatedRole من النوع Dcm_AuthenticationRoleType لاتصال محدد بواسطة connectionId للحالة غير الموثقة ([SWS_Dcm_91069]، [SWS_Dcm_01486]). يتم إرجاع E_OK كقيمة مرجعة دون استثناء ([SWS_Dcm_91069]).
شروط الحالة ومعالجة الأخطاء
تتم معالجة الاستدعاء بواسطة DCM فقط إذا كان الاتصال في الحالة غير الموثقة (deauthenticated state) ([SWS_Dcm_01487]). نظراً لأن التوقيع لا ينص على قيم أخطاء بديلة ويعيد دائماً E_OK ([SWS_Dcm_91069])، فمن المحتمل أن يتم رفض أي استدعاء خارج هذه الحالة دون رسالة خطأ. سؤال Q-6f14770eae6ce896 (مفتوح) لم يتم تحديد أحداث DET أو DEM معينة في المواصفة.
فترة الصلاحية ودورة الحياة
إذا تم اعتماد الدور للحالة غير الموثقة بنجاح ([SWS_Dcm_01486])، يظل هذا التعيين قائماً بشكل مؤقت:
- يتم تجاهل الدور المحدد بمجرد انتقال الاتصال إلى الحالة الموثقة (authenticated state) ([SWS_Dcm_01488]).
- تنتهي الصلاحية على أبعد تقدير عند إعادة ضبط وحدة التحكم الإلكترونية ([SWS_Dcm_91069]).
تم توليد ملاحظة الاستخدام هذه تلقائيًا على أساس مواصفة AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Dcm_GetSecurityLevel [SWS_Dcm_00338] 📄 PDF
Std_ReturnType Dcm_GetSecurityLevel (Dcm_SecLevelType* SecLevel);
This function provides the active security level value.
تستعلم الدالة المتزامنة ومتعددة الدخول (reentrant) Dcm_GetSecurityLevel عن مستوى الأمان النشط حاليًا لـ DCM وتوفره [SWS_Dcm_00338]. وتُعلن الدالة عبر الترويسة Dcm.h وتمرر قيمة الحالة المحددة عبر معلمة الإخراج SecLevel من النوع Dcm_SecLevelType* إلى جهة الاستدعاء. ووفقًا للمواصفة، يتم إرجاع E_OK دون استثناء كقيمة إرجاع [SWS_Dcm_00338].
يعتمد تحديد مستوى الأمان الداخلي على المعلمة SecurityAccessType المرسلة من قِبل جهاز الفحص ضمن إطار خدمة SecurityAccess وفقًا لصيغة التحويل الثابتة SecurityLevel = (SecurityAccessType + 1) / 2 [SWS_Dcm_00338].
في سياق التفاعل مع معالجة خدمات التشخيص ذات المستوى الأعلى، تعتمد الوحدة الفرعية DSP ضمن وحدات أخرى على هذه القيمة: إذا استلمت الوحدة طلبًا مُكوَّنًا بنوع الوظيفة الفرعية ”requestSeed“ (قيمة فردية) وكان مستوى الوصول المقترن نشطًا بالفعل وفقًا لـ Dcm_GetSecurityLevel، فإن الوحدة الفرعية DSP تضبط محتوى seed على 0x00 [SWS_Dcm_00323].
فيما يتعلق بالتزامن ومعالجة الأخطاء، تم تعريف الدالة على أنها متعددة الدخول (reentrant) [SWS_Dcm_00338]. وبما أنه لم يتم تحديد رموز أخطاء معينة أو فحوصات DET ويتم إرجاع E_OK دائمًا، يُرجح عدم إجراء أي فحص للمؤشر الفارغ (null pointer)؛ لذا يُرجح أنه يجب على جهات الاستدعاء دائمًا تمرير مؤشر صالح إلى مساحة ذاكرة لـ SecLevel. سؤال Q-5402d82ac0151b22 (مفتوح)
تم إنشاء هذا النص بواسطة ذكاء اصطناعي. وقد تكون المعلومات غير مكتملة؛ ومواصفة AUTOSAR هي المرجع الأساسي.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة Dcm_GetSesCtrlType [SWS_Dcm_00339] 📄 PDF
Std_ReturnType Dcm_GetSesCtrlType (Dcm_SesCtrlType* SesCtrlType);
This function provides the active session control type value.
دالة Dcm_GetActiveProtocol [SWS_Dcm_00340] 📄 PDF
Std_ReturnType Dcm_GetActiveProtocol (Dcm_ProtocolType* ActiveProtocolType, uint16* ConnectionId, uint16* TesterSourceAddress);
This function returns the active UDS protocol details
دالة Dcm_ResetToDefaultSession [SWS_Dcm_00520] 📄 PDF
Std_ReturnType Dcm_ResetToDefaultSession (void);
The call to this function allows the application to reset the current session to Default session. Example: Automatic termination of an extended diagnostic session upon exceeding of a speed limit.
تتيح الدالة التزامنية Dcm_ResetToDefaultSession للتطبيق إعادة تعيين جلسة التشخيص النشطة إلى الجلسة الافتراضية (Default Session) [SWS_Dcm_00520]. ومن حالات الاستخدام النموذجية الإنهاء التلقائي لجلسة تشخيصية موسعة بمجرد تجاوز مركبة لحد سرعة محدد مسبقًا [SWS_Dcm_00520].
الاستخدام ومعالجة الأخطاء
-
الواجهة والمعلمات: تتوفر الدالة عبر
Dcm.hبمعرف الخدمة0x2a، ولها التوقيعStd_ReturnType Dcm_ResetToDefaultSession (void)ولا تتطلب معلمات تمرير [SWS_Dcm_00520]. -
قيمة الإرجاع والأخطاء: يتم إرجاع
Std_ReturnTypeكنوع إرجاع، حيث يتم إرجاع القيمةE_OKدون استثناء [SWS_Dcm_00520]. لم يتم تحديد رموز أخطاء معينة، أو فحوصات وقت تشغيل DET، أو أحداث DEM في متطلبات هذا الاستدعاء.
التزامن والتفاعل
يتم التنفيذ تزامنيًا ومُعلن عنه بأنه قابل لإعادة الدخول [SWS_Dcm_00520].
إلى جانب تغيير الجلسة الفعلي، تبدأ Dcm_ResetToDefaultSession إلزاميًا تغيير وضع لـ ModeDeclarationGroupPrototype DcmDiagnosticSessionControl [SWS_Dcm_01062]. وهنا تستدعي الدالة داخليًا SchM_Switch_<bsnp>_DcmDiagnosticSessionControl(RTE_MODE_DcmDiagnosticSessionControl_DCM_DEFAULT_SESSION) لإخطار بيئة النظام بالانتقال إلى الجلسة الافتراضية [SWS_Dcm_01062].
تم إنشاء ملاحظة الاستخدام هذه بصورة آلية بناءً على مواصفة AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة Dcm_TriggerOnEvent [SWS_Dcm_00521] 📄 PDF
Std_ReturnType Dcm_TriggerOnEvent (uint8 RoeEventId);
The call to this function allows to trigger an event linked to a ResponseOnEvent request. On the function call, the DCM will execute the associated service if the corresponding Mode of the Roe EventId is 'ROE started'.
تُستخدم الدالة المتزامنة Dcm_TriggerOnEvent (معرف الخدمة 0x2D)، المتوفرة عبر الترويسة Dcm.h، لإطلاق حدث مرتبط بطلب ResponseOnEvent (ROE) [SWS_Dcm_00521].
الاستدعاء وطريقة العمل
يمرر المستدعي كمعامل وحيد RoeEventId (معامل إدخال من النوع uint8)، والذي يحدد الحدث المراد إطلاقه؛ ولا توجد معاملات إدخال أو إخراج أخرى [SWS_Dcm_00521]. بمجرد استدعاء الدالة، يتحقق DCM من حالة الحدث: إذا كان RoeEvent الممرر نشطًا، يُطلق DCM الحدث المقابل [SWS_Dcm_00920]. ينفذ DCM الخدمة المقترنة بالحدث، بشرط أن يكون الوضع المرتبط لـ RoeEventId مضبوطًا على 'ROE started' [SWS_Dcm_00521].
القيم المرجعة والتحقق من الصحة
يُرجع الاستدعاء بشكل متزامن حالة من النوع Std_ReturnType توفر معلومات حول صلاحية المعامل [SWS_Dcm_00521]:
E_OK: القيمة الممررة لـRoeEventIdصالحة [SWS_Dcm_00521].E_NOT_OK: قيمةRoeEventIdغير صالحة [SWS_Dcm_00521].
التزامن والخصائص
تم تحديد الواجهة على أنها قابلة لإعادة الدخول (reentrant) [SWS_Dcm_00521]. وبالتالي يمكن استدعاؤها بشكل تزامني للإبلاغ عن الأحداث بشكل متزامن إلى DCM [SWS_Dcm_00521].
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى مواصفات AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة Dcm_SetActiveDiagnostic [SWS_Dcm_01068] 📄 PDF
Std_ReturnType Dcm_SetActiveDiagnostic (boolean active);
Allows to activate and deactivate the call of ComM_DCM_ActiveDiagnostic() function.
دالة Dcm_StartOfReception [SWS_Dcm_00094] 📄 PDF
BufReq_ReturnType Dcm_StartOfReception (PduIdType id, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);
This function is called at the start of receiving an N-SDU. The N-SDU might be fragmented into multiple N-PDUs (FF with one or more following CFs) or might consist of a single N-PDU (SF). The service shall provide the currently available maximum buffer size when invoked with TpSdu Length equal to 0. This function might be called in interrupt context.
يتم استدعاء الدالة المتزامنة والقابلة لإعادة الدخول Dcm_StartOfReception ([SWS_Dcm_00094]) بواسطة وحدة بروتوكول النقل في بداية استقبال N-SDU – سواء في الإطارات المفردة (Single Frame، SF) أو في الإطارات المقسمة (First Frame، FF). ويمكن استدعاؤها في سياق المقاطعة ([SWS_Dcm_00094]). يؤدي الاستدعاء من بين أمور أخرى إلى إيقاف مؤقت S3Server عند بدء الاستقبال ([SWS_Dcm_00141]).
عبر info يتم تمرير بيانات الحمولة والبيانات الوصفية؛ وفي الاتصالات العامة يتم عبرها من بين أمور أخرى تخزين SOURCE_ADDRESS_16 ([SWS_Dcm_00848]) بالإضافة إلى فحص TARGET_ADDRESS_16 ([SWS_Dcm_01347]). وإذا لم تكن هناك حمولة ولا بيانات وصفية، يتم تمرير NULL_PTR ([SWS_Dcm_00094]). وعبر bufferSizePtr تُرجع الدالة المخزن المؤقت المتاح لحساب حجم الكتلة Block Size (BS) ([SWS_Dcm_00094]). وفي حالة القبول الناجح تُرجع BUFREQ_OK، حيث يتم بعد ذلك نسخ البيانات اللاحقة عبر Dcm_CopyRxData ([SWS_Dcm_00443]).
تتم الإشارة إلى حالات الخطأ والرفض عبر قيمة الإرجاع:
BUFREQ_E_OVFL: يتم إرجاعها إذا كان الطول المطلوبTpSduLengthأكبر من المخزن المؤقت المتاح في DCM ([SWS_Dcm_00094]، [SWS_Dcm_00444]). ويبقىbufferSizePtrدون تغيير ([SWS_Dcm_00094]).BUFREQ_E_NOT_OK: يُرجع إذا كانتTpSduLengthتساوي 0 ([SWS_Dcm_00642]) أو إذا كان هناك طلب قيد التنفيذ يحظر على نفس الاتصال ([SWS_Dcm_00557]). في حالة وجود اتصال آخر، تحدد المعلمةDcmDslDiagRespOnSecondDeclinedRequestما إذا كان سيتم الرفض باستخدامBUFREQ_E_NOT_OK([SWS_Dcm_00790]) أو القبول باستخدامBUFREQ_OK([SWS_Dcm_00788]). كما يتم تأكيد طلبات TesterPresent المتزامنة باستخدامBUFREQ_OK([SWS_Dcm_00557]).
تم إنشاء هذا النص بواسطة ذكاء اصطناعي. تستند جميع المعلومات حصريًا إلى مقتطف مواصفات AUTOSAR-R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Dcm_CopyRxData [SWS_Dcm_00556] 📄 PDF
BufReq_ReturnType Dcm_CopyRxData (PduIdType id, const PduInfoType* info, PduLengthType* bufferSizePtr);
This function is called to provide the received data of an I-PDU segment (N-PDU) to the upper layer. Each call to this function provides the next part of the I-PDU data. The size of the remaining buffer is written to the position indicated by bufferSizePtr. This function might be called in interrupt context.
الاستخدام
تُستدعى الدالة المتزامنة Dcm_CopyRxData لتمرير البيانات المستلمة لجزء I-PDU (أو N-PDU) إلى الطبقة العليا في DCM [SWS_Dcm_00556]. ويوفر كل استدعاء الجزء التالي من بيانات I-PDU [SWS_Dcm_00556]. ويتم عبر المعامل id تحديد I-PDU المستلمة [SWS_Dcm_00556]. يوفر المؤشر info عبر SduDataPtr ذاكرة التخزين المؤقت المصدرية وعبر SduLength عدد البايتات المراد نسخها [SWS_Dcm_00556]. بعد الانتهاء من عملية النسخ، يتم الإبلاغ عن حجم ذاكرة التخزين المؤقت الحرة المتبقية في DCM عبر bufferSizePtr [SWS_Dcm_00556]، [SWS_Dcm_00443].
إذا تم استدعاء Dcm_CopyRxData مع SduLength بقيمة 0، فإن هذا يخدم الاستعلام المجرد عن ذاكرة التخزين المؤقت [SWS_Dcm_00556]. وفي هذه الحالة يجوز أن يكون SduDataPtr هو NULL_PTR؛ وتُرجع الدالة BUFREQ_OK وتُدرج الحجم المتبقي لذاكرة التخزين المؤقت للاستقبال في bufferSizePtr [SWS_Dcm_00556]، [SWS_Dcm_00996].
تفاعل
قبل النسخ، يجب أن يكون Dcm_StartOfReception قد اكتمل بـ BUFREQ_OK؛ وتنسخ الاستدعاءات اللاحقة لـ Dcm_CopyRxData البيانات من ذاكرة التخزين المؤقت المقدمة إلى ذاكرة التخزين المؤقت لـ DCM وتحدث bufferSizePtr [SWS_Dcm_00443].
معالجة الأخطاء
تُرجع الدالة الحالة كـ BufReq_ReturnType: يؤكد BUFREQ_OK النسخ الناجح أو الاستعلام عن ذاكرة التخزين المؤقت، بينما يشير BUFREQ_E_NOT_OK إلى أنه لم يتم نسخ أي بيانات بسبب خطأ [SWS_Dcm_00556]، [SWS_Dcm_00996].
التزامن والقيود
تم تحديد Dcm_CopyRxData على أنها قابلة لإعادة الدخول ويجوز استدعاؤها في سياق المقاطعة [SWS_Dcm_00556]. وتتوفر الواجهة عبر Dcm.h [SWS_Dcm_00556].
تم توليد ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة Dcm_TpRxIndication [SWS_Dcm_00093] 📄 PDF
void Dcm_TpRxIndication (PduIdType id, Std_ReturnType result);
Called after an I-PDU has been received via the TP API, the result indicates whether the transmission was successful or not. This function might be called in interrupt context.
الاستخدام وسياق الاستدعاء
يتم استدعاء الدالة المتزامنة Dcm_TpRxIndication بعد استقبال I-PDU عبر TP-API، عادةً بواسطة الوحدة PduR [SWS_Dcm_00093]، [SWS_Dcm_00112]. وتقوم بتمرير معرّف PDU (id) بالإضافة إلى نتيجة الاستقبال (result) ولا تُرجع أي قيمة إرجاع [SWS_Dcm_00093]. نظرًا لأن الدالة قابلة لإعادة الدخول ويجوز استدعاؤها في سياق المقاطعة (Interrupt)، يجب تصميم المتصلين وحالات الوحدة للتزامن المقابل [SWS_Dcm_00093].
السلوك في حالة الاستقبال الخاطئ
إذا تم استدعاء Dcm_TpRxIndication بقيمة نتيجة تختلف عن E_OK، فلا يجوز للوحدة Dcm تقييم المخزن المؤقت المخصص لـ I-PDU المشار إليها [SWS_Dcm_00344].
تفاعل الوحدات الفرعية
تقوم الوحدة الفرعية DSL بإعادة توجيه البيانات المستلمة إلى الوحدة الفرعية DSD فقط وحصريًا إذا تم الاستدعاء بقيمة المعلمة result = E_OK [SWS_Dcm_00111]. وتنطبق في هذا الصدد قواعد محددة على طلبات التشخيص:
- إذا كان الطلب المستلم بنجاح (
Result = E_OK) هو الأمرTesterPresentمع ضبطsuppressPosRspMsgIndicationBit(SID0x3E، والوظيفة الفرعية0x80)، فإن الوحدة الفرعية DSL تعيد ضبط مؤقت مهلة الجلسةS3Server[SWS_Dcm_00112]. - في هذه الحالة، لا تقوم الوحدة الفرعية DSL بإعادة توجيه الطلب إلى الوحدة الفرعية DSD لمزيد من التفسير [SWS_Dcm_00113].
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى مواصفات AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Dcm_CopyTxData [SWS_Dcm_00092] 📄 PDF
BufReq_ReturnType Dcm_CopyTxData (PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);
This function is called to acquire the transmit data of an I-PDU segment (N-PDU). Each call to this function provides the next part of the I-PDU data unless retry->TpDataState is TP_ DATARETRY. In this case the function restarts to copy the data beginning at the offset from the current position indicated by retry->TxTpDataCnt. The size of the remaining data is written to the position indicated by availableDataPtr. This function might be called in interrupt context.
الاستخدام والدلالات
تستدعي وحدات الطبقة السفلية (مثل بروتوكولات النقل) الدالة المتزامنة والقابلة لإعادة الدخول Dcm_CopyTxData لجلب بيانات جزء I-PDU (أو N-PDU) للإرسال [SWS_Dcm_00092]. وعبر المعامل info، يمرر المتصل ذاكرة التخزين المؤقت المستهدفة SduDataPtr والطول المطلوب بالبايت SduLength. ويمكن استخدام قيمة 0 لـ SduLength للإشارة إلى تغييرات الحالة عبر retry أو للاستعلام عن كمية البيانات المتاحة؛ ويجوز أن يكون SduDataPtr في هذه الحالة NULL_PTR [SWS_Dcm_00092]. وعبر availableDataPtr، يُبلغ DCM عن عدد البايتات المتبقية في ذاكرة التخزين المؤقت للإرسال، والتي يمكن أن تستخدمها وحدات TP لتحديد أحجام الأجزاء اللاحقة، ولا يجوز أن تتجاوز عدد البايتات التي لم تُرسل بعد [SWS_Dcm_00092]، [SWS_Dcm_00350].
إدارة ذاكرة التخزين المؤقت وتكرار الإرسال
عبر المعامل retry يتم التحكم في تأكيد استلام البيانات أو تكرارها [SWS_Dcm_00092]:
- إذا كان
retryهوNULL_PTR، فيجوز إزالة البيانات من ذاكرة التخزين المؤقت مباشرة بعد عملية النسخ [SWS_Dcm_00092]. - عند
TP_CONFPENDING، يجب أن تظل البيانات المنسوخة سابقًا في ذاكرة التخزين المؤقت لـ TP لمعالجة الأخطاء المحتملة [SWS_Dcm_00092]. - يؤكد
TP_DATACONFجميع البيانات المنسوخة قبل هذا الاستدعاء للإفراج عنها [SWS_Dcm_00092]. - ينسخ
TP_DATARETRYالبيانات مجددًا بدءًا من الإزاحةTxTpDataCntبالنسبة إلى الموضع الحالي [SWS_Dcm_00092].
قيم الإرجاع ومعالجة الأخطاء
إذا نُسخت البيانات بنجاح وبشكل كامل، تُرجع الدالة BUFREQ_OK [SWS_Dcm_00092]، [SWS_Dcm_00346]. وإذا لم تكن هناك بيانات إرسال كافية متاحة، فلن تُنفذ عملية نسخ ويتم إرجاع BUFREQ_E_BUSY؛ ويمكن للطبقة السفلية تكرار الاستدعاء لاحقًا [SWS_Dcm_00092]. وإذا فشل الطلب، تُرجع الدالة BUFREQ_E_NOT_OK [SWS_Dcm_00092]. وفي هذه الحالة، لا يكون طلب الإرسال من PduR_DcmTransmit() قد اكتمل بعد؛ وفقط استدعاء ختامي لـ Dcm_TpTxConfirmation ينهي العملية ويتيح عمليات إرسال جديدة [SWS_Dcm_00350].
التزامن
الدالة قابلة لإعادة الدخول ويجوز أيضًا استدعاؤها في سياق المقاطعة [SWS_Dcm_00092].
تستند ملاحظة الاستخدام هذه إلى مواصفات AUTOSAR Classic Platform الإصدار 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]). لا تحتوي الدالة على قيمة إرجاع، وهي قابلة لإعادة الدخول (reentrant) ويُسمح صراحةً بتنفيذها في سياق المقاطعة (interrupt context) ([SWS_Dcm_00351]).
عند استدعاء Dcm_TpTxConfirmation، تنفذ وحدة DCM عمليات تنظيف مركزية وانتقالات في الحالة:
- يتم إلغاء قفل مخزن الإرسال المؤقت المخصص ([SWS_Dcm_00352]).
- يتم إيقاف مراقبات الأخطاء الجارية مثل مهلات المخزن المؤقت للصفحات (Page-Buffer-Timeouts) ومهلات
P2ServerMaxوP2*ServerMax([SWS_Dcm_00353]). - يتم تحرير
DcmPduIdللاتصال، والتي كانت محظورة منذ الاستقبال (Dcm_TpRxIndication)، بحيث يمكن استقبال الطلبات اللاحقة ([SWS_Dcm_00241]). - لا يتم إنهاء البروتوكول الحالي من خلال تأكيد استجابة DSL (لا يتم استدعاء
xxx_StopProtocol) ([SWS_Dcm_00624]).
في حالة الخطأ (عندما تشير result إلى خطأ أو يتم تأكيد إلغاء بعد فشل Dcm_CopyTxData)، تتطلب [SWS_Dcm_00350] إلزاميًا هذا الاستدعاء الختامي لاختتام أمر الإرسال رسميًا وإتاحة عمليات إرسال جديدة عبر PduR_DcmTransmit(). في حالة التأكيد الخاطئ، لا يجوز للوحدة الفرعية DSD إعادة إرسال الاستجابة التشخيصية ([SWS_Dcm_00118]).
بالإضافة إلى ذلك، يمثل تأكيد استجابة (تختلف عن NRC 0x78) الاكتمال النظامي لطلب تشخيصي ([SWS_Dcm_01378]). بعد تأكيد استجابة إيجابية لـ EcuReset، تتجاهل DCM جميع الطلبات الأخرى أثناء معالجة إعادة الضبط ([SWS_Dcm_00834]).
تم إنشاء هذا النص بواسطة ذكاء اصطناعي؛ ولا يمكن ضمان صحته.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Dcm_TxConfirmation [SWS_Dcm_01092] 📄 PDF
void Dcm_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);
The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU. This function might be called in interrupt context.
الاستخدام
يتم استدعاء الواجهة المتزامنة Dcm_TxConfirmation (معرّف الخدمة 0x40، المعلنة في Dcm.h) وفقًا لـ [SWS_Dcm_01092] بواسطة وحدة واجهة الاتصال التابعة لتأكيد إرسال PDU أو للإبلاغ عن فشل النقل. لا تمتلك الدالة قيمة إرجاع وتُعالج معلمتي إدخال:
TxPduId: معرّف (PduIdType) الـ PDU المرسلة.result: حالة النقل (Std_ReturnType). القيم الصالحة هيE_OKفي حال النقل الناجح، وE_NOT_OKفي حال فشل نقل الـ PDU.
معالجة الأخطاء والإبلاغ عن الحالة
يتم إرسال نتيجة النقل إلى DCM مباشرة عبر المعلمة result ([SWS_Dcm_01092]). ولم يتم تعريف رسائل خطأ محددة لـ DET أو DEM في مقتطف المواصفة المتاح لهذه الدالة.
التزامن وسياق الاستدعاء
فيما يتعلق بقابلية إعادة الدخول، فإن Dcm_TxConfirmation قابلة لإعادة الدخول للاستدعاءات ذات معرّفات PDU المختلفة، ولكنها غير قابلة لإعادة الدخول لنفس TxPduId ([SWS_Dcm_01092]). وتجدر الإشارة إلى أن الاستدعاء بواسطة الوحدة التابعة يمكن أن يتم في سياق المقاطعة ([SWS_Dcm_01092]).
تفاعل
في حالة النقل الدوري (PeriodicTransmission)، يتم استدعاء DCM وفقًا لـ [SWS_Dcm_01073] عبر Dcm_TxConfirmation لإبلاغه بنتيجة الإرسال المعنية.
تم إنشاء ملاحظة الاستخدام هذه آليًا استنادًا إلى مواصفات AUTOSAR لـ R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة Dcm_ComM_NoComModeEntered [SWS_Dcm_00356] 📄 PDF
void Dcm_ComM_NoComModeEntered (uint8 NetworkId);
This call informs the Dcm module about a ComM mode change to COMM_NO_ COMMUNICATION.
تبلغ الدالة التزامنية وقابلة لإعادة الدخول Dcm_ComM_NoComModeEntered (معرف الخدمة 0x21) وحدة DCM بانتقال شبكة اتصال إلى الحالة COMM_NO_COMMUNICATION [SWS_Dcm_00356]. تتوفر الواجهة عبر ملف الترويسة Dcm_ComM.h، ولا تحتوي على قيمة إرجاع، وتحدد الشبكة المعنية عبر معلمة الإدخال NetworkId من النوع uint8 [SWS_Dcm_00356].
مع هذا الاستدعاء، تقوم DCM بإيقاف جميع الاتصالات على الشبكة المحددة، بحيث يتم تعطيل كل من استقبال وإرسال الرسائل بالكامل [SWS_Dcm_00148]. ويشمل ذلك إلزاميًا أنواع الإرسال التالية:
- منع عمليات إرسال ResponseOnEvent [SWS_Dcm_00149]،
- تعطيل عمليات الإرسال الدورية عبر
ReadDataByPeriodicIdentifier(periodicId) [SWS_Dcm_00150] بالإضافة إلى - إيقاف تشغيل عمليات الإرسال العادية [SWS_Dcm_00151].
ونتيجة لذلك، لا يجوز لوحدة DCM بعد تنفيذ Dcm_ComM_NoComModeEntered استدعاء دالة PduR المسماة PduR_DcmTransmit() لهذا السياق [SWS_Dcm_00152].
إذا تم استدعاء الدالة مع NetworkId لا تطابق أي قناة ComM مشار إليها في DCM عبر معلمة التكوين DcmDslProtocolComMChannelRef، فلا تنفذ وحدة DCM أي إجراء وتعود على الفور [SWS_Dcm_01324].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي وتم ضمان جودته بواسطة autodocs.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Dcm_ComM_SilentComModeEntered [SWS_Dcm_00358] 📄 PDF
void Dcm_ComM_SilentComModeEntered (uint8 NetworkId);
This call informs the Dcm module about a ComM mode change to COMM_SILENT_ COMMUNICATION.
تُستخدم الدالة التزامنية وقابلة لإعادة الدخول Dcm_ComM_SilentComModeEntered ([SWS_Dcm_00358]) لإبلاغ وحدة DCM بانتقال شبكة اتصال إلى الحالة COMM_SILENT_COMMUNICATION. تمتلك الواجهة معرف الخدمة 0x22، ولا تُرجع أي قيمة، وتتوقع كمعلمة إدخال NetworkId معرف الشبكة المعنية ([SWS_Dcm_00358]). يتم توفيرها عبر ملف الترويسة Dcm_ComM.h ([SWS_Dcm_00358]).
بمجرد إجراء هذا الاستدعاء، يجب على DCM إيقاف جميع أنشطة الإرسال على قناة الشبكة المعنية بالكامل ([SWS_Dcm_00153]). ويتضمن ذلك تفصيليًا الإجراءات التالية:
- تعطيل جميع عمليات الإرسال العادية ([SWS_Dcm_00156])،
- منع عمليات إرسال Response-on-Event ([SWS_Dcm_00154]) بالإضافة إلى
- تعطيل عمليات الإرسال الدورية في إطار
ReadDataByPeriodicIdentifier([SWS_Dcm_00155]).
فيما يتعلق بمعالجة الأخطاء والشروط المحددة، فقد تقرر أنه يجب على DCM العودة دون أي إجراء آخر إذا كانت NetworkId الممررة تطابق قناة ComM غير مشار إليها في DCM عبر معلمة التكوين DcmDslProtocolComMChannelRef ([SWS_Dcm_01325]). لم يتم تحديد أخطاء تطوير محددة أو قيم إرجاع أخطاء لهذا الاستدعاء.
Interpretation: يُفترض أن يتم الاستدعاء عادةً بواسطة الوحدة ComM بمجرد إتمام الانتقال إلى وضع الاتصال الصامت. سؤال Q-fc9b6303ae0c0e41 (مفتوح)
تم إنشاء إشعار الاستخدام هذا بواسطة نظام ذكاء اصطناعي ويستند حصريًا إلى مواصفات AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Dcm_ComM_FullComModeEntered [SWS_Dcm_00360] 📄 PDF
void Dcm_ComM_FullComModeEntered (uint8 NetworkId);
This call informs the Dcm module about a ComM mode change to COMM_FULL_ COMMUNICATION.
تتوفر الدالة التزامنية وقابلة لإعادة الدخول Dcm_ComM_FullComModeEntered عبر ملف الترويسة Dcm_ComM.h وتبلغ وحدة DCM بانتقال شبكة اتصال إلى الحالة COMM_FULL_COMMUNICATION [SWS_Dcm_00360]. وتعمل المعلمة NetworkId كمعلمة إدخال تحدد الشبكة المتأثرة بتغيير الوضع [SWS_Dcm_00360].
من خلال الاستدعاء، يتم تنشيط جميع الاتصالات لهذه الشبكة، بحيث يتم تمكين كل من استقبال الرسائل وإرسالها [SWS_Dcm_00157]. ويشمل ذلك أنواع الإرسال التالية:
- عمليات الإرسال العادية [SWS_Dcm_00161]،
- عمليات إرسال Response-on-Event [SWS_Dcm_00159] بالإضافة إلى
- عمليات الإرسال الدورية بواسطة
ReadDataByPeriodicIdentifier[SWS_Dcm_00160].
بمجرد استدعاء Dcm_ComM_FullComModeEntered، تعالج DCM الدوال الداخلية DslInternal_ResponseOnOneDataByPeriodicId() وDslInternal_ResponseOnOneEvent() دون قيود [SWS_Dcm_00162]. في التسلسل الزمني، يجب على DCM انتظار هذا الاستدعاء قبل بدء إرسال استجابة تشخيصية؛ ويجب ألا يتجاوز وقت الانتظار P2ServerMax بدءًا من وقت استلام الطلب [SWS_Dcm_01142].
في حالة الخطأ، إذا كانت NetworkId الممررة تتعلق بقناة ComM غير مهيأة في DCM (المعلمة DcmDslProtocolComMChannelRef)، تعود الدالة على الفور ودون أي إجراءات أخرى [SWS_Dcm_01326].
تم توليد ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Dcm_CsmAsyncJobFinished [SWS_Dcm_91076] 📄 PDF
Std_ReturnType Dcm_CsmAsyncJobFinished (Csm_ResultType result);
Can be called from Csm upon finishing an asynchronous job processing. The integrator will configure this name as callback function within the Csm ECUC configuration for asynchronous jobs. Only one such callback is available, the Dcm detects the job that has finished by evaluating the job parameter. API availability: This API will be available only if ({ecuc(Dcm/Dcm Dsp/DcmDspAuthentication/DcmDspAuthenticationConnection} != null).
الاستخدام والدلالات
يستدعي Crypto Service Manager (CSM) دالة الاستدعاء الراجع المتزامنة والقابلة لإعادة الدخول Dcm_CsmAsyncJobFinished بمجرد اكتمال معالجة مهمة غير متزامنة [SWS_Dcm_91076]. وتستقبل كمعلمة إدخال عبر result من النوع Csm_ResultType نتيجة مهمة CSM المنتهية [SWS_Dcm_91076]. وكقيمة إرجاع، تُرجع الدالة دائمًا E_OK [SWS_Dcm_91076].
التكوين والشروط الحدية
يجب على مسؤولي التكامل تكوين اسم هذه الدالة في تكوين ECUC الخاص بـ CSM كاستدعاء راجع للمهام غير المتزامنة [SWS_Dcm_91076]. ويتوفر لـ DCM استدعاء راجع وحيد فقط من هذا النوع؛ ويتم تحديد المهمة المكتملة وفقًا للمواصفة من خلال تقييم معلمة المهمة [SWS_Dcm_91076]. ومع ذلك، نظرًا لأن توقيع دالة C لا يمرر سوى result، يُرجح أن تحدد DCM المهمة المرتبطة داخليًا عبر حالة المعاملة الخاصة بالمصادقة الجارية. سؤال Q-04ad1d5fb514f467 (مفتوح)
تتوفر الواجهة فقط إذا تم تعيين المعلمة DcmDspAuthenticationConnection في التكوين (لا تساوي null) [SWS_Dcm_91076]. لم تُحدَّد معالجات أخطاء معينة أو رسائل DET لهذا الاستدعاء، لأن قيمة الإرجاع هي دائمًا E_OK [SWS_Dcm_91076].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة Dcm_KeyMAsyncCertificateVerifyFinished [SWS_Dcm_91077] 📄 PDF
Std_ReturnType Dcm_KeyMAsyncCertificateVerifyFinished (KeyM_CertificateIdType CertID, KeyM_CertificateStatusType Result);
Can be called from Key upon finishing an asynchronous certificate verification. The integrator will configure this name as callback function within the KeyM ECUC configuration for asynchronous jobs. Only one such callback is available, the Dcm detects the certificate that has finished by evaluating the certId parameter. API availability: This API will be available only if ({ecuc(Dcm/DcmDsp/DcmDspAuthentication/DcmDspAuthenticationConnection} != null).
تستدعي الوحدة KeyM دالة الاستدعاء الراجع المتزامنة والقابلة لإعادة الدخول Dcm_KeyMAsyncCertificateVerifyFinished بعد اكتمال التحقق غير المتزامن من الشهادة [SWS_Dcm_91077]. وتُخطر DCM بالاكتمال وكذلك بنتيجة عملية الفحص وتُرجع كقيمة إرجاع دائمًا E_OK [SWS_Dcm_91077].
المعلمات وطريقة العمل
CertID: معرّف الشهادة التي اكتمل التحقق منها. بناءً على هذا المعرّف، تحدد DCM أي مهمة فحص قد اكتملت [SWS_Dcm_91077].Result: قيمة الإرجاع وحالة مهمة التحقق غير المتزامنة من KeyM [SWS_Dcm_91077].
التكوين والشروط الحدية
يجب على مسؤولي التكامل تكوين اسم الدالة هذا في تكوين ECUC الخاص بـ KeyM كاستدعاء راجع للمهام غير المتزامنة [SWS_Dcm_91077]. ونظرًا لتوفر استدعاء راجع وحيد فقط لهذا الإشعار، تعتمد DCM على تحليل الشهادة المعنية عبر المعلمة CertID [SWS_Dcm_91077].
تتوفر الواجهة حصريًا إذا تم تكوين معلمة التكوين DcmDspAuthenticationConnection في المسار Dcm/DcmDsp/DcmDspAuthentication (!= null) [SWS_Dcm_91077]. لم تُحدَّد رموز خطأ خاصة أو رسائل DET لهذا الاستدعاء [SWS_Dcm_91077].
تم إنشاء ملاحظة الاستخدام هذه آليًا.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Dcm_ReadMemory [SWS_Dcm_00539] 📄 PDF
Dcm_ReturnReadMemoryType Dcm_ReadMemory (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint8* MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);
The Dcm_ReadMemory callout is used to request memory data identified by the parameter memoryAddress and memorySize from the UDS request message. This service is needed for the implementation of UDS services: • ReadMemoryByAddress • RequestUpload • ReadDataByIdentifier (in case of Dynamical DID defined by memory address) • TransferData
تُستخدم دالة الاستدعاء الخارجي Dcm_ReadMemory ([SWS_Dcm_00539])، المعلن عنها في Dcm_Externals.h، بواسطة DCM لقراءة بيانات ذاكرة الخادم استنادًا إلى عنوان البدء (MemoryAddress) وحجم البايت (MemorySize). وتلزم الدالة لخدمات UDS وهي ReadMemoryByAddress (0x23) ([SWS_Dcm_00495])، وReadDataByIdentifier (0x22) لمعرّفات DID الديناميكية في نطاق العناوين 0xF200 إلى 0xF3FF ([SWS_Dcm_00653])، وRequestUpload بالإضافة إلى TransferData ([SWS_Dcm_00539]). وإذا لم يُستخدم المعامل MemoryIdentifier، فيجب ضبطه على 0 ([SWS_Dcm_00539]).
الواجهة غير متزامنة وغير قابلة لإعادة الدخول ([SWS_Dcm_00539]). ويتم تمرير حالة الاستدعاء عبر OpStatus بالقيم DCM_INITIAL، أو DCM_PENDING، أو DCM_CANCEL، أو DCM_FORCE_RCRRP_OK. وطالما أن عملية القراءة مستمرة، تُرجع الدالة DCM_READ_PENDING ([SWS_Dcm_00985]). وإذا أرجع الاستدعاء DCM_READ_FORCE_RCRRP، يبدأ DCM على الفور إرسال رسالة RCR-RP (NRC 0x78) ويوقف الاستدعاءات الإضافية مؤقتًا حتى تأكيد الإرسال ([SWS_Dcm_00839]). وبعد تأكيد RCR-RP، يستدعي DCM الدالة من Dcm_MainFunction مجددًا باستخدام OpStatus = DCM_FORCE_RCRRP_OK ([SWS_Dcm_00840]).
في حالة النجاح، تُكتب البيانات المقروءة في المخزن المؤقت MemoryData ويتم إرجاع DCM_READ_OK ([SWS_Dcm_00539]، [SWS_Dcm_00985]). وإذا فشلت العملية، تُرجع الدالة DCM_READ_FAILED وتعيّن ErrorCode. عندئذٍ يرسل DCM استجابة سلبية بقيمة NRC المقابلة ([SWS_Dcm_00644]).
إشعار استخدام تم إنشاؤه تلقائيًا استنادًا إلى مواصفات AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Dcm_WriteMemory [SWS_Dcm_00540] 📄 PDF
Dcm_ReturnWriteMemoryType Dcm_WriteMemory (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, const uint8* MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);
The Dcm_WriteMemory callout is used to write memory data identified by the parameter memoryAddress and memorySize. This service is needed for the implementation of UDS services : • WriteMemoryByAddress • RequestDownload • TransferData
يستدعي DCM دالة الاستدعاء الخارجي Dcm_WriteMemory المعلن عنها في Dcm_Externals.h بشكل غير متزامن وغير قابل لإعادة الدخول لكتابة بيانات الذاكرة استنادًا إلى عنوان البدء وحجم البايت [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 استجابة سلبية بقيمة NRC الممررة عبر معامل الإخراجErrorCode[SWS_Dcm_00540]، [SWS_Dcm_00643].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي استنادًا إلى مواصفات AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Dcm_SetProgConditions [SWS_Dcm_00543] 📄 PDF
Std_ReturnType Dcm_SetProgConditions (Dcm_OpStatusType OpStatus, const Dcm_ProgConditionsType* ProgConditions);
The Dcm_SetProgConditions callout allows the integrator to store relevant information prior to jumping to bootloader / jump due to ECUReset request. The context parameter are defined in Dcm_ProgConditionsType.
تتيح دالة الاستدعاء الخارجي Dcm_SetProgConditions لمكامل النظام الحفظ المستمر للمعلومات ذات الصلة قبل الانتقال إلى برنامج الإقلاع (Bootloader) أو إعادة التعيين نتيجة لطلب ECUReset [SWS_Dcm_00543]. وتُمرر بيانات السياق ذات الصلة عبر مؤشر إلى البنية Dcm_ProgConditionsType، والتي تجمع من بين أمور أخرى عناوين المصدر للاتصال وجهاز الاختبار، ومعرّفات الخدمة والوظيفة الفرعية، بالإضافة إلى أعلام التحكم مثل ReprogramingRequest وResponseRequired [SWS_Dcm_00988]. وعند استلام خدمة UDS 0x10 بوظيفة فرعية 0x02، يعيّن DCM هذه الأعلام ويستدعي الواجهة [SWS_Dcm_01182].
يتم الاستدعاء بشكل غير متزامن وغير قابل لإعادة الدخول (Non Reentrant) [SWS_Dcm_00543]. وعبر المعلمة OpStatus، يتم التحكم في الحالات DCM_INITIAL، أو DCM_PENDING، أو DCM_CANCEL، أو DCM_FORCE_RCRRP_OK [SWS_Dcm_00543]. وإذا استمر التنفيذ وأرجعت الدالة DCM_E_PENDING، فإن DCM يستدعي الواجهة مرة أخرى في دورة الدالة الرئيسية التالية لإتمام التعيين [SWS_Dcm_00543]، [SWS_Dcm_01184]. ويمكن عبر DCM_E_FORCE_RCRRP فرض إرسال استجابة معلقة (NRC 0x78) [SWS_Dcm_00543]. واعتمادًا على التكوين، لا يتم الاستدعاء بواسطة DCM إلا بعد نجاح نقل NRC 0x78 [SWS_Dcm_00535].
إذا عُيِّنت الشروط دون أخطاء وأرجعت دالة الاستدعاء الخارجي (Callout) E_OK، يُطلق DCM تغيير وضع ModeDeclarationGroupPrototype DcmEcuReset إلى EXECUTE [SWS_Dcm_00719]، [SWS_Dcm_01163]، [SWS_Dcm_01180]. أما إذا تعذر حفظ الحالة وأجابت الدالة بـ E_NOT_OK، فلن يُنفَّذ كل من إعادة التعيين والقفز إلى محمل الإقلاع (Bootloader)، ويُمنع تغيير الوضع، ويرسل DCM الاستجابة السلبية NRC 0x22 (Conditions not correct) [SWS_Dcm_00715]، [SWS_Dcm_01181].
أُنشئت ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR Classic الإصدار R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Dcm_GetProgConditions [SWS_Dcm_00544] 📄 PDF
Dcm_EcuStartModeType Dcm_GetProgConditions (Dcm_ProgConditionsType* ProgConditions);
The Dcm_GetProgConditions callout is called upon Dcm initialization and allows to determine if a response ($50 or $51) has to be sent. The context parameters are defined in Dcm_Prog ConditionsType.
تُستدعى دالة الاستدعاء الخارجي (Callout) Dcm_GetProgConditions برمز الخدمة 0x62 أثناء تهيئة DCM للتحقق مما إذا كان يلزم إرسال استجابة تشخيصية معلقة للخدمة $50 أو $51 [SWS_Dcm_00544]. ويتم توفير تصريح الواجهة عبر ملف الترويسة Dcm_Externals.h [SWS_Dcm_00544].
الاستخدام والمعلمات
يتم تنفيذ الدالة بشكل متزامن، دون تمرير أي معلمات إدخال أو معلمات إدخال/إخراج نظامية [SWS_Dcm_00544]:
- معلمة الإخراج: عبر المؤشر
ProgConditionsمن النوعDcm_ProgConditionsType*، تُرجع دالة Callout الشروط التي طُلب القفز السابق بناءً عليها من محمل الإقلاع [SWS_Dcm_00544]. وتُخزَّن معلمات السياق ذات الصلة في نوع البياناتDcm_ProgConditionsType[SWS_Dcm_00544]. - القيمة المرجعة: تُرجع الدالة قيمة حالة من النوع
Dcm_EcuStartModeTypeإلى الجهة المستدعية [SWS_Dcm_00544].
التزامن ومعالجة الأخطاء
صُنِّفت الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant)؛ لذا يُحظر تنفيذها بشكل متزامن [SWS_Dcm_00544]. ولا توجد رموز أخطاء محددة معرَّفة لدالة Callout هذه في مواصفة الواجهة لكل من DET أو DEM [SWS_Dcm_00544].
تم إنشاء ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي استنادًا إلى مواصفات AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة Dcm_ProcessRequestAddFile [SWS_Dcm_91078] 📄 PDF
Std_ReturnType Dcm_ProcessRequestAddFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x01 (AddFile).
تستدعي DCM دالة الاستدعاء الخارجي (Callout-Funktion) Dcm_ProcessRequestAddFile لبدء الخدمة RequestFileTransfer بنمط التشغيل 0x01 (AddFile) ([SWS_Dcm_91078]). وهي متوفرة عبر Dcm_Externals.h، ولديها معرّف الخدمة 0x72 ومحددة بأنها غير قابلة لإعادة الدخول (Non Reentrant) وغير متزامنة ([SWS_Dcm_91078]).
يتم التحكم في تسلسل الاستدعاء غير المتزامن عبر المعلمة OpStatus:
DCM_INITIAL: جميع معلمات الإدخال صالحة. يشمل ذلك مسار الملف واسمه (filePathAndNameمعfilePathAndNameLength)، والبايتdataFormatIdentifier(النيبل العلوي للضغط، والنيبل السفلي للتشفير) بالإضافة إلى حجم الملف غير المضغوط والمضغوط (fileSizeUncompressed،fileSizeCompressed) ([SWS_Dcm_91078]).DCM_PENDINGوDCM_CANCELوDCM_FORCE_RCRRP_OK: في هذه الاستدعاءات اللاحقة، يتم تعيين جميع معلمات الإدخال إلى0x00([SWS_Dcm_91078]).
كقيم إرجاع، تُرجع الدالة E_OK عند التنفيذ الناجح، وDCM_E_PENDING عند استمرار المعالجة، أو DCM_E_FORCE_RCRRP إذا طلب التطبيق إرسال استجابة مؤقتة (NRC 0x78) ([SWS_Dcm_91078]، [SWS_Dcm_91086]). وفي حالة النجاح، تحدد maxNumberOfBlockLength الحد الأقصى المسموح به لطول كتلة رسائل TransferData المستقبلية بدون SID وعداد الكتل ([SWS_Dcm_91078]).
في حالة الخطأ، تُرجع الدالة E_NOT_OK. في هذه الحالة، يجب تمرير رمز استجابة سلبية (NRC) عبر المعلمة ErrorCode، والذي ترسله DCM في استجابة تشخيص سلبية إلى العميل ([SWS_Dcm_91078]). إذا تم تمكين التكوين DcmRequestFileTransferUsePort، تتوفر هذه الوظيفة بدلاً من ذلك كعملية منفذ ProcessRequestAddFile للواجهة RequestFileTransfer ([SWS_Dcm_91086]).
تم إنشاء ملاحظة الاستخدام هذه تلقائياً استناداً إلى مواصفة AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Dcm_ProcessRequestDeleteFile [SWS_Dcm_91079] 📄 PDF
Std_ReturnType Dcm_ProcessRequestDeleteFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x02 (DeleteFile). Manager
الاستخدام ودلالات الاستدعاء
تستدعي DCM دالة الاستدعاء الخارجي Dcm_ProcessRequestDeleteFile لبدء حذف ملف (modeOfOperation = 0x02) على الخادم كجزء من خدمة التشخيص RequestFileTransfer [SWS_Dcm_91079]. الدالة معلنة في Dcm_Externals.h وتعمل بشكل غير متزامن وغير قابل لإعادة الدخول (Non Reentrant) [SWS_Dcm_91079].
يتم التمرير والتقييم استنادًا إلى المعلمة OpStatus:
DCM_INITIAL: تشير إلى بدء العملية. وتكون جميع معلمات الإدخال هنا صالحة؛ وتمررfilePathAndNameموقع واسم الملف المراد حذفه، والذي يُحدد طوله بالبايت عبرfilePathAndNameLength[SWS_Dcm_91079].DCM_PENDINGأوDCM_CANCELأوDCM_FORCE_RCRRP_OK: أثناء المعالجة المستمرة أو الإلغاء، يتم تعيين جميع معلمات الإدخال إلى0x00[SWS_Dcm_91079].
كقيم إرجاع، تُرجع الدالة E_OK عند التنفيذ الناجح، وDCM_E_PENDING إذا كان التنفيذ لا يزال جاريًا ويتطلب استدعاءات إضافية، أو DCM_E_FORCE_RCRRP إذا طلب التطبيق إرسال رسالة وسيطة مع NRC 0x78 (Response Pending) [SWS_Dcm_91079]، بشكل مماثل للخدمة RequestFileTransfer [SWS_Dcm_91086].
معالجة الأخطاء
إذا فشلت المعالجة، تُرجع الدالة E_NOT_OK. في هذه الحالة، يجب توفير رمز استجابة سلبية عبر معلمة الإخراج ErrorCode، والذي ترسله DCM كإفادة سلبية (NRC) إلى المفحوص [SWS_Dcm_91079].
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى مواصفات AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Dcm_ProcessRequestReplaceFile [SWS_Dcm_91080] 📄 PDF
Std_ReturnType Dcm_ProcessRequestReplaceFile (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint8 dataFormatIdentifier, uint64 fileSizeUncompressed, uint64 fileSizeCompressed, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x03 (ReplaceFile).
تستدعي DCM دالة الاستدعاء الخارجي Dcm_ProcessRequestReplaceFile لبدء عملية تشخيص لـ RequestFileTransfer بنمط التشغيل 0x03 (ReplaceFile) [SWS_Dcm_91080]. تم تعريف الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) وغير متزامنة وتُوفَّر عبر ملف الترويسة Dcm_Externals.h [SWS_Dcm_91080].
يتم التحكم في تسلسل المعالجة غير المتزامنة عبر المعلمة OpStatus:
- عند الاستدعاء الأولي مع
DCM_INITIAL، تُمرر DCM جميع معلمات الإدخال بشكل صالح، بما في ذلك المسار واسم الملف (filePathAndNameمع بيان الطولfilePathAndNameLength)، ومعرّف الضغط والتشفير (dataFormatIdentifier) بالإضافة إلى حجم الملف غير المضغوط والمضغوط (fileSizeUncompressed،fileSizeCompressed) [SWS_Dcm_91080]. - في حالات الاستدعاءات اللاحقة أو الإلغاء (
DCM_PENDING،DCM_CANCEL،DCM_FORCE_RCRRP_OK)، يتم ضبط جميع معاملات الدخل (In-Parameter) على0x00[SWS_Dcm_91080]. - في حال النجاح، تُرجع الدالة إلى DCM عبر معامل الخرج
maxNumberOfBlockLengthأقصى طول لبيانات الحمولة النافعة لطلباتTransferDataاللاحقة (بدون SID وعداد تسلسل الكتل) [SWS_Dcm_91080].
كقيم إرجاع، تم تحديد E_OK عند التنفيذ الناجح، وDCM_E_PENDING عند استمرار المعالجة، وDCM_E_FORCE_RCRRP لطلب إشعار بتعليق الاستجابة (NRC 0x78) [SWS_Dcm_91080]، [SWS_Dcm_91086]. وإذا فشل التنفيذ، تُرجع الدالة E_NOT_OK وتُعيّن للمعامل ErrorCode كود الاستجابة التشخيصية السلبية (NRC) المقابل، والذي يُرسله DCM بدوره إلى جهاز الفحص (Tester) [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 دالة الاستدعاء الخارجي (Callout) Dcm_ProcessRequestReadFile لبدء عملية نقل ملفات (الخدمة RequestFileTransfer) مع نمط التشغيل ReadFile (modeOfOperation 0x04) [SWS_Dcm_91081]. الدالة مصرّح عنها في ملف الرأس Dcm_Externals.h، وتعمل بشكل غير متزامن وليست قابلة لإعادة الدخول (Non Reentrant) [SWS_Dcm_91081].
يتم الاستدعاء عبر معامل الحالة OpStatus: عند الاستدعاء الأولي DCM_INITIAL تكون جميع معاملات الإدخال صالحة، بينما يتم ضبطها على 0x00 في الاستدعاءات اللاحقة باستخدام DCM_PENDING أو DCM_CANCEL أو DCM_FORCE_RCRRP_OK [SWS_Dcm_91081]. يتلقى التطبيق المسار واسم الملف عبر filePathAndName (الطول في filePathAndNameLength)، وصيغة الضغط والتشفير عبر dataFormatIdentifier، بالإضافة إلى أحجام الملف عبر fileSizeUncompressed وfileSizeCompressed [SWS_Dcm_91081]. كمعامل خرج، يجب على التطبيق تعيين maxNumberOfBlockLength بأقصى عدد بايتات لاستجابات TransferData اللاحقة (بدون SID وعداد تسلسل الكتل) [SWS_Dcm_91081].
كقيم إرجاع لـ Std_ReturnType، تم تعريف E_OK عند التنفيذ الناجح، أو DCM_E_PENDING عند استمرار المعالجة غير المتزامنة، أو DCM_E_FORCE_RCRRP لطلب استجابة «Response Pending» (NRC 0x78) [SWS_Dcm_91081]. وإذا فشلت العملية، فإنها تُرجع E_NOT_OK؛ وفي هذه الحالة، يُرسل DCM استجابة سلبية بقيمة NRC المحددة في معامل الخرج ErrorCode إلى جهاز الفحص [SWS_Dcm_91081]. يتوافق هذا التفاعل مع المعالجة العامة للخدمة RequestFileTransfer، تماماً كما يتم تكوينها بصورة مماثلة لعمليات الملفات الأخرى مثل ProcessRequestAddFile [SWS_Dcm_91086].
تم إنشاء هذا النص بواسطة نظام ذكاء اصطناعي ويستند حصرياً إلى مواصفة AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Dcm_ProcessRequestReadDir [SWS_Dcm_91082] 📄 PDF
Std_ReturnType Dcm_ProcessRequestReadDir (Dcm_OpStatusType OpStatus, uint16 filePathAndNameLength, const uint8* filePathAndName, uint64* dirInfoLength, uint64* maxNumberOfBlockLength, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function. DCM shall call this function to start a RequestFileTransfer process with mode OfOperation equal to 0x05 (ReadDir).
الاستخدام
يتم التصريح عن دالة الاستدعاء الخارجي Dcm_ProcessRequestReadDir عبر ملف الرأس Dcm_Externals.h ويستدعيها DCM لبدء الخدمة RequestFileTransfer بنمط التشغيل 0x05 (ReadDir) بشكل غير متزامن [SWS_Dcm_91082]. يتم التحكم في تقدم المعالجة عبر معامل التمرير OpStatus [SWS_Dcm_91082]. عند الاستدعاء الأول باستخدام DCM_INITIAL، يمرر DCM المسار أو الاسم عبر filePathAndName مع الطول بالبايت filePathAndNameLength [SWS_Dcm_91082]. وفي الاستدعاءات اللاحقة أو عند الإلغاء (DCM_PENDING، DCM_CANCEL، DCM_FORCE_RCRRP_OK)، يتم ضبط جميع معاملات الإدخال على 0x00 [SWS_Dcm_91082].
كقيم خرج، يجب على التطبيق تقديم حجم بيانات الدليل عبر dirInfoLength والحد الأقصى المسموح به لحجم الكتلة لعمليات النقل اللاحقة عبر maxNumberOfBlockLength [SWS_Dcm_91082]. وإلى جانب E_OK عند التنفيذ الناجح، يمكن للدالة إرجاع DCM_E_PENDING إذا كانت العملية لا تزال جارية، أو DCM_E_FORCE_RCRRP للتسبب في إرسال استجابة مؤقتة (NRC 0x78) [SWS_Dcm_91082].
معالجة الأخطاء
في حال حدوث خطأ، يجب على الدالة إرجاع E_NOT_OK. وفي هذه الحالة، يقرأ DCM المعامل ErrorCode وينقل قيمته ككود استجابة سلبية (NRC) إلى جهاز الفحص [SWS_Dcm_91082]. لا تتوفر رسائل DET أو DEM محددة لهذه الواجهة؛ وبالتالي يُرجح أن تقع عمليات فحص الأخطاء للمسار الممرر بالكامل على عاتق التنفيذ الخاص بالتطبيق. سؤال Q-278dbc3db7b4363b (مفتوح)
التزامن والتفاعل
تم تحديد الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant)، وبالتالي لا يجوز استدعاؤها بشكل متزامن لعدة طلبات تشخيصية [SWS_Dcm_91082]. وهي جزء من مجموعة واجهات الخدمة RequestFileTransfer، والتي يمكن التأثير على ربطها عبر معاملات التكوين [SWS_Dcm_91086].
تم إنشاء ملاحظة الاستخدام هذه تلقائياً بناءً على مواصفة AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Dcm_WriteFile [SWS_Dcm_91083] 📄 PDF
Std_ReturnType Dcm_WriteFile (Dcm_OpStatusType OpStatus, uint64 DataLength, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function. DCM shall call this function when data is received using UDS service Transfer Data if there's an ongoing RequestFileTransfer process started with 0x01 (AddFile) or 0x03 (ReplaceFile).
الاستخدام وسياق الاستدعاء
يستدعي DCM دالة الاستدعاء الخارجي Dcm_WriteFile عند استلام بيانات عبر خدمة UDS المسماة TransferData (0x36) ووجود عملية تنزيل نشطة بدأت سابقاً بواسطة RequestFileTransfer بالأنماط 0x01 (AddFile) أو 0x03 (ReplaceFile) [SWS_Dcm_01444]. تتوفر الواجهة عبر Dcm_Externals.h [SWS_Dcm_91083].
يعتمد تعيين المعاملات على حالة التقدم OpStatus [SWS_Dcm_91083]:
DCM_INITIAL: تكون جميع معاملات الإدخال صالحة. يشير المؤشرDataإلى بيانات الحمولة النافعة المراد كتابتها، ويحددDataLengthطولها بالبايت. لا تتجاوز قيمةDataLengthالحد الأقصى لطول الكتلة الذي تم التفاوض عليه سابقاً عند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].
تم إنشاء هذا النص بواسطة نظام مدعوم بالذكاء الاصطناعي ويخضع لالتزام الإسناد والتحقق بالرجوع إلى مواصفة 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 دالة الاستدعاء الخارجي Dcm_ReadFileOrDir عند استلام طلب متوافق مع الصيغة لخدمة UDS المسماة TransferData (0x36) ضمن عملية رفع جارية لملف أو دليل (بدأت سابقاً عبر خدمة UDS المسماة RequestFileTransfer بالنمط 0x04 لـ ReadFile أو 0x05 لـ ReadDir) [SWS_Dcm_01445]. تُستخدم الدالة لتوفير البيانات المراد إرسالها كاستجابة إلى العميل [SWS_Dcm_91085]. التصريح عن الواجهة متاح عبر ملف الرأس Dcm_Externals.h [SWS_Dcm_91085].
يتم التنفيذ بشكل غير متزامن ومحدد بأنه غير قابل لإعادة الدخول (Non Reentrant) [SWS_Dcm_91085]. يعتمد التفاعل وتعيين المعاملات على حالة التشغيل الممررة:
- حالة التشغيل (
OpStatus): عند الاستدعاء الأولي بـDCM_INITIAL، تكون جميع معاملات الإدخال صالحة. وفي استدعاءات المتابعة أو الإلغاء بـDCM_PENDINGأوDCM_CANCELأوDCM_FORCE_RCRRP_OK، يتم ضبط جميع معاملات الإدخال على0x00[SWS_Dcm_91085]. - المخزن المؤقت وطول الكتلة: يمرر المعامل
DataLengthمن جهة الدخل أقصى طول مسموح به للكتلة (بما يتوافق مع القيمةmaxNumberOfBlockLengthالمبلغة للعميل)، ويُرجع من جهة الخرج الطول الفعلي بالبايت المتوفر فيData، والذي لا يجوز أن يتجاوز قيمة الدخل [SWS_Dcm_91085]. التفسير: على الرغم من أنDataمصرح عنه شكلياً في الواجهة كمعامل دخل، يُرجح أنه يُستخدم لتمرير بيانات الحمولة النافعة المراد قراءتها. سؤال Q-53de8a0bdbc4a2b4 (مفتوح) - قيم الإرجاع: تُرجع العملية
E_OKعند توفير البيانات بنجاح، أوDCM_E_PENDINGعند عدم اكتمال المعالجة بعد، أوDCM_E_FORCE_RCRRPإذا أراد التطبيق فرض إرسال إشعار مؤقت (Response Pending، NRC 0x78) [SWS_Dcm_91085].
إذا فشلت المعالجة في التطبيق، يتم إرجاع E_NOT_OK. وفي حالة الخطأ هذه، ترسل وحدة DCM استجابة UDS سلبية (NRC) إلى العميل، ويتطابق كود الخطأ فيها مع القيمة المحددة في معامل الخرج ErrorCode [SWS_Dcm_91085].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويُستخدم كدليل توجيهي. المرجع المعتمد هو مواصفات AUTOSAR الرسمية.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Dcm_MainFunction [SWS_Dcm_00053] 📄 PDF
void Dcm_MainFunction (void);
This service is used for processing the tasks of the main loop.
تُستخدم الدالة Dcm_MainFunction لمعالجة المهام المركزية للحلقة الرئيسية لـ Diagnostic Communication Manager ([SWS_Dcm_00053]). وتمتلك التوقيع void Dcm_MainFunction(void) ولا تُرجع أي قيم. وبما أنها موفرة عبر ملف الترويسة SchM_Dcm.h، يُرجح أن استدعاءها يتم دوريًا في سياق مهمة مجدول للبرمجيات الأساسية. سؤال Q-e083a72aae447ab5 (مفتوح)
تتمثل إحدى المهام الأساسية في التحكم في الإجراءات غير المتزامنة ومواصلتها عبر الدورات:
- إذا أعادت عملية مع
Dcm_OpStatusTypeالقيمة المرجعةDCM_E_PENDING، فإن DCM يستدعي العملية مجددًا عند كل استدعاء لـDcm_MainFunctionمعOpStatus = DCM_PENDINGطالما استمرت هذه الحالة ([SWS_Dcm_00530]). - إذا أعادت
Dem_ClearDTC()الحالةDEM_PENDING، فسيتم استدعاء الدالة مجددًا في الدورة التالية لـDcm_MainFunction؛ ويرسل DCM عند الحاجة NRC 78 (ResponsePending) ([SWS_Dcm_00703]). - يجب أن تتم استدعاءات
Dem_SetDTCFilter()مع تعيين المعاملFilterForFault-DetectionCounterإلزاميًا في سياقDcm_MainFunction([SWS_Dcm_00519]). - بعد تأكيد إرسال RCR-RP، يستدعي DCM العمليات مثل
Dcm_WriteMemoryأوDcm_ReadMemoryمنDcm_MainFunctionمجددًا معOpStatus = DCM_FORCE_RCRRP_OK([SWS_Dcm_00529]، [SWS_Dcm_00838]، [SWS_Dcm_00840]). - إذا تم الإبلاغ عن القيمة
DCM_E_PENDINGعندXxx_GetSecurityAttemptCounter، فسيتم قطع الاستدعاء ومواصلته في الدورة التالية ([SWS_Dcm_01351])؛ وعند تجاوز المهلة الزمنية المهيأة، يُلغي DCM العملية المعلقة بـOpStatus = DCM_CANCEL([SWS_Dcm_01352]).
تم توليد ملاحظة الاستخدام هذه تلقائيًا على أساس مواصفة AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_GetSeed [SWS_Dcm_01151] 📄 PDF
Std_ReturnType Xxx_GetSeed (const uint8* SecurityAccessDataRecord, Dcm_OpStatusType OpStatus, uint8* Seed, Dcm_NegativeResponseCodeType* ErrorCode);
Request to application for asynchronous provision of seed value
تُستخدم الدالة Xxx_GetSeed (المتوفرة عبر Dcm_Externals.h) لتوفير قيمة Seed بشكل غير متزامن بواسطة التطبيق لوحدة DCM [SWS_Dcm_01151]. ويتم استدعاؤها بمجرد استلام طلب UDS للخدمة SecurityAccess (0x27) بنوع الوظيفة الفرعية «requestSeed» وعدم تفعيل مستوى الأمان المطلوب بعد [SWS_Dcm_00862]، [SWS_Dcm_00324].
سياق الاستدعاء والمعلمات
تم تعريف الواجهة على أنها غير قابلة لإعادة الدخول (Non Reentrant) وتعمل بشكل غير متزامن [SWS_Dcm_01151]:
SecurityAccessDataRecord: مؤشر إلى بيانات إدخال إضافية لحساب Seed؛ ويبلغ الحد الأدنى للحجم بايتًا واحدًا وفقًا لـDcmDspSecurityADRSize[SWS_Dcm_01151].OpStatus: يحدد الحالة الحالية للعملية غير المتزامنة [SWS_Dcm_01151].Seed: مؤشر إخراج يوفر التطبيق من خلاله قيمة Seed المحسوبة [SWS_Dcm_01151].ErrorCode: معلمة إخراج لإرجاع رمز خطأ سلبي (NRC) [SWS_Dcm_01151].
قيم الإرجاع ومعالجة الأخطاء
E_OK: تم تحديد قيمة Seed وتوفيرها بنجاح [SWS_Dcm_01151].DCM_E_PENDING: لم يكتمل الحساب بعد؛ ويلزم إجراء حسابات أو استدعاءات لاحقة لإتمامه [SWS_Dcm_01151].E_NOT_OK: فشل الطلب. في هذه الحالة، ترسل وحدة DCM استجابة UDS سلبية تتضمن قيمة NRC الممررة في المعلمةErrorCode[SWS_Dcm_01151]، [SWS_Dcm_00659].
إرشادات التكامل
اعتمادًا على تكوين DcmDspSecurityUsePort، يتم الربط كدالة C عند USE_ASYNCH_FNC (يُشار إليها عبر DcmDspSecurityGetSeedFnc) [SWS_Dcm_00862] أو كعملية Rte عند USE_ASYNCH_CLIENT_SERVER [SWS_Dcm_00324]. وإذا لم تكن هناك حاجة لتمرير بيانات وصول إضافية، يُستخدم توقيع الدالة البديل دون المعلمة SecurityAccessDataRecord [SWS_Dcm_91003].
تم إنشاء ملاحظة الاستخدام هذه بصورة آلية استنادًا إلى مواصفة AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_GetSeed [SWS_Dcm_91003] 📄 PDF
Std_ReturnType Xxx_GetSeed (Dcm_OpStatusType OpStatus, uint8* Seed, Dcm_NegativeResponseCodeType* ErrorCode);
Request to application for asynchronous provision of seed value
تعمل الدالة Xxx_GetSeed كواجهة غير تزامنية من الوحدة DCM إلى التطبيق لتوفير قيمة بذرة (seed) عند وجود طلب من النوع «requestSeed» في إطار خدمة UDS المسماة SecurityAccess (0x27) [SWS_Dcm_91003]، [SWS_Dcm_00862]. يتم الاستدعاء بواسطة الوحدة الفرعية DCM-DSP ما لم تكن درجة الأمان نشطة بعد وإذا كان التكوين ينص على USE_ASYNCH_CLIENT_SERVER أو USE_ASYNCH_FNC [SWS_Dcm_00324]، [SWS_Dcm_00862].
تم تنفيذ الواجهة لتكون غير تزامنية وغير قابلة لإعادة الدخول (Non Reentrant) [SWS_Dcm_91003]. يتم التحكم في تقدم المعالجة عبر معلمة الإدخال OpStatus (النوع Dcm_OpStatusType) [SWS_Dcm_91003]. تم تعريف قيم الإرجاع لتكون E_OK عند التوفير الناجح، وE_NOT_OK في حالة الخطأ، بالإضافة إلى DCM_E_PENDING إذا كان توليد البذرة لا يزال مستمرًا وكانت هناك حاجة لاستدعاءات أخرى [SWS_Dcm_91003]. يتم تمرير القيمة المولدة عبر المؤشر Seed (مخزن مؤقت للدخل/الخرج أو الخرج) [SWS_Dcm_91003].
إذا فشلت العملية وأرجعت Xxx_GetSeed القيمة E_NOT_OK، فيجب على وحدة DCM إرسال استجابة سلبية (NRC) برمز الخطأ الذي تم تعيينه عبر معلمة الإخراج ErrorCode (Dcm_NegativeResponseCodeType) [SWS_Dcm_91003]، [SWS_Dcm_00659]. تم الإعلان عن الخدمة عبر ملف الترويسة Dcm_Externals.h [SWS_Dcm_91003].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على معيار AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_CompareKey [SWS_Dcm_91004] 📄 PDF
Std_ReturnType Xxx_CompareKey (const uint8* Key, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);
Request to application for asynchronous comparing key (DcmDspSecurityUsePort = USE_ ASYNCH_CLIENT_SERVER)
يتم استدعاء الدالة Xxx_CompareKey من قِبل Diagnostic Communication Manager ([SWS_Dcm_91004]) بشكل غير تزامني وغير قابل لإعادة الدخول، لمطابقة مفتاح تم استقباله في إطار خدمة UDS المسمّاة SecurityAccess (0x27، الوظيفة الفرعية sendKey) مع المنطق الداخلي للتطبيق ([SWS_Dcm_00863]). وتُستخدم عندما لا تكون حالة الوصول نشطة بعد، ويكون طلب القيمة الأولية (Seed) ناجحًا، وتكون معلمة التهيئة DcmDspSecurityUsePort مضبوطة على USE_ASYNCH_CLIENT_SERVER ([SWS_Dcm_00324])، أو عندما تكون واجهة الدالة مهيأة عبر USE_ASYNCH_FNC/DcmDspSecurityCompareKeyFnc وفقًا لـ [SWS_Dcm_00863]. وتم التصريح عن الواجهة في Dcm_Externals.h ([SWS_Dcm_91004]).
يتضمن التمرير مؤشر المفتاح المراد فحصه Key، وحالة العملية الحالية OpStatus (من النوع Dcm_OpStatusType)، بالإضافة إلى المؤشر ErrorCode لرمز الاستجابة السلبية الواجب إصداره في حالة الخطأ ([SWS_Dcm_91004]). وقد حُددت قيم الإرجاع التالية:
E_OK: نجاح فحص المفتاح ([SWS_Dcm_91004]).DCM_E_PENDING: لم يكتمل الفحص بعد؛ ويلزم إجراء استدعاءات إضافية بواسطة وحدة DCM لإنهائه ([SWS_Dcm_91004]).E_NOT_OK: المعالجة غير ناجحة. ويرسل DCM بعد ذلك استجابة UDS سلبية باستخدام رمز NRC المضبوط فيErrorCode، دون تغيير مستوى الأمان الداخلي أو زيادة عداد المحاولات الفاشلة (AttemptCounter) ([SWS_Dcm_01150]).DCM_E_COMPARE_KEY_FAILED: المفتاح غير متطابق ([SWS_Dcm_91004]).
إذا فشلت مطابقة المفتاح (DCM_E_COMPARE_KEY_FAILED)، تتم زيادة AttemptCounter في حال تهيئة DcmDspSecurityNumAttDelay ([SWS_Dcm_01397]). وإذا كان العداد أقل من القيمة الحدية، يرسل DCM الرمز NRC 0x35 (InvalidKey) ([SWS_Dcm_00660]). وإذا وصل عدد المحاولات الفاشلة إلى الحد المهيأ DcmDspSecurityNumAttDelay أو تجاوزه، يبدأ DCM الـ SecurityDelayTimer بالمدة الزمنية DcmDspSecurityDelayTime ويرسل الرمز NRC 0x36 (exceededNumberOfAttempts) ([SWS_Dcm_01349]). وفي كلتا الحالتين، يظل مستوى الأمان دون تغيير.
تم إنشاء ملاحظة الاستخدام هذه بصورة آلية وتستند إلى مواصفات وحدة DCM في AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I3)
دالة Xxx_GetSecurityAttemptCounter [SWS_Dcm_01152] 📄 PDF
Std_ReturnType Xxx_GetSecurityAttemptCounter (Dcm_OpStatusType OpStatus, uint8* AttemptCounter);
Read the attempt counter for a specific security level from the application
تقرأ الدالة غير المتزامنة وغير القابلة لإعادة الدخول [SWS_Dcm_01152] عند تهيئة DCM عداد المحاولات الفاشلة الحالي لمستوى أمان مهيأ من التطبيق. ويتم الاستدعاء لكل إدخال في DcmDspSecurityRow تم ضبط معلمة التكوين DcmDspSecurityAttemptCounterEnabled فيه على TRUE [SWS_Dcm_01154].
تتم إدارة التحكم في التدفق عبر المعلمة OpStatus بالقيم DCM_INITIAL أو DCM_PENDING أو DCM_CANCEL [SWS_Dcm_01152]. إذا أرجعت الدالة DCM_E_PENDING، يقطع DCM سلسلة الاستدعاء ويستأنفها في الدورة اللاحقة من Dcm_MainFunction() [SWS_Dcm_01351]. وإذا تم تجاوز مراقبة الوقت DcmDspSecurityMaxAttemptCounterReadoutTime المهيأة بعد الدورة الأولى، يُلغي DCM العملية التي لا تزال معلقة باستخدام DCM_CANCEL [SWS_Dcm_01352].
في حالة النجاح، تُرجع الواجهة E_OK وتمرر قيمة العداد عبر معلمة الإخراج AttemptCounter [SWS_Dcm_01152]. وإذا أرجع الاستدعاء E_NOT_OK، يضبط DCM العداد تلقائيًا على القيمة DcmDspSecurityNumAttDelay المهيأة لمستوى الأمان هذا [SWS_Dcm_01156].
طالما لم يتم تحديد جميع قيم العدادات نهائيًا أو إلغاؤها، يرفض DCM أي طلب لـ SecurityAccess (0x27) لطلب Seed باستخدام رمز الاستجابة السلبي conditionsNotCorrect (0x22) [SWS_Dcm_01354]. وبعد اكتمال سلسلة الاستعلام، يفحص DCM قيم العدادات: إذا وصل عداد واحد على الأقل إلى القيمة العتبية DcmDspSecurityNumAttDelay أو تجاوزها، يبدأ DCM تشغيل SecurityDelayTimer بالقيمة الأعلى من بين DcmDspSecurityDelayTimeOnBoot وDcmDspSecurityDelayTime [SWS_Dcm_01355].
تم إنشاء ملاحظة الاستخدام هذه بصورة آلية بناءً على مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_SetSecurityAttemptCounter [SWS_Dcm_01153] 📄 PDF
Std_ReturnType Xxx_SetSecurityAttemptCounter (Dcm_OpStatusType OpStatus, uint8 AttemptCounter);
Set the attempt counter for a specific security level in the application
تُستخدم الدالة Xxx_SetSecurityAttemptCounter لضبط عداد المحاولات لمستوى أمان محدد في التطبيق ([SWS_Dcm_01153]). ويتم توفيرها عبر ملف الترويسة Dcm_Externals.h.
الاستدعاء والدلالات
يتم التنفيذ بشكل غير متزامن ومحدد على أنه غير قابل لإعادة الدخول (Non Reentrant) ([SWS_Dcm_01153]). ويتحكم الاستدعاء في التدفق عبر المعلمة OpStatus بالقيم DCM_INITIAL أو DCM_PENDING أو DCM_CANCEL. ويتم تمرير قيمة العداد الجديدة عبر معلمة الإدخال AttemptCounter (uint8).
قيم الإرجاع ومعالجة الأخطاء
يُستخدم Std_ReturnType كنوع إرجاع ([SWS_Dcm_01153]):
E_OK: اكتمل الطلب بنجاح.E_NOT_OK: لم يكن التنفيذ ناجحاً.DCM_E_PENDING: لم تنتهِ المعالجة بعد؛ ويلزم إجراء استدعاءات إضافية للإتمام.
إذا تم إلغاء عملية غير متزامنة قيد التشغيل، يمرر DCM الحالة DCM_CANCEL ([SWS_Dcm_01153]).
التفاعل والشروط الحدية
تستدعي وحدة DCM الدالة Xxx_SetSecurityAttemptCounter بمجرد تغييرها لعداد المحاولات لإخطار التطبيق بالتحديث ([SWS_Dcm_01155]). ويتطلب ذلك تكوين معلمة التكوين DcmDspSecurityAttemptCounterEnabled لـ DcmDspSecurityRow المرتبطة بها على TRUE ([SWS_Dcm_01155]). ونظرًا لأن الواجهة غير قابلة لإعادة الدخول، يجب على التطبيق استبعاد التنفيذ المتزامن لنفس المثيل ([SWS_Dcm_01153]).
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_ReadData [SWS_Dcm_00793] 📄 PDF
Std_ReturnType Xxx_ReadData (uint8* Data);
This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_SYNCH_CLIENT_SERVER.
تطلب الدالة المتزامنة Xxx_ReadData من التطبيق قيمة البيانات الحالية لـ DID أو PID عندما تكون معلمة التكوين DcmDspDataUsePort مضبوطة على USE_DATA_SYNCH_CLIENT_SERVER [SWS_Dcm_00793]. وتتوفر الواجهة عبر الترويسة Dcm_Externals.h وتمتلك معرّف الخدمة 0x34 [SWS_Dcm_00793]. وينسخ التطبيق المستدعى البيانات المفيدة المطلوبة مباشرة إلى المخزن المؤقت الممرر Data [SWS_Dcm_00793].
فيما يتعلق بقيمة الإرجاع، تم تحديد أن الاستدعاء يرجع E_OK دون استثناء [SWS_Dcm_00793]. ولم يتم تحديد رموز أخطاء معينة أو ردود سلبية أو رسائل DET/DEM لهذا التوقيع. تفسير: يُرجح أن فشل توفير البيانات غير متوقع على مستوى هذه الواجهة، نظرًا لأنه، على عكس المتغير غير المتزامن [SWS_Dcm_91005]، لا توجد معلمة ErrorCode لرموز الاستجابة السلبية (NRC) ولا قيم إرجاع مثل E_NOT_OK أو DCM_E_PENDING. سؤال Q-adcf0171ecfd37c4 (مفتوح)
فيما يتعلق بالتزامن والشروط الحدية، تم تحديد الدالة على أنها غير متعددة الدخول (Non Reentrant) وتعمل بشكل متزامن تمامًا [SWS_Dcm_00793]. ويتم التفاعل مع طلبات التشخيص في عدة سيناريوهات:
- عند استقبال طلب خدمة OBD برمز $01 يتضمن PIDs غير متوفرة، يستدعي DCM دوال
Xxx_ReadDataالمكونة لكل منها لكافة بيانات PID بهدف تسجيل قيم الاستجابة [SWS_Dcm_00408]. - عند وجود طلب UDS للخدمة 0x22 (ReadDataByIdentifier) يتضمن معرّفات غير متوفرة، يستدعي DCM الدوال لكافة بيانات
OBDDataIdentifier[SWS_Dcm_01380] وكذلكOBDInfoTypeDataIdentifier[SWS_Dcm_01389]. - أما إذا كان السلوك غير المتزامن مطلوبًا، فتُستخدم التواقيع المنفصلة مع
OpStatusوفقًا لـ [SWS_Dcm_91006] أو [SWS_Dcm_91005].
أُنشئ هذا النص بواسطة ذكاء اصطناعي ويستند حصريًا إلى مواصفات الإصدار R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_ReadData [SWS_Dcm_91006] 📄 PDF
Std_ReturnType Xxx_ReadData (Dcm_OpStatusType OpStatus, uint8* Data);
This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_ASYNCH_CLIENT_SERVER.
تُستخدم الدالة Xxx_ReadData للاستعلام عن قيم بيانات DID أو PID بشكل غير متزامن من التطبيق، بشرط تهيئة المعلمة DcmDspDataUsePort على USE_DATA_ASYNCH_CLIENT_SERVER ([SWS_Dcm_91006]). ويتم التصريح عنها عبر ملف الرأس Dcm_Externals.h ([SWS_Dcm_91006]).
عند الاستدعاء، تتحكم المعلمة OpStatus (من النوع Dcm_OpStatusType) في تقدم العملية الجارية، بينما يتم عبر المؤشر Data (من النوع uint8*) تمرير مخزن الإخراج المؤقت الذي يجب نسخ البيانات المطلوبة إليه ([SWS_Dcm_91006]). وتُحدد قيم الإرجاع بـ E_OK عند الاكتمال بنجاح، وDCM_E_PENDING إذا كانت المعالجة لا تزال مستمرة وتتطلب استدعاءات إضافية لإتمامها ([SWS_Dcm_91006]).
تدمج وحدة DCM هذه الدالة في تسلسلات التشخيص التالية:
- عند استلام OBD Service $01، تقرأ DCM قيم PID الحالية (باستثناء PIDs الخاصة بقابلية الإتاحة) عبر دوال
Xxx_ReadDataالمهيأة ([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.
دليل المنفِّذ قيد الإعداد (التعقيد I3)
دالة Xxx_ReadData [SWS_Dcm_91005] 📄 PDF
Std_ReturnType Xxx_ReadData (Dcm_OpStatusType OpStatus, uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application a data value of a DID/PID if DcmDspDataUsePort is set to USE_DATA_ASYNCH_CLIENT_SERVER.
تطلب الدالة Xxx_ReadData من التطبيق بشكل غير تزامني قيمة بيانات DID أو PID، بشرط ضبط معلمة التكوين DcmDspDataUsePort على USE_DATA_ASYNCH_CLIENT_SERVER [SWS_Dcm_91005]. يتم توفير إعلان الدالة عبر ملف الواجهة Dcm_Externals.h [SWS_Dcm_91005].
تمتلك الواجهة خصائص الاستدعاء والتشغيل التالية:
- الدلالة والمعلمات: تتحكم معلمة الإدخال
OpStatusفي تقدم العملية الجارية [SWS_Dcm_91005]. عند الاكتمال بنجاح، يتم نسخ بيانات الحمولة المطلوبة إلى المخزن المؤقت للإخراجDataوإرجاعE_OK[SWS_Dcm_91005]. إذا كان التطبيق بحاجة إلى مزيد من وقت المعالجة، فإنه يشير إلىDCM_E_PENDING، وعندها تكون الاستدعاءات اللاحقة مطلوبة [SWS_Dcm_91005]. - معالجة الأخطاء: إذا فشلت العملية وأرجعت
E_NOT_OK، تقيّم وحدة DCM معلمة الإخراجErrorCodeوترسل استجابة تشخيصية سلبية برمز NRC هذا [SWS_Dcm_91005]. - التزامن: تم تعريف الدالة على أنها غير قابلة لإعادة الدخول (
Non Reentrant) [SWS_Dcm_91005]. Interpretation: يُفترض أن تتم الاستدعاءات المتكررة في حالة المعالجة المعلقة بالتتابع ضمن دورة المعالجة الرئيسية لـ DCM. سؤال Q-541226d5f242f7c2 (مفتوح) - التفاعل: تستدعي وحدة DCM الدالة عند طلبات OBD Service $01 لمعرفات PID غير المتاحة [SWS_Dcm_00408] وكذلك عند UDS Service ReadDataByIdentifier (0x22) لـ
OBDDataIdentifier[SWS_Dcm_01380] وOBDInfoTypeDataIdentifier[SWS_Dcm_01389]. بالمقارنة مع المتغير التزامني [SWS_Dcm_00793] أو الواجهات غير التزامنية بدون معلمة NRC [SWS_Dcm_91006]، يتيح هذا التوقيع إرسال خطأ سلبي محدد.
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند حصريًا إلى متطلبات مواصفات إصدار AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I3)
دالة Xxx_WriteData [SWS_Dcm_00794] 📄 PDF
Std_ReturnType Xxx_WriteData (const uint8* Data, Dcm_NegativeResponseCodeType* ErrorCode);
This function requests the application to write a data value of a DID.
الاستخدام
تُستدعى الدالة Xxx_WriteData بواسطة Diagnostic Communication Manager (DCM) لمطالبة التطبيق بكتابة قيمة بيانات DID (معرّف البيانات) ([SWS_Dcm_00794]). ويتم توفير التصريح عبر ملف الترويسة Dcm_Externals.h. ويتم الاستدعاء بشكل متزامن تحت معرّف الخدمة 0x51 ([SWS_Dcm_00794]).
المعلمات والقيم المرجعة:
Data(دخل): مؤشر إلى المخزن المؤقت المحتوي على حمولة البيانات المراد كتابتها ([SWS_Dcm_00794]).ErrorCode(خرج): مؤشر إلى المتغير الذي سيُدرج فيه رمز الاستجابة السلبية للتشخيص (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]) ويُحظر تنفيذها بشكل متزامن.
تفاعل
نظرًا لعدم وجود معلمة للطول، يُرجَّح أن هذا الخيار مخصص لمعرّفات DIDs ذات طول البيانات الثابت. سؤال Q-ebc074ac1cb66aaa (مفتوح) أما لمعرّفات DIDs ذات الطول المتغير، فيوفر AUTOSAR التوقيع المتزامن مع المعلمة DataLength ([SWS_Dcm_91007]). بالإضافة إلى ذلك، تتوفر للعمليات الطويلة بدائل غير متزامنة مع OpStatus وإمكانية إرجاع DCM_E_PENDING، سواء بأطوال بيانات ثابتة ([SWS_Dcm_91008]) أو مع معلمة طول متغير ([SWS_Dcm_91009]).
تم توليد هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_WriteData [SWS_Dcm_91007] 📄 PDF
Std_ReturnType Xxx_WriteData (const uint8* Data, uint16 DataLength, Dcm_NegativeResponseCodeType* ErrorCode);
This function requests the application to write a data value of a DID.
تُستخدم دالة رد النداء Xxx_WriteData لمطالبة التطبيق بكتابة قيمة بيانات Data Identifier (DID) [SWS_Dcm_91007]. تم التصريح عن الواجهة عبر الرأس Dcm_Externals.h وتمتلك معرف الخدمة 0x52 [SWS_Dcm_91007]. يتم الاستدعاء بشكل متزامن ومحدد بأنه غير قابل لإعادة الدخول (Non Reentrant)، ولهذا السبب لا يُسمح بأي استدعاءات متزامنة لنفس الدالة [SWS_Dcm_91007].
تستقبل الدالة كمعلمات كلاً من المخزن المؤقت Data الذي يحتوي على البيانات المفيدة المراد كتابتها، بالإضافة إلى DataLength الذي يحدد الطول بالبايت [SWS_Dcm_91007]. وكقيمة إرجاع، تقدم النوع Std_ReturnType مع E_OK عند التنفيذ الناجح، أو E_NOT_OK في حالة الخطأ [SWS_Dcm_91007]. وإذا فشلت العملية وأرجعت E_NOT_OK، فيجب على وحدة DCM إرسال استجابة سلبية إلى فاحص التشخيص؛ حيث يتوافق Negative Response Code (NRC) مع القيمة المنقولة عبر معامل المؤشر ErrorCode [SWS_Dcm_91007].
في النظام ككل، تمثل [SWS_Dcm_91007] المتغير المتزامن لـ DIDs مع تحديد صريح للطول. وبالإضافة إلى ذلك، يتوفر مع [SWS_Dcm_00794] (معرف الخدمة 0x51) متغير متزامن بدون المعلمة DataLength. بالنسبة لعمليات الكتابة الأطول، ينص المعيار على واجهات غير متزامنة: [SWS_Dcm_91008] (معرف الخدمة 0x35) بدون تحديد الطول، بالإضافة إلى [SWS_Dcm_91009] (معرف الخدمة 0x3e) مع DataLength. ويتم التحكم في كلتا الدالتين غير المتزامنتين عبر OpStatus، ويمكنهما، بالإضافة إلى E_OK وE_NOT_OK، إرجاع DCM_E_PENDING أيضًا [SWS_Dcm_91008] [SWS_Dcm_91009].
تم إنشاء ملاحظة الاستخدام هذه بصورة آلية استنادًا إلى مواصفة AUTOSAR Classic الإصدار 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 ولديها دلالات تنفيذ غير متزامنة مع معرف الخدمة 0x35 [SWS_Dcm_91008].
تنقسم المعلمات وقيم الإرجاع على النحو التالي [SWS_Dcm_91008]:
Data(IN): مؤشر إلى المخزن المؤقت الذي يحتوي على البيانات المراد كتابتها.OpStatus(IN): حالة العملية الحالية للتحكم في تسلسل الاستدعاء غير المتزامن.ErrorCode(OUT): مؤشر إلى رمز الخطأ (NRC)، الذي يتم تعيينه في حالة الخطأ.- قيمة الإرجاع (
Std_ReturnType): تؤكدE_OKنجاح عملية الكتابة، بينما تبلغE_NOT_OKعن فشل، وتشيرDCM_E_PENDINGإلى أن العملية لا تزال جارية وتتطلب مزيدًا من الاستدعاءات لإتمامها.
معالجة الأخطاء والتزامن
إذا أرجع الاستدعاء القيمة E_NOT_OK، فيجب على وحدة DCM إرسال استجابة سلبية بقيمة NRC الممررة في معلمة الإخراج ErrorCode [SWS_Dcm_91008]. تم تحديد الدالة على أنها غير قابلة لإعادة الدخول [SWS_Dcm_91008]، بحيث لا يُسمح بالاستدعاءات المتزامنة أو المتداخلة لنفس النسخة.
التفاعل والمتغيرات
تغطي هذه الواجهة وفقًا لـ [SWS_Dcm_91008] الوصول للكتابة غير المتزامنة بدون معلمة طول منفصلة. يحدد AUTOSAR متغيرات ذات صلة في DCM لهذا الغرض: توقيع متزامن بدون تحديد الطول [SWS_Dcm_00794] بالإضافة إلى تواقيع بمعلمة إضافية DataLength للتسلسلات المتزامنة [SWS_Dcm_91007] وغير المتزامنة [SWS_Dcm_91009].
تم إنشاء ملاحظة الاستخدام هذه بواسطة نظام ذكاء اصطناعي بناءً على مواصفة AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_WriteData [SWS_Dcm_91009] 📄 PDF
Std_ReturnType Xxx_WriteData (const uint8* Data, uint16 DataLength, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);
This function requests the application to write a data value of a DID.
الاستخدام والدلالات
تطلب الدالة Xxx_WriteData من التطبيق كتابة قيمة بيانات Data Identifier (DID) [SWS_Dcm_91009]. يتم التصريح عنها عبر ملف الرأس Dcm_Externals.h ولديها معرف الخدمة 0x3e [SWS_Dcm_91009]. ويتم التنفيذ بشكل غير متزامن (Asynchronous)، حيث يتم تمرير المعلمات التالية:
Data(in): مؤشر إلى المخزن المؤقت الذي يحتوي على البيانات المفيدة المراد كتابتها [SWS_Dcm_91009].DataLength(in): طول البيانات المراد كتابتها بالبايت [SWS_Dcm_91009].OpStatus(in): حالة العملية (Dcm_OpStatusType) للتحكم في تقدم المعالجة غير المتزامنة [SWS_Dcm_91009].ErrorCode(out): مؤشر لاستقبال رمز استجابة سلبية (NRC) في حالة الخطأ [SWS_Dcm_91009].
كقيم إرجاع من النوع Std_ReturnType، تم تحديد E_OK (اكتمل طلب الكتابة بنجاح)، وE_NOT_OK (فشل الطلب)، بالإضافة إلى DCM_E_PENDING [SWS_Dcm_91009]. وتشير الحالة DCM_E_PENDING إلى أن العملية لم تنتهِ بعد وأن استدعاءات متتابعة إضافية مطلوبة لإتمامها [SWS_Dcm_91009]. التفسير: يُرجح أن تقوم DCM بإعادة استدعاء الدالة دوريًا عند إرجاع DCM_E_PENDING مع استمرار OpStatus حتى تتوفر نتيجة نهائية. سؤال Q-fdbd734dab052f5c (مفتوح)
معالجة الأخطاء والتزامن
إذا أرجعت الدالة القيمة E_NOT_OK، فيجب توفير رمز الخطأ المقابل عبر المعلمة ErrorCode؛ وترسل وحدة DCM بعد ذلك استجابة سلبية بقيمة NRC هذه [SWS_Dcm_91009]. لم يتم تحديد رسائل DET أو DEM خاصة في الحمولة لهذه الواجهة. وفيما يتعلق بالتزامن، فإن الدالة محددة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_Dcm_91009].
التفاعل ومتغيرات الواجهة
يغطي التوقيع [SWS_Dcm_91009] عمليات الوصول للكتابة غير المتزامنة مع تحديد صريح للطول. وتوجد متغيرات أخرى لـ Xxx_WriteData في DCM:
- تنفيذ متزامن بدون تحديد الطول: [SWS_Dcm_00794] (معرف الخدمة
0x51). - تنفيذ متزامن مع تحديد الطول: [SWS_Dcm_91007] (معرف الخدمة
0x52). - تنفيذ غير متزامن بدون تحديد الطول: [SWS_Dcm_91008] (معرف الخدمة
0x35).
ملاحظة: أُنشئت ملاحظة الاستخدام هذه آليًا على أساس مواصفة AUTOSAR Classic للإصدار R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_ReadDataLength [SWS_Dcm_00796] 📄 PDF
Std_ReturnType Xxx_ReadDataLength (uint16* DataLength);
This function requests the application to return the data length in byte of a Data.
الاستخدام
باستخدام الدالة Xxx_ReadDataLength، تطلب وحدة DCM من التطبيق تحديد طول بيانات أحد عناصر البيانات بالبايت وإرجاعه [SWS_Dcm_00796]. تم الإعلان عن الواجهة في ملف الترويسة Dcm_Externals.h ولها معرّف الخدمة 0x36 [SWS_Dcm_00796]. ويتم تنفيذ الاستعلام بشكل متزامن [SWS_Dcm_00796]. وعبر معامل الإخراج DataLength من النوع uint16*، يمرر التطبيق طول البايت للبيانات المراد قراءتها إلى DCM [SWS_Dcm_00796]. ولم تُحدد معاملات إدخال أو معاملات إدخال/إخراج [SWS_Dcm_00796]. وكقيمة مرجعة، تُرجع الدالة دائمًا E_OK من النوع Std_ReturnType [SWS_Dcm_00796].
التزامن والقيود
تم تحديد الواجهة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_Dcm_00796]. وبما أن الدالة تعمل بشكل متزامن وتبلغ دائمًا عن E_OK وفقًا للمواصفة، فإنه لم يتم توفير أكواد أخطاء محددة أو قيم إرجاع حالة مختلفة لهذا الاستدعاء [SWS_Dcm_00796].
تفاعل
إلى جانب الدالة المتزامنة، يوجد متغير غير متزامن يحمل الاسم نفسه مع معرّف الخدمة 0x4c، وهو متاح أيضًا عبر Dcm_Externals.h [SWS_Dcm_91010]. وبينما تستغني النسخة المتزامنة [SWS_Dcm_00796] عن حالة العملية، يتطلب النظير غير المتزامن معامل الإدخال OpStatus من النوع Dcm_OpStatusType [SWS_Dcm_91010]. بالإضافة إلى ذلك، يمكن للواجهة غير المتزامنة، إلى جانب E_OK، أن تقدم القيمة المرجعة DCM_E_PENDING إذا لم يكن الطلب قد اكتمل بعد ويتطلب المزيد من الاستدعاءات لإنهائه [SWS_Dcm_91010].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويُستخدم كدليل توجيهي. وتبقى متطلبات مواصفة AUTOSAR المعنية هي الملزمة.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة Xxx_ReadDataLength [SWS_Dcm_91010] 📄 PDF
Std_ReturnType Xxx_ReadDataLength (Dcm_OpStatusType OpStatus, uint16* DataLength);
This function requests the application to return the data length in byte of a Data.
تطلب الدالة [SWS_Dcm_91010] (معرف الخدمة ID 0x4c) من التطبيق تحديد طول بيانات عنصر بيانات بالبايت. تم التصريح عنها في ملف الرأس Dcm_Externals.h وتخدم Diagnostic Communication Manager (DCM) للاستعلام المرن عن طول بيانات التشخيص.
الاستخدام والدلالات
عند الاستدعاء، تمرر وحدة DCM مستوى التقدم الحالي عبر معلمة الإدخال OpStatus من النوع Dcm_OpStatusType ([SWS_Dcm_91010]). ويكتب التطبيق نتيجة الاستعلام في معلمة الإخراج DataLength (النوع uint16*). وإذا لم يكن طول البيانات متاحًا على الفور، تشير الدالة عبر قيمة الإرجاع DCM_E_PENDING إلى أن المعالجة مستمرة وأن هناك حاجة لاستدعاءات إضافية ([SWS_Dcm_91010]). وبمجرد أن تصبح النتيجة جاهزة، يُبلغ التطبيق بالاكتمال عبر إرجاع E_OK.
التزامن والقيود
وفقًا للمواصفة، صُنفت الدالة على أنها غير قابلة لإعادة الدخول ([SWS_Dcm_91010])، ولهذا السبب يجب استبعاد الاستدعاءات المتزامنة بواسطة DCM. وبما أن المواصفة لا تنص على قيم أخطاء محددة بخلاف DCM_E_PENDING، فمن المرجح أن يفترض DCM دائمًا وجود حجم بايت مضبوط بشكل صالح عند إرجاع E_OK. سؤال Q-e7ecd3a518e2cbcb (مفتوح)
تفاعل
تختلف الواجهة غير التزامنية [SWS_Dcm_91010] عن المتغير التزامني المرتبط [SWS_Dcm_00796] (معرف الخدمة ID 0x36). إذ لا تحتوي الأخيرة على المعلمة OpStatus، وتُنفذ تزامنيًا وتُرجع الطول دائمًا على الفور مع E_OK. أما [SWS_Dcm_91010] فتتيح للتطبيق، في المقابل، تمديد الحسابات المستغرقة للوقت بشكل غير تزامني عبر عدة دورات استدعاء.
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_ConditionCheckRead [SWS_Dcm_00797] 📄 PDF
Std_ReturnType Xxx_ConditionCheckRead (Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application if the conditions to read the Data are correct.
تتوفر دالة النداء الخارجي التزامنية Xxx_ConditionCheckRead عبر ملف الترويسة Dcm_Externals.h، وتُستخدم للاستعلام من التطبيق عما إذا كانت شروط قراءة البيانات التشخيصية مستوفاة [SWS_Dcm_00797].
لا تحتوي الواجهة على معلمات إدخال وتشير إلى حالة الفحص عبر قيمة الإرجاع من النوع Std_ReturnType [SWS_Dcm_00797]:
E_OK: كان الفحص ناجحًا، وشروط قراءة البيانات مستوفاة [SWS_Dcm_00797].E_NOT_OK: فشل الفحص، والقراءة غير مسموح بها [SWS_Dcm_00797].
إذا أرجعت الدالة E_NOT_OK، ترسل وحدة DCM استجابة سلبية (Negative Response) برمز الخطأ الذي مرره التطبيق عبر معلمة الإخراج ErrorCode (النوع Dcm_NegativeResponseCodeType*) [SWS_Dcm_00797].
فيما يتعلق بالتزامن، تم تحديد الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) ويتم تنفيذها تزامنيًا بمعرف الخدمة 0x49 [SWS_Dcm_00797]. وعليه، يُفترض أن يتم تقييم الفحص من جانب التطبيق على الفور دون فترات انتظار حاجبة، لتجنب تأخير مستدعي DCM التزامني. سؤال Q-ada29c78c29d961e (مفتوح)
تمييزًا عن هذه العملية التزامنية، تحدد [SWS_Dcm_91011] متغيرًا غير تزامني تحت معرف الخدمة 0x37. يستخدم هذا المتغير بالإضافة إلى ذلك معلمة الإدخال OpStatus (النوع Dcm_OpStatusType) ويمكنه، إلى جانب E_OK وE_NOT_OK، إرجاع DCM_E_PENDING أيضًا إذا كانت الخطوات اللاحقة ضرورية لإنهاء الفحص [SWS_Dcm_91011].
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا بناءً على مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة Xxx_ConditionCheckRead [SWS_Dcm_91011] 📄 PDF
Std_ReturnType Xxx_ConditionCheckRead (Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application if the conditions to read the Data are correct.
الاستخدام والدلالات
يتم توفير الدالة Xxx_ConditionCheckRead عبر ملف الرأس Dcm_Externals.h وتُستخدم للاستعلام من برمجية التطبيق عما إذا كانت شروط قراءة بيانات التشخيص مستوفاة [SWS_Dcm_91011]. ويتم التنفيذ تحت معرف الخدمة 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]. في هذه الحالة، يجب على التطبيق ضبط رمز استجابة سلبية (NRC) من النوعDcm_NegativeResponseCodeTypeعبر معلمة الإخراجErrorCode؛ وترسل وحدة 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.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_GetScalingInformation [SWS_Dcm_00798] 📄 PDF
Std_ReturnType Xxx_GetScalingInformation (uint8* ScalingInfo, Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application for the scaling information of a Data.
دالة Xxx_GetScalingInformation [SWS_Dcm_91012] 📄 PDF
Std_ReturnType Xxx_GetScalingInformation (Dcm_OpStatusType OpStatus, uint8* ScalingInfo, Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application for the scaling information of a Data.
يتم توفير الواجهة غير التزامنية Xxx_GetScalingInformation عبر ملف الرأس Dcm_Externals.h وتُستخدم لطلب معلومات التحجيم لعنصر بيانات من التطبيق [SWS_Dcm_91012]. وتستدعي وحدة DCM هذه الدالة بمجرد استلام طلب تشخيص لخدمة UDS المسمّاة ReadScalingByIdentifier، وذلك لكل عنصر بيانات مهيأ للـ DID المطلوب [SWS_Dcm_00394].
المعلمات وقيم الإرجاع
تحدد الدالة المعلمات والدلالات التالية [SWS_Dcm_91012]:
OpStatus(in): يمرر الحالة الحالية للعملية الجارية.ScalingInfo(out): ذاكرة تخزين مؤقت لاستيعاب معلومات التحجيم (scalingByteوscalingByteExtension).ErrorCode(out): يستوعب رمز الاستجابة السلبية في حال فشل العملية.
تم تحديد قيم الإرجاع بـ E_OK عند الإتمام الناجح، و E_NOT_OK عند حدوث خطأ، بالإضافة إلى DCM_E_PENDING في حال لم تكن المعالجة قد اكتملت بعد وتطلبت استدعاءات إضافية للإتمام [SWS_Dcm_91012].
معالجة الأخطاء والتزامن
إذا أرجع الاستدعاء E_NOT_OK، يجب على وحدة DCM إرسال استجابة سلبية يطابق رمز NRC الخاص بها القيمة المقدمة عبر معلمة الإخراج ErrorCode [SWS_Dcm_91012]. وقد حُددت الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_Dcm_91012]. تفسير: من المرجح أن يعتمد ما إذا كان سيتم استدعاء هذه الدالة غير التزامنية مع OpStatus أو المتغير التزامني المحدد كبديل بدون OpStatus [SWS_Dcm_00798] على تهيئة الـ DID المعني. سؤال Q-c4054a798f17a52c (مفتوح)
تم إنشاء هذا النص بواسطة ذكاء اصطناعي؛ ولا يمكن ضمان صحة البيانات واكتمالها.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_ReturnControlToECU [SWS_Dcm_01285] 📄 PDF
Std_ReturnType Xxx_ReturnControlToECU ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application to return control to ECU of an IOControl.
تُوفَّر الدالة Xxx_ReturnControlToECU عبر ملف الترويسة Dcm_Externals.h وتطلب من التطبيق إعادة التحكم في التحكم في الإدخال/الإخراج (IOControl) إلى وحدة التحكم الإلكترونية (ECU) [SWS_Dcm_01285]. يتم الاستدعاء بشكل متزامن ومحدد على أنه غير قابل لإعادة الدخول [SWS_Dcm_01285].
المعلمات والمتغيرات
يعتمد توقيع الدالة على تكوين قناع التحكم الخارجي [SWS_Dcm_01285]:
- إذا تم ضبط
DcmDspDidControlMaskعلىDCM_CONTROLMASK_EXTERNALوكان حجم القناع يصل إلى أربعة بايتات (DcmDspDidControlMaskSize <= 0x04)، فسيتم تمرير معلمة الإدخالcontrolMaskمن النوعDcm_ControlMask_{DID}Type[SWS_Dcm_01285]. - إذا كان حجم القناع خمسة بايتات أو أكثر (
DcmDspDidControlMaskSize >= 0x05)، فسيتم استخدام المؤشرcontrolMask2من النوعuint8*بدلاً من ذلك [SWS_Dcm_01285]. - عبر معلمة الإخراج
ErrorCode(النوعDcm_NegativeResponseCodeType*)، تنقل الدالة رمز الاستجابة السلبية المحدد (NRC) إلى DCM في حالة حدوث خطأ [SWS_Dcm_01285].
قيم الإرجاع ومعالجة الأخطاء
تُرجع الدالة الحالة Std_ReturnType. عند إعادة التحكم بنجاح، يبلغ التطبيق عن E_OK [SWS_Dcm_01285]. وإذا فشلت العملية، يجب أن تُرجع الدالة E_NOT_OK؛ وفي هذه الحالة ترسل وحدة DCM استجابة سلبية مصحوبة برمز NRC المخزن في ErrorCode إلى فاحص التشخيص [SWS_Dcm_01285].
التفاعل وسياق الاستدعاء
تستدعي DCM واجهة الدالة المكوّنة (المعلمة DcmDspDataReturnControlToEcuFnc) عندما يتم تكوين DcmDspDataUsePort على USE_DATA_SYNCH_FNC أو USE_DATA_ASYNCH_FNC أو USE_DATA_ASYNCH_FNC_ERROR [SWS_Dcm_01435]. بالإضافة إلى إجراءات التشخيص المنتظمة، يتم استدعاء Xxx_ReturnControlToECU بواسطة DCM على وجه الخصوص عند الحاجة إلى إلغاء تسلسل تحكم IO نشط [SWS_Dcm_01435].
تم توليد ملاحظة الاستخدام هذه تلقائياً بناءً على المواصفة.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة Xxx_ResetToDefault [SWS_Dcm_01286] 📄 PDF
Std_ReturnType Xxx_ResetToDefault ([ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application to reset an IOControl to default value.
يتم توفير واجهة الدوال المتزامنة Xxx_ResetToDefault عبر ملف الرأس Dcm_Externals.h وتُستخدم لمطالبة أحد التطبيقات بإعادة تعيين تحكم الإدخال/الإخراج (IOControl) إلى القيمة الافتراضية [SWS_Dcm_01286].
سياق الاستدعاء والمعلمات
تمتلك الدالة معرف الخدمة 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 ومعرف الخدمة 0x3c بدلاً من هذه الدالة المتزامنة [SWS_Dcm_01314].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند إلى مواصفات AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة Xxx_ResetToDefault [SWS_Dcm_01314] 📄 PDF
Std_ReturnType Xxx_ResetToDefault (Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application to reset an IOControl to default value.
تطلب الدالة غير المتزامنة [SWS_Dcm_01314] من التطبيق إعادة تعيين تحكم الإدخال/الإخراج (IOControl) إلى قيمته الافتراضية. وهي معلنة في Dcm_Externals.h ولها معرف الخدمة 0x3c. ويتم التحكم في تقدم العملية عبر المعلمة OpStatus. وإذا لم تكن المعالجة قد اكتملت بعد، تُرجع الدالة DCM_E_PENDING، بينما يتم تأكيد الإكمال الناجح بـ E_OK.
اعتمادًا على التكوين وحجم القناع (DcmDspDidControlMaskSize حتى 4 بايت أو بدءًا من 5 بايت)، يتم بالإضافة إلى ذلك تمرير controlMask أو controlMask2 في حالة القناع الخارجي [SWS_Dcm_01314]. وإذا فشلت إعادة التعيين، تُرجع الدالة E_NOT_OK. وفي هذه الحالة، يجب تمرير رمز استجابة سلبية (NRC) عبر معلمة الإخراج ErrorCode، والذي ترسله وحدة 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].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند إلى حالة مواصفات 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 ولديها معرّف الخدمة 0x4a AUTOSAR_SWS_DiagnosticCommunicationManager ص. 279. (تفسير: من المحتمل أن تعمل البادئة Xxx كعنصر نائب لوحدة التطبيق المعنية.) سؤال Q-f8c864cda732acc2 (مفتوح)
تعتمد معلمات الواجهة على تكوين قناع التحكم الخارجي (DcmDspDidControlMask على DCM_CONTROLMASK_EXTERNAL) [SWS_Dcm_01290]:
controlMask(إدخال، النوعDcm_ControlMask_{DID}Type): يتم تمريره إذا تم تكوين حجم القناعDcmDspDidControlMaskSizeليكون أقل من أو يساوي 4 بايتات (<= 0x04).controlMask2(إدخال، النوعuint8*): يُستخدم بدلاً من ذلك إذا كان حجم القناع يشتمل على 5 بايتات على الأقل (=> 0x05).ErrorCode(إخراج، النوعDcm_NegativeResponseCodeType*): مؤشر لتلقي رمز استجابة سلبية في حالة حدوث أخطاء.
معالجة الأخطاء وقيم الإرجاع
تُرجع الدالة كـ Std_ReturnType إما E_OK عند التنفيذ الناجح أو E_NOT_OK إذا لم يكن الطلب ناجحًا [SWS_Dcm_01290]. في حالة حدوث خطأ وإرجاع E_NOT_OK، يجب على التطبيق إدخال رمز استجابة سلبية محدد (NRC) في المعلمة ErrorCode؛ وترسل وحدة DCM بعد ذلك استجابة تشخيص سلبية بهذا الرمز NRC AUTOSAR_SWS_DiagnosticCommunicationManager ص. 279.
التزامن والقيود
العملية محددة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_Dcm_01290]. يجب على المتصلين التأكد من معالجة الاستدعاءات الخاصة بنفس النسخة بشكل متزامن ودون أي تداخل متزامن.
تم إنشاء هذا النص بواسطة ذكاء اصطناعي وهو مخصص كدليل استرشادي. وتظل مواصفة AUTOSAR هي المرجع الملزم.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة Xxx_FreezeCurrentStateManager [SWS_Dcm_01315] 📄 PDF
Std_ReturnType Xxx_FreezeCurrentState (Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application to freeze the current state of an IOControl.
الاستخدام وسياق الاستدعاء
تستدعي وحدة DCM الدالة غير المتزامنة Xxx_FreezeCurrentState لطلب تجميد الحالة الحالية للتحكم في الإدخال/الإخراج (IOControl) من برمجيات التطبيق [SWS_Dcm_01315]. يتوفر الإعلان عبر ملف الترويسة Dcm_Externals.h [SWS_Dcm_01315].
المعلمات وأقنعة التحكم
يتم الاستدعاء بالمعلمات التالية [SWS_Dcm_01315]:
OpStatus: ينقل الحالة الحالية للعملية غير المتزامنة (Dcm_OpStatusType).controlMaskأوcontrolMask2: إذا تم تكوين قناع التحكم خارجيًا (DcmDspDidControlMask == DCM_CONTROLMASK_EXTERNAL) واستُخدمت واجهة الدالة غير المتزامنة، تُمرر DCM المعلمةcontrolMask(من النوعDcm_ControlMask_{DID}Type) لما يصل إلى 4 بايتات والمؤشرcontrolMask2(uint8*) بدءًا من 5 بايتات، اعتمادًا علىDcmDspDidControlMaskSize.ErrorCode: مؤشر إلىDcm_NegativeResponseCodeTypeلإرجاع رمز خطأ.
قيم الإرجاع ومعالجة الأخطاء
تعيد الدالة حالة من النوع Std_ReturnType [SWS_Dcm_01315]:
E_OK: اكتمل تجميد الحالة بنجاح.DCM_E_PENDING: الطلب لا يزال قيد المعالجة ويتطلب تغذيات لاحقة.E_NOT_OK: فشلت العملية. في هذه الحالة، ترسل DCM استجابة تشخيصية سلبية بقيمة NRC المحددة عبرErrorCode.
التزامن
تم تعريف الواجهة على أنها غير قابلة لإعادة الدخول (Non Reentrant) وبالتالي تتطلب معالجة متزامنة لكل نسخة تحكم [SWS_Dcm_01315].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي وتمت مراجعته وفقًا لمعايير التحرير.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_ShortTermAdjustment [SWS_Dcm_00802] 📄 PDF
Std_ReturnType Xxx_ShortTermAdjustment (const uint8* ControlStateInfo, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application to adjust the IO signal.
تطلب الدالة المتزامنة Xxx_ShortTermAdjustment من التطبيق تكييف إشارة إدخال/إخراج محددة مؤقتًا [SWS_Dcm_00802]. ويتم توفيرها عبر ملف الترويسة Dcm_Externals.h وتمتلك معرّف الخدمة 0x50 [SWS_Dcm_00802].
عبر المؤشر ControlStateInfo، تحصل الدالة على معلومات حالة التحكم من المعامل ControlOptionRecord لطلب التشخيص InputOutputControlByIdentifier [SWS_Dcm_00802]. وإذا تم تهيئة قناع تحكم خارجي (DcmDspDidControlMask == DCM_CONTROLMASK_EXTERNAL)، فسيتم بالاعتماد على DcmDspDidControlMaskSize تمرير إما controlMask (حتى 4 بايت) من النوع Dcm_ControlMask_{DID}Type أو controlMask2 (بدءًا من 5 بايت) كـ uint8* بشكل إضافي [SWS_Dcm_00802].
كقيمة مرجعة، تقدم العملية Std_ReturnType [SWS_Dcm_00802]:
E_OK: تم تنفيذ تكييف إشارة الإدخال/الإخراج بنجاح [SWS_Dcm_00802].E_NOT_OK: فشل التكييف [SWS_Dcm_00802]. في هذه الحالة، يجب على التطبيق تعيين كود استجابة سلبية محدد (Dcm_NegativeResponseCodeType) عبر معامل الإخراجErrorCode، والذي تعيد وحدة 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)، فيوجد بالمقابل المتغير غير المتزامن ذو معرّف الخدمة 0x55 ومجموعة معاملات موسعة تتضمن OpStatus وDataLength [SWS_Dcm_01316].
أُنشئ هذا النص بواسطة ذكاء اصطناعي ويستند إلى AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_ShortTermAdjustment [SWS_Dcm_01316] 📄 PDF
Std_ReturnType Xxx_ShortTermAdjustment (const uint8* ControlStateInfo, uint16 DataLength, Dcm_OpStatusType OpStatus, [ Dcm_ControlMask_{DID}Type controlMask ], [ uint8* controlMask2 ], Dcm_NegativeResponseCodeType* ErrorCode);
This function requests to the application to adjust the IO signal.
الاستخدام وسياق الاستدعاء
يتم استدعاء الدالة [SWS_Dcm_01316] بواسطة Diagnostic Communication Manager (DCM) ويتم توفيرها عبر Dcm_Externals.h. وتطلب من التطبيق بشكل غير متزامن تعديل إشارة إدخال/إخراج في إطار خدمة التشخيص InputOutputControlByIdentifier. يتم تمرير بيانات التحكم عبر المؤشر ControlStateInfo (من المعلمة ControlOptionRecord)، مضافًا إليها طول البايت DataLength. ويتم التحكم في التسلسل عبر OpStatus: طالما استمر التعديل، يُرجع التطبيق DCM_E_PENDING؛ وبعد الإكمال بنجاح، يُبلغ عن E_OK.
المتغيرات ومعلمات القناع
في حالة التكوين الخارجي لقناع التحكم (DCM_CONTROLMASK_EXTERNAL)، يتم تمرير معلمات إضافية [SWS_Dcm_01316]:
- إذا كان حجم القناع أقل من أو يساوي 4 بايت، يتم تمرير
controlMaskمن النوعDcm_ControlMask_{DID}Type. - إذا كان حجم القناع 5 بايت على الأقل، يتم بدلاً من ذلك تمرير
controlMask2كمؤشر إلىuint8.
معالجة الأخطاء والتزامن
إذا فشل التحكم في الإشارة، تُرجع الدالة E_NOT_OK وتعين رمز الاستجابة السلبية (NRC) عبر المؤشر ErrorCode، والذي ينقله DCM في الاستجابة السلبية [SWS_Dcm_01316]. وقد حُددت الدالة على أنها غير قابلة لإعادة الدخول.
التفاعل والتمايز
تُستخدم الواجهة عندما يكون منفذ بيانات DID مهيأً على USE_DATA_ASYNCH_FNC أو USE_DATA_ASYNCH_FNC_ERROR ونوع البيانات على UINT8_DYN [SWS_Dcm_01316]. وهي تختلف عن المتغير المتزامن [SWS_Dcm_00802]، الذي لا يستخدم OpStatus ولا DataLength والمخصص للمنافذ المتزامنة ذات أنواع البيانات الثابتة.
تم إنشاء هذا النص تلقائيًا بواسطة مساعد تنسيق ذكاء اصطناعي استنادًا إلى مواصفات AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_IsDidAvailable [SWS_Dcm_00803] 📄 PDF
Std_ReturnType Xxx_IsDidAvailable (uint16 DID, Dcm_OpStatusType OpStatus, Dcm_DidSupportedType* supported);
This function requests if a specific DID is available within the range or not.
تُستخدم الدالة Xxx_IsDidAvailable للتحقق غير المتزامن مما إذا كان معرّف التشخيص المطلوب (DID) متاحًا ضمن نطاق DID محدد [SWS_Dcm_00803]. ويتم توفيرها عبر ملف الترويسة Dcm_Externals.h وتمتلك معرّف الخدمة 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 أو لـ DIDs أخرى ضمن نفس النسخة غير مسموح بها.
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند حصريًا إلى بيانات المواصفات من AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_ReadDidData [SWS_Dcm_00804] 📄 PDF
Std_ReturnType Xxx_ReadDidData (uint16 DID, uint8* Data, Dcm_OpStatusType OpStatus, uint16 DataLength, Dcm_NegativeResponseCodeType ErrorCode);
This function requests to the application a data value of a DID
الاستخدام وواجهة المعلمات
الدالة Xxx_ReadDidData (معرف الخدمة 0x40) متوفرة عبر Dcm_Externals.h وتطلب من التطبيق قيم بيانات معرف التشخيص (DID) [SWS_Dcm_00804]. يتم التمرير والإبلاغ عبر المعاملات التالية:
DID: معرف معرّف البيانات (Data Identifier) المطلوب [SWS_Dcm_00804].Data: مؤشر إلى الذاكرة المؤقتة التي يجب نسخ بيانات الحمولة المقروءة إليها [SWS_Dcm_00804].OpStatus: حالة التقدم أو العملية للطلب الحالي [SWS_Dcm_00804].DataLength: طول البيانات المراد قراءتها [SWS_Dcm_00804].ErrorCode: معامل إخراج لاستقبال كود استجابة سلبية (NRC) [SWS_Dcm_00804].
الدلالات غير المتزامنة وقيم الإرجاع
تم تعريف الدالة على أنها غير متزامنة (Asynchronous) وتُرجع حالة من النوع Std_ReturnType [SWS_Dcm_00804]:
E_OK: تمت قراءة البيانات بنجاح [SWS_Dcm_00804].DCM_E_PENDING: الطلب لم يكتمل بعد؛ يلزم إجراء استدعاءات إضافية للإكمال [SWS_Dcm_00804].E_NOT_OK: لم تكن العملية ناجحة [SWS_Dcm_00804].
معالجة الأخطاء والتزامن
إذا قدم التطبيق لـ Xxx_ReadDidData القيمة المرجعة E_NOT_OK، ترسل وحدة DCM استجابة سلبية مع كود NRC المعين عبر المعامل ErrorCode إلى جهاز اختبار التشخيص [SWS_Dcm_00804]. تم تحديد الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_Dcm_00804]. التفسير: نظرًا للمعالجة غير المتزامنة مع DCM_E_PENDING، فمن المرجح أن يتم الاستدعاء عادةً في سياق المهمة الدورية لـ DCM. سؤال Q-5e41e9fb7dc261b9 (مفتوح)
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى المواصفة في SWS_Dcm_00804.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_WriteDidData [SWS_Dcm_00805] 📄 PDF
Std_ReturnType Xxx_WriteDidData (uint16 DID, const uint8* Data, Dcm_OpStatusType OpStatus, uint16 DataLength, Dcm_NegativeResponseCodeType ErrorCode);
This function requests the application to write a data value of a DID.
يتم استدعاء الدالة Xxx_WriteDidData بواسطة الوحدة DCM لطلب كتابة قيمة بيانات DID من التطبيق [SWS_Dcm_00805]. التصريح متاح عبر الترويسة Dcm_Externals.h [SWS_Dcm_00805].
الاستدعاء والدلالات
يتم الاستدعاء بشكل غير متزامن ومحدد بأنه غير قابل لإعادة الدخول (Non Reentrant) [SWS_Dcm_00805]. عند الاستدعاء، يتم تمرير المعاملات التالية [SWS_Dcm_00805]:
DID: معرف معرّف البيانات المراد كتابته.Data: مؤشر إلى الذاكرة المؤقتة التي تحتوي على البيانات المراد كتابتها.OpStatus: حالة العملية الحالية.DataLength: طول البيانات المراد كتابتها بالبايت.ErrorCode: معامل إخراج لرمز الاستجابة السلبية (NRC).
قيم الإرجاع ومعالجة الأخطاء
تُرجع الدالة Std_ReturnType كقيمة مرجعة بالمعاني التالية [SWS_Dcm_00805]:
E_OK: تم تنفيذ أمر الكتابة بنجاح.DCM_E_PENDING: لم تكتمل العملية بعد؛ ويلزم إجراء استدعاءات إضافية لإتمامها.E_NOT_OK: لم تكن العملية ناجحة. في هذه الحالة، ترسل وحدة DCM استجابة سلبية مع قيمة NRC الممررة في معامل الإخراجErrorCode.
تم توليد هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_ReadDidRangeDataLength [SWS_Dcm_01271] 📄 PDF
Std_ReturnType Xxx_ReadDidRangeDataLength (uint16 DID, Dcm_OpStatusType OpStatus, uint16* DataLength);
This function requests the application to return the data length of a DID Range.
تُستخدم الدالة Xxx_ReadDidRangeDataLength لمطالبة برمجيات التطبيق بإرجاع طول البيانات لنطاق DID (DID Range) [SWS_Dcm_01271]. وهي جزء من وحدة AUTOSAR Dcm، وتمتلك معرّف الخدمة 0x5e، وتتوفر عبر ملف الترويسة Dcm_Externals.h [SWS_Dcm_01271].
يتم الاستدعاء بدلالات غير متزامنة (Asynchronous) عبر معلمات الواجهة التالية [SWS_Dcm_01271]:
DID(IN،uint16): يحدد معرّف البيانات الفعلي (Data ID value) لنطاق DID المطلوب [SWS_Dcm_01271].OpStatus(IN،Dcm_OpStatusType): يحدد حالة المعالجة الحالية للعملية قيد التشغيل [SWS_Dcm_01271].DataLength(OUT،uint16*): مؤشر إلى طول البيانات المراد قراءتها أو كتابتها [SWS_Dcm_01271].
تشير القيمة المعادة من النوع Std_ReturnType إلى نتيجة الاستعلام عن الطول [SWS_Dcm_01271]:
E_OK: كان الطلب ناجحًا والطول المحسوب متاح [SWS_Dcm_01271].E_NOT_OK: لم يكن الطلب ناجحًا [SWS_Dcm_01271].DCM_E_PENDING: لم يكتمل التنفيذ بعد ويتطلب استدعاءات متتابعة إضافية لإتمامه [SWS_Dcm_01271].
فيما يتعلق بالتزامن، تم تحديد الواجهة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_Dcm_01271].
تم إنشاء ملاحظة الاستخدام هذه بناءً على مواصفات DCM في AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_GetInfotypeValueData [SWS_Dcm_91014] 📄 PDF
Std_ReturnType Xxx_GetInfotypeValueData (Dcm_OpStatusType OpStatus, uint8* DataValueBuffer, uint8* DataValueBufferSize);
The function provides the data related to the requested Infotype.
تستدعي وحدة DCM الواجهة غير المتزامنة Xxx_GetInfotypeValueData بمجرد تلقي طلب تشخيص لـ OBD Service $09 ولا يكون InfoType المطلوب هو InfoType للتوافر (”availability InfoType“) [SWS_Dcm_00423]. لتوفير البيانات، تستدعي DCM جميع الدوال المكوّنة لـ InfoType هذا وتجمع القيم كاستجابة لـ Service $09 [SWS_Dcm_00423]. الإعلان متاح عبر Dcm_Externals.h [SWS_Dcm_91014].
يتم تمرير البيانات والإبلاغ عنها عبر معلمات مخزن مؤقت ومعلمات حالة محددة [SWS_Dcm_91014]:
OpStatus(in): يعرض حالة التقدم الحالية للعملية الجارية.DataValueBuffer(out): مخزن مؤقت لاستيعاب بيانات الحمولة النافعة المحددة لـ InfoType.DataValueBufferSize(inout): يحتوي عند الاستدعاء على الحد الأقصى لحجم المخزن المؤقت القابل للكتابة بالبايتات، وتملؤه الدالة المستدعاة بعدد بايتات البيانات المكتوبة فعليًا.
كدالة غير متزامنة، تُرجع E_OK عند الاكتمال الناجح، أو E_NOT_OK عند حدوث أخطاء، أو DCM_E_PENDING إذا لم تكن العملية قد اكتملت بعد وتتطلب استدعاءات إضافية لإتمامها [SWS_Dcm_91014]. نظرًا لأن الدالة محددة على أنها غير قابلة لإعادة الدخول (Non Reentrant)، فلا يجوز إجراء أي استدعاءات متزامنة لنفس الدالة [SWS_Dcm_91014].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي وهو مخصص كدليل توجيهي. المرجع الأساسي هو مواصفة AUTOSAR الرسمية.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_Start [SWS_Dcm_01203] 📄 PDF
Std_ReturnType Xxx_Start ([ DcmDspRoutineSignalType dataIn_1, ... DcmDspRoutineSignalType dataIn_n ], [ const uint8* dataInVar ], Manager Dcm_OpStatusType OpStatus, [ DcmDspRoutineSignalType dataOut_1, ... DcmDspRoutineSignalType dataOut_n ], [ uint8* dataOutVar ], [ uint16* currentDataLength ], Dcm_NegativeResponseCodeType ErrorCode); ⚠️
This function requests to the application to start the execution of a routine.
يتم الإعلان عن الدالة Xxx_Start عبر ملف الرأس Dcm_Externals.h وتطلب من برمجيات التطبيق بدء تنفيذ روتين تشخيصي [SWS_Dcm_01203]. تستدعي الوحدة DCM هذه الدالة بمجرد استلام طلب خدمة UDS لـ RoutineControl (0x31) مع الدالة الفرعية startRoutine والتحقق من صحته بنجاح [SWS_Dcm_00400]، أو عند ورود طلب RoutineControl مع OBDTestId لعدم التوفر [SWS_Dcm_01392].
تدعم الواجهة تنسيقات البيانات الثابتة والمتغيرة ويتم تشغيلها بشكل غير متزامن [SWS_Dcm_01203]:
- معلمات الإدخال: إشارات الإدخال الثابتة من
dataIn_1إلىdataIn_nأو بيانات متغيرة عبر مصفوفة البايتdataInVarبالإضافة إلى حالة العمليةOpStatus[SWS_Dcm_01203]. - معلمات الإخراج: إشارات الإخراج الثابتة من
dataOut_1إلىdataOut_nأو بيانات الإخراج المتغيرةdataOutVarبالإضافة إلى رمز الخطأErrorCodeلرسائل الاستجابة السلبية [SWS_Dcm_01203]. - معلمة الطول: تنقل معلمة الإدخال والإخراج
currentDataLengthعدد بايتات البيانات المفيدة فيdataInVarأوdataOutVarفي حالة طول البيانات المتغير [SWS_Dcm_01203]. - القيم المعادة: يؤكد
E_OKالبدء الناجح، ويبلغE_NOT_OKعن الفشل، ويشيرDCM_E_PENDINGإلى خطوات معالجة لا تزال مستمرة، ويطلبDCM_E_FORCE_RCRRPإرسالًا مسبقًا لإشعار التعليق (NRC 0x78) [SWS_Dcm_01203].
فيما يتعلق بالتزامن، تم تحديد Xxx_Start على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_Dcm_01203]. في العمليات غير المتزامنة ذات القيمة المعادة DCM_E_PENDING، تستدعي وحدة DCM الدالة دوريًا مع OpStatus مستمر حتى تكتمل العملية [SWS_Dcm_01203].
إذا انتهت العملية بنجاح بـ E_OK، ترسل وحدة DCM استجابة UDS إيجابية مع البيانات المقدمة عبر dataOut كـ routineStatusRecord [SWS_Dcm_00401]. وإذا فشل التنفيذ بـ E_NOT_OK، يرسل DCM استجابة سلبية مع NRC المحدد في المعلمة ErrorCode [SWS_Dcm_01203]. وفي سياق روتينات OBD، يؤدي الحصول على قيمة معادة غير مساوية لـ E_OK إلى إرسال NRC 0x22 [SWS_Dcm_01394].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويُستخدم للتوجيه. وتُعد مواصفات AUTOSAR وحدها المرجع المعتمد.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_StartConfirmation [SWS_Dcm_91016] 📄 PDF
Std_ReturnType Xxx_StartConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);
This function indicates the transmission of a response to a StartRoutine request
الاستخدام
توضح الدالة Xxx_StartConfirmation بشكل ملزم، وفقًا لـ [SWS_Dcm_91016]، إرسال استجابة لطلب StartRoutine سابق. تم التصريح عن الواجهة في ملف الرأس Dcm_Externals.h وتتمتع بدلالات تنفيذ تزامنية ([SWS_Dcm_91016]). وكعامل إدخال وحيد، يتم تمرير ConfirmationStatus من النوع Dcm_ConfirmationStatusType، والذي يصف حالة تأكيد نقل الروتين. ولا توجد معلمات إدخال وإخراج إضافية وفقًا للمواصفة ([SWS_Dcm_91016]).
معالجة الأخطاء وقيم الإرجاع
تُرجع الدالة قيمة حالة من النوع Std_ReturnType كقيمة إرجاع ([SWS_Dcm_91016]). وتؤكد القيمة E_OK التنفيذ الناجح للطلب، في حين تشير E_NOT_OK إلى معالجة غير ناجحة. ولا توجد رموز خطأ محددة أو بلاغات صريحة إلى Development Error Tracer (DET) أو Diagnostic Event Manager (DEM) معرفة في حمولة البيانات (Payload) لهذه الدالة.
التزامن والقيود
فيما يخص التزامن، تم تصنيف Xxx_StartConfirmation على أنها غير قابلة لإعادة الدخول (Non Reentrant) ([SWS_Dcm_91016]). ويتطلب ذلك من المتصل تجنب التنفيذ المتزامن أو المتداخل بشكل صارم. تفسير: من المرجح أن يتم استدعاء الدالة بواسطة DCM لإخطار تنفيذ الروتين من جانب التطبيق باكتمال عملية الإرسال. سؤال Q-be2dafd63bf2a9a5 (مفتوح)
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند إلى معيار AUTOSAR الإصدار 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
الاستخدام
يستدعي DCM الدالة [SWS_Dcm_01204] لإنهاء تنفيذ روتين تشخيص قيد التشغيل في التطبيق. ويتم الاستدعاء ضمن إطار خدمة UDS المسماة RoutineControl (0x31) بالوظيفة الفرعية stopRoutine بمجرد اكتمال الفحوصات المسبقة المطلوبة بنجاح [SWS_Dcm_00402]. تمتلك الواجهة معرّف الخدمة 0x5c ومُعلنة عبر ملف الترويسة Dcm_Externals.h [SWS_Dcm_01204].
المعلمات وقيم الإرجاع
اعتمادًا على تكوين الروتين، يمرر DCM بيانات إدخال ثابتة أو متغيرة (dataIn_1 إلى dataIn_n أو dataInVar) ومراجع ذاكرة التخزين المؤقت لبيانات الإخراج (dataOut_1 إلى dataOut_n أو dataOutVar) [SWS_Dcm_01204]، [SWS_Dcm_00402]. وفي حالة طول البيانات المتغير، يحتوي currentDataLength على عدد بايتات بيانات الإدخال أو الإخراج [SWS_Dcm_01204]. وقد حُددت كقيم إرجاع لـ Std_ReturnType:
E_OK: تم إنهاء الروتين بنجاح؛ يرسل DCM استجابة UDS إيجابية تتضمن بيانات الإخراج الناتجة كـ routineStatusRecord [SWS_Dcm_01204]، [SWS_Dcm_00403].E_NOT_OK: فشل إلغاء الروتين؛ يرسل DCM استجابة UDS سلبية تتضمن الـ NRC المحفوظ فيErrorCode[SWS_Dcm_01204].DCM_E_PENDING: العملية لا تزال قيد المعالجة؛ يستدعي DCM الدالة مجددًا للإتمام [SWS_Dcm_01204].DCM_E_FORCE_RCRRP: يطلب التطبيق من DCM إرسال استجابة معلقة (NRC 0x78) [SWS_Dcm_01204].
التزامن والقيود
تم تحديد العملية على أنها غير متزامنة وغير قابلة لإعادة الدخول (Non Reentrant) [SWS_Dcm_01204]. وإذا حدث خطأ أثناء التنفيذ، يجب على التطبيق كتابة Dcm_NegativeResponseCodeType المناسب في المعلمة ErrorCode وإرجاع E_NOT_OK [SWS_Dcm_01204].
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا بناءً على مواصفة AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة Xxx_StopConfirmation [SWS_Dcm_91017] 📄 PDF
Std_ReturnType Xxx_StopConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);
This function indicates the transmission of a response to a StopRoutine request
تُستخدم الدالة التزامنية Xxx_StopConfirmation للإشارة إلى إرسال استجابة لطلب StopRoutine سابق [SWS_Dcm_91017]. وعند الاستدعاء، يمرر النظام عبر معلمة الإدخال ConfirmationStatus من النوع Dcm_ConfirmationStatusType حالة التأكيد المحددة لإنهاء الروتين [SWS_Dcm_91017]. وكقيمة إرجاع، تقدم الواجهة قيمة من النوع Std_ReturnType: حيث يشير E_OK هنا إلى أن الطلب قد تمت معالجته بنجاح، بينما تشير E_NOT_OK إلى طلب غير ناجح [SWS_Dcm_91017].
فيما يتعلق بالتزامن وشروط الاستدعاء، تم تحديد الواجهة على أنها غير قابلة لإعادة الدخول (Non Reentrant) ولها معرف الخدمة ID 0x69 [SWS_Dcm_91017]. ويتم توفير التصريح عبر ملف الرأس Dcm_Externals.h [SWS_Dcm_91017]. تفسير: استنادًا إلى توفيرها عبر Dcm_Externals.h والبادئة القابلة للتخصيص Xxx_، فمن المرجح أن يتم استدعاء الدالة بواسطة وحدة DCM ويتم تنفيذها بواسطة مكون برمجي خاص بالتطبيق أو معالج الروتين المسؤول. سؤال Q-743e69ff8cf92321 (مفتوح)
لم يتم تحديد رموز خطأ خاصة أو إخطارات لـ Development Error Tracer (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
تستدعي وحدة DCM الدالة [SWS_Dcm_91013] للاستعلام عن نتيجة تنفيذ روتين من التطبيق. يحدث هذا في إطار خدمة UDS المعنونة RoutineControl (0x31) مع الوظيفة الفرعية requestRoutineResults بمجرد اجتياز جميع عمليات الفحص من جانب الإدخال بنجاح [SWS_Dcm_00404]. تتوفر الواجهة عبر Dcm_Externals.h، وتعمل بشكل غير متزامن ومحددة على أنها غير قابلة لإعادة الدخول [SWS_Dcm_91013].
تتحكم وحدة DCM في سير العملية عبر المعلمة OpStatus. تستقبل الدالة بيانات إدخال ثابتة (من dataIn_1 إلى dataIn_n) أو بيانات متغيرة (dataInVar) مشتقة من routineControlOptionRecord [SWS_Dcm_00404]. وعبر معلمات إخراج ثابتة (من dataOut_1 إلى dataOut_n) أو مخازن مؤقتة متغيرة للإخراج (dataOutVar وvariableDataLength)، يمرر التطبيق بيانات النتيجة إلى DCM [SWS_Dcm_91013].
إذا اكتمل الاستعلام بنجاح باستخدام E_OK، تقوم وحدة DCM بتجميع بيانات الإخراج استنادًا إلى معلمة التكوين DcmDspRequestRoutineResultsOut في routineStatusRecord وترسل استجابة إيجابية [SWS_Dcm_00405]. إذا كانت العملية لا تزال جارية، يمكن للتطبيق إرجاع DCM_E_PENDING للاستدعاءات اللاحقة أو DCM_E_FORCE_RCRRP لإرسال استجابة مؤقتة (NRC 0x78) [SWS_Dcm_91013].
في حالة حدوث خطأ، تُرجع الدالة E_NOT_OK وتعين ErrorCode إلى قيمة NRC المناسبة، وعندئذٍ ترسل وحدة DCM استجابة سلبية مطابقة [SWS_Dcm_91013]. نظرًا لأن الدالة غير قابلة لإعادة الدخول، فلا يجوز استدعاؤها بشكل متوازٍ لنفس الروتين [SWS_Dcm_91013].
ملاحظة استخدام تم إنشاؤها تلقائيًا بناءً على AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_RequestResultsConfirmation [SWS_Dcm_91018] 📄 PDF
Std_ReturnType Xxx_RequestResultsConfirmation (Dcm_ConfirmationStatusType ConfirmationStatus);
This function indicates the transmission of a response to a RequestRoutineResults request
الاستخدام والدلالات
تخدم الدالة Xxx_RequestResultsConfirmation تأكيد استجابة تشخيص منقولة لطلب RequestRoutineResults [SWS_Dcm_91018]. تم التصريح عنها في ملف الرأس Dcm_Externals.h ولديها معرف الخدمة ID 0x70 [SWS_Dcm_91018]. وعبر معلمة الإدخال ConfirmationStatus من النوع Dcm_ConfirmationStatusType، يتلقى التنفيذ معلومات حول الحالة التي اكتمل بها إرسال نتائج الروتين [SWS_Dcm_91018]. يُنفذ الاستدعاء تزامنيًا ويُرجع Std_ReturnType، حيث يشير E_OK إلى معالجة ناجحة وE_NOT_OK إلى الفشل [SWS_Dcm_91018].
التزامن والقيود
وفقًا للمواصفة، صُنفت الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_Dcm_91018]. ولذلك، يجب ألا تحدث استدعاءات متزامنة لنفس النسخة المثيلة. تفسير: يتم الاستدعاء بواسطة وحدة DCM بشكل متسلسل في سياق تأكيد الاستجابة، ولهذا السبب ينبغي تنفيذ الدالة دون عمليات حاجزة (blocking). سؤال Q-935a06744e7b9af7 (مفتوح)
معالجة الأخطاء والتفاعل
تقتصر معالجة الأخطاء على القيمة المرجعة E_NOT_OK، نظراً لأن أخطاء التطوير المنفصلة (DET) أو أخطاء الإنتاج (DEM) غير محددة لهذا الاستدعاء [SWS_Dcm_91018]. تفسير: تعمل الدالة كنقطة نهاية تأكيد خاصة بالتطبيق (Callback) لـ DCM، لمزامنة اكتمال طلب التشخيص على مستوى المستخدم بعد إرسال نتائج الإجراء الروتيني. سؤال Q-d3dd0142a30e1363 (مفتوح)
تم إنشاء هذا النص بواسطة ذكاء اصطناعي. تستند البيانات إلى AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_RequestControl [SWS_Dcm_01338] 📄 PDF
Std_ReturnType Xxx_RequestControl (uint8* OutBuffer, const uint8* InBuffer);
Invokes a TID-specific function taking a configured number of bytes as input and returing a fixed number of bytes as output. This is typically used to implement OBD Service $08
تُستخدم الدالة Xxx_RequestControl لتنفيذ وظيفة تحكم محددة لـ TID وتُستخدم عادةً لتنفيذ OBD Service $08 ([SWS_Dcm_01338]). تستدعي وحدة DCM الدالة المكوّنة بشكل متزامن بمجرد تلقي طلب OBD Service $08 لا يمثل معرّف الاختبار الخاص به (TID) معرّف TID للتوافر (”availability TID“) ([SWS_Dcm_00419]). يتم توفير إعلان الواجهة عبر ملف الترويسة Dcm_Externals.h ([SWS_Dcm_01338]).
المعلمات ومعالجة المخزن المؤقت
InBuffer: مؤشر إلى بيانات الحمولة النافعة لطلب OBD المستلم. يجب أن يتطابق عدد بايتات بيانات الإدخال هذه تمامًا مع الحجم المكوّن في وحدة DCM ([SWS_Dcm_00419]، [SWS_Dcm_01338]).OutBuffer: مؤشر إلى المخزن المؤقت للإخراج الذي تضع فيه وظيفة التحكم المستدعاة نتائجها. حجم المخزن المؤقت محدد مسبقًا بشكل ثابت ومأخوذ من تكوين وحدة DCM ([SWS_Dcm_00419]، [SWS_Dcm_01338]).
قيم الإرجاع ومعالجة الأخطاء
تُرجع الدالة كقيمة حالة Std_ReturnType: تشير القيمة E_OK إلى معالجة ناجحة، بينما تشير E_NOT_OK إلى حالة خطأ ([SWS_Dcm_01338]). إذا أرجعت Xxx_RequestControl نتيجة غير E_OK، تستجيب وحدة DCM برمز الاستجابة السلبية NRC 0x22 (Conditions Not Correct) تجاه فاحص التشخيص ([SWS_Dcm_01192]).
التزامن والقيود
تم تحديد الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) ولها معرّف الخدمة 0x63 ([SWS_Dcm_01338]).
ملاحظة الذكاء الاصطناعي: تم إنشاء هذا النص تلقائيًا استنادًا إلى مواصفات AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة Xxx_StartProtocol [SWS_Dcm_01339] 📄 PDF
Std_ReturnType Xxx_StartProtocol (Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress, uint16 ConnectionId);
This function allows the application to examine the environment conditions and enable/disable further processing of the protocol.
يتم توفير دالة رد النداء (Callback) Xxx_StartProtocol عبر ملف الرأس Dcm_Externals.h وتتيح للتطبيق، عند الطلب الأول لبروتوكول تشخيصي، فحص الشروط البيئية الحالية والموافقة على متابعة معالجة البروتوكول أو رفضها [SWS_Dcm_01339].
سياق الاستدعاء والمعلمات
يتم الاستدعاء بواسطة الوحدة الفرعية DSL التابعة لـ DCM بشكل متزامن وغير قابل لإعادة الدخول لجميع الدوال المهيأة [SWS_Dcm_00036]، [SWS_Dcm_01339]. ويتم تمرير معلمات الإدخال التالية إلى الدالة [SWS_Dcm_01339]:
ProtocolType: نوع بروتوكول التشخيص المراد بدء تشغيله،TesterSourceAddress: عنوان المصدر لجهاز الاختبار الطالب،ConnectionId: المعرف الفريد للاتصال.
قيم الإرجاع ومعالجة الأخطاء
كقيمة إرجاع، تقدم الدالة Std_ReturnType مع E_OK عند نجاح الموافقة، و E_NOT_OK عند عدم نجاح الفحص، أو E_PROTOCOL_NOT_ALLOWED إذا كان البروتوكول غير مسموح به [SWS_Dcm_01339]. وإذا لم تُرجع دالة واحدة على الأقل من دوال Xxx_StartProtocol المهيأة القيمة E_OK، يُلغي DCM بدء البروتوكول ويستجيب بـ NRC 0x22 [SWS_Dcm_00674].
التهيئة بعد نجاح الموافقة
فقط عندما تُرجع جميع ردود النداء (callbacks) 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) بواسطة الوحدة الفرعية DSL في سيناريوهات الأسبقية (Preemption) التالية:
- تتم إزاحة طلب تشخيصي قيد التشغيل بواسطة طلب ذي أولوية أعلى لبروتوكول آخر ([SWS_Dcm_00459]).
- يزيح طلب ذو أولوية أقل أو متساوية بروتوكولاً ذا أولوية أعلى، طالما كان الأخير في الجلسة الافتراضية (Default Session) ولا يوجد طلب نشط في مرحلة التنفيذ ([SWS_Dcm_00625]).
عند الاستدعاء، يتم تمرير نوع البروتوكول (ProtocolType)، وعنوان مصدر جهاز الفحص (TesterSourceAddress)، بالإضافة إلى معرف الاتصال (ConnectionId) ([SWS_Dcm_01340]). وكتعليمات إرجاع، تُرجع الدالة E_OK في حالة التنفيذ الناجح أو E_NOT_OK ([SWS_Dcm_01340]). إذا لم تُرجع الدالة E_OK، يستجيب DCM برمز الاستجابة السلبية NRC 0x22 ([SWS_Dcm_01190]).
تم إنشاء هذا النص بصورة آلية، وهو يستند حصرًا إلى متطلبات مواصفات AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة Xxx_Indication [SWS_Dcm_01341] 📄 PDF
Std_ReturnType Xxx_Indication (uint8 SID, const uint8* RequestData, uint32 DataSize, uint8 ReqType, uint16 ConnectionId, Dcm_NegativeResponseCodeType* ErrorCode, Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress);
This function indicates to the application that a service is about to be executed and allows the application to reject the execution of the service request
يتم الإعلان عن الدالة التزامنية وغير القابلة لإعادة الدخول Xxx_Indication عبر ملف الترويسة Dcm_Externals.h [SWS_Dcm_01341]. تشير للتطبيق إلى التنفيذ الوشيك لخدمة تشخيصية وتتيح له رفض تنفيذ طلب الخدمة [SWS_Dcm_01341]. يتم الاستدعاء تزامنيًا بواسطة الوحدة الفرعية DSD على جميع منافذ ServiceRequestIndication المهيأة، عند وجود حاويات التكوين DcmDsdServiceRequestManufacturerNotification [SWS_Dcm_00218] أو DcmDsdServiceRequestSupplierNotification [SWS_Dcm_00516].
تُمرر كمعلمات إدخال معرف الخدمة (SID)، وبيانات الطلب بدون SID (RequestData، DataSize)، ونوع العنونة (ReqType)، ومعرف الاتصال (ConnectionId)، ونوع البروتوكول (ProtocolType)، وعنوان المصدر الخاص بجهاز الفحص (TesterSourceAddress) [SWS_Dcm_01341].
من خلال قيمة الإرجاع من النوع Std_ReturnType، يتحكم التطبيق في رد فعل الوحدة الفرعية DSD [SWS_Dcm_01341]:
E_OK: كان الطلب ناجحًا وتتم متابعة معالجته بشكل نظامي [SWS_Dcm_01341].E_REQUEST_NOT_ACCEPTED: لا يتم قبول الطلب. إذا أرجعت دالة إشارة (Indication) واحدة على الأقل تم استدعاؤها القيمةE_REQUEST_NOT_ACCEPTED، تكتم الوحدة الفرعية DSD أي استجابة لجهاز الفحص [SWS_Dcm_00462]، [SWS_Dcm_00517].E_NOT_OK: لم يكن الطلب ناجحًا. يكتب التطبيق في هذه الحالة رمز استجابة سلبية في معلمة الإخراجErrorCode[SWS_Dcm_01341]. ما لم يُرجع أي استدعاءE_REQUEST_NOT_ACCEPTED، ترسل الوحدة الفرعية DSD استجابة سلبية برمز NRC هذا [SWS_Dcm_00463]، [SWS_Dcm_00518].
إذا أرجعت عدة دوال E_NOT_OK ولم تُرجع أي دالة E_REQUEST_NOT_ACCEPTED عند تهيئة عدة إخطارات، تستخدم الوحدة الفرعية DSD للاستجابة السلبية إلزاميًا ErrorCode الخاص بأول دالة تستجيب بـ E_NOT_OK [SWS_Dcm_01321]، [SWS_Dcm_01322].
تم توليد هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_Confirmation [SWS_Dcm_01342] 📄 PDF
Std_ReturnType Xxx_Confirmation (uint8 SID, uint8 ReqType, uint16 ConnectionId, Dcm_ConfirmationStatusType ConfirmationStatus, Dcm_ProtocolType ProtocolType, uint16 TesterSourceAddress);
This function confirms to the application the successful transmission or a transmission error of a diagnostic service.
تُستخدم دالة رد النداء Xxx_Confirmation لإبلاغ التطبيق تزامنيًا باكتمال إرسال تشخيصي — إما الإرسال الناجح أو حدوث خطأ في الإرسال — ([SWS_Dcm_01342]). يتم توفير الإعلان عبر ملف الترويسة Dcm_Externals.h ([SWS_Dcm_01342]).
عند الاستدعاء بواسطة الوحدة الفرعية DCM المسماة DSD (Diagnostic Service Dispatcher)، يتم تمرير بيانات السياق الأساسية لأمر التشخيص ([SWS_Dcm_01342]، [SWS_Dcm_00741]):
SID: معرف الخدمة التشخيصية ([SWS_Dcm_01342]).ReqType: نوع العنونة (0للعنونة الفيزيائية،1للعنونة الوظيفية) ([SWS_Dcm_01342]).ConnectionIdوProtocolTypeوTesterSourceAddress: سمات الاتصال والبروتوكول الفريدة بالإضافة إلى عنوان المصدر الخاص بجهاز الفحص ([SWS_Dcm_01342]).ConfirmationStatus: معلومات الحالة حول نجاح الإرسال أو خطئه ([SWS_Dcm_01342]).
كقيمة إرجاع، تقدم العملية Std_ReturnType (E_OK عند المعالجة الناجحة للتأكيد، وإلا E_NOT_OK) ([SWS_Dcm_01342]). تستدعي DSD الدالة على جميع المنافذ التي تستخدم الواجهة ServiceRequestNotification (المهيأة عبر DcmDsdServiceRequestManufacturerNotification أو DcmDsdServiceRequestSupplierNotification) ([SWS_Dcm_00741]).
فيما يتعلق بترتيب الاستدعاء، يتم تنفيذ Xxx_Confirmation نظاميًا مباشرة في أعقاب DspInternal_DcmConfirmation() ([SWS_Dcm_00742]). ومع ذلك، إذا كانت الحالة الخاصة وفقًا لـ [SWS_Dcm_01172] موجودة، فإن DSD تستدعي فقط Xxx_Confirmation، بينما يُلغى الاستدعاء الداخلي.
نظرًا لتحديد Xxx_Confirmation على أنها غير قابلة لإعادة الدخول (Non Reentrant) وتزامنية ([SWS_Dcm_01342])، يُفترض ألا يتضمن تنفيذ جانب التطبيق أي عمليات حاجبة وألا يطلق أي استدعاءات عودية قابلة لإعادة الدخول إلى DCM (Interpretation). سؤال Q-58ce3e44dc61540b (مفتوح)
تم إنشاء هذا النص بواسطة ذكاء اصطناعي. تستند جميع المعلومات حصريًا إلى نطاق مواصفات AUTOSAR للإصدار R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_ClearDTCCheckFnc [SWS_Dcm_01270] 📄 PDF
Std_ReturnType Xxx_ClearDTCCheckFnc (uint32 GoDTC, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function for condition check, manufacturer / supplier specific checks on the groupOf DTC, which is requested to clear.
الاستخدام
تتوفر دالة الاستدعاء الخارجي (Callout) المتزامنة Xxx_ClearDTCCheckFnc للتطبيق عبر ملف الترويسة Dcm_Externals.h [SWS_Dcm_01270]. وتُستخدم للتحقق الخاص بالشركة المصنعة والمورّد من الشروط قبل مسح مجموعة مطلوبة من رموز أخطاء التشخيص (Group of DTC). وتُمرر إليها كمعلمة إدخال المعرّف GoDTC من النوع uint32، والذي يحدد مجموعة رموز الأخطاء المراد مسحها [SWS_Dcm_01270].
معالجة الأخطاء وقيم الإرجاع
تتم الموافقة على طلب المسح عبر قيمة الإرجاع من النوع Std_ReturnType بالتكامل مع معلمة الإخراج ErrorCode [SWS_Dcm_01270]:
E_OK: يسمح التطبيق بمسح مجموعة رموز الأخطاء المطلوبةGoDTC[SWS_Dcm_01270].E_NOT_OK: يمنع التطبيق مسح المجموعة. في حالة الخطأ هذه، يجب تعيين رمز استجابة سلبي عبر معلمة الإخراجErrorCodeمن النوعDcm_NegativeResponseCodeType*. وترسل الوحدة DCM بعد ذلك استجابة سلبية تتضمن قيمة NRC المحددة فيErrorCode[SWS_Dcm_01270].
التزامن والقيود
زُوّدت الدالة بمعرّف الخدمة 0x5f، وتعمل بشكل متزامن، ومُعرّفة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_Dcm_01270]. لذلك، يجب أن يضمن سياق الاستدعاء تنفيذ الاستدعاءات بالتتابع ودون تداخلات متزامنة.
تم إنشاء ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي بناءً على المواصفة SWS_Dcm_01270 من AUTOSAR R20-11.
دالة Xxx_ProcessRequestDownload [SWS_Dcm_00754] 📄 PDF
Std_ReturnType Xxx_ProcessRequestDownload (Dcm_OpStatusType OpStatus, uint8 DataFormatIdentifier, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint32* BlockLength, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function. DCM shall call this callout function to start a download process. This service is needed for the implementation of UDS service RequestDownload.
يتم استدعاء دالة النداء الخارجي Xxx_ProcessRequestDownload ([SWS_Dcm_00754]) بواسطة الوحدة Dcm لبدء عملية تنزيل أثناء معالجة خدمة UDS المسماة RequestDownload. تم تعريفها بأنها غير تزامنية وغير قابلة لإعادة الدخول، وتتوفر عبر ملف الترويسة Dcm_Externals.h ([SWS_Dcm_00754]).
الاستخدام والمعلمات
يتم الاستدعاء تدريجيًا عبر المعلمة OpStatus بالقيم DCM_INITIAL، أو DCM_PENDING، أو DCM_CANCEL ([SWS_Dcm_00754]). وتُمرر كمعلمات إدخال طرق الضغط والتشفير (DataFormatIdentifier)، وكتلة الذاكرة (MemoryIdentifier)، وعنوان البداية (MemoryAddress)، وحجم الذاكرة غير المضغوط بالبايت (MemorySize) ([SWS_Dcm_00754]). قبل الاستدعاء، يكتب Dcm في معلمة الدخل/الخرج BlockLength أقصى حجم ممكن للمخزن المؤقت ([SWS_Dcm_01417]). تقوم الدالة بضبط هذه القيمة لتناسب أقصى طول كتلة مسموح به لعمليات الكتابة اللاحقة ([SWS_Dcm_00754]).
قيم الإرجاع والتفاعل
ترجع الدالة E_OK عند التنفيذ الناجح، أو DCM_E_PENDING إذا كانت المعالجة لا تزال مستمرة، أو E_NOT_OK في حالة حدوث خطأ ([SWS_Dcm_00754]):
- إذا أرجع الاستدعاء
E_OKوكانت القيمة المتفاوض عليهاBlockLengthأصغر من أو تساوي طول المخزن المؤقت المدعوم لاتصال البروتوكول الحالي، ترسلDcmاستجابة إيجابية بهذه القيمة كـmaxNumberOfBlockLength([SWS_Dcm_01419]). - إذا تجاوز طول المخزن المؤقت المُرجع حجم المخزن المؤقت المدعوم لاتصال البروتوكول، تبلغ
Dcmعن خطأ DET المسجل كـDCM_E_INTERFACE_BUFFER_OVERFLOW([SWS_Dcm_01418]). - عند إرجاع
E_NOT_OK، ترسلDcmاستجابة UDS سلبية (NRC) بالقيمة المحددة في معلمة الإخراجErrorCode([SWS_Dcm_00754]، [SWS_Dcm_00757]).
تم إنشاء إشعار الاستخدام هذا تلقائيًا ويعمل كأداة مساعدة لمواصفات AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_ProcessRequestTransferExit [SWS_Dcm_00755] 📄 PDF
Std_ReturnType Xxx_ProcessRequestTransferExit (Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function. DCM shall call this callout function to terminate a download or upload process. This callout is needed for the implementation of UDS service RequestTransferExit.
تستدعي وحدة DCM دالة الاستدعاء الخارجي (Callout) Xxx_ProcessRequestTransferExit لإنهاء عملية تنزيل أو تحميل جارية في إطار خدمة UDS المسماة RequestTransferExit [SWS_Dcm_00755]. يتم توفير التصريح عن الواجهة عبر الترويسة Dcm_Externals.h [SWS_Dcm_00755].
الاستخدام والدلالات
تعمل الدالة بشكل غير متزامن ومحددة بأنها غير قابلة لإعادة الدخول (non reentrant) [SWS_Dcm_00755]. يتم الاستدعاء مع تمرير حالة التنفيذ الحالية OpStatus (القيم الممكنة: DCM_INITIAL أو DCM_PENDING أو DCM_CANCEL) [SWS_Dcm_00755]. تم تحديد القيم المرجعة التالية من النوع Std_ReturnType:
E_OK: تم إنهاء النقل بنجاح [SWS_Dcm_00755].DCM_E_PENDING: إنهاء النقل لم يكتمل بعد ويتطلب استدعاءات لاحقة [SWS_Dcm_00755].E_NOT_OK: فشل الإنهاء أو أن ذاكرة الاستجابة المؤقتة صغيرة جدًا [SWS_Dcm_00755].
معالجة الأخطاء والتفاعل
إذا أرجعت العملية Xxx_ProcessRequestTransferExit قيمة الخطأ E_NOT_OK، فيجب تمرير كود استجابة سلبية عبر معامل الإخراج ErrorCode. بعد ذلك، ترسل وحدة DCM استجابة UDS سلبية (NRC) مع كود الخطأ هذا تحديدًا إلى جهاز فحص التشخيص [SWS_Dcm_00759]. في حالة استدعاء الإلغاء، تمرر وحدة DCM الحالة DCM_CANCEL إلى الدالة [SWS_Dcm_00755].
تم إنشاء هذا النص تلقائيًا. وتستند جميع المعلومات حصريًا إلى مواصفة AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_ProcessRequestUpload [SWS_Dcm_00756] 📄 PDF
Std_ReturnType Xxx_ProcessRequestUpload (Dcm_OpStatusType OpStatus, uint8 DataFormatIdentifier, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, uint32* BlockLength, Dcm_NegativeResponseCodeType* ErrorCode);
Callout function. DCM shall call this callout function to start an upload process. This service is needed for the implementation of UDS service RequestUpload.
تستدعي وحدة DCM دالة الاستدعاء الخارجي (Callout) Xxx_ProcessRequestUpload لبدء خدمة UDS المسماة RequestUpload ([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]). يحدد معامل الإدخال/الإخراج BlockLength الحد الأقصى لعدد البايتات لاستدعاء Dcm_ReadMemory لاحق؛ وقبل الاستدعاء، يكتب DCM أقصى حجم ممكن للذاكرة المؤقتة في هذا المعامل ([SWS_Dcm_00756]، [SWS_Dcm_01420]).
تم تحديد القيم المرجعة من Xxx_ProcessRequestUpload على أنها E_OK في حالة الطلب الناجح، وE_NOT_OK في حالة الأخطاء، وDCM_E_PENDING في حالة المعالجة التي لم تكتمل بعد ([SWS_Dcm_00756]):
- إذا أرجعت الدالة
E_NOT_OK، ترسل وحدة DCM استجابة UDS سلبية مع قيمة NRC المعينة في معامل الإخراجErrorCode([SWS_Dcm_00756]، [SWS_Dcm_00758]). - إذا أرجعت الدالة قيمة ذاكرة مؤقتة مطلوبة في
BlockLengthتكون أصغر من أو تساوي طول الذاكرة المؤقتة المدعوم لاتصال البروتوكول الحالي، يستخدم DCM هذه القيمة كـmaxNumberOfBlockLengthفي الاستجابة الإيجابية ([SWS_Dcm_01422]). - على الجانب الآخر، إذا كان طول الذاكرة المؤقتة المرجع أكبر من طول الذاكرة المؤقتة المدعوم من اتصال البروتوكول، يبلغ DCM عن خطأ DET رقم
DCM_E_INTERFACE_BUFFER_OVERFLOW([SWS_Dcm_01421]).
تم إنشاء هذا النص بواسطة ذكاء اصطناعي. وهو يستند حصريًا إلى مواصفات حمولة AUTOSAR الممررة.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة Xxx_ProcessTransferDataRead [SWS_Dcm_91070] 📄 PDF
Dcm_ReturnReadMemoryType Xxx_ProcessTransferDataRead (Dcm_OpStatusType OpStatus, uint8 MemoryIdentifier, uint32 MemoryAddress, uint32 MemorySize, Dcm_RequestDataArrayType MemoryData, Dcm_NegativeResponseCodeType* ErrorCode);
The ProcessTransferDataRead callout is used to request memory data identified by the parameter memoryAddress and memorySize from the UDS request message. This service is needed for the implementation of UDS services: • ReadMemoryByAddress • RequestUpload • ReadDataByIdentifier (in case of Dynamical DID defined by memory address) • TransferData
تُستخدم دالة النداء الخارجي Xxx_ProcessTransferDataRead لقراءة بيانات الذاكرة من وحدة التحكم الإلكترونية بشكل غير تزامني بناءً على عنوان البداية (MemoryAddress) والطول (MemorySize) وفقًا لـ [SWS_Dcm_91070]. تتوفر عبر ملف الترويسة Dcm_Externals.h وتدعم خدمات UDS المسماة ReadMemoryByAddress، وRequestUpload، وTransferData، وكذلك ReadDataByIdentifier لمعرفات DID المعرفة ديناميكيًا عبر عناوين الذاكرة [SWS_Dcm_91070].
يتم الاستدعاء بشكل غير قابل لإعادة الدخول (Non Reentrant) ويتم التحكم فيه عبر المعلمة OpStatus ([SWS_Dcm_91070]):
DCM_INITIAL: تبدأ عملية القراءة.DCM_PENDING: تستأنف عملية قراءة لم تكتمل بعد.DCM_CANCEL: تلغي العملية الجارية.DCM_FORCE_RCRRP_OK: تؤكد إرسال استجابة معلقة.
للعنونة، يمكن تحديد كتلة أو نطاق ذاكرة عبر MemoryIdentifier؛ إذا لم يتم استخدام هذه المعلمة، فيجب ضبطها إلزاميًا على 0 [SWS_Dcm_91070]. يتم إرجاع البيانات المقروءة عبر معلمة الإخراج MemoryData، التي تشير مباشرة إلى المخزن المؤقت للتشخيص الخاص بـ DCM [SWS_Dcm_91070].
تم تعريف قيم الإرجاع لتكون DCM_READ_OK عند النجاح، وDCM_READ_PENDING عند استمرار القراءة، بالإضافة إلى DCM_READ_FORCE_RCRRP عندما تكون العملية معلقة ويجب إرسال رسالة تعليق الاستجابة (Response Pending) على الفور [SWS_Dcm_91070]. إذا فشلت القراءة، ترجع الدالة DCM_READ_FAILED؛ وفي هذه الحالة، يجب تمرير رمز استجابة سلبية (NRC) عبر المؤشر ErrorCode، والذي يرسله DCM في استجابة سلبية [SWS_Dcm_91070]. (Interpretation: على الرغم من أن ملاحظة المواصفات الخاصة بـ 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 (معرف الخدمة 0x27) عبر Dcm_Externals.h وتستدعيه وحدة DCM لكتابة بيانات الذاكرة لخدمات UDS المسماة WriteMemoryByAddress، وRequestDownload، وTransferData [SWS_Dcm_91071]. يتم التحكم في تسلسل عملية الكتابة عبر المعلمة OpStatus بالقيم DCM_INITIAL، أو DCM_PENDING، أو DCM_CANCEL، أو DCM_FORCE_RCRRP_OK [SWS_Dcm_91071].
المعلمات وقيم الإرجاع
تعالج الدالة المعلمات التالية [SWS_Dcm_91071]:
MemoryIdentifier: معرف كتلة الذاكرة؛ إذا لم تُستخدم هذه المعلمة، فيجب ضبطها على 0 [SWS_Dcm_91071].MemoryAddress: عنوان البداية لذاكرة الخادم التي سيتم نسخ البيانات إليها؛ في حالة عدم الاستخدام (على سبيل المثال مع البيانات المضغوطة)، يجب تمرير القيمة 0 [SWS_Dcm_91071].MemorySize: عدد البايتات المراد كتابتها فيMemoryData[SWS_Dcm_91071].MemoryData: مؤشر إلى البيانات المراد كتابتها في المخزن المؤقت للتشخيص الخاص بـ DCM [SWS_Dcm_91071].ErrorCode: معلمة إخراج لرمز الاستجابة السلبية (NRC) في حالة الخطأ [SWS_Dcm_91071].
تشير القيمة المرجعة من النوع Dcm_ReturnWriteMemoryType إلى نتيجة العملية [SWS_Dcm_91071]:
DCM_WRITE_OK: اكتملت عملية الكتابة بنجاح [SWS_Dcm_91071].DCM_WRITE_PENDING: لم تكتمل عملية الكتابة بعد [SWS_Dcm_91071].DCM_WRITE_FORCE_RCRRP: عملية الكتابة لا تزال معلقة؛ يبدأ إرسال الاستجابة المعلقة (Response Pending) على الفور [SWS_Dcm_91071].DCM_WRITE_FAILED: فشلت عملية الكتابة [SWS_Dcm_91071].
معالجة الأخطاء والتزامن
إذا أرجع النداء الخارجي القيمة DCM_WRITE_FAILED، ترسل وحدة DCM استجابة سلبية بقيمة NRC الممررة في المعلمة ErrorCode [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 قد تم رفضه بواسطة DCM، على سبيل المثال لأن عملية ResponseOnOneEvent سابقة لم تكتمل بعد؛ تُستخدم القيمة عند الواجهةDcm_ResponseOnOneEvent()[SWS_Dcm_00976].DCM_E_PERIODICID_NOT_ACCEPTED(0x07): يشير إلى أن طلب النقل الدوري لم يتم قبوله من قِبل DCM، ربما لأن عملية نقل دورية جارية لم تنتهِ بعد؛ تُستخدم هذه الحالة عند الواجهةDcm_ResponseOnOneDataByPeriodicId()[SWS_Dcm_00976].
القيود وشروط الاستدعاء
يجب على مستدعي الواجهات المذكورة تقييم القيمة المرجعة من النوع Dcm_StatusType لتحديد ما إذا كان يمكن قبول الطلبات الجديدة على الفور أم أنه تم استبعادها بسبب عمليات نقل لا تزال جارية [SWS_Dcm_00976]. من المرجح ألا يكون لتكرار الطلب فرصة للنجاح إلا بمجرد اكتمال عمليات الأحداث أو الإرسال السابقة بالكامل [SWS_Dcm_00976]. سؤال Q-901ec7e3aac8901c (مفتوح)
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند إلى مواصفة AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع Dcm_CommunicationModeType [SWS_Dcm_00981] 📄 PDF
Manager
نوع البيانات Dcm_CommunicationModeType هو نوع تعداد مُعلن عنه في Dcm.h استنادًا إلى uint8 ([SWS_Dcm_00981]). يحدد أوضاع الاتصال للتحكم الانتقائي في مسارات الإرسال (Tx) والاستقبال (Rx). يشمل نطاق القيم من 0x00 إلى 0x0B لبيانات التطبيق العادية (NORM)، وإدارة الشبكة (NM)، بالإضافة إلى كلا فرعي الاتصال مدمجين (NORM_NM) ([SWS_Dcm_00981]).
يُستخدم النوع كمعامل عند استدعاءات واجهة BSW المسماة BswM_Dcm_CommunicationMode_CurrentState. من خلالها، وبعد تأكيد الإرسال (Sent Confirmation) لطلب خدمة UDS رقم CommunicationControl (الخدمة 0x28)، يمرر DCM الوضع الحالي إلى BSW Mode Manager ([SWS_Dcm_00512]، [SWS_Dcm_00785]). وتتوافق قيمة الوضع المحددة مع المعاملين communicationType وcontrolType لطلب التشخيص المستلم ([SWS_Dcm_00512]).
يعتمد التفاعل والشبكات المتأثرة على معامل الشبكة الفرعية لطلب UDS:
- في حالة الشبكة الفرعية
0x00، يتم التحديث لجميع قنوات الشبكة المكونة فيDcmDspComControlAllChannel([SWS_Dcm_00512]). - في حالة الشبكة الفرعية
0x0F، يتم الإبلاغ عن وضع الاتصال لقناة استقبال التشخيص الحالية ([SWS_Dcm_00785]). - في حالة الشبكات الفرعية من
0x01إلى0x0E، يتم التحقق من الدعم؛ وتُرفض الشبكات الفرعية غير المدعومة بكود الاستجابة السلبية 0x31 ([SWS_Dcm_00786]). - في حالة الوظائف الفرعية ذات العنونة الموسعة (مثل
enableRxAndDisableTxWithEnhancedAddressInformationأوenableRxAndTxWithEnhancedAddressInformation)، يتم الاستدعاء للقناة المشار إليها عبر معرف العقدة الفرعية (Sub-Node-ID) ([SWS_Dcm_01077]، [SWS_Dcm_01079]).
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
نوع Dcm_ConfigType [SWS_Dcm_00982] 📄 PDF
This type defines a data structure for the post build parameters of the DCM . At initialization the DCM gets a pointer to a structure of this type to get access to its configuration data, which is necessary for initialization.
نوع Dcm_ReturnReadMemoryType [SWS_Dcm_00985] 📄 PDF
Return values of Callout Dcm_ReadMemory
نوع Dcm_ReturnWriteMemoryType [SWS_Dcm_00986] 📄 PDF
Return type of callout Dcm_WriteMemory
نوع Dcm_EcuStartModeType [SWS_Dcm_00987] 📄 PDF
Allows the DCM to know if a diagnostic response shall be sent in the case of a jump from bootloader
نوع البيانات Dcm_EcuStartModeType مشتق من uint8 ويتم توفيره عبر ملف الرأس Dcm.h [SWS_Dcm_00987]. وهو يخدم Diagnostic Communication Manager (DCM) في تحديد وضع بدء التشغيل، ويشير إلى ما إذا كان ينبغي إرسال استجابة تشخيصية بعد الانتقال من محمل الإقلاع [SWS_Dcm_00987].
يتضمن نطاق القيم حالتين محددتين [SWS_Dcm_00987]:
DCM_COLD_START(0x00): تبدأ وحدة التحكم الإلكترونية بشكل اعتيادي في وضع التشغيل العادي [SWS_Dcm_00987].DCM_WARM_START(0x01): تبدأ وحدة التحكم الإلكترونية نتيجة لقفزة من محمل الإقلاع [SWS_Dcm_00987].
في تفاعل الواجهات، يعمل Dcm_EcuStartModeType كقيمة إرجاع متزامنة لدالة النداء الخارجي (Callout) Dcm_GetProgConditions، المتاحة عبر Dcm_Externals.h [SWS_Dcm_00544]. يتم استدعاء هذه الدالة أثناء تهيئة DCM لتحديد ما إذا كان يلزم إرسال استجابة إيجابية ($50 أو $51) [SWS_Dcm_00544]. ويتم تمرير الشروط الحدية التفصيلية لقفزة محمل الإقلاع إلى DCM عبر معلمة الإخراج ProgConditions [SWS_Dcm_00544].
فيما يتعلق بالتنفيذ ومعالجة الأخطاء، تم تحديد دالة النداء الخارجي المستدعية على أنها متزامنة وغير قابلة لإعادة الدخول [SWS_Dcm_00544]. لم يتم تحديد رموز أخطاء معينة أو إشعارات مباشرة إلى DET أو DEM لنوع البيانات هذا.
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا بناءً على مواصفة AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع Dcm_ProgConditionsType [SWS_Dcm_00988] 📄 PDF
Used in Dcm_SetProgConditions() to allow the integrator to store relevant information prior to jumping to bootloader / jump due to ECUReset request.
يُستخدم الهيكل Dcm_ProgConditionsType لتبادل بيانات الحالة والسياق بين التطبيق ومحمل الإقلاع أثناء عمليات البرمجة أو إعادة ضبط وحدة التحكم الإلكترونية [SWS_Dcm_00988]. يجمع الهيكل معلومات الاتصال مثل ConnectionId وTesterAddress، ومعرفات التشخيص مثل Sid وSubFncId، بالإضافة إلى رايات التحكم مثل ReprogramingRequest، وApplUpdated، وResponseRequired [SWS_Dcm_00988].
يتم الاستخدام عبر واجهتين مركزيتين:
- قبل الانتقال إلى محمل الإقلاع أو عند إعادة الضبط، يمرر DCM الهيكل إلى الدالة غير التزامنية وغير القابلة لإعادة الدخول
Dcm_SetProgConditions()[SWS_Dcm_00543]. وقيم الإرجاع المحتملة هيE_OK، وE_NOT_OK، وDCM_E_PENDING، بالإضافة إلىDCM_E_FORCE_RCRRPعند طلب رسالة تعليق الاستجابة (NRC 0x78) [SWS_Dcm_00543]. - بعد إعادة التشغيل، يستدعي DCM أثناء تهيئته دالة النداء الخارجي التزامنية وغير القابلة لإعادة الدخول
Dcm_GetProgConditions()لقراءة الشروط المخزنة وتحديدDcm_EcuStartModeType[SWS_Dcm_00544]. يُفترض أن يتم حفظ هذه البيانات عادةً من قِبل مسؤول التكامل عبر ذاكرة RAM المقاومة لإعادة الضبط أو ذاكرة غير متطايرة (Interpretation). سؤال Q-026bc7bc93f5502c (مفتوح)
في إطار التفاعل الإضافي للنظام، يقيّم DCM الهيكل: بمجرد أن يبلغ ComM عن القدرة الكاملة على الاتصال، يرسل DCM الاستجابة التشخيصية المعلقة لمعرف الخدمة المخزن في Sid [SWS_Dcm_00767]. وإذا أشارت ApplUpdated == True بعد الانتقال إلى محمل الإقلاع إلى إجراء تحديث عبر تنزيل الفلاش، يخطر DCM وحدة BswM عبر BswM_Dcm_ApplicationUpdated() [SWS_Dcm_00768].
تم إنشاء إشعار الاستخدام هذا تلقائيًا ويستند حصريًا إلى مواصفات إصدار AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع Dcm_MsgItemType [SWS_Dcm_00989] 📄 PDF
Base type for diagnostic message item
نوع Dcm_MsgType [SWS_Dcm_00990] 📄 PDF
Base type for diagnostic message (request, positive or negative response)
الاستخدام وتعريف النوع
نوع البيانات Dcm_MsgType هو نوع المؤشر المركزي للرسائل التشخيصية في Diagnostic Communication Manager، وهو متاح عبر ملف الرأس Dcm.h [SWS_Dcm_00990]. تم الإعلان عنه كمؤشر إلى Dcm_MsgItemType* ويُستخدم كأساس مشترك للإشارة إلى الطلبات ورسائل الاستجابة الإيجابية والسلبية [SWS_Dcm_00990]. تفسير: نظرًا لأن النوع الأساسي Dcm_MsgItemType لم يتم تفصيله بدقة في المواصفات، فمن المرجح أنه يمثل بايت بيانات فرديًا (مثل uint8) يتم من خلاله الوصول تسلسليًا إلى المخزن المؤقت الخطي للرسائل. سؤال Q-2b6f46b51d3cb8e0 (مفتوح)
التفاعل وسياق البنية
يتم الاستخدام الأساسي لـ Dcm_MsgType داخل بنية السياق Dcm_MsgContextType [SWS_Dcm_00994]. وهناك يشير النوع إلى منطقتي بيانات منفصلتين:
reqData: يشير إلى البيانات المفيدة لطلب التشخيص، بدءًا من بعد معرف الخدمة (SID) مباشرةً، والذي لا يُعد هو نفسه جزءًا من هذه البيانات [SWS_Dcm_00994].resData: يشير إلى بيانات الاستجابة الإيجابية ويبدأ أيضًا بعد معرف الخدمة مباشرةً [SWS_Dcm_00994].
حدود المخزن المؤقت والقيود
عند معالجة وملء المخازن المؤقتة للاستجابة المعنونة عبر Dcm_MsgType، يجب على المستخدمين الالتزام الصارم بحدود المخزن المؤقت المقترنة بها [SWS_Dcm_00994]. ويجب ألا يتجاوز طول الاستجابة الفعلي resDataLen بأي حال من الأحوال سعة المخزن المؤقت المحددة بواسطة resMaxDataLen، لأن الحد الأقصى لحجم الاستجابة مقيد بشكل صارم بتخصيص المخزن المؤقت المعين [SWS_Dcm_00994].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفات AUTOSAR Classic الإصدار R20-11.
نوع Dcm_MsgLenType [SWS_Dcm_00991] 📄 PDF
Length of diagnostic message (request, positive or negative response). The maximum length is dependent of the underlying transport protocol/media.
يتوفر نوع البيانات Dcm_MsgLenType عبر ملف الترويسة Dcm.h وهو مشتق من النوع الأساسي uint32 [SWS_Dcm_00991]. ويُستخدم في Diagnostic Communication Manager (DCM) لوصف طول رسائل التشخيص. ويشمل ذلك كلاً من طلبات التشخيص (Requests) ورسائل الاستجابة الإيجابية والسلبية (Responses) [SWS_Dcm_00991].
فيما يتعلق بحدود نطاق القيم، تحدد المواصفة أن أقصى طول قابل للنقل لرسالة تشخيص يعتمد على بروتوكول النقل الأساسي أو وسيط النقل المعني [SWS_Dcm_00991]. تفسير: على الرغم من أن نوع البيانات الأساسي uint32 يمكنه برمجيًا تمثيل أطوال رسائل تصل إلى 4 GiB، فمن المرجح أن يكون الحد الأقصى الفعلي للطول في التطبيق العملي محدودًا دائمًا بوسيط الاتصال وأحجام ذاكرة التخزين المؤقت. سؤال Q-ac43639ecb32605d (مفتوح)
يلعب Dcm_MsgLenType دورًا محوريًا في الهيكل Dcm_MsgContextType، الذي يغلّف سياق أمر التشخيص [SWS_Dcm_00994]. وداخل هذا الهيكل، يحدد أنواع عدة مؤشرات أطوال أساسية:
reqDataLen: يمثل طول بيانات الطلب (Request Data). يبدأ العد مباشرة بعد معرّف الخدمة، بحيث لا يكون الأخير مشمولاً في بيان الطول [SWS_Dcm_00994].resDataLen: يحدد طول بيانات الاستجابة الإيجابية، باستثناء معرّف الخدمة أيضًا [SWS_Dcm_00994].resMaxDataLen: يحدد أقصى طول ممكن للاستجابة، والذي يتم تقييده بحجم ذاكرة التخزين المؤقت المخصصة [SWS_Dcm_00994].
لذلك، عند تنفيذ معالجات الخدمات (Service Handlers)، يجب الحرص بشدة على أن تتم حسابات الطول لكل من reqDataLen وresDataLen دائمًا دون معرّف الخدمة، وألا تتجاوز بيانات الاستجابة حد ذاكرة التخزين المؤقت المحدد بواسطة resMaxDataLen [SWS_Dcm_00994].
تم توليد ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR CP R20-11.
نوع Dcm_MsgAddInfoType [SWS_Dcm_00992] 📄 PDF
Additional information on message request. Datastructure: Bitfield
تم تعريف نوع البيانات Dcm_MsgAddInfoType وفقًا لـ [SWS_Dcm_00992] كهيكل حقل بت، ويُستخدم لتوفير معلومات حالة وتحكم تكميلية لرسالة تشخيص. يتوفر هذا النوع في AUTOSAR الكلاسيكي عبر ملف الترويسة Dcm.h، ويُستخدم كعنصر msgAddInfo داخل هيكل السياق الأعلى Dcm_MsgContextType ([SWS_Dcm_00994]) لتجميع المعلومات الإضافية الخاصة بطلبات الخدمة والاستجابات المرتبطة بها بشكل متسق.
يحدد هيكل حقل البت وفقًا لـ [SWS_Dcm_00992] أعلام تحكم فردية بموضع بت محدد بدقة:
reqType(الموضع LSB+0): يحدد نمط عنونة طلب التشخيص. تشير القيمة0إلى طلب فيزيائي (physical request)، بينما تشير القيمة1إلى طلب وظيفي (functional request).suppressPosResponse(الموضع LSB+1): يحدد السلوك المتعلق بالاستجابات الإيجابية. عند القيمة0، لا يتم كتم الاستجابة الإيجابية (do not suppress)، في حين تنص القيمة1على عدم جواز إرسال استجابة إيجابية (no positive response will be sent).
نظرًا لأن Dcm_MsgAddInfoType يمثل هيكل بيانات صرف لتمرير المعلمات والسياق، فلا توجد لهذا النوع في حد ذاته دلالات استدعاء متزامنة أو غير متزامنة، أو قيم إرجاع، أو قواعد لإعادة الدخول، أو رسائل خطأ خاصة لـ DET أو DEM. ومن المفترض أن يقع التقييم الفعلي للبتات المضبوطة ومراعاتها في المسار الإضافي على عاتق روتينات المعالجة الداخلية في Diagnostic Communication Manager عند وصولها إلى سياق الرسالة من [SWS_Dcm_00994]. سؤال Q-b27248cc452ba1b1 (مفتوح)
تم إنشاء هذا النص بواسطة ذكاء اصطناعي وهو بمثابة دليل توجيهي في بيئة AUTOSAR.
نوع Dcm_IdContextType [SWS_Dcm_00993] 📄 PDF
This message context identifier can be used to determine the relation between request and response confirmation.
نوع Dcm_MsgContextType [SWS_Dcm_00994] 📄 PDF
This data structure contains all information which is necessary to process a diagnostic message from request to response and response confirmation.
يوفر هيكل البيانات Dcm_MsgContextType كل المعلومات اللازمة للتحكم في طلب التشخيص بدءًا من المعالجة وحتى الاستجابة والتأكيد [SWS_Dcm_00994]. ويُمرَّر كمعلمة دخل/خرج pMsgContext إلى روتينات الخدمة غير المتزامنة والقابلة لإعادة الدخول [SWS_Dcm_00763]، [SWS_Dcm_00764]. وفي هذا الإطار، يُشير مؤشرا حمولة البيانات reqData وresData دائمًا مباشرةً إلى ما بعد معرّف الخدمة (SID)، ولا تتضمن مواصفات الطول reqDataLen وresDataLen معرّف SID [SWS_Dcm_00994]. وتُعيد الوحدة الفرعية DSD إدراج Response-SID في الموضع الأول عند النسخ إلى مخزن الإرسال المؤقت [SWS_Dcm_00223]، [SWS_Dcm_00224].
عند الاستخدام، ينبغي مراعاة الجوانب التالية:
- طول الاستجابة وحالة الخطأ: إذا تجاوز طول الاستجابة المُنشأة حدود المخزن المؤقت المحددة عبر الحقل المعتمد على البروتوكول
resMaxDataLenوكانDcmPagedBufferEnabled == FALSE، يستجيب DCM برمز الاستجابة السلبية 0x14 (DCM_E_RESPONSETOOLONG) [SWS_Dcm_01059]. وإذا فشلت المعالجة في معالج الخدمة، يُرجع التطبيقE_NOT_OKمع رمز خطأ [SWS_Dcm_00763]. - المعلومات الإضافية وكتم الاستجابة: يُنقل عبر
msgAddInfoمن بين أمور أخرىsuppressPosRspMsgIndicationBit؛ وإذا كان هذا الحقل معيَّنًا، يكتم DSD الاستجابات الإيجابية [SWS_Dcm_00202]، [SWS_Dcm_00231]. - دورة الحياة وتعيين السياق: يفقد الهيكل صلاحيته بمجرد الوصول إلى التأكيد وتُفقد جميع بيانات الرسالة [SWS_Dcm_00994]. ويجب على التطبيقات حفظ المعرّف
idContextبالفعل عند بدء الطلب لربط التأكيد اللاحق بالطلب الأصلي [SWS_Dcm_00994]. - الارتباط بالبروتوكول: يحدد الحقل
dcmRxPduIdوحدة PDU الخاصة بالاستقبال ويتيح معالجة متباينة وفقًا لبروتوكول التشخيص، على سبيل المثال بين OBD والتشخيص المتقدم [SWS_Dcm_00994].
تفسير: نظرًا لأن السياق يصبح غير صالح عند التأكيد، يُرجَّح تحرير مخزن الذاكرة المؤقت الأساسي أو الكتابة فوقه فورًا بواسطة DSL بعد إرسال الاستجابة للاتصالات اللاحقة. سؤال Q-88e3cf2f3d8f6076 (مفتوح)
تم توليد هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
نوع Dcm_ExtendedOpStatusType [SWS_Dcm_91015] 📄 PDF
يعتمد النوع Dcm_ExtendedOpStatusType على uint8 ويتم توفيره عبر ملف الرأس Dcm.h [SWS_Dcm_91015]. ويتحكم كمعلمة إدخال OpStatus في مراحل التنفيذ والتأكيدات في دوال التشخيص والدوال الفرعية غير التزامنية مثل <Module>_<DiagnosticService> [SWS_Dcm_00763] وكذلك <Module>_<DiagnosticService>_<SubService> [SWS_Dcm_00764].
تشير قيم الحالة المحددة إلى تقدم العملية واستجابات DCM [SWS_Dcm_91015]:
DCM_INITIAL(0x00): أول استدعاء للعملية.DCM_PENDING(0x01): استدعاء لاحق بعد حالة وسيطة تم الإبلاغ عنها في الاستدعاء السابق (Pending).DCM_CANCEL(0x02): طلب من DCM لإلغاء العملية الجارية.DCM_FORCE_RCRRP_OK(0x03): تأكيد إرسال استجابة معلقة (Response Pending).DCM_POS_RESPONSE_SENT(0x04) وDCM_POS_RESPONSE_FAILED(0x05): إقرار بنجاح أو فشل إرسال استجابة إيجابية.DCM_NEG_RESPONSE_SENT(0x06) وDCM_NEG_RESPONSE_FAILED(0x07): إقرار بنجاح أو فشل إرسال استجابة سلبية.
فيما يتعلق بالتزامن، تم تحديد واجهات التشخيص المستدعاة على أنها قابلة لإعادة الدخول وغير تزامنية [SWS_Dcm_00763] [SWS_Dcm_00764]. وعند حدوث أخطاء، تقدم دالة الخدمة قيمة الإرجاع E_NOT_OK وتعيّن رمز استجابة سلبية (NRC) لمعلمة الإخراج ErrorCode، حيث ترسل وحدة DCM بعد ذلك استجابة سلبية بهذا الرمز [SWS_Dcm_00763] [SWS_Dcm_00764].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على المواصفات.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
نوع Dcm_OpStatusType [SWS_Dcm_00984] 📄 PDF
يعتمد النوع Dcm_OpStatusType على uint8 ويتم توفيره عبر ملف الرأس Rte_Dcm_Type.h [SWS_Dcm_00984]. وهو يتحكم في حالة التنفيذ ودورة الحياة للعمليات التشخيصية غير المتزامنة لـ Diagnostic Communication Manager (DCM)، مثل Dcm_ReadMemory [SWS_Dcm_00539]، أو Dcm_WriteMemory [SWS_Dcm_00540]، أو Dcm_SetProgConditions [SWS_Dcm_00543].
تم تحديد أربع قيم حالة للتحكم في تسلسل العملية [SWS_Dcm_00984]:
DCM_INITIAL(0x00): يحدد أول استدعاء لعملية بواسطة DCM [SWS_Dcm_00527].DCM_PENDING(0x01): يشير إلى استدعاء لاحق بعد إرجاع مسبق لحالة معلقة [SWS_Dcm_00984]. إذا أرجعت إحدى العمليات قيمة الخطأDCM_E_PENDING، يستدعي DCM هذه العملية مجددًا معOpStatus = DCM_PENDINGفي كل دورة لاحقة منDcm_MainFunction، حتى تكتمل المعالجة [SWS_Dcm_00530].DCM_CANCEL(0x02): يطلب صراحةً من الجهة المستدعاة إلغاء عملية غير متزامنة لا تزال معلقة [SWS_Dcm_00984].DCM_FORCE_RCRRP_OK(0x03): يؤكد نجاح إرسال رسالة تعليق الاستجابة (NRC 0x78) [SWS_Dcm_00984]. إذا استجابت العملية بـDCM_E_FORCE_RCRRP، يبدأ DCM في إرسال RCR-RP ويوقف الاستدعاءات الإضافية للعملية مؤقتًا حتى يكتمل الإرسال [SWS_Dcm_00528].
فيما يتعلق بالتزامن والشروط الحدية، فإن العمليات التي تستقبل Dcm_OpStatusType كمعلمة تمرير مصممة لتكون غير متزامنة ومحددة على أنها غير قابلة لإعادة الدخول [SWS_Dcm_00539] [SWS_Dcm_00754].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويُستخدم كدليل توجيهي للمواصفات.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
نوع Dcm_ConfirmationStatusType [SWS_Dcm_00983] 📄 PDF
الاستخدام ومجال القيم
نوع البيانات Dcm_ConfirmationStatusType هو نوع تعداد مشتق من uint8، ويتم توفيره عبر ملف الترويسة Rte_Dcm_Type.h [SWS_Dcm_00983]. يُستخدم للإبلاغ عن حالة استجابة التشخيص المرسلة — سواء عند الإرسال الناجح أو عند حدوث أخطاء في النقل — إلى التطبيق أو معالجات الخدمة الداخلية [SWS_Dcm_01342]. يتضمن نطاق القيم أربع حالات منفصلة [SWS_Dcm_00983]:
DCM_RES_POS_OK(0x00): التفسير: تم نقل استجابة التشخيص الإيجابية بنجاح. سؤال (مفتوح)DCM_RES_POS_NOT_OK(0x01): التفسير: حدث خطأ أثناء نقل استجابة التشخيص الإيجابية. سؤال (مفتوح)DCM_RES_NEG_OK(0x02): التفسير: تم نقل استجابة التشخيص السلبية (NRC) بنجاح. سؤال (مفتوح)DCM_RES_NEG_NOT_OK(0x03): التفسير: حدث خطأ أثناء نقل استجابة التشخيص السلبية. سؤال (مفتوح)
التفاعل والواجهات
يتم تمرير حالة التأكيد كمعامل إدخال (IN) في دوال رد النداء المتزامنة. في واجهة التأكيد العامة Xxx_Confirmation، يتم إرسال المعامل جنبًا إلى جنب مع معرف الخدمة (SID)، ونوع العنونة (ReqType)، ومعرف الاتصال (ConnectionId)، ونوع البروتوكول، وعنوان مصدر جهاز الاختبار [SWS_Dcm_01342]. وبالمثل، تدمج الواجهة ServiceRequestNotification هذه الحالة عبر العملية Confirmation [SWS_Dcm_00694].
عند تنفيذ خدمات الروتين، يُستخدم هذا النوع تحديدًا للإبلاغ عن حالة النقل بعد اكتمال عمليات الروتين الفردية. وتُستخدم لهذا الغرض عمليات إعادة الاتصال Xxx_StartConfirmation [SWS_Dcm_91016] وXxx_StopConfirmation [SWS_Dcm_91017] وXxx_RequestResultsConfirmation [SWS_Dcm_91018] المُعلنة في Dcm_Externals.h.
التزامن والتنفيذ
تُرجع دوال التأكيد قيمة Std_ReturnType (مثل E_OK أو E_NOT_OK) [SWS_Dcm_01342]، [SWS_Dcm_91016]. وتُنفذ جميع استدعاءات الواجهة المذكورة بشكل متزامن، وتكون معلنة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_Dcm_01342]، [SWS_Dcm_91016]، [SWS_Dcm_91017]، [SWS_Dcm_91018].
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى مواصفات AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
نوع Dcm_SecLevelType [SWS_Dcm_00977] 📄 PDF
Security Level type definition
نوع Dcm_SesCtrlType [SWS_Dcm_00978] 📄 PDF
Session type definition. 0, 127 and all values above 127 are reserved by ISO.
نوع Dcm_ProtocolType [SWS_Dcm_00979] 📄 PDF
Type Dcm_ProtocolType.
نوع Dcm_NegativeResponseCodeType [SWS_Dcm_00980] 📄 PDF
Type Dcm_NegativeResponseCodeType.
نوع Dcm_DataArrayType [SWS_Dcm_01121] 📄 PDF
نوع Dcm_InfoType [SWS_Dcm_01013] 📄 PDF
نوع Dcm_RequestDataArrayType [SWS_Dcm_01165] 📄 PDF
نوع Dcm_InputOutputControlParameterType [SWS_Dcm_01305] 📄 PDF
نوع Dcm_IOOperationResponseType [SWS_Dcm_01307] 📄 PDF
نوع Dcm_DidSupportedType [SWS_Dcm_01138] 📄 PDF
نوع Dcm_FileAndDirNameType [SWS_Dcm_91066] 📄 PDF
نوع Dcm_ResponseDataArrayType [SWS_Dcm_91064] 📄 PDF
نوع Dcm_AuthenticationRoleType [SWS_Dcm_91068] 📄 PDF
نوع البيانات Dcm_AuthenticationRoleType محدد كمصفوفة بايتات (uint8)، ويتحدد حجمها بواسطة معلمة التكوين DcmDspAuthenticationRoleSize [SWS_Dcm_91068]. ويتم توفيره عبر ملف الترويسة Rte_Dcm_Type.h ويُستخدم في وحدة DCM للتمثيل الرسمي لأدوار المصادقة [SWS_Dcm_91068].
في التطبيق العملي، يُستخدم النوع كمعلمة إدخال لتحديد الأدوار لاتصالات التشخيص غير المصادق عليها:
- الاستخدام والدلالات: يُمرر النوع كمعلمة إدخال
deauthenticatedRoleفي دالة CDcm_SetDeauthenticatedRole(المتاحة عبرDcm.h) [SWS_Dcm_91069] وكذلك العمليةSetDeauthenticatedRoleالخاصة بواجهة الخدمةAuthentication[SWS_Dcm_91072]. وبذلك يتم تعيين دور غير مصادق عليه بشكل متزامن للاتصال المحدد عبرconnectionId[SWS_Dcm_91069]. - التزامن والصلاحية: تم تحديد واجهة C-API
Dcm_SetDeauthenticatedRoleعلى أنها قابلة لإعادة الدخول (reentrant) [SWS_Dcm_91069]. ويظل الدور المخصص نشطًا للاتصال المعني حتى ينتقل هذا الأخير إلى الحالة الموثقة أو يتم إعادة ضبط وحدة التحكم (ECU) [SWS_Dcm_91069]، [SWS_Dcm_91072]. - معالجة الأخطاء: لا توجد رموز خطأ محددة للنوع والعمليات المقترنة به؛ وتُرجع الدالة افتراضيًا دائمًا
E_OK[SWS_Dcm_91069]، [SWS_Dcm_91072].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على المواصفات.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع DiagnosticSessionControlModeSwitchInterface [SWS_Dcm_91033] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Diagnostic Session
الاستخدام
وفقًا لـ [SWS_Dcm_91033]، تم الإعلان عن عنصر الواجهة DiagnosticSessionControlModeSwitchInterface كمنفذ مقدم (PPortPrototype أو ProvidedPort) للموديول DCM ويستخدم الواجهة Dcm_DiagnosticSessionControlModeSwitchInterface. وفقًا للمواصفات في [SWS_Dcm_91033]، يُستخدم هذا المنفذ لإخطار مكونات البرمجيات (SW-Cs) بالتغيير والحالة الحالية لجلسة التشخيص النشطة (Diagnostic Session).
تفسير: من المحتمل أن يتولى الموديول DCM دور المرسل هنا، والذي يمرر تغييرات حالة جلسة التشخيص عبر RTE إلى مكونات البرمجيات المعنية. سؤال Q-6af0e97b6910087d (مفتوح) من المحتمل أن تتلقى مكونات SW-C المتصلة تغييرات الوضع هذه عبر أحداث Mode-Switch المكوّنة وتعالجها لتكييف العمليات الداخلية أو التصاريح أو سلوكها الوظيفي مع جلسة التشخيص النشطة.
معالجة الأخطاء والشروط الحدية
لم تُحدَّد لهذا المنفذ في [SWS_Dcm_91033] أي رموز أخطاء أو قيم إرجاع أو إشعارات إلى DET أو DEM خاصة به. التفسير: يُرجَّح بالتالي أن تتم مراقبة أي حالات خطأ أثناء الإرسال ومعالجتها بالكامل بواسطة الآليات العامة لـ AUTOSAR-RTE ووحدة DCM الأساسية. سؤال Q-a8055458432174f6 (مفتوح) لا تتضمن بيانات المواصفة قيودًا خاصة بشأن قابلية إعادة الدخول (Reentrancy) أو سياق الاستدعاء، وبالتالي لم تُدرس بمزيد من التفصيل.
تم إنشاء هذا النص بواسطة ذكاء اصطناعي استنادًا إلى مواصفات AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع EcuResetModeSwitchInterface [SWS_Dcm_91034] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about an upcoming ECU Reset and its type
عنصر المنفذ EcuResetModeSwitchInterface محدد وفقًا لـ [SWS_Dcm_91034] كمنفذ مُقدَّم (ProvidedPort أو PPortPrototype) للوحدة DCM. وهو يستخدم الواجهة Dcm_EcuResetModeSwitchInterface ويُستخدم لإخطار مكونات البرمجيات (SW-Cs) بإعادة تعيين وشيكة لوحدة التحكم الإلكترونية وكذلك بالنوع الدقيق لإعادة التعيين [SWS_Dcm_91034].
تنطبق الجوانب التالية على الاستخدام والتفاعل داخل النظام:
- دور الاتصال: تعمل DCM كمرسل لتغيير النمط. ترتبط مكونات البرمجيات SW-Cs المعنية عبر منافذ مستقبلة (R-Ports) متطابقة للاستجابة للإشعار [SWS_Dcm_91034].
- دلالات تغيير النمط: كـ
ModeSwitchInterface، لا يتم إرسال قيم إرجاع العميل-الخادم أو معلمات البيانات هنا، بل تتم الإشارة إلى تغييرات الحالة عبر RTE [SWS_Dcm_91034]. وبالتالي يتم الإشعار عبر تصريحات النمط (Mode-Declarations) الخاصة بالواجهة. - استجابة المكونات: من خلال نوع إعادة التعيين المُبلَّغ، تحصل مكونات البرمجيات SW-Cs على معرفة بنوع إعادة التشغيل الوشيكة [SWS_Dcm_91034]. ويُرجح أن يتيح ذلك للتطبيقات حفظ بيانات وقت التشغيل المؤقتة بشكل منظم في الذاكرة غير المتطايرة أو وضع العتاد الطرفي في حالة آمنة قبل إعادة التشغيل (تفسير). سؤال Q-4dcf9314d84b53a0 (مفتوح)
- معالجة الأخطاء: لا يتضمن تعريف الواجهة نفسه رسائل خطأ أو قنوات إرجاع لحالات الخطأ الخاصة بمكونات البرمجيات SW-Cs [SWS_Dcm_91034].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند إلى 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] كـ PPortPrototype (ProvidedPort) للواجهة Dcm_ModeRapidPowerShutDownModeSwitchInterface في الوحدة Dcm. وهي تُستخدم لإخطار مكونات البرمجيات (SW-Cs) بنمط إيقاف التشغيل السريع (Rapid Power Shut Down Mode).
فيما يتعلق بالاستخدام والسلوك والتفاعل، فإن الجوانب التالية ذات صلة:
- الاستخدام والدلالات: عبر
ModeSwitchInterface، تشير DCM إلى تغييرات النمط لمكونات البرمجيات SW-Cs المتصلة. يقع سياق الاستدعاء داخل وحدة DCM، التي تُحدث تغيير النمط؛ ويتم الإرسال إلى المستقبلين بشكل غير متزامن عبر RTE [SWS_Dcm_91035]. - معالجة الأخطاء: لا يحتوي تعريف المنفذ على رموز أخطاء محددة أو قيم إرجاع أو أحداث DET/DEM. لذلك، يُرجَّح اعتراض الأخطاء أثناء نقل النمط بالكامل عبر الآليات القياسية لـ AUTOSAR-RTE الخاصة بمنافذ تبديل النمط. سؤال Q-16537a6a4e19e40b (مفتوح)
- التزامن والقيود: يتم الإشعار في سياق تنفيذ DCM. يُرجح تنشيط مكونات البرمجيات SW-Cs المستقبلة عبر كيانات قابلة للتشغيل مُحفَّزة بالنمط (mode-triggered runnables)، ويجب تصميمها بحيث تنفذ إجراءات إيقاف التشغيل السريع دون تأخيرات حاجزة. سؤال Q-20f196c7af208288 (مفتوح)
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفات AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع ControlDTCSettingModeSwitchInterface [SWS_Dcm_91037] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the DTC Setting mode
الاستخدام والغرض
العنصر ControlDTCSettingModeSwitchInterface هو، وفقًا لـ [SWS_Dcm_91037]، عبارة عن ModeSwitchInterface مقدَّم كمنفذ مُوفَّر (PPortPrototype) خاص بـ Diagnostic Communication Manager (DCM). وتتمثل مهمته الأساسية في إخطار مكونات البرمجيات (SW-Cs) المتصلة بالحالة الحالية لنمط إعداد DTC (DTC Setting mode).
تُستخدم Dcm_ControlDTCSettingModeSwitchInterface كواجهة للمنفذ هنا [SWS_Dcm_91037]. ونظرًا لأن DCM تعلن عن هذا المنفذ كمنفذ مُوفَّر، فإن وحدة التشخيص تتولى دور مدير النمط أو المرسل. يمكن لمكونات التطبيق الارتباط عبر المنافذ المطلوبة المقابلة لتلقي تغييرات الحالة وتكييف سلوكها الداخلي.
التفاعل وتكامل النظام
يركز التفاعل في بنية النظام على فك الارتباط بين أوامر التشخيص ومنطق التطبيق:
- نشر النمط: عبر المنفذ المُقدَّم، تُبلّغ DCM مكونات البرمجيات SW-Cs بما إذا كان تخزين رموز أخطاء التشخيص وتحديثها نشطًا أم محظورًا [SWS_Dcm_91037]. ويُرجح أن يتم إخطار مكونات البرمجيات SW-Cs في بيئة تشغيل AUTOSAR عبر أحداث تبديل النمط القياسية الخاصة بـ RTE. سؤال Q-8c0918099f2aa797 (مفتوح)
- الأصل التشخيصي: يُرجح أن يكون تبديل نمط إعداد DTC في سياق مباشر لخدمات تشخيص UDS مثل ControlDTCSetting (الخدمة 0x85)، والتي يمكن للمفحوص الخارجي من خلالها منع تسجيل الأخطاء مؤقتًا. سؤال Q-f2555e0641476955 (مفتوح)
معالجة الأخطاء والشروط الحدية
نظرًا لأن المواصفة في [SWS_Dcm_91037] لا تحدد رموز خطأ معينة ولا رسائل DET أو قيم إرجاع، فإن نقل النمط يتم بشكل تعريفي بحت عبر آليات RTE. ولا توجد متطلبات خاصة بسياقات الاستدعاء أو قابلية إعادة الدخول معلنة لتعريف المنفذ نفسه.
تم إنشاء هذا النص بواسطة ذكاء اصطناعي استنادًا إلى مواصفات AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع SecurityAccessModeSwitchInterface [SWS_Dcm_91039] 📄 PDF
A ModeSwitchInterface PPortPrototype used to notify SW-Cs about the current Security Level
يوفر عنصر المنفذ SecurityAccessModeSwitchInterface في الوحدة DCM منفذًا مُوفَّرًا (PPortPrototype) استنادًا إلى الواجهة Dcm_SecurityAccessModeSwitchInterface [SWS_Dcm_91039]. الغرض من هذه الواجهة هو إخطار مكونات البرمجيات (SW-Cs) بمستوى الأمان (Security Level) النشط حاليًا [SWS_Dcm_91039].
الاستخدام والتكامل
يتم الإشعار عبر منفذ DCM إلى المكونات المتصلة [SWS_Dcm_91039]. ويُرجح أن يكون التوفير محققًا كاتصال تبديل نمط عبر AUTOSAR-RTE، بحيث يمكن لمكونات البرمجيات SW-Cs المرتبطة الاستجابة لتغيرات حالة مستوى الأمان عبر أحداث تبديل النمط (تفسير). سؤال Q-d86dacdb91979b87 (مفتوح) المعلمات أو قيم الإرجاع أو استدعاءات الدوال المتزامنة المحددة غير معرّفة في وصف المنفذ [SWS_Dcm_91039]؛ وبالتالي يُرجح أن يتوافق النقل مع دلالات البث غير المتزامن لمدير النمط (تفسير). سؤال Q-9d750df4f73b1634 (مفتوح)
معالجة الأخطاء والقيود
نظرًا لأن الأمر مجرد تبديل نمط بحت، فإن المواصفة لا تذكر رموز خطأ معينة أو عمليات فحص للمعلمات أو رسائل إلى DET أو DEM [SWS_Dcm_91039]. ويُرجح ألا تكون المعالجة المباشرة للأخطاء أثناء الإشعار متوقعة في الواجهة نفسها (تفسير). سؤال (مفتوح) لا توجد قيود محددة لعنصر المنفذ فيما يتعلق بقابلية إعادة الدخول أو المتغيرات المختلفة [SWS_Dcm_91039].
تم إنشاء ملاحظة الاستخدام هذه آليًا وتستند إلى متطلبات إصدار AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع DcmDiagnosticSessionControl [SWS_Dcm_91019] 📄 PDF
ModeDeclarationGroup representing the different diagnostic sessions Further modes to be added: {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDspSession/ DcmDspSessionRow.SHORT-NAME)}
نوع DcmEcuReset [SWS_Dcm_91021] 📄 PDF
ModeDeclarationGroup representing the different ECU reset types
نوع DcmModeRapidPowerShutDown [SWS_Dcm_91023] 📄 PDF
ModeDeclarationGroup representing the enable/disable state of rapid power shutdown
يُستخدم ModeDeclarationGroup DcmModeRapidPowerShutDown لتمثيل حالة التمكين لإيقاف التشغيل السريع (Rapid Power Shutdown) في وحدة التحكم الإلكترونية (ECU) [SWS_Dcm_91023]. ينتمي العنصر إلى الفئة EXPLICIT_ORDER ويحدد وضعين ملموسين: الوضع الأولي DCM_ENABLE_RAPIDPOWERSHUTDOWN بالقيمة العددية 0 بالإضافة إلى DCM_DISABLE_RAPIDPOWERSHUTDOWN بالقيمة 1 [SWS_Dcm_91023]. بالنسبة لانتقالات الوضع، تم تحديد قيمة الانتقال 255 (On transition value) [SWS_Dcm_91023].
التفاعل وإدارة الأوضاع
يعمل الموديول DCM في النظام الكلي كمدير وضع (Mode Manager) لسلسلة من الأوضاع التشخيصية، والتي تتضمن أيضًا DcmModeRapidPowerShutDown في سياق خدمة التشخيص 0x11 (ECU Reset) [SWS_Dcm_00775]. داخل برمجيات الأساس (BSW)، يحدد DCM لهذا الغرض ModeDeclarationGroupPrototype DcmModeRapidPowerShutDown كـ provided-ModeGroup في نسخة موديول BSW الخاصة به بناءً على ModeDeclarationGroup [SWS_Dcm_00807] هذا.
تربط مكونات التطبيق (SW-Cs) التي يجب إبلاغها بحالة التمكين الحالية لإيقاف التشغيل السريع واجهة الخدمة القياسية Dcm_ModeRapidPowerShutDownModeSwitchInterface بـ [SWS_Dcm_91024]. وعبر مجموعة الأوضاع modeRapidPowerShutDown الخاصة بها، فإنها تستقبل تغييرات الأوضاع المقابلة من DCM في وقت التشغيل [SWS_Dcm_91024].
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا بناءً على متطلبات المواصفة لـ AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع DcmCommunicationControl [SWS_Dcm_91025] 📄 PDF
ModeDeclarationGroup representing the different communication control states
نوع DcmControlDTCSetting [SWS_Dcm_91027] 📄 PDF
ModeDeclarationGroup representing the enable/disable state for DTC storage
نوع DcmResponseOnEvent [SWS_Dcm_91029] 📄 PDF
ModeDeclarationGroup representing the state of a Response On Event
نوع DcmSecurityAccess [SWS_Dcm_91031] 📄 PDF
ModeDeclarationGroup representing the different diagnostic security levels Further modes to be added: {ecuc(Dcm/DcmConfigSet/DcmDsp/DcmDsp Security/DcmDspSecurityRow.SHORT-NAME)}
يمثل ModeDeclarationGroup DcmSecurityAccess من الفئة EXPLICIT_ORDER مستويات الأمان التشخيصية المختلفة لوحدة التحكم الإلكترونية (ECU) لخدمة UDS المعنونة 0x27 (SecurityAccess) [SWS_Dcm_91031]، [SWS_Dcm_00775]. كوضع أولي، يتم تحديد DCM_SEC_LEV_LOCKED افتراضيًا بالقيمة الثابتة 0 [SWS_Dcm_91031]، [SWS_Dcm_01327]. تتم إضافة مستويات أمان إضافية من DCM_SEC_LEV_1 إلى DCM_SEC_LEV_63 وفقًا للمشروع والتطبيق عبر تكوين صفوف الأمان تحت DcmDspSecurityRow [SWS_Dcm_91031]، [SWS_Dcm_01327].
تتولى وحدة DCM الدور المركزي كمدير وضع (Mode Manager) لهذا الوضع التشخيصي [SWS_Dcm_00775]. مع كل تغيير في مستوى الأمان، تقوم DCM بتحديث مجموعة الأوضاع DcmSecurityAccess بالحالة الأمنية المتخذة حديثًا [SWS_Dcm_01329]. أثناء تغيير الحالة الجاري بين الأوضاع الفردية، يشير النظام إلى قيمة الانتقال المحددة 255 (On transition value) [SWS_Dcm_91031].
يتم تمرير الحالة الأمنية الحالية إلى مكونات البرمجيات عبر واجهة الخدمة Dcm_SecurityAccessModeSwitchInterface [SWS_Dcm_91032]:
- توفر DCM لهذا الغرض
ModeDeclarationGroupPrototypeDcmSecurityAccessكمجموعة أوضاع مقدمة (provided-ModeGroup) عبر الواجهة [SWS_Dcm_01327]، [SWS_Dcm_91032]. - يعلن كل مكون برمجيات (SW-C)، يجب إبلاغه بمستوى الأمان الحالي (Security Level)، عن تبعية لواجهة ModeSwitch
Dcm_SecurityAccessModeSwitchInterfaceويربطها كمنفذ مطلوب (Required-Port) [SWS_Dcm_91032]. - يخضع توفر الأوضاع الفردية في الواجهة لنفس متغيرات التكوين لصفوف الأمان الأساسية [SWS_Dcm_91032].
تم إنشاء هذا النص بواسطة الذكاء الاصطناعي.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_Dcm- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_Dcm@rel:R20-11#c1619121- Content hash
c1619121- 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 · الأصل الألماني