我正在尝试创建一个网格网络并发送消息。 我的节点如下:
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
答案 0 :(得分:0)
您的示例Node
具有一个inout right
门,它是一个标量inout
门,而不是一个向量。这意味着只有一个,并且有两个门:right$i
和right$o
,正如您在示例中尝试使用的那样。
因此,您必须将inout right
替换为inout right[]
,并创建从它到另一个门的连接。参见the OMNeT++ documentation on gates。