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

В поставленном в очередь приемнике отправителя AUTOSAR (S-R) коммуникация, чтение компонентов программного обеспечения AUTOSAR и запишите данные к другим компонентам или сервисам. Данные, отправленные компонентом программного обеспечения отправителя AUTOSAR, добавляются к очереди, предоставленной Средой выполнения AUTOSAR (RTE). Недавно полученные данные не перезаписывают существующие непрочитанные данные. Позже, компонент программного обеспечения приемника считывает данные из очереди.

Чтобы реализовать поставленную в очередь коммуникацию S-R, компоненты программного обеспечения AUTOSAR задают:

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

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

В Simulink® вы можете:

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

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

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

К отправке модели и получению данные AUTOSAR с помощью очереди, используйте Simulink блоки Receive и Send. Если ваша коммуникационная реализация S-R с очередями включает состояния или требует логики решения, используйте графики Stateflow®. Можно обработать ошибки, которые происходят, когда очередь пуста или полна. Можно задать размер очереди. Для получения дополнительной информации смотрите, что Simulink передает Обзор.

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

Чтобы начать, можно импортировать компоненты с интерфейсами S-R с очередями и портами из файлов ARXML в Simulink, или использовать Simulink, чтобы создать интерфейсы и порты.

Рабочий процесс Simulink для моделирования AUTOSAR, с очередями, отправляет и получает

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

  1. Сконфигурируйте одну или несколько моделей, когда AUTOSAR поставил в очередь компоненты отправителя и одну модель, как AUTOSAR поставил компонент приемника в очередь. Для каждой модели компонента используйте Словарь AUTOSAR и редактор Отображений Кода к:

    1. Создайте интерфейс данных S-R и его элементы данных.

    2. Создайте порт приемника или отправитель.

    3. Сопоставьте отправителя или порт приемника к выходному порту Simulink для отправки или импортируйте для получения. Установите режим доступа к данным AUTOSAR на QueuedExplicitSend или QueuedExplicitReceive.

    Например, смотрите, Конфигурируют Компоненты Отправителя и Приемника AUTOSAR для Коммуникации С очередями.

  2. Реализовывать AUTOSAR поставило в очередь отправителя или поведение компонента приемника, используйте Simulink блоки Receive и Send. Для получения дополнительной информации смотрите, что Simulink передает Обзор.

    Если ваша коммуникационная реализация S-R с очередями включает состояния или требует логики решения, используйте диаграммы Stateflow.

    Для получения дополнительной информации смотрите Реализацию, которую AUTOSAR, С очередями, Отправляют и Получают Обмен сообщениями.

  3. То, когда вы создаете AUTOSAR, поставило в очередь модель компонента приемника или отправитель:

    • Сгенерированный код C содержит вызовы AUTOSAR Rte_Send_<port>_<DataElement> или Rte_Receive_<port>_<DataElement> API.

      Указатели сгенерированного кода состояние сообщения получают вызовы.

      Обработка сообщения отправляет, состояние (такое как переполнение очереди) может только быть смоделировано в Stateflow. Сообщение указателей сгенерированного кода отправляет состояние, только если компонент отправителя с очередями реализует логику Stateflow.

    • Экспортируемые файлы ARXML содержат описания для коммуникации приемника отправителя с очередями. Сгенерированный ComSpec поскольку порт с очередями включает тип порта и длину очереди (на основе свойства QueueCapacity сообщения Simulink). В SwDataDefProps сгенерированный для элемента данных порта с очередями, SwImplPolicy установлен в Queued.

  4. Симулировать AUTOSAR поставило коммуникацию приемника отправителя в очередь в Simulink, создайте содержание состава, системы или модели тестовой обвязки. Включайте отправителя с очередями и компоненты приемника как модели, на которые ссылаются.

  5. Чтобы обеспечить логику организации очередей между отправителем и компонентами приемника, можно вставить блок Simulink Queue или логику Stateflow. С блоком Queue можно симулировать очередь с определенной способностью. Если вы соединяете отправителя и компоненты приемника непосредственно, Simulink вводит очередь по умолчанию со способностью 1.

    Для примера соединяющихся компонентов непосредственно, смотрите 1 к 1, модель состава, используемая в, Конфигурирует Моделирование AUTOSAR Коммуникация Приемника Отправителя С очередями.

    Для примеров вставки блока Queue или логики Stateflow между отправителем и компонентами приемника, смотрите, Симулируют N-1 AUTOSAR Коммуникация Приемника Отправителя С очередями и Симулируют Событийно-управляемый AUTOSAR Коммуникация Приемника Отправителя С очередями.

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

