У меня есть этот код, где модуль, который расширяет модуль WirelessHost, состоит из простого модуля, называемого узлом:
Когда я запускаю симуляцию, появляются только события мобильности, никакие коммуникационные события не отображаются. Я думаю, что это связано с не
связывание модуля Drone gates с воротами, получающими входящий трафик. Как я могу это сделать, пожалуйста?
SaaS.ned
import inet.node.inet.WirelessHost;
import inet.visualizer.integrated.IntegratedVisualizer;
import inet.networklayer.configurator.ipv4.Ipv4NetworkConfigurator;
import inet.physicallayer.unitdisk.UnitDiskRadioMedium;
simple Node
{
gates:
input in[];
output out[];
}
module Drone extends WirelessHost
{
gates:
input in[];
output out[];
submodules:
myNode: Node;
connections allowunconnected:
for i=0..sizeof(in)-1 {
in++ --> myNode.in++;
}
for i=0..sizeof(out)-1 {
out++ <-- myNode.out++;
}
}
network SaaS
{
parameters:
int numDrones;
submodules:
visualizer: IntegratedVisualizer {
@display("p=94.376,433.728");
}
configurator: Ipv4NetworkConfigurator {
parameters:
config = xml("<config><interface hosts='*' address='145.236.x.x' netmask='255.255.0.0'/></config>");
@display("p=94.376,56.224;is=s");
}
radioMedium: UnitDiskRadioMedium {
@display("p=94.376,178.71199");
}
drone[numDrones]: Drone {
@display("i=misc/node_vs");
}
}
Node.cc
#include <string.h>
#include <omnetpp.h>
using namespace omnetpp;
class Node : public cSimpleModule
{
protected:
// The following redefined virtual function holds the algorithm.
virtual void initialize() override;
virtual void handleMessage(cMessage *msg) override;
};
// The module class needs to be registered with OMNeT++
Define_Module(Node);
using namespace std;
void Node::initialize()
{
int n = gateSize("out");
cMessage *msg = new cMessage("tictocMessage");
for (int i = 0; i < n ; i++)
send(msg, "out", i);
}
void Node::handleMessage(cMessage *msg)
{
int n = gateSize("out");
for (int i = 0; i < n ; i++)
send(msg, "out", i);
}