В Simulink® можно смоделировать коммуникацию клиент-сервер AUTOSAR для симуляции и генерации кода. Для получения информации о блоках Simulink вы используете и высокоуровневый рабочий процесс, видите Интерфейс Клиент-сервер.
К серверам модели AUTOSAR и клиентам, можно сделать или или оба из следующего:
Импортируйте серверы AUTOSAR и клиенты из кода ARXML в модель.
Сконфигурируйте серверы AUTOSAR и клиенты от блоков Simulink.
Эта тема обеспечивает примеры сервера AUTOSAR и клиентской настройки, которые начинают с блоков Simulink.
В этом примере показано, как сконфигурировать блок Simulink Function как сервер AUTOSAR. Пример использует эти файлы в папке matlabroot
/help/toolbox/autosar/examplesCD
к папке):
Если вы копируете файлы в рабочую папку, располагаете файл MATLAB® с файлом модели.
Откройте модель, в которой вы хотите создать и сконфигурировать сервер AUTOSAR или открыть модель mControllerWithInterface_server.slx
в качестве примера.
Добавьте блок Simulink Function в модель. В Браузере Библиотеки Simulink блок Simulink Function находится в User-Defined Functions.
Модель в качестве примера обеспечивает два блока Simulink Function, doOverride
и readData
.
Сконфигурируйте блок Simulink Function, чтобы реализовать функцию сервера. Сконфигурируйте прототипа функции и реализуйте алгоритм функции сервера.
В модели в качестве примера, содержимом блока Simulink Function под названием readData
реализуйте функцию с именем сервера readData
.
Содержимое включает:
Блок Trigger readData
, представление триггерного порта для функции сервера. В свойствах блока Trigger Trigger type установлен в Function call
. Кроме того, опция Treat as Simulink function выбрана.
Блок Argument Inport Op
и Argument Outport блокирует Data
, ERR
, и NegCode
, соответствие прототипу функции [Data,ERR,NegCode]=readData(Op)
.
При конфигурировании аргументов функции сервера необходимо задать тип данных сигнала, размерности порта и тип сигнала на вкладке Signal Attributes блоков выходного порта и импорта. Настройка AUTOSAR приводит валидацию к сбою, если атрибуты сигнала отсутствуют для аргументов функции сервера.
Блоки, реализующие readData
функциональный алгоритм. В этом примере несколько простых блоков обеспечивают Data
, ERR
, и NegCode
выходные значения с минимальной манипуляцией. Блок Constant представляет значение ошибки приложения, заданной для функции сервера. Значение Op
переданный вызывающей стороной проигнорирован. В реальном приложении алгоритм мог выполнить более комплексную манипуляцию, например, выбрав путь к выполнению на основе переданного значения Op
, создание выходных данных, требуемых приложением и проверкой состояние ошибки.
Когда функция сервера будет работать в Simulink, настройте блок Simulink Function в модели, сконфигурированной для AUTOSAR. Например, сконфигурируйте текущую модель для AUTOSAR или скопируйте блок в модель AUTOSAR.
Модель в качестве примера является моделью AUTOSAR, в который блок Simulink Function 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.
Откройте редактор Отображений Кода. Выберите вкладку 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 Function. Дважды кликните блок, чтобы открыть его и отредактировать параметры блоков, чтобы задать прототипа функции сервера.
В модели в качестве примера, readData
Параметры Function Caller задают прототипа функции для readData
функция сервера, используемая в примере сервера AUTOSAR, Сконфигурируйте Сервер AUTOSAR. Вот readData
функция из примера сервера.
Параметры Function Caller включают прототипа функции и поля спецификации аргумента. Имя функции в прототипе должно совпадать с Operation Name, заданным для соответствующей работы сервера. Смотрите, что создание операции вступить Конфигурирует Сервер AUTOSAR. Типы аргумента и размерности также должны совпадать с аргументами функции сервера.
Если вы хотите симулировать вызов функции в этой точке, необходимо поместить блок Function Caller в общую модель или тестовую обвязку с соответствующим блоком Simulink Function. Симуляция не требуется для этого примера.
Когда вызов функции будет полностью сформирован в Simulink, настройте блок Function Caller в модели, сконфигурированной для AUTOSAR. Например, сконфигурируйте текущую модель для AUTOSAR или скопируйте блок в модель AUTOSAR.
Если вы создаете (или копия) блок Function Caller в модели, прежде чем вы сопоставите и сконфигурируете компонент AUTOSAR, у вас есть опция наличия программного обеспечения, заполняют аргументы операции AUTOSAR для вас, вместо того, чтобы создать аргументы вручную. Чтобы создать аргументы для вас, наряду с полностью сконфигурированным клиентским портом AUTOSAR и полностью сопоставленной вызывающей стороной функции Simulink, используют Быстрый запуск Компонента AUTOSAR, чтобы создать компонент по умолчанию. Для получения дополнительной информации смотрите, Создают Компонент программного обеспечения AUTOSAR в Simulink.
Модель в качестве примера является моделью AUTOSAR, в который блок Function Caller readData
был скопирован. Блок соединяется с импортом, выходными портами и сигнальными линиями, совпадающими с типами данных аргумента функции и размерностями.
Каждый раз, когда вы добавляете или изменяете блок Function Caller в модели AUTOSAR, вызывающие стороны функции обновления в настройке AUTOSAR. Откройте редактор Отображений Кода. В диалоговом окне нажмите кнопку 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
данные
, 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
сопоставлен с клиентским портом AUTOSAR cPort
и операция C-S 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 Function что модели сервер AUTOSAR. Сконфигурируйте ошибочный аргумент состояния как единственный функциональный выход или добавьте его в другие выходные параметры. Например, вот блок Simulink Function, который возвращает ошибочное значение состояния в выходе err
.
Блок Simulink Function реализует алгоритм, чтобы возвратить ошибочное состояние.
Сошлитесь на возможный ошибочный тип значений в модели. В параметрах блоков Argument Outport для ошибочного выходного порта задайте ошибочный тип данных состояния, в этом случае, appErrType
. Установите Port dimensions на 1 и Signal type к real
.
Сконфигурируйте свойства AUTOSAR ошибочного аргумента в интерфейсе клиент-сервер. Откройте Словарь AUTOSAR, расширьте C-S Interfaces и перейдите к представлению Arguments операции AUTOSAR. Чтобы добавить аргумент, нажмите кнопку Add. Сконфигурируйте имя аргумента и установите Direction на Error
.
Создайте ошибочный порт в каждом блоке Function-Caller, который моделирует клиентский вызов AUTOSAR. Например, вот блок Function-Caller, который моделирует вызов fcnWErr
.
В параметрах блоков Function-Caller задайте тот же ошибочный тип данных состояния.
Сконфигурируйте свойства 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:
Блоки с состоянием, такие как Unit Delay.
Блоки с логикой пересечения нулем, такие как Triggered Subsystem и Enabled Subsystem.
Графики Stateflow®.
Другие блоки Simulink Function.
Невстроенные подсистемы.
Наследие 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
.
addpath(fullfile(matlabroot,'/help/toolbox/autosar/examples')); open_system('mControllerWithInterface_server') arProps = autosar.api.getAUTOSARProperties('mControllerWithInterface_server'); SRPath = find(arProps,[],'Runnable','Name','Runnable_readData')
SRPath = 1×1 cell array {'SWC_Controller/ControllerWithInterface_ar/Runnable_readData'}
invConc = get(arProps,'SWC_Controller/ControllerWithInterface_ar/Runnable_readData',... 'canBeInvokedConcurrently')
invConc = logical 0
set(arProps,'SWC_Controller/ControllerWithInterface_ar/Runnable_readData',... 'canBeInvokedConcurrently',true) invConc = get(arProps,'SWC_Controller/ControllerWithInterface_ar/Runnable_readData',... 'canBeInvokedConcurrently')
invConc = logical 1
Чтобы программно сконфигурировать свойства AUTOSAR интерфейсов клиент-сервер AUTOSAR, используйте функции свойства AUTOSAR, такие как set
и get
.
Чтобы программно сконфигурировать Simulink к AUTOSAR отображение информации для клиент-серверов AUTOSAR, используйте эти функции:
Например, скрипты, которые используют свойство AUTOSAR и сопоставляют функции, видят, Конфигурируют Интерфейсы Клиент-сервер AUTOSAR.
Argument Inport | Argument Outport | Function Caller | Simulink Function | Trigger