Стандарт AUTOSAR определяет подход к типам данных AUTOSAR, при котором базовые типы данных сопоставляются с типами данных реализации и типами данных приложений. Типы данных приложения и реализации отделяют физические атрибуты уровня приложения, такие как реальная область значений значений, структура данных и физическая семантика, от атрибутов уровня реализации, таких как хранимый-целочисленный минимум и максимум и спецификация примитивного типа (целое число, логический язык, действительный и так далее). Для получения информации о типах данных моделирования смотрите Model AUTOSAR Data Types.
Программное обеспечение поддерживает типы данных 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 Options. Выберите значение для ImplementationDataType Reference параметра. Нажмите Apply.
Для компонентов программного обеспечения 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>
Чтобы инициализировать объекты данных AUTOSAR, типизированные типом данных приложения, стандарт AUTOSAR (R4.1 или более поздние версии) требует спецификаций значений приложения AUTOSAR (ApplicationValueSpecification
с). Embedded Coder® обеспечивает следующую поддержку:
Импортер ARXML использует ApplicationValueSpecification
s найдено в импортированных файлах ARXML, чтобы инициализировать соответствующие объекты данных в модели Simulink.
Генерация кода экспортирует код ARXML, который использует ApplicationValueSpecification
s, чтобы задать начальные значения для данных AUTOSAR.
Для параметров AUTOSAR, типизированных типом данных реализации, генерация кода экспортирует код ARXML, который использует NumericalValueSpecification
s и (для перечисляемых типов) TextValueSpecification
s, чтобы задать начальные значения. Если начальные значения параметров задают несколько значений, сгенерированный код использует ArrayValueSpecification
с.