Ali
Ali

Reputation: 2678

Is there a way to sniff/listen an unicast packet/message on Omnet?

I am doing development for WSN in Omnet. I want to sniff a unicast message but I don't have an idea how can i do it in Omnet. I made some research but i couldn't found any method for that

When I send data to another node, I am sending it as an unicast with this method :

cModule *nodeIndex = flatTopolojiModulu->getSubmodule("n", i);//n is array
sendDirect(new cMessage("msg"), nodeIndex, "in");

I am using sendDirect method because I am working on wireless network. According to this description : https://stackoverflow.com/a/36082721/5736731

sendDirect method is usually the case in wireless networks.

But when send message with sendDirect, a message is being handled by receiver node. For example, according to code example above:

if i=2, message that is sent only can handle by node which has index "2" from void AnyClassName::handleMessage(cMessage *msg) function

Upvotes: 1

Views: 310

Answers (1)

Jerzy D.
Jerzy D.

Reputation: 7002

An example of broadcasting messages can be found in OMNeT++ Manual.

You should create only one instance of message that all nodes have to receive, and then send a new copy of this message to each node in loop. The dup() method has to be used to create the copy of a message.

cMessage * msg = new cMessage("msg");
// totalN is the total number of nodes 
for (int i = 0; i < totalN; ++i) {
  cModule *nodeIndex = flatTopolojiModulu->getSubmodule("n", i);
  sendDirect(msg->dup(), nodeIndex, "in");
}
// original message is no longer needed
delete msg;

Upvotes: 0

Related Questions