Сконфигурируйте типы данных релиза 4.x AUTOSAR

Релиз 4.0 AUTOSAR ввел новый подход к типам данных AUTOSAR, в которых базовые типы данных сопоставлены с типами данных реализации и типами данных приложения. Приложение и типы данных реализации разделяют уровень приложения физические атрибуты, такие как реальная область значений значений, структуры данных и физической семантики, от атрибутов уровня реализации, таких как минимум сохраненного целого числа и максимум и спецификация типа примитива (целое число, булевская переменная, действительная, и так далее). Для получения информации о моделировании типов данных R4.x смотрите Типы данных Релиза 4.x.

Программное обеспечение поддерживает типы данных AUTOSAR R4.x в Simulink® порожденные и рабочие процессы туда и обратно:

  • Для компонентов AUTOSAR, порожденных в Simulink, программное обеспечение генерирует приложение AUTOSAR, реализацию и базовые типы, чтобы сохранить информацию, содержавшую в типах данных Simulink.

  • Для рабочих процессов туда и обратно, включающих компоненты AUTOSAR, порожденные вне MATLAB®, средство импорта ARXML и информация о типе данных заповедника средства экспорта и сопоставляющих для каждого импортировали тип данных AUTOSAR.

Для типов данных AUTOSAR R4.x, порожденных в Simulink, можно управлять некоторыми аспектами экспорта типа данных. Например, можно управлять, когда типы данных приложения сгенерированы или задают пакет AUTOSAR и краткое название, экспортируемое для наборов отображения типа данных AUTOSAR.

Генерация типа данных приложения управления

Для типов данных AUTOSAR, созданных в Simulink, по умолчанию, программное обеспечение генерирует типы базы приложения только для типов данных с фиксированной точкой и перечисленных типов даты с типами хранения. Если вы хотите заменить поведение по умолчанию для генерации типов приложения, можно сконфигурировать средство экспорта ARXML, чтобы сгенерировать тип приложения, наряду с типом реализации и базовым типом, поскольку каждый экспортировал тип данных AUTOSAR. Используйте параметр опций XML ImplementationDataType Reference (XMLOptions свойство ImplementationDataTypeReference), для которого можно задать следующие значения:

  • Allowed (значение по умолчанию) — Позволяет прямую ссылку типов реализации в сгенерированном коде ARXML. Если тип данных приложения строго не требуется, чтобы описывать тип данных AUTOSAR, используйте ссылку типа данных реализации.

  • NotAllowed — Не позволяйте прямую ссылку типов данных реализации в сгенерированном коде ARXML. Сгенерируйте тип данных приложения для каждого типа данных AUTOSAR.

Установить ImplementationDataTypeReference свойство в Окне Команды MATLAB, используйте свойство AUTOSAR set вызов функции, похожий на следующее:

hModel = 'autosar_swc_expfcns';
addpath(fullfile(matlabroot,'/examples/autosarblockset/main'));
open_system(hModel);
arProps=autosar.api.getAUTOSARProperties(hModel);
set(arProps,'XmlOptions','ImplementationTypeReference','NotAllowed');
get(arProps,'XmlOptions','ImplementationTypeReference')

Установить ImplementationDataTypeReference свойство в Словаре AUTOSAR, выберите XML Options. Выберите значение для параметра ImplementationDataType Reference. Нажмите Apply.

Сконфигурируйте пакет DataTypeMappingSet и имя

Для компонентов программного обеспечения AUTOSAR, созданных в Simulink, можно управлять пакетом AUTOSAR и кратким названием, экспортируемым для наборов отображения типа данных AUTOSAR. Чтобы сконфигурировать тип данных, сопоставляющий пакет набора для экспорта, установите XMLOptions свойство DataTypeMappingPackage использование Словаря AUTOSAR или свойства AUTOSAR set функция.

hModel = 'autosar_swc_expfcns';
addpath(fullfile(matlabroot,'/examples/autosarblockset/main'));
open_system(hModel);
arProps=autosar.api.getAUTOSARProperties(hModel);
set(arProps,'XmlOptions','DataTypeMappingPackage','/pkg/dt/DataTypeMappings');
get(arProps,'XmlOptions','DataTypeMappingPackage')

