这个例子展示了如何建模基于消息的通信的软件组件之间的通信使用虚拟总线消息元素。
模型在本例中是一个平的不完整的机器人,可以移动或旋转,两个轮子的帮助下,类似于家用吸尘机器人。该模型假设机器人移动以两种方式之一:
线性,车轮在同一方向以相同的速度,和机器人线性移动。
旋转——车轮将在相反的方向以相同的速度,和机器人旋转。
学习如何创建模型的机器人,明白了系统定义和布局。
在这个例子中,机器人发送它的速度x
- - -y
——方向基站和其相对角(运动方向)值一个基站。站的数据消耗速率慢于机器人发送的数据。作为消息缓冲队列块。
在这个模型中,组件,代表了移动机器人和车站使用虚拟通信总线消息元素。XVelocity
和YVelocity
代表x
和y
分别组成部分机器人的速度。角
代表了机器人的相对角度x
设在。
在移动机器人组件发送数据,XVelocity
和YVelocity
信号组合成nonvirtual总线速度
。速度数据的发送1块创建消息有效负载。在这个框架中,消息提供基于事件的异步组件之间的通信。使用消息和nonvirtual总线负载允许软件来治疗速度
作为一个数据包XVelocity
和YVelocity
作为它的字段。因此,每个包包含XVelocity
和YVelocity
数据。
发送2块创建消息角
数据有效负载。从总线元素块标记SendVirtualBus.Velocity
和SendVirtualBus.Angle
指定速度
和角
虚拟总线的元素SendVirtualBus
。您可以将消息转换为一个虚拟总线创建消息发送接口。在消息接收接口,您可以访问整个总线或选择特定的消息从总线。对消息发送和接收接口的更多信息,见万博1manbetx仿真软件信息概述。
组件通过沟通如下:
模型预先加载函数加载(“Velocity.mat”)
加载速度
总线对象到工作区。
总线创造者块组XVelocity和YVelocity nonvirtual总线速度定义的总线对象数据类型。
发送1块创建消息速度
有效载荷。
从总线元素块标记SendVirtualBus.Velocity
创建虚拟总线SendVirtualBus
与速度
元素。块,数据类型被设置为总线:速度
,数据模式被设置为消息
。
从总线元素块标记SendVirtualBus.Angle
指定角
作为一个信息的元素SendVirtualBus
。
车站接收数据组件接收虚拟巴士和选择使用在总线消息元素元素块。接收模块将消息转换为信号处理和可视化。
更多信息关于创建消息的发送和接收接口nonvirtual总线负载,明白了发送和接收消息总线的数据。
你可以模拟移动机器人的模型或生成代码组件和电台接收数据组件发送数据。有关更多信息,请参见生成c++消息通信仿真软件和操作系统之间或中间件万博1manbetx(嵌入式编码)。
模拟模型。观察机器人的通信速度x
和y
的方向。机器人在y
因为它的速度方向x
方向是恒定的,0
。
观察机器人的常数相对角弧度。这个角π/ 2
确认的运动y
方向。
使用顺序查看器工具来显示虚拟巴士机器人和车站之间的沟通。打开序列查看器工具,在仿真软件®将来发布,在万博1manbetx模拟选项卡,在审查结果中,选择顺序查看器。
顺序查看器窗口显示了移动机器人的虚拟总线转换组件到队列发送数据块和从队列中去车站接收数据块组件。
扩大队列序列中的生命线查看器窗口。观察到两个队列的队列块扩展块提供存储两个虚拟总线消息元素,速度
和角
。额外的队列块相同的配置和能力与原始队列。更多信息队列,明白了使用一块队列管理信息。
动画可以观察虚拟巴士在仿真机器人和车站之间的沟通。打开动画,从将来发布的调试选项卡,事件的动画部分中,选择动画速度。
您可以指定慢
,媒介
,或快
动画的速度。选择没有一个
关闭动画。关于动画的更多信息和信息可视化,明白了动画和理解发送和接收消息。
动画强调虚拟巴士从机器人发送队列的队列块和块去车站。
暂停动画和指向队列上的放大镜块打开存储检查员。存储检查显示元素和消息数据总线。
您可以通过第一个模型基于消息的软件组件之间的通信设计您的系统使用系统从架构级别作曲家™。系统的架构模型作曲家支持仿真软件模型与输入和输出消息组件的行为。万博1manbetx万博1manbetx
下面是一个例子插图显示的设计架构组件来代表移动机器人和车站。在上面的万博1manbetx示例中,使用的仿真软件模型MessageSendRobotModel
和MessageReceiveRobotModel
连接到这些组件,组件的行为。当你编译模式,后进先出队列的容量1
自动插入到体系结构模型来模拟。从架构级别需要系统设计信息界面作曲家许可证。