建模一个基于消息可用性运行的消息接收接口
这个例子展示了如何在基于消息的系统中同步执行与数据可用性。我们将展示如何使用事件和动作对这种行为建模。这个例子建立在另一个例子之上,在软件组件之间建立消息发送和接收接口,其中两个软件组件使用消息进行通信。
与前面的示例一样,代码生成过程应该应用于SendComponent和ReceiveComponent。消息存储对中间件和中间件提供的数据通知事件建模。
下面是使用两个model块创建的包含SendComponent和ReceiveComponent的组合模型。这两个Model块通过带有消息行的Queue块连接。
当消息到达Queue块时,通过使用Queue条目事件动作将其到达传递给ReceiveComponent。这将激活ReceiveComponen万博1manbetxt内部的Simulink Function块,以接受新消息进行处理。
要实现此行为,请在Queue块中事件动作选项卡,在条目字段,块调用Simulink函数万博1manbetxonMessageAvailable ()
.看到事件动作语言和随机数生成(SimEvents)以获取有关事件操作的更多信息。
当Simulink函数块被万博1manbetx激活时,它接受消息并将其转换为信号。
因此,SendComponent发送的消息会在ReceiveComponent中触发执行。要观察此行为,请使用顺序查看器块。
例如,观察模拟时间0
:
从Send块到Queue块的箭头表示发送的消息的数据值为
0
.从Queue块到Simulink Function块的箭头表示对万博1manbetx
onMessageAvailable ()
函数。来自Queue块的箭头表示具有数据值的消息
0
是由该函数调用中的Receive块接收的。从Simulink Function块到Queue块的水平虚线箭头表示函数的万博1manbetx返回
onMessageAvailable ()
.
有关序列查看器块的更多信息,请参见使用序列查看器来可视化消息、事件和实体.