Сконфигурируйте коммуникацию отправителя-получателя AUTOSAR

При коммуникации с получателем (S-R) на основе портов AUTOSAR программные компоненты AUTOSAR считывают и записывают данные в другие компоненты или службы. Для реализации связи S-R программные компоненты AUTOSAR определяют:

  • Интерфейс отправителя-получателя AUTOSAR с элементами данных.

  • AUTOSAR обеспечивает и требует порты, которые отправляют и получают данные.

В Simulink®, можно:

  1. Создайте интерфейсы и порты AUTOSAR S-R с помощью словаря AUTOSAR.

  2. Модель AUTOSAR обеспечивает и требует порты с помощью выходов и входных портов корневого уровня Simulink.

  3. Сопоставьте выходные порты и входные порты с AUTOSAR, обеспечивающими и требующими порты, с помощью редактора Отображения.

Для обмена данными между отправителем и получателем в очереди смотрите Конфигурирование связи между отправителем и получателем в очереди AUTOSAR.

Сконфигурируйте интерфейс отправителя-получателя AUTOSAR

Чтобы создать интерфейс S-R и порты в Simulink:

  1. Откройте словарь AUTOSAR и выберите S-R Interfaces. Нажмите кнопку Add, чтобы создать новый интерфейс данных AUTOSAR S-R. Укажите его имя и количество связанных элементов данных S-R.

  2. Выберите и разверните новый интерфейс S-R. Выберите DataElements и измените атрибуты элемента данных AUTOSAR.

  3. В словаре AUTOSAR разверните узел AtomicComponents и выберите компонент AUTOSAR. Разверните компонент.

  4. Выберите и используйте представления ReceiverPorts, SenderPorts и SenderReceiverPorts для добавления портов AUTOSAR S-R, которые необходимо связать с новым интерфейсом S-R. Для каждого нового порта S-R выберите созданный интерфейс S-R.

    Опционально исследуйте атрибуты связи для каждого порта S-R и изменяйте при необходимости. Дополнительные сведения см. в разделе Настройка ComSpecs порта отправителя-получателя AUTOSAR.

  5. Откройте редактор Отображения. Выберите и используйте вкладки Inports и Outports, чтобы сопоставить входные и выходные порты Simulink с портами AUTOSAR S-R. Для каждого входного или выходного порта выберите порт AUTOSAR, элемент данных и режим доступа к данным.

Сконфигурируйте порт AUTOSAR Supply-Require

AUTOSAR Release 4.1 представил порт AUTOSAR, требующий предоставления (PRPort). Моделирование AUTOSAR- PRPort включает использование пары inport и outport Simulink с совпадающими типом данных, размерностью и типом сигнала. Можно связать PRPort с интерфейсом отправитель-получатель (S-R) или с энергонезависимым (NV) интерфейсом данных.

Настройка AUTOSAR- PRPort для связи S-R в Simulink:

  1. Откройте модель, которая сконфигурирована для AUTOSAR и в которой runnable имеет входной порт и выходной порт, подходящие для соединения в AUTOSAR PRPort. В этом примере RPort_DE1 порт и PPort_DE1 outport оба используют тип данных int8, размерность порта 1 и тип сигнала real.

  2. Откройте словарь AUTOSAR и перейдите к представлению SenderReceiverPorts. (Чтобы сконфигурировать PRPort для связи NV используйте вместо этого представление NvSenderReceiverPorts .)

  3. Чтобы добавить порт отправителя-получателя, нажмите кнопку Add. В диалоговом окне Add Ports задайте Name следующим PRPort и выберите Interface из списка доступных интерфейсов S-R. Нажмите Add.

  4. Откройте редактор Отображения и выберите вкладку Inports. Чтобы сопоставить входной порт Simulink с созданным портом отправителя-получателя AUTOSAR, выберите входной порт, установите Port значение PRPortи установите Element в элемент данных, который будут использовать входной порт и выходной порт.

  5. Выберите вкладку Outports. Чтобы сопоставить выходной порт Simulink с созданным портом отправителя-получателя AUTOSAR, выберите выходной порт, установите Port значение PRPortи установите Element на тот же элемент данных, что и на предыдущем шаге.

  6. Нажмите кнопку Validate для проверки обновлённого строения компонента AUTOSAR. Если сообщается об ошибках, устраните их и повторите валидацию. Распространенной ошибкой, отмеченной валидацией, являются несоответствующие свойства между входным и выходным портами, которые сопоставлены с AUTOSAR PRPort.

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

