OMNeT 例程 Tictoc17 学习笔记

在 canvas(画布)上显示一个静态描述文本和一个显示到达目的模块的最后一条消息的跳数的动态文本。

在 NED 文件中创建 figure :

parameters:
    @figure[description](type=text; pos=5,20; font=,,bold; 
        text="Random routing example - displaying last hop count");
    @figure[lasthopcount](type=text; pos=5,35; text="last hopCount: N/A");

创建两个名为 description 和 lasthopcount 的文本图形,并设置它们在画布上的位置(我们将它们放置在右上角)。font 属性设置图形文本的字体,它有三个参数:字体(typeface)、大小(size)、样式(style),它们中的任何一个都可以省略,使参数保持默认值。这里我们将描述图形的字体设置为粗体(bold)。

默认情况下,lasthopcount 中的文本是静态的,但是在消息到达时我们将更改它,这在 txc17.cc 的 handleMessage() 函数 中完成:

		if (hasGUI()) {
            char label[50];
            // Write last hop count to string
            sprintf(label, "last hopCount = %d", hopcount);
            // Get pointer to figure
            cCanvas *canvas = getParentModule()->getCanvas();
            cTextFigure *textFigure = check_and_cast<cTextFigure*>(canvas->getFigure("lasthopcount"));
            // Update figure text
            textFigure->setText(label);
        }

图形由 C++ 类 cTextFigure 表示。有几种图形类型,它们都是从 cFigure 基类派生出来的。我们在检索 hopcount 变量后插入负责更新图形文本的代码。
我们想把这些图形画在网络的画布上。getParentModule() 函数返回节点的父节点:网络。然后,getCanvas() 函数返回网络的画布,getFigure() 根据名称获取图形。然后,使用setText() 函数更新图形的文本。

当运行仿真时,该图形在第一条消息到达之前显示“last hopCount: N/A”。然后,每当消息到达目的模块时,就更新它。
(N/A 的意思是 Not Applicable 不适用)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值