В Simulink® можно смоделировать коммуникацию клиент-сервер AUTOSAR для симуляции и генерации кода. Для получения информации о блоках Simulink вы используете и высокоуровневый рабочий процесс, видите Интерфейс Клиент-сервер.
К серверам модели AUTOSAR и клиентам, можно сделать или или оба из следующего:
Импортируйте серверы AUTOSAR и клиенты из кода arxml
в модель.
Сконфигурируйте серверы AUTOSAR и клиенты от блоков Simulink.
Эта тема обеспечивает примеры сервера AUTOSAR и клиентской настройки, которые начинают с блоков Simulink.
Этот пример показывает, как сконфигурировать Функциональный блок Simulink как сервер AUTOSAR. Пример использует эти файлы в (открытой)
папке
:matlabroot/help/toolbox/autosar/examples
Если вы копируете файлы в рабочую папку, располагаете файл MATLAB® с образцовым файлом.
Откройте модель, в которой вы хотите создать и сконфигурировать сервер AUTOSAR или открыть модель mControllerWithInterface_server.slx
в качестве примера.
Добавьте Функциональный блок Simulink в модель. В Браузере Библиотеки Simulink Функциональный блок Simulink находится в User-Defined Functions.
Модель в качестве примера обеспечивает два Функциональных блока Simulink, doOverride
и readData
.
Сконфигурируйте Функциональный блок Simulink, чтобы реализовать функцию сервера. Сконфигурируйте прототипа функции и реализуйте алгоритм функции сервера.
В модели в качестве примера содержимое Функционального блока Simulink под названием readData
реализует функцию с именем сервера readData
.
Содержимое включает:
Инициируйте блок readData
, представляя триггерный порт для функции сервера. В свойствах блока Trigger Trigger type установлен в Function call
. Кроме того, опция Treat as Simulink function выбрана.
Блок Argument Inport Op
и Выходной порт Аргумента блокирует Data
, ERR
и NegCode
, соответствуя прототипу функции [Data,ERR,NegCode]=readData(Op)
.
При конфигурировании аргументов функции сервера необходимо задать тип данных сигнала, размерности порта и тип сигнала на вкладке Signal Attributes блоков выходного порта и импорта. Настройка AUTOSAR приводит валидацию к сбою, если атрибуты сигнала отсутствуют для аргументов функции сервера.
Блоки, реализующие алгоритм функции readData
. В этом примере несколько простых блоков обеспечивают Data
, ERR
и выходные значения NegCode
с минимальной манипуляцией. Блок Constant представляет значение ошибки приложения, заданной для функции сервера. Значение Op
, переданного вызывающей стороной, проигнорировано. В реальном приложении алгоритм мог выполнить более комплексную манипуляцию, например, выбрав путь к выполнению на основе переданного значения Op
, произведя выходные данные, требуемые приложением, и проверяя на состояние ошибки.
Когда функция сервера будет работать в Simulink, настройте Функциональный блок Simulink в модели, сконфигурированной для AUTOSAR. Например, сконфигурируйте текущую модель для AUTOSAR или скопируйте блок в модель AUTOSAR.
Модель в качестве примера является моделью AUTOSAR, в которую Функциональный блок Simulink был скопирован readData
. Вместо значимого входного значения Op
для функции readData
строка передачи данных Simulink CurVal
обеспечивает входное значение, которое используется в функциональном алгоритме.
Необходимые элементы, чтобы сконфигурировать сервер AUTOSAR, в общем порядке, они создаются:
AUTOSAR интерфейс (C-S) клиент-сервер
Одна или несколько операций AUTOSAR, для которых интерфейс C-S обрабатывает клиентские запросы
Порт сервера AUTOSAR, чтобы получить клиентские запросы о работе сервера
Для каждой работы сервера, сервер AUTOSAR, выполнимый, чтобы выполнить клиентские запросы
Откройте Словарь AUTOSAR. К интерфейсам представления AUTOSAR C-S в модели перейдите к представлению C-S Interfaces. Модель в качестве примера уже содержит интерфейсы клиент-сервер.
Если интерфейс C-S еще не существует в вашей модели, создайте тот.
В представлении интерфейсов C-S нажмите кнопку Add. Это действие открывает диалоговое окно Add Interfaces.
В диалоговом окне назовите новый Интерфейс C-S и задайте количество операций, которые вы намереваетесь сопоставить с интерфейсом. Оставьте другие параметры в их значениях по умолчанию. Нажмите Add. Новый интерфейс появляется в представлении интерфейсов C-S.
Под C-S Interfaces создайте одну или несколько работы сервера AUTOSAR, для которой интерфейс C-S обрабатывает клиентские запросы. Каждая операция соответствует функции сервера Simulink в модели.
Расширьте C-S Interfaces и расширьте отдельный интерфейс C-S, в который вы хотите добавить работу сервера. (В модели в качестве примера расширьте CsIf1
.), Чтобы просмотреть операции для интерфейса, выберите Operations. Модель в качестве примера уже содержит работу сервера AUTOSAR под названием doOverride
и readData
.
Если работа сервера еще не существует в вашей модели, создайте тот. (Если ваш интерфейс C-S содержит операцию заполнителя под названием Operation1
, можно безопасно удалить его.)
В представлении операций нажмите кнопку Add. Это действие открывает диалоговое окно Add Operation.
В диалоговом окне введите Operation Name. Задайте имя соответствующей функции сервера Simulink.
Если соответствующая функция сервера Simulink имеет аргументы, выберите функцию в списке Simulink Function. Это действие заставляет аргументы операции AUTOSAR быть автоматически созданными на основе аргументов функции сервера Simulink. Нажмите OK. Операция и ее аргументы появляются в представлении операций.
Исследуйте аргументы, перечисленные на работу сервера AUTOSAR. Расширьте Operations, расширьте отдельную операцию (например, readData
), и выберите Arguments. Перечисленные аргументы соответствуют прототипу функции сервера Simulink.
К портам сервера представления AUTOSAR в модели перейдите к представлению портов сервера. Расширьте AtomicComponents, расширьте отдельный компонент, который вы конфигурируете и выбираете ServerPorts. Модель в качестве примера уже содержит порт сервера AUTOSAR под названием sPort
.
Если порт сервера еще не существует в вашей модели, создайте тот.
В представлении портов сервера нажмите кнопку Add. Это действие открывает диалоговое окно Add Ports.
В диалоговом окне назовите новый порт сервера и выберите интерфейс C-S, для которого вы сконфигурировали работу сервера. Нажмите Add. Новый порт появляется в представлении портов сервера.
Для каждой работы сервера AUTOSAR сконфигурируйте сервер AUTOSAR, выполнимый, чтобы выполнить клиентские запросы. К представлению AUTOSAR runnables в модели, выберите Runnables. Модель в качестве примера уже содержит сервер, выполнимый для readData
, названного Runnable_readData
.
Если подходящий выполнимый сервер еще не существует в вашей модели, создайте тот.
В представлении runnables нажмите кнопку Add. Это действие добавляет запись таблицы для нового выполнимого.
Выберите новое выполнимое и сконфигурируйте его имя и символ. Имя symbol, заданное для выполнимого, должно совпадать с именем функции сервера Simulink. (В модели в качестве примера имя symbol для Runnable_readData
является именем функции readData
.)
Создайте вызванное на операцию событие, чтобы инициировать выполнимый сервер. (Модель в качестве примера задает событие event_readData
для сервера выполнимый Runnable_readData
.)
Под Events нажмите Add Event. Выберите новое событие.
Для Event Type выберите OperationInvokedEvent
.
Введите Event Name.
Под Event Properties выберите значение Trigger, которое соответствует порту сервера и операции C-S, ранее созданной для функции сервера. (В модели в качестве примера значением Trigger, выбранным для Runnable_readData
, является sPort.readData
, комбинируя порт сервера sPort
с операцией readData
.) Нажимают Apply.
Этот шаг завершает настройку сервера AUTOSAR в представлении AUTOSAR Dictionary настройки.
Переключите на редактор Отображений Кода представление настройки и сопоставьте функцию сервера Simulink с выполнимым сервером AUTOSAR.
Редактор Отображений Открытого кода. Выберите вкладку Entry-Point Functions.
Выберите функцию сервера Simulink. Чтобы сопоставить функцию с выполнимым AUTOSAR, нажмите на поле Runnable и выберите соответствие, выполнимое из списка доступного сервера runnables. В модели в качестве примера функция Simulink readData
сопоставлен с выполнимым Runnable_readData
AUTOSAR.
Чтобы подтвердить настройку компонента AUTOSAR, нажмите кнопку Validate. Если об ошибках сообщают, фиксируют ошибки и повторяют валидацию. Повторитесь, пока валидация не успешно выполнится.
Сгенерируйте C и код arxml
для модели.
После того, как вы сконфигурируете сервер AUTOSAR, сконфигурируете соответствующий клиентский вызов AUTOSAR, как описано в Конфигурируют Клиент AUTOSAR.
После того, как вы сконфигурируете сервер AUTOSAR, как описано в Конфигурируют Сервер AUTOSAR, конфигурируют соответствующий клиентский вызов AUTOSAR. Этот пример показывает, как сконфигурировать блок Function Caller как клиентский вызов AUTOSAR. Пример использует файл
.matlabroot/help/toolbox/autosar/examples/mControllerWithInterface_client.slx
Откройте модель, в которой вы хотите создать и сконфигурировать клиент AUTOSAR или открыть модель mControllerWithInterface_client.slx
в качестве примера.
Добавьте блок Function Caller в модель. В Браузере Библиотеки Simulink блок Function Caller находится в User-Defined Functions.
Модель в качестве примера обеспечивает Функциональный блок Simulink под названием readData
, который расположен в Runnable3_Subsystem
.
Сконфигурируйте блок Function Caller, чтобы вызвать соответствующий Функциональный блок Simulink. Дважды кликните блок, чтобы открыть его и отредактировать параметры блоков, чтобы задать прототипа функции сервера.
В модели в качестве примера параметры Вызывающей стороны Функции readData
задают прототипа функции для функции сервера readData
, используемой в примере сервера AUTOSAR, Конфигурируют Сервер AUTOSAR. Вот функция readData
от примера сервера.
Функциональные параметры Вызывающей стороны включают прототипа функции и поля спецификации аргумента. Имя функции в прототипе должно совпадать с Operation Name, заданным для соответствующей работы сервера. Смотрите, что создание операции вступить Конфигурирует Сервер AUTOSAR. Типы аргумента и размерности также должны совпадать с аргументами функции сервера.
Если вы хотите моделировать вызов функции в этой точке, необходимо поместить блок Function Caller в общую модель или тестовую обвязку с соответствующим Функциональным блоком Simulink. Симуляция не требуется для этого примера.
Когда вызов функции будет полностью сформирован в Simulink, настройте блок Function Caller в модели, сконфигурированной для AUTOSAR. Например, сконфигурируйте текущую модель для AUTOSAR или скопируйте блок в модель AUTOSAR.
Если вы создаете (или копия) блок Function Caller в модели, прежде чем вы сопоставите и сконфигурируете компонент AUTOSAR, у вас есть опция наличия программного обеспечения, заполняют аргументы операции AUTOSAR для вас, вместо того, чтобы создать аргументы вручную. Чтобы создать аргументы для вас, наряду с полностью сконфигурированным клиентским портом AUTOSAR и полностью сопоставленной вызывающей стороной функции Simulink, выбирают Create Default Component, а не Create Component Interactively. Для получения дополнительной информации смотрите, Создают Компонент программного обеспечения AUTOSAR в Simulink.
Модель в качестве примера является моделью AUTOSAR, в которую блок Function Caller был скопирован readData
. Блок соединяется с импортом, выходными портами и сигнальными линиями, совпадающими с типами данных аргумента функции и размерностями.
Каждый раз, когда вы добавляете или изменяете блок Function Caller в модели AUTOSAR, обновляете функциональные вызывающие стороны в настройке AUTOSAR. Редактор Отображений Открытого кода (Code> C/C++ Code> Configure Model in Code Perspective). В диалоговом окне нажмите кнопку Update. Это действие загрузки или обновления передачи данных Simulink, функционируйте вызывающие стороны и числовые типы в вашей модели. После обновления функциональная вызывающая сторона, которую вы добавили, появляется во вкладке Function Callers редактора Отображений Кода.
Необходимые элементы, чтобы сконфигурировать клиент AUTOSAR, в общем порядке, они должны быть созданы:
AUTOSAR интерфейс (C-S) клиент-сервер
Одна или несколько операций AUTOSAR, совпадающих с функциями сервера Simulink, которые вы задали в модели сервера AUTOSAR
Клиентский порт AUTOSAR, чтобы получить клиентские запросы о работе сервера, предлагаемой интерфейсом C-S
Откройте Словарь AUTOSAR. К интерфейсам представления AUTOSAR C-S в модели перейдите к представлению C-S Interfaces. Модель в качестве примера уже содержит интерфейс клиент-сервер под названием csInterface
.
Если интерфейс C-S еще не существует в настройке AUTOSAR, создайте тот.
В представлении интерфейсов C-S нажмите кнопку Add. Это действие открывает диалоговое окно Add Interfaces.
В диалоговом окне назовите новый Интерфейс C-S и задайте количество операций, которые вы намереваетесь сопоставить с интерфейсом. Оставьте другие параметры в их значениях по умолчанию. Нажмите Add. Новый интерфейс появляется в представлении интерфейсов C-S.
Под C-S Interfaces создайте одну или несколько операций AUTOSAR, совпадающих с функциями сервера Simulink, которые вы задали в модели сервера AUTOSAR.
Расширьте C-S Interfaces и расширьте отдельный интерфейс C-S, в который вы хотите добавить операцию AUTOSAR. (В модели в качестве примера расширьте CsInterface
.), Чтобы просмотреть операции для интерфейса, выберите Operations. Модель в качестве примера уже содержит операцию AUTOSAR под названием readData
.
Если операция AUTOSAR еще не существует в вашей модели, создайте тот. (Если ваш интерфейс C-S содержит операцию заполнителя под названием Operation1
, можно безопасно удалить его.)
В представлении операций нажмите кнопку Add. Это действие открывает диалоговое окно Add Operation.
В диалоговом окне введите Operation Name. Задайте имя соответствующей функции сервера Simulink. Оставьте набор Simulink Function None
, потому что клиентская модель не содержит функциональный блок сервера Simulink. Нажмите OK. Новая операция появляется в представлении операций.
Добавьте аргументы операции AUTOSAR.
Расширьте Operations, расширьте отдельную операцию (например, readData
), и выберите Arguments.
В представлении аргументов нажмите кнопку Add одно время для каждого аргумента функции. Например, для readData
, нажмите кнопку Add четыре раза, для аргументов Op
, Data
, ERR
и NegCode
. Каждое нажатие кнопки создает одну новую запись аргумента.
Выберите каждую запись аргумента и установите аргумент Name и Direction совпадать с прототипом функции.
К клиентским портам представления AUTOSAR в модели перейдите к представлению клиентских портов. Расширьте AtomicComponents, расширьте отдельный компонент, который вы конфигурируете и выбираете ClientPorts. Модель в качестве примера уже содержит клиентский порт AUTOSAR под названием cPort
.
Если клиентский порт еще не существует в вашей модели, создайте тот.
В представлении клиентских портов нажмите кнопку Add. Это действие открывает диалоговое окно Add Ports.
В диалоговом окне назовите новый клиентский порт и выберите интерфейс C-S. Нажмите Add. Новый порт появляется в представлении клиентских портов.
Этот шаг завершает настройку клиента AUTOSAR в представлении AUTOSAR Dictionary настройки.
Переключите на редактор Отображений Кода представление настройки и сопоставьте вызывающую сторону функции Simulink с клиентским портом AUTOSAR и операцией C-S.
Редактор Отображений Открытого кода. Выберите вкладку Function Callers.
Выберите вызывающую сторону функции Simulink. Нажмите на поле ClientPort и выберите порт из списка доступных клиентских портов AUTOSAR. Нажмите на поле Operation и выберите операцию из списка доступных операций AUTOSAR C-S. В модели в качестве примера вызывающая сторона функции Simulink readData
сопоставлен с операцией cPort
и C-S клиентского порта AUTOSAR readData
.
Чтобы подтвердить настройку компонента AUTOSAR, нажмите кнопку Validate. Если об ошибках сообщают, фиксируют ошибки и повторяют валидацию. Повторитесь, пока валидация не успешно выполнится.
Сгенерируйте C и код arxml
для модели.
AUTOSAR задает механизм состояния ошибки приложения для обработки ошибок клиент-сервер. Сервер AUTOSAR возвращает ошибочное состояние со значением, совпадающим с предопределенной возможной ошибкой. Клиент AUTOSAR получает и отвечает на ошибочное состояние. Компонент программного обеспечения AUTOSAR, который следует инструкциям по обработке ошибок клиент-сервер потенциально, предоставляет ошибочное состояние AUTOSAR Basic Software, такой как Диагностический менеджер событий (DEM).
В Simulink вы можете:
Импортируйте код arxml
, который реализует обработку ошибок клиент-сервер.
Сконфигурируйте обработку ошибок для интерфейса клиент-сервер.
Сгенерируйте C и код arxml
для обработки ошибок клиент-сервер.
Если вы импортируете код arxml
, который реализует обработку ошибок клиент-сервер, средство импорта создает ошибочные порты состояния в соответствующем извещателе сервера (Блок Function-Caller) местоположения.
Реализовывать обработку ошибок клиент-сервер AUTOSAR в Simulink:
Задайте возможные ошибочные значения состояния, которые сервер AUTOSAR возвращает в типе данных Simulink. Задайте одни или несколько кодов ошибок в области значений 0-63, включительно. Базовая система хранения типа данных должна быть 8-битным целым числом без знака. Осциллографом данных должен быть Exported
. Например, задайте перечисляемый тип appErrType
:
classdef(Enumeration) appErrType < uint8 enumeration SUCCESS(0) ERROR(1) COMM_MODE_LIMITATION(2) OVERFLOW(3) UNDERFLOW(4) VALUE_MOD3(5) end methods (Static = true) function descr = getDescription() descr = 'Definition of application error type.'; end function hdrFile = getHeaderFile() hdrFile = ''; end function retVal = addClassNameToEnumNames() retVal = false; end function dataScope = getDataScope() dataScope = 'Exported'; end end end
Тип данных Simulink, который вы задаете, чтобы представлять возможные ошибки в модели, непосредственно не влияет на возможные ошибки AUTOSAR, которые импортированы и экспортированы в коде arxml
. Чтобы изменить экспортируемые возможные ошибки для интерфейса C-S или операции C-S, используйте функции свойств AUTOSAR. Эта тема обеспечивает примеры.
Задайте ошибочный выходной аргумент состояния в пользу Функционального блока Simulink что модели сервер AUTOSAR. Сконфигурируйте ошибочный аргумент состояния как единственный функциональный вывод или добавьте его в другие выходные параметры. Например, вот Функциональный блок Simulink, который возвращает ошибочное значение состояния в выводе err
.
Функциональный блок Simulink реализует алгоритм, чтобы возвратить ошибочное состояние.
Сошлитесь на возможный ошибочный тип значений в модели. В параметрах блоков Выходного порта Аргумента для ошибочного выходного порта задайте ошибочный тип данных состояния, в этом случае, appErrType
. Установите Port dimensions на 1 и Signal type к real
.
Сконфигурируйте свойства AUTOSAR ошибочного аргумента в интерфейсе клиент-сервер. Откройте Словарь AUTOSAR, расширьте C-S Interfaces и перейдите к представлению Arguments операции AUTOSAR. Чтобы добавить аргумент, нажмите кнопку Add. Сконфигурируйте имя аргумента и установите Direction на Error
.
Создайте ошибочный порт в каждом блоке Function-Caller, который моделирует клиентский вызов AUTOSAR. Например, вот блок Function-Caller, который моделирует вызов fcnWErr
.
В параметрах блоков Функциональной Вызывающей стороны задайте тот же ошибочный тип данных состояния.
Сконфигурируйте свойства AUTOSAR ошибочного аргумента совпадать с информацией в Словаре AUTOSAR, представлении Arguments, показанном на Шаге 4.
Сгенерированный код C для функции отражает сконфигурированную функциональную подпись и логику, заданную в модели для обработки возможных ошибок.
appErrType fcnWErr(real_T x1, real_T x2) { appErrType rty_err_0; if (...) == 0.0) { rty_err_0 = ...; } else { rty_err_0 = ...; } return rty_err_0; }
Кроме того, для определения класса перечисляемого типа, используемого в этом примере, сборка генерирует заголовочный файл appErrType.h
, содержа возможные ошибочные определения типа.
Экспортируемый код arxml
содержит возможные ошибочные определения и ссылки на них.
<POSSIBLE-ERRORS> <APPLICATION-ERROR …> <SHORT-NAME>SUCCESS</SHORT-NAME> <ERROR-CODE>0</ERROR-CODE> </APPLICATION-ERROR> <APPLICATION-ERROR …> <SHORT-NAME>ERROR</SHORT-NAME> <ERROR-CODE>1</ERROR-CODE> </APPLICATION-ERROR> … <APPLICATION-ERROR …> <SHORT-NAME>UNDERFLOW</SHORT-NAME> <ERROR-CODE>4</ERROR-CODE> </APPLICATION-ERROR> <APPLICATION-ERROR …> <SHORT-NAME>VALUE_MOD3</SHORT-NAME> <ERROR-CODE>5</ERROR-CODE> </APPLICATION-ERROR> </POSSIBLE-ERRORS>
Можно использовать функции свойства AUTOSAR, чтобы программно изменить возможные ошибки, которые экспортируются в коде arxml
, и установить свойство Direction аргумента операции C-S к Error
.
Следующий пример добавляет ПОТЕРЮ ЗНАЧИМОСТИ и VALUE_MOD3 к возможным ошибкам для интерфейса C-S под названием fcnWErr
.
>> arProps = autosar.api.getAUTOSARProperties(bdroot) >> get(arProps,'fcnWErr','PossibleError') ans = 'fcnWErr/SUCCESS' 'fcnWErr/ERROR' 'fcnWErr/COMM_MODE…' 'fcnWErr/OVERFLOW' >> get(arProps,'fcnWErr/OVERFLOW','errorCode') ans = 3 >> add(arProps,'fcnWErr','PossibleError','UNDERFLOW') >> set(arProps,'fcnWErr/UNDERFLOW','errorCode',4) >> add(arProps,'fcnWErr','PossibleError','VALUE_MOD3') >> set(arProps,'fcnWErr/VALUE_MOD3','errorCode',5) >> get(arProps,'fcnWErr','PossibleError') ans = 'fcnWErr/SUCCESS' 'fcnWErr/ERROR' 'fcnWErr/COMM_MODE…' 'fcnWErr/OVERFLOW' 'fcnWErr/UNDERFLOW' 'fcnWErr/VALUE_MOD3'
Можно также получить доступ к возможным ошибкам на операции C-S. Следующий пример перечисляет возможные ошибки для операции fcnWErr
в интерфейсе C-S fcnWErr
.
>> arProps = autosar.api.getAUTOSARProperties(bdroot) >> get(arProps,'fcnWErr/fcnWErr','PossibleError') ans = 'fcnWErr/SUCCESS' 'fcnWErr/ERROR' 'fcnWErr/COMM_MODE…' 'fcnWErr/OVERFLOW'
Следующий пример устанавливает направление аргумента err
операции C-S к Error
.
>> arProps = autosar.api.getAUTOSARProperties(bdroot) >> set(arProps,'fcnWErr/fcnWErr/err','Direction','Error') >> get(arProps,'fcnWErr/fcnWErr/err','Direction') ans = Error
Следующие блоки и шаблоны моделирования несовместимы с параллельным выполнением выполнимого сервера AUTOSAR.
Блоки в функции Simulink:
Блоки с состоянием, такие как Единичная задержка.
Блоки с логикой пересечения нулем, такие как Инициированная Подсистема и Enabled Подсистема.
Графики Stateflow®.
Другие Функциональные блоки Simulink.
Невстроенные подсистемы.
Наследие C вызовы функции с побочными эффектами.
Моделирование шаблонов в функции Simulink:
Запись в память хранилища данных (например, "на память экземпляра").
Пишущий в глобальный блок-сигнал (например, статическое ЗУ).
Чтобы осуществить ограничения параллелизма для сервера AUTOSAR runnables, используйте выполнимое свойство canBeInvokedConcurrently
. Свойство расположено в представлении Runnables в Словаре AUTOSAR.
Когда canBeInvokedConcurrently
установлен в true
для выполнимого сервера, проверки валидации AUTOSAR на блоки и шаблоны моделирования, которые несовместимы с параллельным выполнением выполнимого сервера. Если функция Simulink содержит несовместимый блок или шаблон моделирования, ошибки отчетов валидации. Если canBeInvokedConcurrently
установлен в false
, валидация не проверяет на блоки и шаблоны моделирования, которые несовместимы с параллельным выполнением выполнимого сервера.
Можно установить свойство canBeInvokedConcurrently
на true
только для выполнимого сервера AUTOSAR — то есть, выполнимый с OperationInvokedEvent
. Runnables с другими триггерами события, такими как синхронизация событий, не может быть одновременно вызван. Если canBeInvokedConcurrently
установлен в true
для выполнимого несервера, сбои валидации AUTOSAR.
Чтобы программно установить выполнимое свойство canBeInvokedConcurrently
, используйте функцию свойства AUTOSAR set
. Следующий пример устанавливает выполнимое свойство canBeInvokedConcurrently
на true
для сервера AUTOSAR выполнимый именованный Runnable_readData
.
open_system('mControllerWithInterface_server') arProps = autosar.api.getAUTOSARProperties('mControllerWithInterface_server'); SRPath = find(arProps,[],'Runnable','Name','Runnable_readData')
SRPath = 'SWC_Controller/ControllerWithInterface_ar/Runnable_readData'
invConc = get(arProps,'SWC_Controller/ControllerWithInterface_ar/Runnable_readData',... 'canBeInvokedConcurrently')
invConc = 0
set(arProps,'SWC_Controller/ControllerWithInterface_ar/Runnable_readData',... 'canBeInvokedConcurrently',true) invConc = get(arProps,'SWC_Controller/ControllerWithInterface_ar/Runnable_readData',... 'canBeInvokedConcurrently')
invConc = 1'
Чтобы программно сконфигурировать свойства AUTOSAR интерфейсов клиент-сервер AUTOSAR, используйте функции свойства AUTOSAR, такие как set
и get
.
Чтобы программно сконфигурировать Simulink к AUTOSAR отображение информации для клиент-серверов AUTOSAR, используйте эти функции:
Например, скрипты, которые используют свойство AUTOSAR и сопоставляют функции, видят, Конфигурируют Интерфейсы Клиент-сервер AUTOSAR.
Аргумент Inport | Выходной порт аргумента | Функциональная вызывающая сторона | Функция Simulink | Триггер