Этот пример конфигурирует поставленного в очередь отправителя AUTOSAR и компоненты приемника в Simulink. Пример использует две модели в папке matlabroot/help/toolbox/autosar/examples (cd к папке). Если вы копируете файлы в рабочую папку, располагаете модели. Чтобы видеть эти модели, соединенные для симуляции, смотрите, Конфигурируют Моделирование AUTOSAR Коммуникация Приемника Отправителя С очередями.

  • mAutosarSlSenderSWC1.slx

  • mAutosarSlReceiverSWC.slx

Откройте модель AUTOSAR, которую вы хотите сконфигурировать как отправитель с очередями или компонент приемника. Чтобы создать данные S-R взаимодействуют через интерфейс и отправитель с очередями или порт приемника:

  1. Откройте словарь AUTOSAR.

  2. Выберите S-R Interfaces. Чтобы создать интерфейс данных S-R, нажмите кнопку Add. Задайте его имя и количество связанных элементов данных S-R. Этот пример использует один элемент данных и в отправителе и в компонентах приемника.

  3. Выберите и расширьте новый интерфейс S-R. Выберите DataElements и измените атрибуты элемента данных. Этот рисунок показывает элементу данных DE1 для компонента отправителя.

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

  5. Выберите представление SenderPorts или ReceiverPorts и используйте его, чтобы добавить отправителя или порт приемника, которого вы требуете. Для каждого порта S-R выберите интерфейс S-R, который вы создали. Для компонента отправителя этот рисунок показывает порт MsgOut отправителя, который использует интерфейс S-R Out1.

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

    То, когда вы сопоставляете импорт в AUTOSAR, поставило порт приемника в очередь, можно использовать Property Inspector (или Словарь AUTOSAR), представление порта, чтобы изменить его коммуникационную спецификацию AUTOSAR (ComSpec) приписывает QueueLength. Для получения дополнительной информации смотрите, Конфигурируют Порт AUTOSAR Sender-Receiver ComSpecs.

То, когда вы создаете AUTOSAR, поставило в очередь модель компонента приемника или отправитель:

  • Сгенерированный код C содержит вызовы AUTOSAR Rte_Send_<port>_<DataElement> или Rte_Receive_<port>_<DataElement> API. Сгенерированный код обрабатывает состояние сообщения, отправляют и получают вызовы.

  • Экспортируемые файлы ARXML содержат описания для коммуникации приемника отправителя с очередями. Сгенерированный ComSpec поскольку порт с очередями включает тип порта и длину очереди (на основе свойства QueueCapacity сообщения Simulink). В SwDataDefProps сгенерированный для элемента данных порта с очередями, SwImplPolicy установлен в Queued.

Реализовывать обменивающееся сообщениями поведение AUTOSAR поставило в очередь отправителя или компонент приемника, используйте сообщения Stateflow или Simulink. Смотрите Реализацию, которую AUTOSAR, С очередями, Отправляют и Получают Обмен сообщениями или Реализацию, которую AUTOSAR, С очередями, Отправляют и Получают При помощи Обмена сообщениями Stateflow.

Реализуйте AUTOSAR, с очередями, отправляют и получают обмен сообщениями

К модели AUTOSAR поставил в очередь отправителя и поведение компонента приемника, этот пример использование:

  • Сообщение Simulink блокируется, чтобы реализовать обмен сообщениями.

  • Диаграммы Stateflow, чтобы реализовать логику решения.

Этот пример объясняет конструкцию моделей mAutosarSlSenderSWC1.slx в качестве примера и mAutosarSlReceiverSWC.slx. Эти модели расположены в папке matlabroot/help/toolbox/autosar/examples (cd к папке).

Другие примеры развертывают того же отправителя и модели приемника в 1 к 1 и настройки обмена сообщениями N-1. Смотрите Конфигурируют Моделирование AUTOSAR Коммуникация Приемника Отправителя С очередями и Симулируют N-1 AUTOSAR Коммуникация Приемника Отправителя С очередями.

Этот рисунок показывает, что верхний уровень AUTOSAR поставил компонент отправителя в очередь mAutosarSlSenderSWC1. Модель содержит:

  • Диаграмма Stateflow Turn Signal Generator.

  • Блок Send сообщения Simulink, перенесенный в активированную подсистему.

График имеет сигнал поворота и управление сообщения выходные параметры, которые соединяются с активированной подсистемой. Когда управляющий сигнал сообщения становится положительным значением, подсистема включена. В подсистеме блок Send сообщения читает значение данных сигнала поворота и отправляет сообщение, содержащее значение, чтобы базироваться выходной порт MsgOut.

Этот рисунок показывает логику, реализованную в Turn Signal Generator график. График имеет четыре состояния – ActivateLeft, DeactivateLeft, ActivateRight, и DeactivateRight. Каждое состояние содержит действия входа, которые присваивают значение данных сигнала поворота и устанавливают значение управления сообщения к true. (См., Связываются с диаграммами Stateflow путем Отправки сообщений (Stateflow).) Периодическая синхронизация управляет сообщением выход.

