Сконфигурируйте данные AUTOSAR для измерения и калибровки

В Simulink®можно импортировать и экспортировать свойства определения данных программного обеспечения AUTOSAR и изменить свойства для некоторых форм данных AUTOSAR.

О свойствах определения данных программного обеспечения (SwDataDefProps)

Embedded Coder® поддерживает импорт и экспорт ARXML следующих свойств определения данных программного обеспечения AUTOSAR (SwDataDefProps):

  • Доступ к калибровке программного обеспечения (SwCalibrationAccess) - Задает доступ инструмента измерения и калибровки к объекту данных.

  • Формат отображения (DisplayFormat) - Задает формат отображения измерений и калибровки для объекта данных.

  • Метод адреса программного обеспечения (SwAddrMethod) - Задает метод доступа к объекту данных (для примера, параметру измерения или калибровки) согласно заданному адресу. Используется для группирования данных в памяти для доступа по измерениям и инструментам калибровки во время выполнения.

  • Выравнивание ПО (SwAlignment) - Задает предполагаемое выравнивание объекта данных в разделе памяти.

  • Политика реализации программного обеспечения (SwImplPolicy) - Задает политику реализации для объекта данных, относительно механизмов согласованности переменных.

  • Размещение записи программного обеспечения (SwRecordLayout) - Определяет, как сериализовать данные в памяти авто-РСА ECU.

В окружение Simulink можно непосредственно изменить свойства определения данных программного обеспечения для некоторых форм данных AUTOSAR. Вы не можете изменить SwImplPolicy или SwRecordLayout свойства, но свойства экспортируются в код ARXML.

Дополнительные сведения см. в разделах Настройка SwCalibrationAccess, Настройка DisplayFormat, Настройка SwAddrMethod, Настройка SwAlignment, Экспорт SwImplPolicy и Экспорт SwRecordLayout для данных интерполяционной таблицы.

Сконфигурируйте SwCalibrationAccess

Можно задать SwCalibrationAccess свойство для переменных измерения, параметров калибровки и объектов данных о сигнале и параметре. Допустимые значения:

  • ReadOnly - Элемент данных появляется в сгенерированном файле описания с доступом только для чтения.

  • ReadWrite - Элемент данных появляется в сгенерированном файле описания с доступом как для чтения, так и для записи.

  • NotAccessible - Элемент данных не отображается в сгенерированном файле описания и недоступен с помощью инструментов измерений и калибровки.

Если вы открываете модель с сигналами и параметрами, можно задать SwCalibrationAccess свойство следующими способами:

Задайте SwCalibrationAccess для элементов данных AUTOSAR

Вы можете использовать или словарь AUTOSAR или MATLAB® вызовы функций, чтобы задать SwCalibrationAccess свойство для следующих элементов данных AUTOSAR:

  • Элементы данных интерфейса отправитель-получатель

  • Энергонезависимые элементы данных интерфейса

  • Аргументы клиент-сервер

  • Межпрограммные переменные

Для примера:

  1. Откройте модель, которая сконфигурирована для AUTOSAR.

  2. Откройте словарь AUTOSAR. Перейдите к одному из следующих видов:

    • Интерфейс S-R или NV, DataElements вид

    • Интерфейс C-S, Arguments вид

    • Атомарный компонент, IRV вид

  3. Используйте раскрывающийся список SwCalibrationAccess, чтобы выбрать уровень доступа к инструменту измерения и калибровки, чтобы разрешить для элемента данных.

Кроме того, можно использовать функции свойства AUTOSAR, чтобы задать SwCalibrationAccess свойство для элементов данных AUTOSAR. Например, следующий код открывает autosar_swc_fcncalls пример модели и устанавливает доступ к измерениям и калибровке для переменных с двумя IRV2 на ReadWrite.

hModel = 'autosar_swc_fcncalls';
addpath(fullfile(matlabroot,'/examples/autosarblockset/main'));
open_system(hModel)
arProps = autosar.api.getAUTOSARProperties(hModel);
get(arProps,'/Company/Powertrain/Components/ASWC/ASWC_IB/IRV2','SwCalibrationAccess')