Экспортируемый код ARXML использует заданный пакет. Значением по умолчанию, сопоставляющим краткое название набора, является имя компонента ASWC снабженный префиксом к DataTypeMappingsSet.

<DATA-TYPE-MAPPING-REFS>
    <DATA-TYPE-MAPPING-REF DEST="DATA-TYPE-MAPPING-SET">
      /pkg/dt/DataTypeMappings/ASWCDataTypeMappingsSet</DATA-TYPE-MAPPING-REF>
</DATA-TYPE-MAPPING-REFS>
...
<AR-PACKAGE>
    <SHORT-NAME>DataTypeMappings</SHORT-NAME>
    <ELEMENTS>
        <DATA-TYPE-MAPPING-SET UUID="...">
            <SHORT-NAME>ASWCDataTypeMappingsSet</SHORT-NAME>
...
        </DATA-TYPE-MAPPING-SET>
    </ELEMENTS>
</AR-PACKAGE>

Можно задать краткое название для типа данных, сопоставляющего набор с помощью функции свойства AUTOSAR addPackageableElement. Следующий пример задает пользовательский тип данных, сопоставляющий пакет набора и имя с помощью команд MATLAB.

% Add a new data type mapping set
modelName = 'autosar_swc_expfcns';
addpath(fullfile(matlabroot,'/examples/autosarblockset/main'));
open_system(modelName);
propObj = autosar.api.getAUTOSARProperties(modelName);
newMappingSetPath = '/myPkg/mySubpkg/MyMappingSets';
newMappingSetName = 'MappingSetName';
newMappingSet = [newMappingSetPath '/' newMappingSetName];
addPackageableElement(propObj,'DataTypeMappingSet',newMappingSetPath,newMappingSetName);

% Configure the component behavior to use the new data type mapping set
swc = get(propObj,'XmlOptions','ComponentQualifiedName');
ib = get(propObj,swc,'Behavior','PathType','FullyQualified');
set(propObj,ib,'DataTypeMapping',newMappingSet);

% Force generation of application data types
set(propObj,'XmlOptions','ImplementationTypeReference','NotAllowed');

% Build
rtwbuild(modelName);

Экспортируемый код ARXML использует заданный пакет и имя, как показано ниже.

<INTERNAL-BEHAVIORS>
    <SWC-INTERNAL-BEHAVIOR UUID="...">
        <SHORT-NAME>IB</SHORT-NAME>
        <DATA-TYPE-MAPPING-REFS>
            <DATA-TYPE-MAPPING-REF DEST="DATA-TYPE-MAPPING-SET">
              /myPkg/mySubpkg/MyMappingSets/MappingSetName</DATA-TYPE-MAPPING-REF>
        </DATA-TYPE-MAPPING-REFS>
...
    </SWC-INTERNAL-BEHAVIOR>
</INTERNAL-BEHAVIORS>

Инициализируйте данные ApplicationValueSpecification

Чтобы инициализировать объекты данных AUTOSAR, введенные типом данных приложения, R4.1 требует технических требований значения приложения AUTOSAR (ApplicationValueSpecifications). Embedded Coder® оказывает следующую поддержку:

  • Средство импорта ARXML использует ApplicationValueSpecifications найденный в импортированных файлах ARXML инициализировать соответствующие объекты данных в модели Simulink.

  • Если вы выбираете схему 4.0 AUTOSAR или позже для модели, которая содержит параметры AUTOSAR, введенные типом данных приложения, генерация кода экспортирует код ARXML, который использует ApplicationValueSpecifications, чтобы задать начальные значения для данных AUTOSAR.

Для параметров AUTOSAR, введенных типом данных реализации, генерация кода экспортирует код ARXML, который использует NumericalValueSpecifications и (для перечислимых типов) TextValueSpecifications, чтобы задать начальные значения. Если начальные значения для параметров задают несколько значений, сгенерированный код использует ArrayValueSpecifications.