Этот рисунок показывает, что верхний уровень AUTOSAR поставил компонент приемника в очередь mAutosarSlReceiverSWC. Модель содержит:

  • Блок Receive сообщения Simulink.

  • Диаграмма Stateflow HMILogic.

Корневой импорт MsgIn предоставляет сообщение блоку Receive, который извлекает значение данных сигнала поворота из сообщения. Блок затем полученные из сообщения выходные параметры и значения данных сигнала поворота к диаграмме Stateflow.

Параметры блоков Receive установлены в свои значения по умолчанию Simulink. Например, Show receive status выбран, Use internal queue очищен, и Value source when queue is empty установлен в Hold last value.

Этот рисунок показывает логику, реализованную в HMILogic график. HMILogic содержит утверждает HMIRequestProcessing, LeftTurnSignal, и RightTurnSignal.

  • HMIRequestProcessing получает полученный из сообщения и вводы данных сигнала поворота, устанавливает isNewData отметьте, вызывает функцию, чтобы обработать данные сигнала поворота, и затем очищает isNewData флаг. processRequest функционируйте тестирует полученные данные сигнала поворота на значения, потенциально установленные отправителем сообщения - LeftTurnOn, RightTurnOn, LeftTurnOff, или RightTurnOff. На основе полученного значения функция постепенно увеличивает или постепенно уменьшает переменную счетчика запроса, любой leftTurnReqs или rightTurnReqs. Периодическая синхронизация управляет входом сообщения.

  • LeftTurnSignal и RightTurnSignal каждый содержит, утверждает Off и On. Они переходят от Off к On на основе значения запроса противостоят leftTurnReqs или rightTurnReqs и временной интервал. Когда счетчик запроса больше нуля, графики устанавливают переменную, любой leftSignalOut или rightSignalOut, к 1. После временного интервала они переходят назад к Off состояние и набор leftSignalOut или rightSignalOut к 0.

Для демонстрационных реализаций нескольких компонентов отправителя с очередями в настройке обмена сообщениями N-1 смотрите, что модели в качестве примера, используемые в, Симулируют N-1 AUTOSAR Коммуникация Приемника Отправителя С очередями.

Для демонстрационных реализаций событийно-управляемого обмена сообщениями с очередями смотрите, что модели в качестве примера, используемые в, Симулируют Событийно-управляемый AUTOSAR Коммуникация Приемника Отправителя С очередями.

Конфигурируйте моделирование AUTOSAR коммуникация приемника отправителя с очередями

Симулировать AUTOSAR поставило коммуникацию приемника отправителя в очередь в Simulink, создайте содержание состава, системы или модели тестовой обвязки. Включайте отправителя с очередями и компоненты приемника как модели, на которые ссылаются.

Этот пример показывает модель уровня состава, которая содержит отправителя с очередями и модели компонента приемника и реализации 1 к 1 коммуникация. Периодическая синхронизация управляет обменом сообщениями. Пример использует три модели в папке matlabroot/help/toolbox/autosar/examples (cd к папке). Если вы копируете файлы в рабочую папку, располагаете модели.

  • mAutosarSlQueuedMsgs_1_1.slx (топ-модель)

  • mAutosarSlSenderSWC1.slx

  • mAutosarSlReceiverSWC.slx

Модели mAutosarSlSenderSWC1 и mAutosarSlReceiverSWC тот же отправитель, и компоненты приемника, сконфигурированные в, Конфигурируют Компоненты Отправителя и Приемника AUTOSAR для Коммуникации С очередями и реализованный в Реализации, которую AUTOSAR, С очередями, Отправляют и Получают Обмен сообщениями. Модель mAutosarSlQueuedMsgs_1_1 уровня состава включает их как порт MsgOut компонента отправителя моделей и подключений, на который ссылаются, к порту MsgIn компонента приемника.

Топ-модель mAutosarSlQueuedMsgs_1_1 для симуляции только. Можно сгенерировать код С AUTOSAR и файлы ARXML для отправителя и моделей компонента приемника, но не для содержания модели уровня состава.

Точно так же можно запустить программное обеспечение в цикле (SIL) симуляция для отправителя и моделей компонента приемника, но не для модели уровня состава.

Симулируйте N-1 AUTOSAR коммуникация приемника отправителя с очередями

Этот пример показывает модель уровня состава, которая содержит трех отправителей и модели компонента приемника, и реализует коммуникацию N-1. Периодическая синхронизация управляет обменом сообщениями. Пример расширяет 1 к 1 пример путем добавления двух дополнительных моделей отправителя и обеспечения логики потока между отправителями и приемником.

