首页 > 解决方案 > 从节点向其邻居发送消息

问题描述

我正在尝试创建一个网格网络并发送消息。我的节点如下:

simple Node
{
    parameters:
        @display("i=misc/node");
        gates:
        inout up;
        inout left;
        inout down;
        inout right;
}

我正在发送如下消息:

if(this->gate("right$o")->isConnected())
        {
            send(msg,"right$o",k);
        }

它不会给出任何构建错误,但会在模拟中给出错误。我究竟做错了什么?错误如下:

send()/sendDelayed(): Scalar gate 'right$o' referenced with index -- in module (Node) GridNetwork.sensor[0] (id=2), at t=0s, event #1

标签: c++gridomnet++sensors

解决方案


你的例子Node有一个inout right门,它是一个标量inout门而不是一个向量。这意味着只有一个,它有两个门:right$iand right$o,正如您在示例中尝试使用的那样。

因此,您必须替换inout rightinout right[],并创建从它到另一个门的连接。请参阅有关 gates 的 OMNeT++ 文档


推荐阅读