c++ - 从节点向其邻居发送消息
问题描述
我正在尝试创建一个网格网络并发送消息。我的节点如下:
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
解决方案
你的例子Node
有一个inout right
门,它是一个标量inout
门而不是一个向量。这意味着只有一个,它有两个门:right$i
and right$o
,正如您在示例中尝试使用的那样。
因此,您必须替换inout right
为inout right[]
,并创建从它到另一个门的连接。请参阅有关 gates 的 OMNeT++ 文档。
推荐阅读
- javascript - 是否可以在浏览器中运行跳过事件循环队列的代码 - 调度后立即运行
- java - 如何使用 pkcs11 包装器 ECDSA 密钥签署 CSR
- javascript - 时间条件不自行执行,需要重新加载整个页面
- mysql - 使用生成的列创建表
- cron - 使用 SLURM 调度程序的条件 cron 作业
- python-3.x - 如何在python中运行的另一个程序上模拟python中的按键事件
- c# - 用指数计算生成的数学表达式,即 (1+2-3)*4^5 = answer
- javascript - 如何稍后在测试用例中保存和重用动态 DOM 内容
- bash - .sh 文件中的“output_dir="${1%/}" 是什么意思?
- bash - 通过将模式替换为另一个模式来递归地重命名存储库和文件名