主要内容

在软件组件之间建立消息发送和接收接口

这个例子展示了如何在不同应用程序中运行的软件组件之间建模基于消息的通信。该示例还展示了如何为c++代码生成准备模型组件。

在本例中,在两个组件之间构建基于消息的通信。发送组件发送数据,接收组件消耗数据。在此场景中,发送组件发送消息后,将它们存储在队列中。接收组件根据其表示的逻辑提取消息。

两个Model块,标记为Send Component和Receive Component,表示由消息行连接的组件。基于消息的通信是使用连接到根级Outport和Inport块的Send块和Receive块实现的。

有关为模型生成C或c++代码的更多信息,请参见生成c++消息以在Simulink组件之间通信数据金宝app(嵌入式编码)而且生成C消息以在Simulink组件之间通信数据金宝app(嵌入式编码)

您还可以为每个组件生成c++代码,这些代码包含必要的软件接口,足以让您与操作系统或消息中间件连接。有关更多信息,请参见生成c++消息以在Simulink和操作系统或中间件之间通信数据金宝app(嵌入式编码)

发送组件

发送组件中的算法可以包含任何复杂度的逻辑。在本例中,在一个子系统中使用一个简单的正弦波块作为信号源。的样品时间块参数设置为0.1

要为基于消息的通信准备发送组件,请使用a发送块连接到根级Outport块。Send块转换数据信号并发送消息。

要准备发送组件以生成代码,请在模型配置参数中:

  1. 解算器窗格,在解算器的选择节,类型设置为固定步

  2. 固定的大小设置为0.1

  3. 代码生成窗格中,系统目标文件设置为ert.tlc而且语言c++。

  4. 模型保存为mSend

接收组件

在接收组件中,范围块用于表示接收消息的算法。

为了准备接收组件,import块连接到收到块。Receive块接收消息并将其转换为信号数据。默认情况下,样品时间接收块的参数为-1

准备接收组件代码生成,在模型配置参数:

  1. 解算器窗格,在解算器的选择节,类型设置为固定步

  2. 固定的大小设置为0.1

  3. 代码生成窗格中,系统目标文件设置为ert.tlc而且语言c++。

  4. 模型保存为mReceive

使用序列查看器块可视化组件之间的消息转换

这是一个具有发送和接收组件的组合模型。模型块,发送组件和接收组件,指的是模型mSend而且mReceive,分别。

模拟模型。观察默认情况下插入的队列。消息行上方的图标表示默认队列。默认队列的容量为1并启用消息覆盖策略。您可以通过在组件之间使用queue块来定制队列。有关更多信息,请参见使用队列块管理消息

打开顺序查看器块。该块允许您可视化消息转换事件和消息所携带的数据。

序列查看器块窗口在左侧竖条中显示模拟时间。每个时间网格行都包含在同一模拟时间发生的事件。每个消息转换事件都由标记有消息数据值的箭头表示。有关序列查看器块的更多信息,请参见使用序列查看器来可视化消息、事件和实体

在序列查看器块中,向上滚动或单击参加第一场活动左边的图标。注意,在时间为0时,Send块发送带有数据值的消息0到Receive块,并在时间0.1该块发送另一条带有数据值的消息0.0998.该块在每个0.1仿真时间。

另请参阅

||||

相关的话题