从系列:运行时软件建模
Teresa Hubscher-Younger MathWorks
使用消息建模和生成c++代码,用于基于消息的通信的软件组合。您可以从模型的根输入和输出端口发送和接收消息。您还可以生成C/ c++代码来连接到中间件或操作系统通信API。了解如何使用messages & Events库中的块构建一个简单的模型来生成和接收消息,并使用事件日志、消息动画和序列查看器调试它。
消息允许您使用基于消息的通信为软件组合建模和生成c++代码。为此,您可以从模型的根输入和输出端口发送和接收消息。您还可以生成c++代码来连接到中间件或操作系统通信API。让我们构建一个简单的消息通信模型。
我将使用Simulink中的消息和事件库中的消息块。金宝app我有一个正弦波源块以基于样本的方式发送一个正弦波和一个输出端口。我将使用消息发送块将正弦波转换成一个消息,在源块的采样时间发送。一个接收到的消息块将把该消息转换回它接收到的速率的信号。
如果消息的发送速度比处理速度快,我们可以使用队列块来保存消息。队列被设置为类似于缓冲区的行为,当它满时删除最旧的元素。这是可以改变的。您还可以设置队列的容量,即它将容纳多少消息,并设置提示的类型,如后进先出或先进先出。我可以使用事件动画调试我的模型。我可以选择运行模型时显示的动画速度。这向我显示我的信息正在发送和何时到达。
我还可以记录事件。选择要记录的消息行,并使用数据检查器查看消息何时发送以及它们的值是什么。在模拟运行时单击一行也会显示该值。序列查看器还可以用来显示发送的订单消息。单击消息查看器中的一行,将显示消息的来源以及该特定消息随时间的变化。
在库中有一个消息合并块,用于将消息发送到相同的消息行。您可以通过代码生成将消息连接到中间件或操作系统通信api。您可以使用ERT和c++在模型边界上获得适当的消息通信。这将在组件边界创建一个服务,在头文件中创建一个类声明,并允许您将代码自定义数据添加到主文件中以进行连接。
在本系列的另一个视频中,我们将学习更多关于模型组件之间基于消息的建模通信的知识。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。