Сконфигурируйте данные 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

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

Создать и использовать 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.

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

Больше о