Настраивает допустимый параллелизм для операций чтения и записи на портах для идентификаторов данных.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: ec523fe189beПроисхождениеОткрытые вопросы (3)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Настраивает допустимый параллелизм для операций чтения и записи на портах для идентификаторов данных.
Структура ara::diag::DataIdentifierConcurrencyType определяет допустимое поведение параллелизма для диагностических портов, связанных с идентификаторами данных (Data Identifier) [SWS_DM_00936]. С помощью переменных-членов read, write и readWrite приложение определяет, в какой степени Diagnostic Management (DM) может параллельно выполнять вызовы чтения и записи. Важным граничным условием является то, что все поля по умолчанию безопасно предварительно инициализированы значением ConcurrencyType::kNotConcurrent, вследствие чего параллельное выполнение разрешается только путем явной установки значения kConcurrent[SWS_DM_00939].
Контекст
C++-структура ara::diag::DataIdentifierConcurrencyType служит в AUTOSAR Adaptive Platform для спецификации поведения параллелизма на портах, связанных с диагностическими идентификаторами данных (Data Identifier, DID) [SWS_DM_00936]. Она выступает в качестве стандартизированного типа данных конфигурации, с помощью которого прикладное программное обеспечение объявляет диагностической системе времени выполнения свои возможности параллельной обработки (AUTOSAR_AP_SWS_Diagnostics §8.8.2 «Struct: DataIdentifierConcurrencyType»). Структура является частью определений интерфейсов для модуля diag (AUTOSAR_AP_SWS_Diagnostics с. 79).
Основным партнером по взаимодействию является Diagnostic Management (DM). Поступающие диагностические запросы принимаются DM и перенаправляются соответствующим методам порта DataIdentifier. На основе сохраненных в DataIdentifierConcurrencyType значений DM решает, могут ли операции чтения и записи вызываться параллельно или они должны быть сериализованы последовательно [SWS_DM_00939].
Жизненный цикл
Структура подключается через заголовочный файл ara/diag/concurrency.h и инстанцируется как чистый C++-объект данных (struct) [SWS_DM_00936]. При создании все содержащиеся переменные-члены безопасно инициализируются значением по умолчанию ConcurrencyType::kNotConcurrent[SWS_DM_00937]. Это гарантирует, что без явного разрешения со стороны приложения параллельные вызовы со стороны DM не происходят.
Жизненный цикл конфигурации структуры, как правило, привязан к инициализации соответствующего порта DataIdentifier. Приложение создает объект, задает желаемые степени параллелизма и передает конфигурацию порту. Во время последующей активной диагностической работы настройки остаются неизменными, что позволяет Diagnostic Management детерминированно диспетчеризировать вызовы методов (AUTOSAR_AP_SWS_Diagnostics §8.8.2.1 «Public Member Variables»).
Структура разделяет параллелизм на три ортогональных конфигурационных поля:
read: определяет тип параллелизма для операций исключительно чтения (Reads) [SWS_DM_00937].
write: определяет тип параллелизма для операций записи (Writes) [SWS_DM_00938].
readWrite: определяет поведение при совместном параллельном вызове методов чтения и записи [SWS_DM_00939].
Путь использования
Стандартный сценарий использования начинается с предоставления диагностического сервиса адаптивным приложением. Если внутренняя реализация порта потокобезопасна, приложение может разрешить параллельное выполнение операций чтения и записи. Для этого создается экземпляр DataIdentifierConcurrencyType и поле readWrite устанавливается в ConcurrencyType::kConcurrent[SWS_DM_00939]. Аналогичным образом могут быть при необходимости сконфигурированы read и write[SWS_DM_00937], [SWS_DM_00938].
Как только порт DataIdentifier регистрируется в DM, DM принимает внешние диагностические команды и пересылает их (AUTOSAR_AP_SWS_Diagnostics с. 1115). Если задано kConcurrent, DM разрешено одновременно выполнять входящие вызовы чтения и записи, за счет чего оптимизируются пропускная способность и задержка [SWS_DM_00939]. Если конфигурация остается со значением по умолчанию kNotConcurrent, DM сериализует вызовы.
Диаграмма последовательности: типичный процесс конфигурации и управления параллельными вызовами со стороны Diagnostic Management (DM). Источники: [SWS_DM_00936], [SWS_DM_00939].
Настоящее руководство обобщает спецификацию ara::diag::DataIdentifierConcurrencyType в AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал