В Simulink®, можно изменить иерархическую структуру пакета AUTOSAR, как определено стандартом AUTOSAR, что Embedded Coder® экспортирует в код ARXML.
Стандарт AUTOSAR определяет пакеты AUTOSAR (AR-PACKAGEs). AR-PACKAGE содержат группы элементов AUTOSAR и находятся в иерархической структуре AR-PACKAGE. В авторском инструменте AUTOSAR (AAT) или в Simulink можно сконфигурировать структуру AR-PACKAGE таким образом, чтобы она:
Соответствие организационной или стандартизированной структуре AR-PACKAGE.
Установите пространство имен для элементов в пакете.
Обеспечивают базис для относительных ссылок на элементы.
Импортер ARXML импортирует AR-PACKAGE, их элементы и пути в Simulink. Модель строения сохраняет пакеты для последующего экспорта в код ARXML. В целом, программа сохраняет пакеты AUTOSAR между AAT и Simulink.
Если компонент AUTOSAR был создан в Simulink, при создании компонента конструктор компонентов AUTOSAR создает начальную структуру AR-PACKAGE по умолчанию, содержащую следующие пакеты.
Программные компоненты
Типы данных
Интерфейсы портов
Реализация
Например, предположим, что вы начинаете с простой модели Simulink, такой как rtwdemo_counter
. Переименуйте его в mySWC
. Сконфигурируйте модель для генерации кода AUTOSAR. (Например, откройте Embedded Coder Quick Start и выберите генерацию кода AUTOSAR.) Когда вы создаете модель, ее начальная структура AR-PACKAGE напоминает следующий рисунок.
После создания компонента можно использовать представление XML Options в словаре AUTOSAR для задания дополнительных пакетов AR. (См. раздел «Настройка опций XML AUTOSAR» или «Настройка параметров XML для адаптивного AUTOSAR»). Каждый пакет AR-PACKAGE представляет категорию элемента AUTOSAR. Во время генерации кода экспортер ARXML генерирует пакет, если в модели существуют какие-либо элементы его категории. Для каждого пакета задается путь, определяющий его местоположение в структуре AR-PACKAGE.
Используя опции XML, можно сконфигурировать пакеты AUTOSAR для следующих категорий элементов AUTOSAR:
Типы данных приложений
Основы программного обеспечения
Наборы отображений типов данных
Константы и значения
Ограничения физических данных (на которые ссылаются типы данных приложения или прототипы данных)
Системные константы
Методы адреса программного обеспечения
Группы объявлений режимов
Расчеты
Модули измерения и модуля
Размещения записей программного обеспечения (для типов данных приложений категорий CURVE, MAP, CUBOID или COM_AXIS)
Внутренние ограничения данных (на которые ссылаются типы данных реализации)
Примечание
Для пакетов, заданных в опциях XML, экспортер ARXML генерирует пакет только в том случае, если модель содержит элемент категории пакета. Для примера экспортер генерирует пакет метода адреса программного обеспечения, только если модель содержит элемент метода адреса программного обеспечения.
Можно задать отдельные пакеты для перечисленных элементов, например, типы данных приложения. Типы данных реализации агрегируются в пакете основных типов данных.
Структура AR-PACKAGE логически отличается от разделов с одним файлом или модульным файлом, которые можно выбрать для экспорта ARXML с помощью Exported XML file packaging опций XML. Дополнительные сведения об экспорте пакетов AUTOSAR см. в разделе Расположение AR-PACKAGE в Экспортированных файлах ARXML.
Если вы импортируете структуру AR-PACKAGE в Simulink, импортер ARXML сохраняет отношения между элементами пакета и пути пакета, определенные в коде ARXML. Кроме того, импортер заполняет свойства упаковки в представлениях компонента и XML Options в словаре AUTOSAR. Если код ARXML не присваивает элементы AUTOSAR пакетам на основе категории, импортер использует эвристику, чтобы определить оптимальную ассоциацию категорий для пакета. Однако максимум один пакет может быть связан с категорией.
Предположим, что вы начинаете с модели, отличной от AUTOSAR Simulink, и конфигурируете модель для генерации кода AUTOSAR. (Например, откройте Embedded Coder Quick Start и выберите генерацию кода AUTOSAR.) Программа создает начальную структуру AR-PACKAGE по умолчанию. После создания компонента в виде компонента в словаре AUTOSAR отображаются Component XML Options, включая пути к пакету для компонента, внутреннее поведение и реализацию.
В представлении XML Options отображаются пути для типа данных AUTOSAR и пакетов интерфейсов, а также дополнительные пакеты.
Используя подпанель Additional Packages, можно заполнить поля пути для дополнительных пакетов или оставить их пустыми. Если вы оставляете поле пакета пустым и если модель содержит упаковываемые элементы этой категории, экспортер ARXML использует внутренние правила для вычисления пути пакета. Применение внутренних правил обратно совместимо с более ранними релизами. В следующей таблице перечислены свойства упаковки опций с их путями по умолчанию на основе правил.
Имя свойства | Пакетные пути на основе внутренних правил |
---|---|
InternalBehaviorQualifiedName | / Компоненты/ВнутреннееПоведение |
ImplementationQualifiedName | / Компоненты/SwcImplementations |
ComponentQualifiedName | / Компоненты (в диалоговом окне отображается путь компонента без краткого имени) |
DataTypePackage | /DataTypes |
InterfacePackage | /Interfaces |
ApplicationDataTypePackage |
|
SwBaseTypePackage |
|
DataTypeMappingPackage |
|
ConstantSpecificationPackage |
|
DataConstraintPackage |
|
SystemConstantPackage |
|
SwAddressMethodPackage |
|
ModeDeclarationGroupPackage |
|
CompuMethodPackage |
|
UnitPackage |
|
SwRecordLayoutPackage |
|
InternalDataConstraintPackage |
|
Установка свойства упаковки в MATLAB® Командное окно или в скрипте используйте свойство AUTOSAR set
вызов функции аналогичен следующему:
hModel = 'autosar_swc_counter'; addpath(fullfile(matlabroot,'/examples/autosarblockset/main')); open_system(hModel); arProps=autosar.api.getAUTOSARProperties(hModel); set(arProps,'XmlOptions','ApplicationDataTypePackage','/Company/Powertrain/DataTypes/ADTs'); get(arProps,'XmlOptions','ApplicationDataTypePackage')
Пример скрипта см. в разделе Настройка экспорта AUTOSAR XML.
Пример настройки и экспорта пакетов AUTOSAR см. в разделе Экспорт пакетов AUTOSAR.
Если вы изменяете путь пакета AUTOSAR и если это затронуто упаковываемыми элементами этой категории, можно:
Переместите элементы из существующего пакета в новый.
Установите новый путь пакета, не перемещая элементы.
Если вы измените путь пакета в словаре AUTOSAR и если это затронуто упаковываемыми элементами этой категории, откроется диалоговое окно. Например, если вы измените опцию XML ConstantSpecification Package из значения пути /pkg/dt/Ground
на /pkg/misc/MyGround
откроется следующее диалоговое окно.
Чтобы переместить элементы спецификаций константы AUTOSAR в новый пакет, нажмите кнопку OK. Чтобы задать путь к новому пакету, не перемещая элементы, нажмите Cancel.
Если вы программно изменяете путь пакета, можно использовать MoveElements
свойство для задания обработки затронутых элементов. Свойство может быть установлено в All
(по умолчанию), None
, или Alert
. Если вы задаете Alert
и если затронуты упаковываемые элементы, программа открывает диалоговое окно с OK и Cancel кнопками.
Например, следующий код устанавливает новый путь пакета постоянной спецификации, не перемещая существующие элементы постоянной спецификации в новый пакет.
hModel = 'autosar_swc_expfcns'; addpath(fullfile(matlabroot,'/examples/autosarblockset/main')); open_system(hModel); arProps = autosar.api.getAUTOSARProperties(hModel); set(arProps,'XmlOptions','ConstantSpecificationPackage','/pkg/misc/MyGround',... 'MoveElements','None');
В этом примере показано, как сконфигурировать и экспортировать пакеты AUTOSAR для программного компонента AUTOSAR, который был создан в Simulink.
Откройте модель, которую вы сконфигурировали для системного целевого файла AUTOSAR и которая моделирует программный компонент AUTOSAR. Этот пример использует модель примера autosar_swc_expfcns
.
Откройте словарь AUTOSAR и выберите XML Options. Вот начальные настройки для некоторых параметров пакета AUTOSAR.
В этом примере Exported XML file packaging установлено на Single file
, который генерирует один, унифицированный файл ARXML. Если вы предпочитаете несколько, модульных файлов ARXML, измените настройку на Modular
.
Сконфигурируйте пакеты для одного или нескольких элементов AUTOSAR, экспортируемых вашей моделью в код ARXML. Для каждого пакета введите путь для определения его местоположения в структуре AR-PACKAGE. Нажмите Apply.
Модель в примере экспортирует несколько постоянные спецификации AUTOSAR. Этот пример меняет параметр ConstantSpecification Package на /pkg/dt/Ground
на /pkg/misc/MyGround
.
Сгенерируйте код для модели.
Откройте сгенерированный файл
. (Если вы задаете Exported XML file packaging равным modelname
.arxmlModular
, откройте сгенерированный файл
.)modelname
_datatype.arxml
Поиск в XML- код настроенных пакетов, для примера, с помощью текста AR-PACKAGE или имени элемента. Для модели примера, поиск autosar_swc_expfcns.arxml
для текстовых MyGround
находит пакет постоянной спецификации и множество ссылок на него. Вот пример выдержки кода.
Группировка элементов AUTOSAR в пакеты AUTOSAR (AR-PACKAGEs) логически отличается от пакета выходного файла ARXML, которым управляет параметр конфигурации AUTOSAR Exported XML file packaging. Задаете ли вы Exported XML file packaging Single file
или Modular
экспорт ARXML сохраняет сконфигурированную структуру AR-PACKAGE.
Предположим, что вы конфигурируете модель примера autosar_swc_expfcns
со следующей структурой AR-PACKAGE. (См. шаги в разделе Экспорт пакетов AUTOSAR). В этом строении путь к пакету постоянных спецификаций был изменен по сравнению с начальной настройкой модели, /pkg/dt/Ground
, в /pkg/misc/myGround
.
Если вы экспортируете эту структуру AR-PACKAGE в один файл (Exported XML file packaging установлено на Single file
), экспортированный код ARXML сохраняет сконфигурированную структуру AR-PACKAGE.
autosar_swc_expfcns.arxml: <AR-PACKAGES> <AR-PACKAGE> <SHORT-NAME>pkg</SHORT-NAME> ... <SHORT-NAME>swc</SHORT-NAME> ... <SHORT-NAME>if</SHORT-NAME> ... <SHORT-NAME>dt</SHORT-NAME> ... <SHORT-NAME>SwBaseTypes</SHORT-NAME> ... <SHORT-NAME>misc</SHORT-NAME> ... <SHORT-NAME>MyGround</SHORT-NAME> ... <SHORT-NAME>imp</SHORT-NAME> ... </AR-PACKAGE> </AR-PACKAGES>
Если вы экспортируете ту же структуру AR-PACKAGE в несколько файлов (Exported XML file packaging установлено на Modular
), экспортированный код ARXML сохраняет сконфигурированную структуру AR-PACKAGE, распределенную между несколькими файлами.
Экспортер сопоставляет пакетные элементы AUTOSAR с файлами ARXML на основе категории элемента, а не пути пакета. Например, экспортер сопоставляет ориентированные на тип данных ConstantSpecification
пакет, /pkg/misc/myGround
, к типам данных ARXML файла, autosar_swc_expfcns_datatype.arxml
.
autosar_swc_expfcns_component.arxml: <AR-PACKAGES> <AR-PACKAGE> <SHORT-NAME>pkg</SHORT-NAME> ... <SHORT-NAME>swc</SHORT-NAME> ... </AR-PACKAGE> </AR-PACKAGES> autosar_swc_expfcns_datatype.arxml: <AR-PACKAGES> <AR-PACKAGE> <SHORT-NAME>pkg</SHORT-NAME> ... <SHORT-NAME>dt</SHORT-NAME> ... <SHORT-NAME>SwBaseTypes</SHORT-NAME> ... <SHORT-NAME>misc</SHORT-NAME> ... <SHORT-NAME>MyGround</SHORT-NAME> ... </AR-PACKAGE> </AR-PACKAGES> autosar_swc_expfcns_implementation.arxml: <AR-PACKAGES> <AR-PACKAGE> <SHORT-NAME>pkg</SHORT-NAME> ... <SHORT-NAME>imp</SHORT-NAME> ... </AR-PACKAGE> </AR-PACKAGES> autosar_swc_expfcns_interface.arxml: <AR-PACKAGES> <AR-PACKAGE> <SHORT-NAME>pkg</SHORT-NAME> ... <SHORT-NAME>if</SHORT-NAME> ... </AR-PACKAGE> </AR-PACKAGES>