Omnet++ 使用变量的TDMA实现
我是OMNeT++的新手。我已经实现了简单的TDMA。现在我想让它相对于节点的数量是动态的。当我进入时,它会自动为每个节点分配插槽。现在我必须手动在.ini文件中输入插槽。示例如下所示: 手动程序:Omnet++ 使用变量的TDMA实现,omnet++,Omnet++,我是OMNeT++的新手。我已经实现了简单的TDMA。现在我想让它相对于节点的数量是动态的。当我进入时,它会自动为每个节点分配插槽。现在我必须手动在.ini文件中输入插槽。示例如下所示: 手动程序: **.noHost = 10 **.host[0].slotTime = 0.0 **.host[1].slotTime = 0.1 **.host[2].slotTime = 0.2 **.host[3].slotTime = 0.3 **.host[4].slotTime = 0.4 **.ho
**.noHost = 10
**.host[0].slotTime = 0.0
**.host[1].slotTime = 0.1
**.host[2].slotTime = 0.2
**.host[3].slotTime = 0.3
**.host[4].slotTime = 0.4
**.host[5].slotTime = 0.5
**.host[6].slotTime = 0.6
**.host[7].slotTime = 0.7
**.host[8].slotTime = 0.8
**.host[9].slotTime = 0.9
不过,现在我想把它改成w.r.t.noHost。如何在.ini文件中为此应用循环。
有人能帮忙吗?非常感谢。您可以使用特殊值
索引来实现此目的,例如:
**.host[*].slotTime = index * 0.1
index
的值是向量中每个子模块的索引。例如,当计算主机[6]
的上述表达式时,索引的值将为6
。因此,这将产生与您描述的手动方法相同的结果
请参阅相应的手册部分:我应该在哪里定义此索引?它会是一个循环吗?它是内置的。你不需要定义它。它已经被隐式定义了。因为每一个通配符赋值都会在某种“循环”中进行处理,是的。当我写这个表达式时,它说的是unsed条目,这就是为什么我感到困惑的原因。我明白了。“unused entry”错误消息与索引的使用无关,而是与索引现在是通配符*
这一事实有关。由于IDE不完全理解通配符分配,它认为这一行是不必要的,因为它不匹配任何模块。但它当然会,而且在实际模拟中应该可以很好地工作。因此,该错误消息是错误警报。不是在所有情况下,但在许多情况下,包括这一次改进这一点在我们的待办事项清单上,但清单很长!先生,问题解决了。非常感谢你。真的谢谢