hModel = 'my_autosar_expfcns';
open_system(hModel)
arProps = autosar.api.getAUTOSARProperties(hModel);
swcPath = find(arProps,[],'AtomicComponent')
swcPath = 
    'ASWC
add(arProps,'ASWC','SenderReceiverPorts','PRPort','Interface','Interface1')
prportPath = find(arProps,[],'DataSenderReceiverPort')
prportPath = 
    'ASWC/PRPort'
slMap = autosar.api.getSimulinkMapping(hModel);
mapInport(slMap,'RPort_DE1','PRPort','DE1','ImplicitReceive')
mapOutport(slMap,'PPort_DE1','PRPort','DE1','ImplicitSend')
[arPortName,arDataElementName,arDataAccessMode] = getOutport(slMap,'PPort_DE1')
arPortName =
PRPort

arDataElementName =
DE1

arDataAccessMode =
ImplicitSend

Сконфигурируйте порт приемника AUTOSAR для службы IsUpdated

AUTOSAR задает такие атрибуты качества обслуживания, как ErrorStatus и IsUpdated, для интерфейсов отправитель-получатель. The IsUpdated атрибут позволяет явному приемнику AUTOSAR обнаруживать, получил ли элемент данных порта получателя данные с момента последнего чтения. Когда данные находятся в простое, приемник может сэкономить вычислительные ресурсы.

Для отправителя Окружение выполнения AUTOSAR (RTE) устанавливает статус флага обновления, указывая, был ли записан элемент данных. Приемник вызывает Rte_IsUpdated_<reservedrangesplaceholder0 >_ Element API, который считывает флаг обновления и возвращает значение, указывающее, обновлялся ли элемент данных с момента последнего чтения.

В Simulink можно:

  • Импорт порта приемника AUTOSAR, для которого IsUpdated служба сконфигурирована.

  • Сконфигурируйте порт приемника AUTOSAR для IsUpdated сервис.

  • Сгенерируйте код C и ARXML для порта приемника AUTOSAR, для которого IsUpdated служба сконфигурирована.

Для моделирования IsUpdated сервис в Simulink, вы связываете входной порт, который сконфигурирован для ExplicitReceive доступ к данным с новым входным портом, настроенным для IsUpdated доступ к данным. Настройка порта приемника AUTOSAR для IsUpdated сервис:

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

  2. Идентифицируйте входной порт, соответствующий порту приемника AUTOSAR, для которого IsUpdated Требуется обслуживание. Создайте второй входной порт, установите его тип данных boolean, и соедините его с тем же блоком. Для примера:

  3. Откройте редактор Отображения. Выберите вкладку Inports. В представлении inports настройте свойства отображения для обоих входных портов.

    1. Если порт данных еще не сконфигурирован, установите значение DataAccessMode ExplicitReceive. Выберите Port и Element значения, которые сопоставляют входной порт с портом приемника AUTOSAR и элементом данных, для которого IsUpdated Требуется обслуживание.

    2. Для входного порта качества обслуживания установите DataAccessMode равным IsUpdated. Выберите Port и Element значения, которые точно совпадают с входными данными.

  4. Для проверки строения компонента AUTOSAR нажмите кнопку Validate.

  5. Создайте модель и смотрите сгенерированный код. Сгенерированный код C содержит Rte_IsUpdated Вызов API.

    if (Rte_IsUpdated_Input_DE1()) {
      …
      Rte_Read_Input_DE1(&tmp);
      …
    }

    Экспортированный код ARXML содержит параметр ENABLE-UPDATE true для порта приемника AUTOSAR.

    <R-PORT-PROTOTYPE UUID="...">
        <SHORT-NAME>Input</SHORT-NAME>
        <REQUIRED-COM-SPECS>
            <NONQUEUED-RECEIVER-COM-SPEC>
                <DATA-ELEMENT-REF DEST="VARIABLE-DATA-PROTOTYPE">/pkg/if/Input/DE1
                                                               </DATA-ELEMENT-REF>
                …
                <ENABLE-UPDATE>true</ENABLE-UPDATE>
                …
            </NONQUEUED-RECEIVER-COM-SPEC>
        </REQUIRED-COM-SPECS>
        …
    </R-PORT-PROTOTYPE>

