Для AUTOSAR Classic Platform стандарт AUTOSAR определяет важные услуги как часть базового программного обеспечения (BSW), работающего в среде выполнения AUTOSAR (RTE). Примеры включают услуги, предоставляемые диспетчером событий диагностики (Dem), менеджером ингибирования функций (FiM) и менеджером NVRAM (NvM). В AUTOSAR RTE программные компоненты AUTOSAR обычно получают доступ к службам BSW, используя связь клиент-сервер или отправитель-получатель.
Для поддержки системного моделирования компонентов и служб AUTOSAR, AUTOSAR Blockset предоставляет библиотеку блоков AUTOSAR Basic Software. Библиотека содержит предварительно сконфигурированные блоки для моделирования вызовов компонентов служб AUTOSAR BSW и ссылочных реализаций служб BSW. Для получения информации об использовании блоков для моделирования вызовов клиента к сервисным интерфейсам AUTOSAR BSW см. Модель базовых сервисных вызовов AUTOSAR.
Пример реального сценария моделирования служб BSW AUTOSAR см. в разделе Пример моделирования базовых программных служб AUTOSAR и среды выполнения.
Ниже приведен пример конфигурирования клиентских вызовов интерфейсов услуг Dem в программном компоненте AUTOSAR.
Откройте модель, настроенную для генерации кода AUTOSAR. С помощью обозревателя библиотек или путем ввода имен блоков в окне модели добавьте в модель блоки Dem. В этом примере блоки DiagnosticInfoCaller и DiagnosticMoneyCaller добавляются к копии примера модели с возможностью записи. autosar_swc.

Откройте каждый блок и изучите параметры, особенно «Работа». Если выбрать другую операцию и нажать кнопку «Применить», программа обновит входные и выходные данные блока в соответствии с аргументами выбранной операции.
В этом примере изменяется операция для блока DiagnosticInfoCaller с GetEventStatus кому GetEventFailed. (Для примера использования GetEventFailed в реализации монитора положения дросселя см. пример Simulate AUTOSAR Basic Software Services и Run-Time Environment.)

Для некоторых операций Dem, таких как GetDTCOfEvent и SetEventStatusв диалоговом окне параметров блока отображается параметр типа данных. Параметр указывает перечисляемый тип данных для ввода функции, который представляет тип формата Dem или состояние события. Предоставляются типы данных по умолчанию, такие как Dem_DTCFormatType или Dem_EventStatusType. Дополнительные сведения о типе формата или значениях состояния события см. в стандартной спецификации AUTOSAR диспетчера диагностических событий.

Откройте редактор сопоставлений кода. Чтобы обновить сопоставление Simulink ® и AUTOSAR модели с изменениями вызывающих абонентов функции Simulink, нажмите кнопку Update
. Программное обеспечение создает интерфейсы, операции и порты клиентской службы AUTOSAR и сопоставляет каждого вызывающего абонента функции Simulink с клиентским портом и операцией AUTOSAR.
Например, для блока DiagnosticMoneyCaller в этом примере, для которого SetEventStatus выбрана операция:
Программное обеспечение создает интерфейс C-S DiagnosticMonitor, и ниже DiagnosticMonitor, его поддерживаемые операции. Для каждой операции аргументам предоставляются свойства только для чтения. Вот аргументы для DiagnosticMonitor операция SetEventStatus отображается в словаре AUTOSAR.

Программа создает порт клиента с именем по умолчанию DiagnosticMonitor. В отличие от имен C-S-интерфейса, операций и аргументов, имя порта клиента можно настроить. Порт клиента сопоставлен с DiagnosticMonitor интерфейс.

Редактор сопоставлений кодов сопоставляет DiagnosticMonitor функциональный блок вызывающего абонента на клиентский порт AUTOSAR DiagnosticMonitor и работа AUTOSAR SetEventStatus.

При необходимости создайте модель компонента и проверьте сгенерированный код C и ARXML. Код C включает в себя вызовы клиента к услугам 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 предоставляет блок компонента службы диагностики, который обеспечивает ссылочные реализации операций службы Dem. Можно вручную вставить блок в содержащую его модель композиции, системы или электрического жгута или автоматически вставить блок, создав модель электрического жгута Simulink Test™.

Дополнительные сведения см. в разделе Настройка реализации основных программных служб AUTOSAR для моделирования и моделирования основных программных служб AUTOSAR и среды выполнения.
Компонент службы диагностики | DiagnosticEventAvailableCaller | DiagnosticInfoCaller | DiagnosticMonitorCaller | DiagnosticOperationCycleCaller