Этот пример использует четыре модели в папке matlabroot/help/toolbox/autosar/examples (cd к папке). Если вы копируете файлы в рабочую папку, располагаете модели.

  • mAutosarSlQueuedMsgs_N_1.slx (топ-модель)

  • mAutosarSlSenderSWC1.slx

  • mAutosarSlSenderSWC2.slx

  • mAutosarSlSenderSWC3.slx

  • mAutosarSlReceiverSWC.slx

Модель mAutosarSlQueuedMsgs_N_1 уровня состава включает три компонента отправителя и компонент приемника как модели, на которые ссылаются. Это соединяет компонент отправителя MsgOut порты к промежуточному MsgJoin обработка логики, которая в свою очередь соединяет с компонентом приемника MsgIn порт.

Модели mAutosarSlSenderSWC1 и mAutosarSlReceiverSWC тот же отправитель, и компоненты приемника, сконфигурированные в, Конфигурируют Компоненты Отправителя и Приемника AUTOSAR для Коммуникации С очередями и реализованный в Реализации, которую AUTOSAR, С очередями, Отправляют и Получают Обмен сообщениями. Вторые и третьи компоненты отправителя, mAutosarSlSenderSWC2 и mAutosarSlSenderSWC3, похожи на mAutosarSlSenderSWC1, но реализуйте второй тип входа сообщения для приемника к процессу.

Этот рисунок показывает, что верхний уровень AUTOSAR поставил компонент отправителя в очередь mAutosarSlSenderSWC2. Это содержит диаграмму Stateflow Hazard Signal Generator, который обеспечивает логику для сигналов левого поворота. Строка сообщения графика выход соединяется с корневым выходным портом Simulink MsgOut. Соответствующий Hazard Signal Generator график, чтобы обработать сигналы правого поворота появляется в компоненте отправителя mAutosarSlSenderSWC3.

Этот рисунок показывает логику, реализованную в Hazard Signal Generator график. График имеет два состояния – HazardOff и HazardOn. Каждое состояние содержит действия входа, которые присваивают значения, чтобы передать данные и отправить сообщения. (См., Связываются с диаграммами Stateflow путем Отправки сообщений (Stateflow).) Периодическая синхронизация управляет сообщением выход.

Между отправителем и компонентами приемника, блоком Message Merge и блоком Queue обеспечивают слияние сообщения и организацию очередей.

  • Блок Message Merge объединяет 3 строки сообщения и выходные сообщения с блоком Queue.

  • Блок Queue хранит сообщения от этих 3 линий в очереди, на основе порядка прибытия.

    • Способность очереди установлена в 16 сообщений.

    • Когда очередь полна, и сообщение прибывает, блок собирается перезаписать самое старое сообщение с входящим сообщением.

    • Сообщение, сортирующее политику, установлено в политику поддержки AUTOSAR, метод "первым пришел - первым вышел" (FIFO).

Каждый элемент во главе очереди отбывает когда нисходящий ReceiverSWC блок готов принять его.

Топ-модель mAutosarSlQueuedMsgs_N_1 для симуляции только. Можно сгенерировать код С AUTOSAR и файлы ARXML для отправителя, на которого ссылаются, и моделей компонента приемника, но не для содержания модели уровня состава.

Точно так же можно запустить программное обеспечение в цикле (SIL) симуляция для отправителя и моделей компонента приемника, но не для модели уровня состава.

Симулируйте событийно-управляемый AUTOSAR коммуникация приемника отправителя с очередями

Этот пример показывает модель уровня состава, в которой входное событие вызова функции Simulink активирует обработку компонента приемника сообщения с очередями. Пример реализован при помощи сообщений Stateflow. Для большего количества Stateflow, передающего примеры, смотрите Реализацию, которую AUTOSAR, С очередями, Отправляют и Получают При помощи Обмена сообщениями Stateflow.

Этот пример использует три модели в папке matlabroot/help/toolbox/autosar/examples (cd к папке). Если вы копируете файлы в рабочую папку, располагаете модели.

  • mAutosarDREventMsgs.slx (топ-модель)

  • mAutosarMsgSender.slx

  • mAutosarHMILogicEvent.slx

Модель mAutosarDREEventMsgs уровня состава включает компонент отправителя и компонент приемника как модели, на которые ссылаются. Это соединяет порт DashLight сообщения отправителя к промежуточному Data Receive Trigger логика, которая в свою очередь соединяется с портом MsgIn сообщения приемника и функция инициировала порт Trigger.