Сконфигурируйте недействительность данных отправителя-получателя AUTOSAR

Стандарт AUTOSAR задает механизм недействительности для элементов данных AUTOSAR, используемых в коммуникации отправитель-получатель (S-R). Отправитель, компонент может уведомить дочерний приемник, компонент данные в порту отправителя недопустимы. Каждый элемент данных S-R может иметь политику недействительности. В Simulink можно:

  • Импорт элементов данных отправителя-получателя AUTOSAR, для которых настроена политика недействительности.

  • Используйте блок Signal Invalidation, чтобы смоделировать недействительность данных отправителя-получателя для симуляции и генерации кода. Используя параметры блоков, можно задать политику недействительности сигнала и начальное значение для элемента данных S-R.

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

Для каждого элемента данных S-R можно задать Signal Invalidation параметров блоков Signal invalidation policy Keep, Replace, или DontInvalidate. Если значение входных данных недопустимо (флаг управления недействительным true), полученное действие определяется значением Signal invalidation policy:

  • Keep - Замените значение входных данных на последнее допустимое значение сигналов.

  • Replace - Замените значение входных данных на параметр Initial value.

  • DontInvalidate - Не заменяйте значение входных данных.

Чтобы настроить политику недействительности для элемента данных AUTOSAR S-R в Simulink:

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

    • Выходной порт Simulink с именем Out сопоставлен с портом отправителя AUTOSAR PPort и OutElem элемента данных. В словаре AUTOSAR порт отправителя AUTOSAR PPort выбирает интерфейс S-R Out, который содержит элемент данных OutElem.

    • Входной порт Simulink с именем In1 сопоставлен с портом приемника AUTOSAR RPort1 и InElem1 элемента данных. В словаре AUTOSAR порт приемника AUTOSAR RPort1 выбирает интерфейс S-R In1, который содержит элемент данных InElem1. В редакторе Code Mappings, Inports вкладке, вот отображение для inport In1.

  2. Добавьте блок Signal Invalidation к модели.

    1. Блок должен быть подключен непосредственно к корневому блоку вывода. Соедините блок с корневым выходом Out.

    2. Соедините вход первого блока, значение данных, с путем данных от корневого входного порта In1.

    3. Для второго блока, флага управления недействительностью, добавьте корневой входной порт с именем In2 в модель. Установите его тип данных скаляром boolean. Сопоставьте новый входной порт со вторым портом отправителя AUTOSAR. Если второй порт отправителя AUTOSAR не существует, используйте словарь AUTOSAR для создания порта AUTOSAR, интерфейса S-R и элемента данных.

      В этом примере Simulink inport In2 сопоставлен с портом приемника AUTOSAR RPort2 и InElem2 элемента данных. В словаре AUTOSAR порт приемника AUTOSAR RPort2 выбирает интерфейс S-R In2, который содержит элемент данных InElem2.

      Соедините вход второго блока с корневым входным портом In2.

  3. Просмотрите параметры блоков Signal Invalidation, для примера, в Property Inspector или в диалоговом окне параметров блоков. Исследуйте атрибуты Signal invalidation policy и Initial value. Для получения дополнительной информации см. Signal Invalidation страницы с описанием блоков.

  4. Откройте редактор Отображения и выберите вкладку Outports. Для корневого порта Out, проверьте, что в режиме доступа к данным AUTOSAR установлено значение ExplicitSend или EndToEndWrite.

  5. Чтобы проверить строение компонента AUTOSAR, откройте редактор Отображения и нажмите кнопку Validate.

  6. Создайте модель и смотрите сгенерированный код. Когда сигнал действителен, сгенерированный код C вызывает Rte_Write_<reservedrangesplaceholder0 >_ Element. Когда сигнал является недопустимым, код С вызывает Rte_Invalidate_<reservedrangesplaceholder0 >_ Element.

    /* SignalInvalidation: '<Root>/Signal Invalidation' incorporates:
     *  Inport: '<Root>/In2'
     */
    if (!Rte_IRead_Runnable_Step_RPort2_InElem2()) {
      /* Outport: '<Root>/Out' */
      (void) Rte_Write_PPort_OutElem(mSignalInvalidation_B.Gain);
    } else {
      Rte_Invalidate_PPort_OutElem();
    }

    Экспортированный код ARXML содержит параметр недействительности для элемента данных.

    <INVALIDATION-POLICY>
        <DATA-ELEMENT-REF DEST="VARIABLE-DATA-PROTOTYPE">/pkg/if/Out/OutElem</DATA-ELEMENT-REF>
        <HANDLE-INVALID>KEEP</HANDLE-INVALID>
    </INVALIDATION-POLICY>
    