set(arProps,'/Company/Powertrain/Components/ASWC/ASWC_IB/IRV2','SwCalibrationAccess','ReadWrite');
get(arProps,'/Company/Powertrain/Components/ASWC/ASWC_IB/IRV2','SwCalibrationAccess')
ans =
    'ReadOnly'

ans =
    'ReadWrite'

Вот пример вызова свойств AUTOSAR set функция, чтобы задать SwCalibrationAccess для элемента данных интерфейса S-R в той же модели.

set(arProps,'/Company/Powertrain/Interfaces/InIf/In1','SwCalibrationAccess','ReadWrite');
get(arProps,'/Company/Powertrain/Interfaces/InIf/In1','SwCalibrationAccess')
ans =
    'ReadWrite'

Задайте SwCalibrationAccess по умолчанию для типов данных приложений

Опции AUTOSAR XML включают SwCalibrationAccess DefaultValue (свойство SwCalibrationAccessDefault), который определяет значение по умолчанию SwCalibrationAccess значение для типов данных приложений AUTOSAR в модели. Для изменения значения по умолчанию можно использовать функции свойства AUTOSAR. Например, следующий код открывает autosar_swc_fcncalls пример модели и изменяет стандартный доступ к измерениям и калибровке для типов данных приложений AUTOSAR из ReadOnly на ReadWrite.

hModel = 'autosar_swc_fcncalls';
addpath(fullfile(matlabroot,'/examples/autosarblockset/main'));
open_system(hModel)
arProps = autosar.api.getAUTOSARProperties(hModel);
get(arProps,'XmlOptions','SwCalibrationAccessDefault')

set(arProps,'XmlOptions','SwCalibrationAccessDefault','ReadWrite');
get(arProps,'XmlOptions','SwCalibrationAccessDefault')
ans =
    'ReadOnly'

ans =
    'ReadWrite'

Сконфигурируйте DisplayFormat

Спецификации формата отображения AUTOSAR управляют отображением ширины и точности для данных измерений и калибровки. Можно импортировать и экспортировать спецификации формата отображения AUTOSAR и отредактировать спецификации в Simulink. Формат отображения можно задать для следующих элементов AUTOSAR:

  • Межпрограммные переменные

  • Элементы данных интерфейса отправитель-получатель

  • Аргументы в пользу операции интерфейса клиент-сервер

  • CompuMethods

Спецификация формата отображения является подмножеством ANSI® C printf спецификаторы со следующей формой:

%[flags][width][.precision]type
ОбластьОписание
flags
(необязательно)

Символы, задающие флаги, поддерживаемые схемами AUTOSAR:

  • (''): Вставьте пространство перед значением.

  • -: Слева-оправдать.

  • +: Отобразите знак плюс-минус, даже для положительных чисел.

  • #:

    • Для типов o, x, и X, отобразите 0, 0x, или 0X префикс.

    • Для типов e, E, и f, отобразите десятичную точку, даже если точность равна 0.

    • Для типов g и G, не удаляйте конечные нули или десятичную точку.

width
(необязательно)

Положительное целое число, указывающее минимальное количество символов для отображения.

precision
(необязательно)

Положительное целое число, определяющее точность отображения:

  • Для значений целого типа (d, i, o, u, x, и X), задает минимальное количество цифр.

  • Для типов e, E, и f, задает количество цифр справа от десятичной точки.

  • Для типов g и G, определяет количество значащих цифр.

type

