Стандарт AUTOSAR Classic Platform определяет важные сервисы как часть Basic Software (BSW), которая выполняется в среде выполнения AUTOSAR (RTE). Примеры включают услуги, предоставляемые Diagnostic Event Manager (Dem), Function Inhibition Manager (FiM) и NVRAM Manager (NvM). В AUTOSAR RTE компоненты программного обеспечения AUTOSAR обычно получают доступ к службам BSW с помощью связи клиент-сервер или отправитель-получатель.
Для поддержки моделирования компонентов и служб AUTOSAR на уровне системы, AUTOSAR Blockset предоставляет библиотеку блоков AUTOSAR Basic Software. Библиотека содержит предварительно сконфигурированные блоки для моделирования вызовов компонентов сервисов AUTOSAR BSW и ссылочных реализаций сервисов BSW. Для получения информации об использовании блоков для моделирования вызовов клиентов к сервисным интерфейсам AUTOSAR BSW, смотрите Модель AUTOSAR Basic Software Service Calls.
Пример live скрипта симуляции сервисов AUTOSAR BSW см. в примере Simulate AUTOSAR Basic Software Services и Run-Time Environment.
Вот пример настройки вызовов клиентов к интерфейсам Dem в программном компоненте AUTOSAR.
Откройте модель, которая сконфигурирована для генерации кода AUTOSAR. Используя браузер библиотек или вводя имена блоков в окне модели, добавьте блоки Dem к модели. Этот пример добавляет блоки DiagnosticInfoCaller и DiagnosticMonitorCaller к копии примера модели с возможностью записи autosar_swc
.
Откройте каждый блок и исследуйте параметры, особенно Operation. Если вы выбираете другую операцию и кликаете Apply, программа обновляет входные и выходные входы блоков так, чтобы они совпадали с аргументами выбранной операции.
Этот пример меняет Operation для блока DiagnosticInfoCaller на GetEventStatus
на GetEventFailed
. (Для примера использования GetEventFailed
в реализации мониторинга положения дросселя см. пример Моделирование основных сервисов программного обеспечения AUTOSAR и окружения выполнения.)
Для некоторых операций Dem, таких как GetDTCOfEvent
и SetEventStatus
диалоговое окно параметров блоков отображает параметр типа данных. Параметр задает перечисленный тип данных для входного параметра функции, которая представляет тип формата Dem или статус события. Предусмотрены типы данных по умолчанию, такие как Dem_DTCFormatType
или Dem_EventStatusType
. Для получения дополнительной информации о типе формата или значениях статуса события смотрите стандартную спецификацию AUTOSAR Diagnostic Event Manager.
Откройте редактор Отображения. Как обновить Simulink® Для отображения модели в AUTOSAR с изменениями на вызывающие абоненты функции Simulink нажмите кнопку Update. Программное обеспечение создает интерфейсы, операции и порты клиента AUTOSAR и сопоставляет каждого вызывающего абонента функции Simulink с клиентским портом и операцией AUTOSAR.
Например, для блока DiagnosticMonitorCaller в этом примере, для которого SetEventStatus
операция выбрана:
Программное обеспечение создает интерфейс C-S DiagnosticMonitor
, и под DiagnosticMonitor
, его поддерживаемые операции. Для каждой операции аргументы имеют свойства только для чтения. Вот аргументы для DiagnosticMonitor
операция SetEventStatus
отображается в словаре AUTOSAR.
Программа создает клиентский порт с именем по умолчанию DiagnosticMonitor
. В отличие от C-S-интерфейса, операции и имен аргумента, имя порта клиента может быть настроено. Порт клиента сопоставлен с DiagnosticMonitor
интерфейс.
Редактор Отображения сопоставляет DiagnosticMonitor
блок вызывающего абонента функции на клиентский порт AUTOSAR DiagnosticMonitor
и операция AUTOSAR SetEventStatus
.
Опционально создайте модель компонента и исследуйте сгенерированный код C и ARXML. Код С включает клиентские вызовы услуг BSW, например:
/* FunctionCaller: '<Root>/DiagnosticInfoCaller' */ Rte_Call_DiagnosticInfo_GetEventFailed(&rtb_DiagnosticInfoCaller_o1); /* FunctionCaller: '<Root>/DiagnosticMonitorCaller' */ Rte_Call_DiagnosticMonitor_SetEventStatus(DEM_EVENT_STATUS_PASSED);
Сгенерированные файлы включения RTE определяют точки вызова операции сервера, такие как Rte_Call_DiagnosticMonitor_SetEventStatus
, и типы данных аргументов, такие как перечисляемый тип Dem_EventStatusType
.
Код ARXML определяет сервисные операции BSW, вызываемые компонентом, как серверные точки вызова, например:
<SERVER-CALL-POINTS> ... <SYNCHRONOUS-SERVER-CALL-POINT UUID="..."> <SHORT-NAME>SC_DiagnosticMo_334e61e63627b44b</SHORT-NAME> <OPERATION-IREF> <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE"> /Company/Powertrain/Components/ASWC/DiagnosticMonitor </CONTEXT-R-PORT-REF> <TARGET-REQUIRED-OPERATION-REF DEST="CLIENT-SERVER-OPERATION"> /AUTOSAR/Services/Dem/DiagnosticMonitor/SetEventStatus </TARGET-REQUIRED-OPERATION-REF> </OPERATION-IREF> <TIMEOUT>1.0E-06</TIMEOUT> </SYNCHRONOUS-SERVER-CALL-POINT> </SERVER-CALL-POINTS>
Чтобы симулировать модель компонента, создайте содержащую композицию, систему или тестовую обвязку модель. В содержащую модель вставьте ссылочные реализации Dem GetEventFailed
и GetEventStatus
сервисные операции.
Библиотека блоков AUTOSAR Basic Software предоставляет блок Diagnostic Service Component, который обеспечивает эталонные реализации сервисных операций Dem. Можно вручную вставить блок в содержащую его композицию, систему или модель тестовой обвязки или автоматически вставить блок, создав Test™ модели тестовой обвязки Simulink.
Для получения дополнительной информации смотрите Настройте Основные реализации программного обеспечения AUTOSAR для симуляции и Моделируйте Основные службы программного обеспечения AUTOSAR и окружение выполнения.
Diagnostic Service Component | DiagnosticEventAvailableCaller | DiagnosticInfoCaller | DiagnosticMonitorCaller | DiagnosticOperationCycleCaller