Сконфигурируйте порт интерфейса S-R AUTOSAR для сквозной защиты

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

Для более лёгкого интегрирования сгенерированного кода AUTOSAR с авто-РСА E2E решениями, Embedded Coder® поддерживает защиту E2E AUTOSAR. В Simulink можно:

  • Импорт портов отправителя и приемника AUTOSAR, для которых сконфигурирована защита E2E.

  • Сконфигурируйте порт отправителя или приемника AUTOSAR для E2E защиты.

  • Сгенерируйте код C и ARXML для портов отправителя и приемника AUTOSAR, для которых настроена E2E защита.

Необходимо сконфигурировать E2E защиту для портов отправителя и приемника AUTOSAR, которые используют явные режимы записи и чтения данных. При изменении режима доступа к данным порта AUTOSAR с явной записи на сквозную запись или с явной чтения на сквозную чтение:

  • Поведение симуляции не влияет.

  • Генерация кода похожа на явную запись и чтение, с этими различиями:

    • E2E API оболочки инициализации вызовов появиться в коде инициализации на C.

    • E2E API оболочки защиты вызовов появиться в коде шага С.

    • В сочетании со статусом ошибки inport сквозное чтение возвращается uint32 а не uint8.

    • Для приемник и отправителя, экспортер ARXML генерирует свойство USES-END-TO-END-PROTECTION со значением true.

Чтобы сконфигурировать порт отправителя или приемника AUTOSAR для E2E защиты:

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

  2. Откройте редактор Отображения. Перейдите к входному или выходному порту Simulink, который моделирует порт приемника или отправителя AUTOSAR, для которого необходимо сконфигурировать E2E защиту. Выберите порт.

  3. Установите режим доступа к данным AUTOSAR равным EndToEndRead (inport) или EndToEndWrite (выход).

  4. Для проверки строения компонента AUTOSAR нажмите кнопку Validate.

  5. Создайте модель и смотрите сгенерированный код. Сгенерированный код C содержит E2E Вызовы API.

    void Runnable_Step(void)
    {
      …
      /* Inport: '<Root>/Input' */
      E2EPW_Read_RPort_InputDE(…);
      …
      /* Outport: '<Root>/Output'... */
      (void) E2EPW_Write_PPort_OutputDE(…);
      …
    }
    …
    void Runnable_Init(void)
    {
      …
      /* End-to-End (E2E) initialization */
      E2EPW_ReadInit_RPort_InputDE();
      E2EPW_WriteInit_PPort_OutputDE();
      …
    }
    

    Экспортированный код ARXML содержит настройки E2E для портов приемника и отправителя AUTOSAR.

    <NONQUEUED-RECEIVER-COM-SPEC>
        …
        <USES-END-TO-END-PROTECTION>true</USES-END-TO-END-PROTECTION>
    …
    <NONQUEUED-SENDER-COM-SPEC>
        …
        <USES-END-TO-END-PROTECTION>true</USES-END-TO-END-PROTECTION>

Сконфигурируйте порт приемника AUTOSAR для DataReceiveErrorEvent

В связи отправитель-получатель AUTOSAR между программными компонентами Окружениями выполнения (RTE) поднимает DataReceiveErrorEvent когда слой связи сообщает об ошибке в приеме данных компонентом приемника. Для примера. событие может указать, что компонент отправителя не смог ответить в AliveTimeout ограничение или то, что компонент отправителя отправил недопустимые данные.

