В Simulink® можно изменить иерархическую структуру пакета AUTOSAR, как задано стандартом AUTOSAR, который Embedded Coder® экспортирует в код ARXML.
Стандарт AUTOSAR задает пакеты AUTOSAR (AR-PACKAGEs). ПАКЕТЫ AR содержат группы элементов AUTOSAR и находятся в иерархической структуре AR-PACKAGE. В Инструменте разработки AUTOSAR (AAT) или в Simulink, можно сконфигурировать структуру AR-PACKAGE к:
Соответствуйте организационной или стандартизированной структуре AR-PACKAGE.
Установите пространство имен для элементов в пакете.
Обеспечьте основание для относительных ссылок на элементы.
Средство импорта ARXML импортирует AR-PACKAGEs, их элементы и их пути в Simulink. Настройка модели сохраняет пакеты для последующего экспорта в код ARXML. В общем случае программное обеспечение сохраняет пакеты AUTOSAR через поездки туда и обратно между AAT и Simulink.
Если ваш компонент AUTOSAR произошел в Simulink при создании компонента, разработчик компонента AUTOSAR создает начальную структуру AR-PACKAGE по умолчанию, содержа следующие пакеты.
Компоненты программного обеспечения
Типы данных
Интерфейсы порта
Реализация
Например, предположите, что вы начинаете с простой модели Simulink, такой как rtwdemo_counter
. Переименуйте его в mySWC
. Сконфигурируйте модель для генерации кода AUTOSAR. (Например, открытый Быстрый запуск Embedded Coder и выбирают генерацию кода AUTOSAR.), Когда вы создаете модель, ее начальная структура AR-PACKAGE напоминает следующую фигуру.
После создания компонента можно использовать представление XML Options в Словаре AUTOSAR, чтобы задать дополнительный AR-PACKAGEs. (См., Конфигурируют Опции AUTOSAR XML или Конфигурируют Адаптивные Опции XML AUTOSAR.) Каждый AR-PACKAGE представляет категорию элемента AUTOSAR. Во время генерации кода средство экспорта ARXML генерирует пакет, если какие-либо элементы его категории существуют в модели. Для каждого пакета вы задаете путь, который задает его местоположение в структуре AR-PACKAGE.
Используя опции XML, можно сконфигурировать пакеты AUTOSAR для следующих категорий элементов AUTOSAR:
Типы данных приложения
Базовые типы программного обеспечения
Наборы отображения типа данных
Константы и значения
Физические ограничения данных (ссылаемый типами данных приложения или прототипами данных)
Системные константы
Методы адреса программного обеспечения
Группы объявления режима
Методы расчета
Модули и модульные группы
Размещения записи программного обеспечения (для типов данных приложения категории CURVE, MAP, КУБОИД или COM_AXIS)
Внутренние ограничения данных (ссылаемый типами данных реализации)
Примечание
Для пакетов, которые вы задаете в опциях XML, средство экспорта ARXML генерирует пакет, только если модель содержит элемент категории пакета. Например, средство экспорта генерирует пакет метода адреса программного обеспечения, только если модель содержит элемент метода адреса программного обеспечения.
Можно задать отдельные пакеты для перечисленных элементов, например, типов данных приложения. Типы данных реализации агрегированы в основном пакете типов данных.
Структура AR-PACKAGE логически отлична от однофайлового разделения или разделения модульного файла, которое можно выбрать для экспорта ARXML, с помощью опции XML Exported XML file packaging. Для получения дополнительной информации об экспорте пакета AUTOSAR, смотрите Местоположение AR-PACKAGE в Экспортируемых Файлах ARXML.
Если вы импортируете структуру AR-PACKAGE в Simulink, средство импорта ARXML сохраняет отношения элемента пакета и пути к пакету, заданные в коде ARXML. Кроме того, средство импорта заполняет упаковочные свойства в компоненте и представления XML Options в Словаре AUTOSAR. Если код ARXML не присваивает элементы AUTOSAR пакетам на основе категории, средство импорта использует эвристику, чтобы определить оптимальную ассоциацию категории для пакета. Однако максимум одного пакета может быть сопоставлен с категорией.
Предположим, что вы начинаете с non-AUTOSAR модели Simulink и конфигурируете модель для генерации кода AUTOSAR. (Например, открытый Быстрый запуск Embedded Coder и выбирают генерацию кода AUTOSAR.) Программное обеспечение создает начальную структуру AR-PACKAGE по умолчанию. После создания компонента представление компонента в Словаре AUTOSAR отображает Component XML Options, включая пути к пакету для внутреннего поведения компонента и реализацию.
Представление XML Options отображает пути для типа данных AUTOSAR и интерфейсных пакетов и дополнительных пакетов.
Используя подпанель Additional Packages, можно заполнить поля пути для дополнительных пакетов или оставить их пустыми. Если вы оставляете поле пакета пустым, и если модель содержит packageable элементы той категории, средство экспорта ARXML использует внутренние правила, чтобы вычислить путь к пакету. Приложение внутренних правил обратно совместимо с более ранними релизами. В следующей таблице перечислены опцию XML упаковочные свойства с их основанными на правилах путями к пакету по умолчанию.
PropertyName | Пути к пакету на основе внутренних правил |
---|---|
InternalBehaviorQualifiedName | /Components/InternalBehaviors/ |
ImplementationQualifiedName | /Components/SwcImplementations/ |
ComponentQualifiedName | /Components/ (диалоговое окно отображается путь компонента без краткого названия), |
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, и если packageable элементы той категории затронуты, вы можете:
Переместите элементы от существующего пакета до нового пакета.
Установите новый путь к пакету, не перемещая элементы.
Если вы изменяете путь к пакету в Словаре AUTOSAR, и если packageable элементы той категории затронуты, диалоговое окно открывается. Например, если вы изменяете опцию XML ConstantSpecification Package от значения пути /pkg/dt/Ground
к /pkg/misc/MyGround
, программное обеспечение открывает следующее диалоговое окно.
Чтобы переместить постоянные элементы спецификации AUTOSAR в новый пакет, нажмите OK. Чтобы установить новый путь к пакету, не перемещая элементы, нажмите Cancel.
Если вы программно изменяете путь к пакету, можно использовать MoveElements
свойство задать обработку затронутых элементов. Свойство может быть установлено в All
(значение по умолчанию), None
, или Alert
. Если вы задаете Alert
, и если packageable элементы затронуты, программное обеспечение открывает диалоговое окно с кнопками 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, распределенную на нескольких файлах.
Средство экспорта сопоставляет packageable элементы 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>