Символы, задающие тип числового преобразования, поддерживаемый схемами AUTOSAR:

  • d: Знаковое десятичное целое число.

  • i: Знаковое десятичное целое число.

  • o: Беззнаковое восьмеричное целое число.

  • u: Беззнаковое десятичное целое число.

  • x: Беззнаковое шестнадцатеричное целое число, с использованием символов «abcdef».

  • X: Беззнаковое шестнадцатеричное целое число, с использованием символов «ABCDEF».

  • e: Подписанное значение с плавающей точкой в экспоненциальном обозначении. Значение имеет форму [-]d.dddd e [sign]ddd.

    • d - одна десятичная цифра.

    • dddd - одна или несколько десятичных цифр.

    • ddd - это в точности три десятичные цифры.

    • sign является + или -.

  • E: Идентично e формат, кроме того E, а не e, представляет экспоненту.

  • f: Подписанное значение с плавающей точкой в обозначении с фиксированной точкой. Значение имеет форму [-]dddd.dddd.

    • dddd - одна или несколько десятичных цифр.

    • Количество цифр перед десятичной точкой зависит от величины числа.

    • Количество цифр после десятичной точки зависит от требуемой точности.

  • g: Значение со знаком, напечатанное в f или e формат, который является более компактным для заданных значения и точности. Конечные нули усекаются, и десятичная точка появляется только в том случае, если за ней следует одна или несколько цифр.

  • G: Идентично g формат, кроме того E, а не e, представляет экспоненту (где требуется).

Для примера - спецификатор формата %2.1d задает ширину 2, точность 1 и десятичное число со знаком типа, получая отображаемое значение 12.2.

Атрибут DisplayFormat появляется в диалоговых окнах для элементов AUTOSAR, к которым он применяется. Формат отображения можно задать в диалоговом окне или с помощью API элемента, который может изменять атрибуты.

hModel = 'autosar_swc_counter';
addpath(fullfile(matlabroot,'/examples/autosarblockset/main'));
open_system(hModel);
slMap = autosar.api.getSimulinkMapping(hModel);
mapParameter(slMap,'INC','ConstantMemory','DisplayFormat','%2.6f')

Если вы задаете формат отображения, экспорт кода ARXML генерирует соответствующую спецификацию DISPLAY-FORMAT.

<PARAMETER-DATA-PROTOTYPE UUID="...">
    <SHORT-NAME>INC</SHORT-NAME>
    <CATEGORY>VALUE</CATEGORY>
    <SW-DATA-DEF-PROPS>
        <SW-DATA-DEF-PROPS-VARIANTS>
            <SW-DATA-DEF-PROPS-CONDITIONAL>
                <SW-CALIBRATION-ACCESS>READ-WRITE</SW-CALIBRATION-ACCESS>
                <DISPLAY-FORMAT>%2.6f</DISPLAY-FORMAT>
                <SW-IMPL-POLICY>STANDARD</SW-IMPL-POLICY>
            </SW-DATA-DEF-PROPS-CONDITIONAL>
        </SW-DATA-DEF-PROPS-VARIANTS>
    </SW-DATA-DEF-PROPS>
    ...
</PARAMETER-DATA-PROTOTYPE>

Сконфигурируйте SwAddrMethod

Программные компоненты AUTOSAR используют методы адреса программного обеспечения (SwAddrMethods) группировать данные и функции в разделы памяти для доступа во время выполнения измерений и инструментов калибровки. Для модели Simulink, сопоставленной с программным компонентом AUTOSAR, можно связать SwAddrMethods с этими элементами:

  • Параметру модели или интерполяционной таблице сопоставлено:

    • Постоянная память AUTOSAR

    • Параметр внутренней калибровки AUTOSAR

    • Параметр порта AUTOSAR

  • Сигнал, состояние или хранилище данных сопоставлено с:

    • Статическая память AUTOSAR

    • AUTOSAR для каждого экземпляра памяти

  • Моделируйте функцию точки входа, сопоставленную с выполняемой AUTOSAR

  • Внутренние данные внутри функции точки входа модели