Этот рисунок показывает, что верхний уровень AUTOSAR поставил компонент отправителя в очередь mAutosarMsgSender, который содержит диаграмму Stateflow Turn Signal Generator. Строка сообщения графика выход соединяется с корневым выходным портом Simulink DashLight. (Этот компонент отправителя похож на mAutosarSenderSWC1 компонента в Stateflow 1 к 1 и примерах симуляции N-1 в Реализации AUTOSAR, С очередями, Отправляют и Получают При помощи Обмена сообщениями Stateflow.)

Этот рисунок показывает логику, реализованную в Turn Signal Generator график. График имеет четыре состояния – ActivateLeft, DeactivateLeft, ActivateRight, и DeactivateRight. Каждое состояние содержит действия входа, которые присваивают значение, чтобы передать данные и отправить сообщение. (См., Связываются с диаграммами Stateflow путем Отправки сообщений (Stateflow).) Периодическая синхронизация управляет сообщением выход.

Этот рисунок показывает Data Receiver Trigger график расположен между компонентами приемника и отправителем.

Чтобы получить сообщение, поставленная в очередь логика приемника использует receive(M):

  • Если допустимое сообщение M существует, receive(M) возвращает true.

  • Если допустимое сообщение не существует, график удаляет сообщение из своей связанной очереди и receive(M) возвращает true. Если receive(M) удаляет сообщение из очереди, продолжительность отбрасываний очереди одним.

  • Если сообщение M недопустимо, и другое сообщение не могло бы быть удалено из очереди, receive(M) возвращает false.

Можно поместить receive на переходе (например, [receive(M)]. Или в состоянии используйте if условие (например, if(receive(M))). Для получения дополнительной информации смотрите, Связываются с диаграммами Stateflow путем Отправки сообщений (Stateflow).

Этот рисунок показывает логику, реализованную в Data Receiver Trigger график. График получает поставленные в очередь сообщения от компонента отправителя. Для каждого полученного сообщения график копирует полученные данные о сообщении в исходящее сообщение, отправляет данные и отправляет событие вызова функции. (См., Связываются с диаграммами Stateflow путем Отправки сообщений (Stateflow).)

Этот рисунок показывает, что верхний уровень AUTOSAR поставил компонент приемника в очередь mAutosarHMILogicEvent, который содержит подсистему вызова функций Simulink. Импорт подсистемы является триггером вызова функции и портом DashLight приемника сообщения, который сконфигурирован для режима QueuedExplicitReceive доступа к данным AUTOSAR.

Подсистема вызова функций содержит диаграмму Stateflow ProcessHMIRequests и Триггерная Блокировка порта. Вход строки сообщения графика соединяется с корневым импортом Simulink Msg. Осциллограф сконфигурирован, чтобы отобразить значение InvalidPath переменная.

Триггерная Блокировка порта сконфигурирована для триггера вызова функции и инициированного шага расчета. Вызов функции ввел события, отправленные от Data Receiver Trigger график в топ-модели активирует график.

Этот рисунок показывает логику, реализованную в ProcessHMIRequests график. ProcessHMIRequests содержит утверждает HMIRequestProcessing, LeftTurnSignal, и RightTurnSignal. (Этот график приемника подобен, чтобы строить диаграмму HMILogic в 1 к 1 и примеры симуляции N-1.)

  • HMIRequestProcessing получает сообщение от очереди сообщений, вызывает функцию, чтобы обработать сообщение, и затем отбрасывает сообщение. processRequest функционируйте тестирует полученные данные о сообщении на значения, потенциально установленные отправителем сообщения - LeftTurnOn, RightTurnOn, LeftTurnOff, или RightTurnOff. На основе полученного значения функция постепенно увеличивает или постепенно уменьшает переменную счетчика запроса, любой leftTurnReqs или rightTurnReqs. Вызов функции ввел диск событий вход сообщения. Если график неправильно активируется, InvalidPath переменная установлена в 1.

  • LeftTurnSignal и RightTurnSignal каждый содержит, утверждает Off и On. Они переходят от Off к On на основе значения запроса противостоят leftTurnReqs или rightTurnReqs. Когда счетчик запроса больше нуля, графики устанавливают переменную, любой leftSignalOut или rightSignalOut, к 1. Затем они переходят назад к Off состояние и набор leftSignalOut или rightSignalOut к 0.

Топ-модель mAutosarDREventMsgs для симуляции только. Можно сгенерировать код С AUTOSAR и файлы ARXML для отправителя, на которого ссылаются, и моделей компонента приемника, но не для содержания модели уровня состава.

Точно так же можно запустить программное обеспечение в цикле (SIL) симуляция для отправителя и моделей компонента приемника, но не для модели уровня состава.

Реализуйте AUTOSAR, с очередями, отправляют и получают при помощи обмена сообщениями Stateflow

Реализуйте AUTOSAR, с очередями, отправляют и получают обмен сообщениями при помощи сообщений Stateflow

Реализовывать AUTOSAR поставило в очередь отправителя или поведение компонента приемника, этот пример использует сообщения Stateflow. Чтобы создать диаграмму Stateflow, выполните общую процедуру, описанную в Модели Фидер Сборочного конвейера (Stateflow).

  1. Добавьте, что график к AUTOSAR поставил в очередь модель компонента приемника или отправитель. Назовите график.

  2. Откройте график и добавьте связанные с сообщением состояния.

  3. Для каждого состояния добавьте действия входа. Поддерживаемые ключевые слова сообщения включают:

    • send(M) - Отправьте сообщение M.

    • receive(M) - Получите сообщение M.

    • isvalid(M) - Проверяйте, допустимо ли сообщение M (вытолканный и не отброшенное).

    • discard(M) - Явным образом отбросьте сообщение M. Сообщения неявно отбрасываются на выходе состояния после того, как сообщение получает операцию, завершается.

  4. Добавьте линии изменения состояния и задайте условия перехода или события на тех линиях.

    • Используйте условия, когда это необходимо, для перехода на основе условного оператора или изменения входного значения от блока Simulink. Для получения дополнительной информации смотрите Переходы (Stateflow).

    • Используйте события, когда это необходимо, для перехода на основе инициированного Simulink или входное событие вызова функции. Для получения дополнительной информации смотрите, Синхронизируют Компоненты модели Широковещательными Событиями (Stateflow).

  5. Задайте данные, которые хранят переменные состояния.

  6. Соедините вводы и выводы строки сообщения графика с корневым импортом Simulink и выходными портами.

Для получения дополнительной информации см. сообщения (Stateflow).

В контексте диаграммы Stateflow можно изменить свойства сообщения, такие как способность очереди и тип данных. (Для списка свойств смотрите Set Properties для сообщения (Stateflow).) Можно получить доступ к свойствам сообщения в Property Inspector, диалоговом окне свойств сообщения или Model Explorer. Просмотреть или изменить свойства сообщения с Property Inspector:

  1. Откройте график, который использует сообщения.

  2. Во вкладке Modeling откройте Symbols Pane и Property Inspector.

  3. В представлении Symbols выберите сообщение. Property Inspector отображает панели для свойств Message Data Properties и Advanced.

    Если график находится в компоненте приемника, Property Inspector также отображает Message Queue Properties. Чтобы сконфигурировать компонент приемника, чтобы использовать внешние очереди сообщений AUTOSAR RTE, убедитесь, что свойство Use internal queue очищено.

По умолчанию передайте тип данных, и полные значения очереди наследованы от сообщения Stateflow, до которого присоединяется корневой порт Simulink. Обменивайтесь сообщениями данные могут использовать эти типы данных параметров Simulink: int типы, uint типы, типы с плавающей точкой, boolean, Enum, или Bus Struct ()).