Embedded Coder поддерживает создание DataReceiveErrorEvents в компонентах приемника AUTOSAR. В Simulink можно:

  • Импорт AUTOSAR- DataReceiveErrorEvent определение.

  • Задайте DataReceiveErrorEvent.

  • Сгенерируйте код ARXML для портов приемника AUTOSAR, для которых DataReceiveErrorEvent сконфигурирован.

Необходимо сконфигурировать DataReceiveErrorEvent для порта приемника AUTOSAR, который использует ImplicitReceive, ExplicitReceive, или EndToEndRead режим доступа к данным.

Настройка порта приемника AUTOSAR для DataReceiveErrorEvent:

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

  2. Откройте редактор Отображения. Выберите вкладку Inports. Выберите порт данных, сопоставленный с портом приемника AUTOSAR, для которого необходимо сконфигурировать DataReceiveErrorEvent. Установите режим доступа к данным AUTOSAR на ImplicitReceive, ExplicitReceive, или EndToEndRead. Вот два примера, без связанного порта ErrorStatus и с ним.

  3. Откройте словарь AUTOSAR. Разверните узел AtomicComponents. Разверните компонент приемника и выберите Runnables.

  4. В представлении runnables создайте runnable для обработки DataReceiveErrorEventс.

    1. Нажмите кнопку Add, чтобы добавить текущую запись.

    2. Выберите новую запись для выполнения, чтобы сконфигурировать ее имя и другие свойства.

    3. Перейдите на панель Events и сконфигурируйте DataReceiveErrorEvent для runnable. Нажмите Add Event, выберите type DataReceiveErrorEvent, и введите имя события.

    4. В разделе Event Properties выберите триггер для события. Выбранное значение триггера указывает порт приемника AUTOSAR и элемент данных, для которого выполняется выполнение DataReceiveErrorEventс.

      Также можно программно создать DataReceiveErrorEvent.

      arProps = autosar.api.getAUTOSARProperties(mdlname);
      add(arProps,ibQName,'Events','DRE_Evt',...
          'Category','DataReceiveErrorEvent','Trigger','rPort.DE1',...
          'StartOnEvent',runnableQName);
  5. Создайте модель и смотрите сгенерированный код. Экспортированный код ARXML определяет выполняемую обработку ошибок и ее триггерное событие.

    <EVENTS>
        <DATA-RECEIVE-ERROR-EVENT UUID="...">
            <SHORT-NAME>DRE_Evt</SHORT-NAME>
            <START-ON-EVENT-REF DEST="RUNNABLE-ENTITY">
              /Root/mDemoModel_swc/ReceivingASWC/IB/Run_ErrorHandling</START-ON-EVENT-REF>
            <DATA-IREF>
                <CONTEXT-R-PORT-REF DEST="R-PORT-PROTOTYPE">
                  /Root/mDemoModel_swc/ReceivingASWC/rPort</CONTEXT-R-PORT-REF>
                <TARGET-DATA-ELEMENT-REF DEST="VARIABLE-DATA-PROTOTYPE">
                  /Root/Interfaces/In/DE</TARGET-DATA-ELEMENT-REF>
            </DATA-IREF>
        </DATA-RECEIVE-ERROR-EVENT>
    </EVENTS>
    ...
    <RUNNABLES>
        ...
        <RUNNABLE-ENTITY UUID="...">
            <SHORT-NAME>Run_ErrorHandling</SHORT-NAME>
            <MINIMUM-START-INTERVAL>0</MINIMUM-START-INTERVAL>
            <CAN-BE-INVOKED-CONCURRENTLY>false</CAN-BE-INVOKED-CONCURRENTLY>
            ...
            <SYMBOL>Run_ErrorHandling</SYMBOL>
        </RUNNABLE-ENTITY>
    </RUNNABLES>

Сконфигурируйте ComSpecs порта отправителя-получателя AUTOSAR

В программных компонентах AUTOSAR порт отправителя или приемника опционально может задать спецификацию связи (ComSpec). ComSpecs описывают дополнительные требования к связи для данных портов.