Создание и использование SwAddrMethods в модели AUTOSAR:

  1. Импортируйте SwAddrMethods из файлов ARXML или создать SwAddrMethods в Simulink.

    • Для импорта SwAddrMethods из файлов ARXML, используйте arxml.importer функция - createComponentAsModel или createCompositionAsModel для новой модели, или updateModel или updateAUTOSARProperties для существующей модели.

    • Создание SwAddrMethods в существующей модели откройте AUTOSAR Dictionary, представление SwAddrMethods и нажмите кнопку Add. Кроме того, используйте эквивалентные функции свойств AUTOSAR. Для получения дополнительной информации смотрите Создание SwAddrMethods в Simulink.

  2. Ассоциируйте SwAddrMethods с данными моделями и функциями. Откройте редактор Отображения и выберите Parameters, Data Stores, Signals/States или Functions вкладку. Выберите элемент на этой вкладке и используйте Property Inspector, чтобы задать атрибут SwAddrMethod. Кроме того, используйте эквивалентную функцию AUTOSAR map. Для получения дополнительной информации смотрите Связать SwAddrMethod с данными моделями или функцией.

  3. Сгенерируйте код для вашей модели AUTOSAR. (Этот пример использует сигнал, сопоставленный со статической памятью AUTOSAR в модели autosar_swc_counter.) В сгенерированных файлах:

    • Экспортированные файлы ARXML содержат SwAddrMethod описания и ссылки.

      <VARIABLE-DATA-PROTOTYPE UUID="...">
          <SHORT-NAME>SM_equal_to_count</SHORT-NAME>
          <CATEGORY>VALUE</CATEGORY>
          <SW-DATA-DEF-PROPS>
              <SW-DATA-DEF-PROPS-VARIANTS>
                  <SW-DATA-DEF-PROPS-CONDITIONAL>
                      <SW-ADDR-METHOD-REF DEST="SW-ADDR-METHOD">
                      /Company/Powertrain/DataTypes/SwAddrMethods/VAR
                      </SW-ADDR-METHOD-REF>
                      <SW-CALIBRATION-ACCESS>READ-ONLY</SW-CALIBRATION-ACCESS>
                      <SW-IMPL-POLICY>STANDARD</SW-IMPL-POLICY>
                  </SW-DATA-DEF-PROPS-CONDITIONAL>
              </SW-DATA-DEF-PROPS-VARIANTS>
          </SW-DATA-DEF-PROPS>
          <TYPE-TREF DEST="IMPLEMENTATION-DATA-TYPE">
          /Company/Powertrain/DataTypes/Boolean_volatile_my_qualifier</TYPE-TREF>
      </VARIABLE-DATA-PROTOTYPE>
    • Совместимый с AUTOSAR код С содержит комментарии и #define и #include операторы, которые обеспечивают обертку вокруг данных или определений функций, принадлежащих каждому SwAddrMethod раздел памяти.

      /* Static Memory for Internal Data */
      
      /* SwAddrMethod VAR for Internal Data */
      #define autosar_swc_counter_START_SEC_VAR
      #include "autosar_swc_counter_MemMap.h"
      
      volatile my_qualifier boolean SM_equal_to_count;
      
      #define autosar_swc_conter_STOP_SEC_VAR
      #include "autosar_swc_counter_MemMap.h"

Создание SwAddrMethods в Simulink

Создание SwAddrMethods в существующей модели откройте AUTOSAR Dictionary, представление SwAddrMethods и нажмите кнопку Add.

Кроме того, используйте эквивалентные функции свойств AUTOSAR. Этот код добавляет SwAddrMethods myCODE и myVAR к модели компонента AUTOSAR.

hModel = 'autosar_swc_counter';
addpath(fullfile(matlabroot,'/examples/autosarblockset/main'));
open_system(hModel)
arProps = autosar.api.getAUTOSARProperties(hModel);
addPackageableElement(arProps,'SwAddrMethod',...
    '/Company/Powertrain/DataTypes/SwAddrMethods','myCODE',...
    'SectionType','Code')
swAddrPaths = find(arProps,[],'SwAddrMethod','PathType','FullyQualified',...
    'SectionType','Code')
addPackageableElement(arProps,'SwAddrMethod',...
    '/Company/Powertrain/DataTypes/SwAddrMethods','myVAR',...
    'SectionType','Var')
swAddrPaths = find(arProps,[],'SwAddrMethod','PathType','FullyQualified',...
    'SectionType','Var')
swAddrPaths =
    {'/Company/Powertrain/DataTypes/SwAddrMethods/CODE'}
    {'/Company/Powertrain/DataTypes/SwAddrMethods/myCODE'}