Если вы используете импортированные типы шины или типы данных перечисления в диаграммах Stateflow, определения типов требуются для симуляции. Чтобы сгенерировать определения типов автоматически, выберите параметр конфигурации Simulink Generate typedefs for imported bus and enumeration types. В противном случае используйте параметр конфигурации Simulink Simulation Target > Custom Code> Header file, чтобы включать заголовочные файлы с определениями.

Для демонстрационных реализаций отправителя с очередями и компонентов приемника в 1 к 1 настройке, смотрите модели компонента в качестве примера, используемые, и в Сконфигурируйте Компоненты Отправителя и в Приемника AUTOSAR для Коммуникации С очередями и Конфигурируйте Моделирование AUTOSAR Коммуникация Приемника Отправителя С очередями. Модели mAutosarSenderSWC1.slx и mAutosarReceiverSWC.slx расположены в папке matlabroot/help/toolbox/autosar/examples (cd к папке).

Этот рисунок показывает, что верхний уровень AUTOSAR поставил компонент отправителя в очередь mAutosarSenderSWC1, который содержит диаграмму Stateflow Turn Signal Generator. Строка сообщения графика выход соединяется с корневым выходным портом Simulink MsgOut.

Этот рисунок показывает логику, реализованную в Turn Signal Generator график. График имеет четыре состояния – ActivateLeft, DeactivateLeft, ActivateRight, и DeactivateRight. Каждое состояние содержит действия входа, которые присваивают значение, чтобы передать данные и отправить сообщение. (См., Связываются с диаграммами Stateflow путем Отправки сообщений (Stateflow).) Периодическая синхронизация управляет сообщением выход.

Этот рисунок показывает, что верхний уровень AUTOSAR поставил компонент приемника в очередь mAutosarReceiverSWC, который содержит диаграмму Stateflow HMILogic. Вход строки сообщения графика соединяется с корневым импортом Simulink MsgIn.

