我是Omnet ++的新手,我正在尝试模拟Wifi网络。我已经成功创建了一个由AP和一些节点组成的网络,所有节点都能够连接到AP。
我想要做的是,一旦所有节点都连接到AP,节点(基于其IP地址)应该向网络中的另一个节点发送消息。我已经创建了包含所有必需字段的.msg文件,它由消息编译器成功编译为相应的_m.h和_m.cc文件。我希望将此消息发送到其他节点。 如何处理?我知道它必须对handleMessage()函数做一些事情,但我找不到包含该函数的文件。
提前感谢您提供任何帮助。
答案 0 :(得分:0)
要发送初始消息,您必须在初始化节点时使用send()
。
void Txc1::initialize()
{
// Initialize is called at the beginning of the simulation.
// To bootstrap the tic-toc-tic-toc process, one of the modules needs
// to send the first message. Let this be `tic'.
// Am I Tic or Toc?
if (strcmp("tic", getName()) == 0)
{
// create and send first message on gate "out". "tictocMsg" is an
// arbitrary string which will be the name of the message object.
cMessage *msg = new cMessage("tictocMsg");
send(msg, "out");
}
}
然后您希望节点能够做出反应。他们的反应可能是沉默的 - 只需接受消息并删除它,或者发送另一条消息作为回报。
为此,您需要在节点handleMessage()
文件中实现.cc
函数。
void Txc1::handleMessage(cMessage *msg)
{
// The handleMessage() method is called whenever a message arrives
// at the module. Here, we just send it to the other module, through
// gate `out'. Because both `tic' and `toc' does the same, the message
// will bounce between the two.
send(msg, "out");
}
答案 1 :(得分:0)
您可以在同一项目或文件夹中的.cc文件中找到该功能。通常,.cc文件的名称接近.ned文件的名称,该文件会隐藏主机或节点的详细信息或您在项目中调用它的任何内容。