swAddrPaths =
    {'/Company/Powertrain/DataTypes/SwAddrMethods/VAR'}
    {'/Company/Powertrain/DataTypes/SwAddrMethods/myVAR'}

Ассоциируйте SwAddrMethod с Данными моделями или функцией

Чтобы связать SwAddrMethods с данными модели и функциями, откройте редактор Code Mappings и выберите Parameters, Data Stores, Signals/States или Functions вкладку. Выберите элемент на этой вкладке и используйте Property Inspector, чтобы задать атрибут SwAddrMethod. В этом примере SwAddrMethod VAR выбирается для equal_to_count сигнала, который сопоставлен со статической памятью AUTOSAR.

Кроме того, используйте эквивалентную функцию AUTOSAR map. Для получения дополнительной информации смотрите страницу с описанием для mapFunction, mapParameter, mapSignal, mapState, или mapDataStore.

Сконфигурируйте SwAlignment

The SwAlignment свойство описывает предполагаемое выравнивание данных AUTOSAR в разделе памяти. SwAlignment задает количество бит. Допустимые значения: 8, 12, 32, UNKNOWN (устаревший), UNSPECIFIED и BOOLEAN. Для числовых данных типичные SwAlignment значения 8, 16 и 32.

Если вы не задаете SwAlignment свойство, swBaseType размер и memoryAllocationKeywordPolicy ссылку на SwAlignment определить выравнивание.

Вы можете использовать функцию свойства AUTOSAR set для установки SwAlignment для элементов данных интерфейса S-R и переменных, которые можно выполнять. Для примера:

interfacePath = '/A/B/C/Interfaces/If1/';
dataElementName = 'El1';
swAlignmentValue = '32';
set(dataObj,[interfacePath dataElementName],'SwAlignment',swAlignmentValue);

Для поддержки рабочего процесса туда и обратно, импортер ARXML импортирует и сохраняет SwAlignment свойство для следующих данных AUTOSAR:

  • Память в относительных экземплярах

  • Параметры программного компонента

  • Элементы данных интерфейса параметра

  • Аргументы в пользу операции интерфейса клиент-сервер

  • Статическая и постоянная память

Экспорт SwImplPolicy

The SwImplPolicy свойство задает политику реализации для элемента данных относительно механизмов согласованности переменных. Вы не можете изменить SwImplPolicy свойство, но для свойства задано значение standard или queued для данных AUTOSAR в экспортированном коде ARXML. Значение установлено в:

  • standard для

    • Память в относительных экземплярах

    • Межпрограммные переменные

    • Параметры программного компонента

    • Элементы данных интерфейса параметра

    • Аргументы в пользу операции интерфейса клиент-сервер

    • Статическая и постоянная память

  • standard или queued для

    Элементы данных интерфейса отправитель-получатель

Экспорт SwRecordLayout для Интерполяционной таблицы данных

Программные компоненты AUTOSAR используют размещения записей программного обеспечения (SwRecordLayouts), чтобы указать, как сериализовать данные в памяти авто-РСА AUTOSAR ECU. Импортер ARXML импортирует и сохраняет SwRecordLayout свойство для данных AUTOSAR.

Можно импортировать SwRecordLayouts из файлов ARXML любым из двух способов:

  • Если вы создаете свою модель AUTOSAR из файлов ARXML с помощью функции импорта createComponentAsModel, включать файл ARXML, содержащий SwRecordLayout определения в импорте. Импортированные SwRecordLayouts сохраняются и позже экспортируются в код ARXML.

  • Если вы создаете свою модель AUTOSAR в Simulink, можно импортировать общие определения SwRecordLayouts из файлов ARXML. Используйте функцию импортера updateAUTOSARProperties. Для примера:

    importerObj = arxml.importer(arxmlFileName);
    updateAUTOSARProperties(importerObj,modelName);

    При генерации кода модели экспортированный код ARXML содержит ссылки на импортированные SwRecordLayout только для чтения элементы, но не их определения.

    Для получения дополнительной информации смотрите Импорт и ссылки Общие определения элементов AUTOSAR.

Похожие примеры

Подробнее о