AUTOSAR адаптивная сервисная коммуникация предоставляет возможность конфигурировать приложения, чтобы использовать одноразовое или динамическое открытие, чтобы подписаться на сервисы. Режим открытия по умолчанию, OneTime
, позволяет приложению AUTOSAR находить и подписываться на сервисы при инициализации. Этот режим открытия может потребовать, чтобы сервисы были запущены перед приложением. Можно изменить сервисный режим открытия в DynamicDiscovery
чтобы позволить приложению AUTOSAR найти и подписаться на сервисы как, они становятся доступными.
Можно сконфигурировать, в модели или программно, сервисный режим открытия каждого необходимого порта услуг как OneTime
или DynamicDiscovery
:
Из вашей модели можно использовать Словарь AUTOSAR, чтобы открыть атрибуты Service discovery требуемых портов и выбрать их сервисные режимы открытия.
В этом примере показано, как установить требуемый порт на DynamicDiscovery
.
Программно, можно использовать set
функция от getAUTOSARProperties API, чтобы сконфигурировать сервисный режим открытия.
В этом примере показано, как установить требуемый порт на DynamicDiscovery
.
hModel = 'autosar_LaneGuidance'; addpath(fullfile(matlabroot,'/examples/autosarblockset/main')); open_system(hModel); apiObj = autosar.api.getAUTOSARProperties(hModel); set(apiObj,"/LaneGuidance_pkg/LaneGuidance_swc/LaneGuidance/RequiredPort/", ... "ServiceDiscoveryMode", "DynamicDiscovery")
Сервисное значение режима открытия влияет на сгенерированный Код С++ (в файле исходного кода модели) в следующих двух местах:
Сайт вызова StartFindService
API и регистрация коллбэка (для обоих InstanceIdentifier
и InstanceSpecifier
варианты).
Определение функции обратного вызова.