Чтобы смоделировать ComSpecs отправителя и приемника AUTOSAR в Simulink, можно:

  • Импорт ComSpecs отправителя и приемника из файлов ARXML.

  • Создайте ComSpecs отправителя и приемника в Simulink.

  • Для портов отправителя, не находящихся в очереди, измените атрибут ComSpec InitValue.

  • Для портов приемника, не находящихся в очереди, измените атрибуты ComSpec AliveTimeout, HandleNeverReceived, и InitValue.

  • Для портов приемника в очереди измените атрибут ComSpec QueueLength.

  • Экспорт ComSpecs в файлы ARXML

Например, если вы создаете порт приемника AUTOSAR в Simulink, вы используете редактор Отображения, чтобы сопоставить входной порт Simulink с портом приемника AUTOSAR и элементом данных S-R. Затем можно выбрать порт и задать его атрибуты ComSpec.

Вот свойства порта приемника в очереди.

При импорте или создании порта приемника AUTOSAR можно использовать словарь AUTOSAR для просмотра и редактирования атрибутов ComSpec сопоставленных элементов данных S-R в порте AUTOSAR.

Чтобы программно изменить атрибуты ComSpec порта AUTOSAR, используйте функцию свойства AUTOSAR set. Для примера:

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

% Find ComSpec path
portPath = find(arProps,[],'DataReceiverPort','PathType','FullyQualified');
ifPath = find(arProps,[],'SenderReceiverInterface','Name','Input_If','PathType','FullyQualified');
dataElementPath = find(arProps,ifPath{1},'FlowData','Name','In1','PathType','FullyQualified');
infoPath = find(arProps,portPath{1},'PortInfo',...
    'PathType','FullyQualified','DataElements',dataElementPath{1});
comSpecPath = find(arProps,infoPath{1},'PortComSpec','PathType','FullyQualified');

% Set ComSpec attributes
set(arProps,comSpecPath{1},'AliveTimeout',30,'HandleNeverReceived',true,'InitValue',1);
get(arProps,comSpecPath{1},'AliveTimeout')
get(arProps,comSpecPath{1},'HandleNeverReceived')
get(arProps,comSpecPath{1},'InitValue')

Чтобы задать QueueLength атрибут для порта приемника в очереди:

set(arProps,comSpecPath,'QueueLength',10);

Когда вы генерируете код для модели AUTOSAR, которая задает атрибуты ComSpec, экспортированные описания портов ARXML включают значения атрибутов ComSpec.

<PORTS>
    <R-PORT-PROTOTYPE UUID="...">
        <SHORT-NAME>ReceivePort</SHORT-NAME>
        <REQUIRED-COM-SPECS>
            <NONQUEUED-RECEIVER-COM-SPEC>
                <DATA-ELEMENT-REF DEST="VARIABLE-DATA-PROTOTYPE">
                  /Company/Powertrain/Interfaces/Input_If/In1
                </DATA-ELEMENT-REF>
...
                <ALIVE-TIMEOUT>30</ALIVE-TIMEOUT>
                <HANDLE-NEVER-RECEIVED>true</HANDLE-NEVER-RECEIVED>
...
                <INIT-VALUE>
                    <CONSTANT-REFERENCE>
                        <SHORT-LABEL>DefaultInitValue_Double_1</SHORT-LABEL>
                        <CONSTANT-REF DEST="CONSTANT-SPECIFICATION">
                          /Company/Powertrain/Constants/DefaultInitValue_Double_1
                        </CONSTANT-REF>
                    </CONSTANT-REFERENCE>
                </INIT-VALUE>
            </NONQUEUED-RECEIVER-COM-SPEC>
        </REQUIRED-COM-SPECS>
    </R-PORT-PROTOTYPE>
</PORTS>
...
<CONSTANT-SPECIFICATION UUID="...">
    <SHORT-NAME>DefaultInitValue_Double_1</SHORT-NAME>
    <VALUE-SPEC>
      <NUMERICAL-VALUE-SPECIFICATION>
          <SHORT-LABEL>DefaultInitValue_Double_1</SHORT-LABEL>
          <VALUE>1</VALUE>
      </NUMERICAL-VALUE-SPECIFICATION>
  </VALUE-SPEC>
</CONSTANT-SPECIFICATION>

См. также

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

Подробнее о