Чтобы получить сообщение, поставленная в очередь логика приемника использует receive(M):

  • Если допустимое сообщение M существует, receive(M) возвращает true.

  • Если допустимое сообщение не существует, график удаляет сообщение из своей связанной очереди и receive(M) возвращает true. Если receive(M) удаляет сообщение из очереди, продолжительность отбрасываний очереди одним.

  • Если сообщение M недопустимо, и другое сообщение не могло бы быть удалено из очереди, receive(M) возвращает false.

Можно поместить receive на переходе (например, [receive(M)]. Или в состоянии используйте if условие (например, if(receive(M))). Для получения дополнительной информации смотрите, Связываются с диаграммами Stateflow путем Отправки сообщений (Stateflow).

Этот рисунок показывает логику, реализованную в HMILogic график. HMILogic содержит утверждает HMIRequestProcessing, LeftTurnSignal, и RightTurnSignal.

  • HMIRequestProcessing получает сообщение от очереди сообщений, вызывает функцию, чтобы обработать сообщение, и затем отбрасывает сообщение. processRequest функционируйте тестирует полученные данные о сообщении на значения, потенциально установленные отправителем сообщения - LeftTurnOn, RightTurnOn, LeftTurnOff, или RightTurnOff. На основе полученного значения функция постепенно увеличивает или постепенно уменьшает переменную счетчика запроса, любой leftTurnReqs или rightTurnReqs. Периодическая синхронизация управляет входом сообщения.

  • LeftTurnSignal и RightTurnSignal каждый содержит, утверждает Off и On. Они переходят от Off к On на основе значения запроса противостоят leftTurnReqs или rightTurnReqs и временной интервал. Когда счетчик запроса больше нуля, графики устанавливают переменную, любой leftSignalOut или rightSignalOut, к 1. После временного интервала они переходят назад к Off состояние и набор leftSignalOut или rightSignalOut к 0.

Для демонстрационных реализаций отправителя с очередями и компонентов приемника в настройке N-1, смотрите, что модели в качестве примера, используемые в, Симулируют N-1 AUTOSAR Коммуникация Приемника Отправителя С очередями.

Для демонстрационных реализаций событийно-управляемого обмена сообщениями с очередями смотрите, что модели в качестве примера, используемые в, Симулируют Событийно-управляемый AUTOSAR Коммуникация Приемника Отправителя С очередями.

Конфигурируйте моделирование AUTOSAR коммуникация приемника отправителя с очередями

Симулировать AUTOSAR поставило коммуникацию приемника отправителя в очередь в Simulink, создайте содержание состава, системы или модели тестовой обвязки. Включайте отправителя с очередями и компоненты приемника как модели, на которые ссылаются.

Этот пример показывает модель уровня состава, которая содержит отправителя с очередями и модели компонента приемника и реализации 1 к 1 коммуникация. Периодическая синхронизация управляет обменом сообщениями. Пример использует три модели в папке matlabroot/help/toolbox/autosar/examples (cd к папке). Если вы копируете файлы в рабочую папку, располагаете модели.

  • mAutosarQueuedMsgs_1_1.slx (топ-модель)

  • mAutosarSenderSWC1.slx

  • mAutosarReceiverSWC.slx

Модели mAutosarSenderSWC1 и mAutosarReceiverSWC тот же отправитель, и компоненты приемника, сконфигурированные в, Конфигурируют Компоненты Отправителя и Приемника AUTOSAR для Коммуникации С очередями и реализованный в Реализации, которую AUTOSAR, С очередями, Отправляют и Получают Обмен сообщениями. Модель mAutosarQueuedMsgs_1_1 уровня состава включает их как порт MsgOut компонента отправителя моделей и подключений, на который ссылаются, к порту MsgIn компонента приемника.

Топ-модель mAutosarQueuedMsgs_1_1 для симуляции только. Можно сгенерировать код С AUTOSAR и файлы ARXML для отправителя и моделей компонента приемника, но не для содержания модели уровня состава.

Точно так же можно запустить программное обеспечение в цикле (SIL) симуляция для отправителя и моделей компонента приемника, но не для модели уровня состава.

Симулируйте N-1 AUTOSAR коммуникация приемника отправителя с очередями

Этот пример показывает модель уровня состава, которая содержит двух отправителей и модели компонента приемника, и реализует коммуникацию N-1. Периодическая синхронизация управляет обменом сообщениями. Пример расширяет 1 к 1 пример путем добавления второй модели отправителя и обеспечения логики потока между отправителями и приемником.

Этот пример использует четыре модели в папке matlabroot/help/toolbox/autosar/examples (cd к папке). Если вы копируете файлы в рабочую папку, располагаете модели.

  • mAutosarQueuedMsgs_N_1.slx (топ-модель)

  • mAutosarSenderSWC1.slx

  • mAutosarSenderSWC2.slx

  • mAutosarReceiverSWC.slx

Модель mAutosarQueuedMsgs_N_1 уровня состава включает два компонента отправителя и компонент приемника как модели, на которые ссылаются. Это соединяет компонент отправителя MsgOut порты к промежуточному MsgJoin обработка логики, которая в свою очередь соединяет с компонентом приемника MsgIn порт.

Модели mAutosarSenderSWC1 и mAutosarReceiverSWC тот же отправитель, и компоненты приемника, сконфигурированные в, Конфигурируют Компоненты Отправителя и Приемника AUTOSAR для Коммуникации С очередями и реализованный в Реализации, которую AUTOSAR, С очередями, Отправляют и Получают Обмен сообщениями. Второй компонент отправителя, mAutosarSenderSWC2, похоже на mAutosarSenderSWC1, но реализует второй тип входа сообщения для приемника к процессу.

Этот рисунок показывает, что верхний уровень AUTOSAR поставил компонент отправителя в очередь mAutosarSenderSWC2, который содержит диаграмму Stateflow Hazard Signal Generator. Строка сообщения графика выход соединяется с корневым выходным портом Simulink MsgOut.

Этот рисунок показывает логику, реализованную в Hazard Signal Generator график. График имеет два состояния – HazardOff и HazardOn. Каждое состояние содержит действия входа, которые присваивают значения, чтобы передать данные и отправить сообщения. (См., Связываются с диаграммами Stateflow путем Отправки сообщений (Stateflow).) Периодическая синхронизация управляет сообщением выход.

Этот рисунок показывает MsgJoin график расположен между компонентами приемника и отправителем.

Этот рисунок показывает логику, реализованную в MsgJoin график. График получает поставленные в очередь сообщения от компонентов отправителя и выводит их, по одному, к компоненту приемника. Сообщения от первого компонента отправителя, mAutosarSenderSWC1.slx, обрабатываются сначала. Для каждого полученного сообщения график копирует полученные данные о сообщении в исходящее сообщение, отправляет данные и отбрасывает полученное сообщение. (См., Связываются с диаграммами Stateflow путем Отправки сообщений (Stateflow).)

Топ-модель mAutosarQueuedMsgs_N_1 для симуляции только. Можно сгенерировать код С AUTOSAR и файлы ARXML для отправителя, на которого ссылаются, и моделей компонента приемника, но не для содержания модели уровня состава.

Точно так же можно запустить программное обеспечение в цикле (SIL) симуляция для отправителя и моделей компонента приемника, но не для модели уровня состава.

Определите, когда очередь переполнится

Чтобы проверять, потеряно ли сообщение, потому что оно было отправлено очереди, которая была уже полна, используйте Stateflow overflowed оператор:

overflowed(message_name)
Использовать overflowed оператор, набор модель к autosar.tlc цель и для симуляции и для генерации кода и проверяет, что импорт или выходной порт передают подключения к внешней очереди. В каждом временном шаге установлено значение этого оператора, когда график добавляет сообщение в или удаляет сообщение из, очередь. Это недопустимо, чтобы использовать overflowed оператор прежде, чем быть передающим или получить сообщение в том же временном шаге или проверять состояние переполнения локальной очереди сообщений.

По умолчанию, когда очередь сообщений переполняется, остановки симуляции с ошибкой. Предотвратить ошибку времени выполнения и позволить overflowed оператор, чтобы динамически реагировать на пропущенные сообщения, установите значение свойства Queue Overflow Diagnostic к Warning или None. Для получения дополнительной информации смотрите Диагностику Переполнения Очереди (Stateflow).

Проверяйте на Переполнение Входного сигнала.  Чтобы проверять состояние переполнения очереди входного сигнала, сначала удалите сообщение из очереди. Вы можете:

  • Охрана переход с сообщением и overflowed оператор.

  • Охрана переход с сообщением и вызовом overflowed оператор в действии входа целевого состояния.

  • Охрана on состояния действие с сообщением и вызовом overflowed оператор в действии.

  • В состоянии активности используйте receive оператор сопровождается overflowed оператор.

Вызов overflowed оператор прежде, чем получить входной сигнал в том же временном шаге приводит к ошибке времени выполнения.

Проверяйте на Переполнение Выходного сигнала.  Чтобы проверять состояние переполнения очереди выходного сигнала, сначала добавьте сообщение в очередь. Вы можете:

  • Используйте send оператор сопровождается overflowed оператор.

  • Используйте forward оператор сопровождается overflowed оператор.

Вызов overflowed оператор прежде, чем быть передающим или передать выходной сигнал в том же временном шаге приводит к ошибке времени выполнения.

Смотрите также

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

Больше о