exponenta event banner

Настройка типов данных AUTOSAR

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

Программное обеспечение поддерживает типы данных AUTOSAR в рабочих процессах Simulink ®, инициированных и выполняемых в оба конца:

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

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

Для типов данных AUTOSAR, созданных в 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». Выберите значение параметра ImplementateDataType Reference. Нажмите кнопку «Применить».

Настройка пакета и имени 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
slbuild(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>

Инициализация данных со спецификацией StartStartSpecification

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

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

  • Создание кода экспортирует код ARXML, который использует ApplicationValueSpecifications для указания начальных значений данных AUTOSAR.

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