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

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

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

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

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

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

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

  • Выравнивание программного обеспечения (SwAlignment) — Задает намеченное выравнивание объекта данных в разделе memory.

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

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

В окружении 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:

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

  • -: Лево-выровнять по ширине.

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

  • #:

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

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

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

width
(дополнительный)

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

precision
(дополнительный)

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

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

  • Для типов eE, и 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 генерирует соответствующую спецификацию ФОРМАТА ОТОБРАЖЕНИЯ.

<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, представление SwAddrMethods, и нажмите кнопку Add. В качестве альтернативы используйте эквивалентные функции свойства AUTOSAR. Для получения дополнительной информации смотрите, Создают SwAddrMethods в Simulink.

  2. Объединенный SwAddrMethods с данными модели и функциями. Откройте редактор Отображений Кода и выберите Parameters, Data Stores, Signals/States или вкладку Functions. Выберите элемент в той вкладке и используйте Property Inspector, чтобы установить атрибут SwAddrMethod. В качестве альтернативы используйте эквивалентную функцию карты AUTOSAR. Для получения дополнительной информации смотрите Партнера 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 раздел memory.

      /* 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, представление 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 с данными модели и функциями, откройте редактор Отображений Кода и выберите Parameters, Data Stores, Signals/States или вкладку Functions. Выберите элемент в той вкладке и используйте Property Inspector, чтобы установить атрибут SwAddrMethod. В этом примере, SwAddrMethod VAR выбран для equal_to_count сигнала, который сопоставлен со статическим ЗУ AUTOSAR.

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

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

SwAlignment свойство описывает намеченное выравнивание данных AUTOSAR в разделе memory. SwAlignment задает количество битов. Допустимые значения включают 8, 12, 32, (удержанный от использования) UNKNOWN, UNSPECIFIED и БУЛЕВСКАЯ ПЕРЕМЕННАЯ. Для числовых данных, типичного 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:

  • Память на экземпляр

  • Параметры компонента программного обеспечения

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

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

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

Экспортируйте SwImplPolicy

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

  • standard для

    • Память на экземпляр

    • Межвыполнимые переменные

    • Параметры компонента программного обеспечения

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

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

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

  • standard или queued для

    Элементы данных интерфейса приемника отправителя

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

Компоненты программного обеспечения AUTOSAR используют размещения записи программного обеспечения (SwRecordLayouts) задавать, как сериализировать данные в памяти о ECU AUTOSAR. Средство импорта 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.

Связанные примеры

Больше о