Стандарт AUTOSAR задает важные сервисы как часть Basic Software (BSW), который запускается в Среде выполнения AUTOSAR (RTE). Примеры включают менеджера NVRAM (NvM) и Диагностический менеджер событий (DEM). В AUTOSAR RTE, компоненты программного обеспечения AUTOSAR обычно доступ сервисы BSW, использующие клиент-сервер или коммуникация получателя отправителя.
Чтобы поддержать моделирование уровня системы компонентов AUTOSAR и услуги, AUTOSAR Blockset обеспечивает библиотеку блоков AUTOSAR Basic Software. Библиотека содержит предварительно сконфигурированные блоки для моделирования вызовов компонента услуг AUTOSAR BSW и ссылочных реализаций сервисов BSW. Для получения информации об использовании блоков к образцовым клиентским вызовам сервисных интерфейсов AUTOSAR BSW см. Модель Вызовы Программного сервиса AUTOSAR Basic.
Для примера live скрипта симуляции сервисов AUTOSAR BSW смотрите, что пример Моделирует Основные Программные сервисы AUTOSAR и Среду выполнения.
Вот пример конфигурирования клиентских вызовов сервисных интерфейсов DEM в вашем компоненте программного обеспечения AUTOSAR.
Откройте модель, которая сконфигурирована для генерации кода AUTOSAR. Используя Браузер Библиотеки или путем ввода имен блока в окне модели, добавьте блоки DEM в модель. Этот пример добавляет блоки DiagnosticInfoCaller и DiagnosticMonitorCaller к перезаписываемой копии модели autosar_swc
в качестве примера.
Когда вы вставляете каждый блок, вам предлагают имя клиентского порта, которое является именем клиентского порта AUTOSAR, используемого этим компонентом, чтобы вызвать интерфейс BSW. В целях этого примера примите имена по умолчанию, DiagnosticInfo
и DiagnosticMonitor
.
Откройте каждый блок и исследуйте параметры, особенно Operation. Если вы выбираете различную операцию и нажимаете Apply, обновления программного обеспечения вводы и выводы блока, чтобы совпадать с аргументами выбранной операции.
Этот пример изменяет Operation для блока DiagnosticInfoCaller от GetEventStatus
до GetEventFailed
. (Для примера использования GetEventFailed
в реализации монитора положения дросселя смотрите, что пример Моделирует Основные Программные сервисы AUTOSAR и Среду выполнения.)
Для некоторых операций Dem, таких как GetDTCOfEvent
и SetEventStatus
, диалоговое окно параметров блоков отображается параметр типа данных. Параметр задает перечислимый тип данных для входного параметра функции, который представляет тип формата DEM или состояние события. Типы данных по умолчанию обеспечиваются, такие как Dem_DTCFormatType
или Dem_EventStatusType
. Для получения дополнительной информации о типе формата или значениях состояния события, смотрите стандартную Спецификацию AUTOSAR Диагностического менеджера событий.
Редактор Отображений Открытого кода. Чтобы обновить Simulink® к отображению AUTOSAR модели с изменениями в вызывающих сторонах функции Simulink, нажмите кнопку Update. Программное обеспечение создает интерфейсы клиентской службы AUTOSAR, операции и порты, и сопоставляет каждую вызывающую сторону функции Simulink с клиентским портом AUTOSAR и операцией.
Например, для блока DiagnosticMonitorCaller в этом примере, для которого выбрана операция SetEventStatus
:
Программное обеспечение создает интерфейс C-S DiagnosticMonitor
, и под DiagnosticMonitor
, его поддерживаемыми операциями. Для каждой операции аргументам предоставляют свойства только для чтения. Вот являются аргументы для операции DiagnosticMonitor
SetEventStatus
, отображенным в Словаре AUTOSAR.
Программное обеспечение создает клиентский порт с именем по умолчанию DiagnosticMonitor
. В отличие от C-S-interface, операции и имен аргумента, может быть настроено имя клиентского порта. Клиентский порт сопоставлен с интерфейсом DiagnosticMonitor
.
Редактор Отображений кода сопоставляет блок вызывающей стороны функции DiagnosticMonitor
с операцией DiagnosticMonitor
и AUTOSAR клиентского порта 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. Можно вручную вставить блок в содержание состава, системы или модели тестовой обвязки, или автоматически вставить блок путем создания модели тестовой обвязки Simulink Test™.
Например, в окне модели, выберите Analysis> Test Harness> Create for Model. В диалоговом окне Create Test Harness нажмите OK. Программное обеспечение компилирует модель, добавляет блок Diagnostic Service Component и создает порты и другие элементы, требуемые для симуляции.
Для получения дополнительной информации смотрите, Конфигурируют Основные Реализации Программного сервиса AUTOSAR для Симуляции и Моделируют Основные Программные сервисы AUTOSAR и Среду выполнения.
Диагностический сервисный компонент | DiagnosticInfoCaller | DiagnosticMonitorCaller