Networking OMNet++;将数据包从一个节点发送到另一个节点,并将发送的数据包和能量消耗记录为图形

Networking OMNet++;将数据包从一个节点发送到另一个节点,并将发送的数据包和能量消耗记录为图形,networking,nodes,simulation,sensors,omnet++,Networking,Nodes,Simulation,Sensors,Omnet++,我正在使用OMNet++模拟无线网络。代码如下: NED文件 import inet.common.figures.DelegateSignalConfigurator; import inet.networklayer.configurator.ipv4.IPv4NetworkConfigurator; import inet.node.inet.INetworkNode; import inet.physicallayer.contract.packetlevel.IRadioMedium;

我正在使用OMNet++模拟无线网络。代码如下:

NED文件

import inet.common.figures.DelegateSignalConfigurator;
import inet.networklayer.configurator.ipv4.IPv4NetworkConfigurator;
import inet.node.inet.INetworkNode;
import inet.physicallayer.contract.packetlevel.IRadioMedium;
import inet.visualizer.integrated.IntegratedCanvasVisualizer;

network WirelessA
{
    parameters:
        string hostType = default("WirelessHost");
        string mediumType = default("IdealRadioMedium");
        @display("bgb=2500,2500;bgg=100,1,grey95");
        @figure[title](type=label; pos=0,-1; anchor=sw; color=darkblue);
        @figure[rcvdPkText](type=indicatorText; pos=900,50; anchor=w; font=,50; textFormat="Packets Received: %g"; initialValue=0);
        //@statistic[rcvdPk](source=hostB_rcvdPk; record=figure(count); targetFigure=rcvdPkText);
        //@signal[hostB_rcvdPk];
        //@delegatesignal[rcvdPk](source=hostB.udpApp[0].rcvdPk; target=hostB_rcvdPk);
    submodules:
        visualizer: IntegratedCanvasVisualizer {
            @display("p=2400,50");
        }
        configurator: IPv4NetworkConfigurator {
            @display("p=2400,250");
        }
        radioMedium: <mediumType> like IRadioMedium {
            @display("p=2400,450");
        }
        figureHelper: DelegateSignalConfigurator {
            @display("p=2400,650");
        }
        BaseStation: <hostType> like INetworkNode {
            @display("p=1200,1200;i=device/antennatower");
        }
        SubStationA: <hostType> like INetworkNode {
            @display("p=600,650;i=device/receiverdish");
        }
        SubStationB: <hostType> like INetworkNode {
            @display("p=1750,600;i=device/receiverdish");
        }
        SubStationC: <hostType> like INetworkNode {
            @display("p=1700,1700;i=device/receiverdish");
        }
        SubStationD: <hostType> like INetworkNode {
            @display("p=650,1750;i=device/receiverdish");
        }
        SensorNodeA1: <hostType> like INetworkNode {
            @display("p=875,900;i=device/device");
        }
        SensorNodeA2: <hostType> like INetworkNode {
            @display("p=425,975;i=device/device");
        }
        SensorNodeA3: <hostType> like INetworkNode {
            @display("p=225,625;i=device/device");
        }
        SensorNodeA4: <hostType> like INetworkNode {
            @display("p=475,275;i=device/device");
        }
        SensorNodeA5: <hostType> like INetworkNode {
            @display("p=875,450;i=device/device");
        }
        SensorNodeB1: <hostType> like INetworkNode {
            @display("p=1875,300;i=device/device");
        }
        SensorNodeB2: <hostType> like INetworkNode {
            @display("p=1450,425;i=device/device");
        }
        SensorNodeB3: <hostType> like INetworkNode {
            @display("p=1475,850;i=device/device");
        }
        SensorNodeB4: <hostType> like INetworkNode {
            @display("p=1925,925;i=device/device");
        }
        SensorNodeB5: <hostType> like INetworkNode {
            @display("p=2100,575;i=device/device");
        }
        SensorNodeC1: <hostType> like INetworkNode {
            @display("p=1425,1950;i=device/device");
        }
        SensorNodeC2: <hostType> like INetworkNode {
            @display("p=1450,1500;i=device/device");
        }
        SensorNodeC3: <hostType> like INetworkNode {
            @display("p=1875,2075;i=device/device");
        }
        SensorNodeC4: <hostType> like INetworkNode {
            @display("p=2100,1750;i=device/device");
        }
        SensorNodeC5: <hostType> like INetworkNode {
            @display("p=1900,1400;i=device/device");
        }
        SensorNodeD1: <hostType> like INetworkNode {
            @display("p=800,2075;i=device/device");
        }
        SensorNodeD2: <hostType> like INetworkNode {
            @display("p=1000,1700;i=device/device");
        }
        SensorNodeD3: <hostType> like INetworkNode {
            @display("p=650,1450;i=device/device");
        }
        SensorNodeD4: <hostType> like INetworkNode {
            @display("p=350,2050;i=device/device");
        }
        SensorNodeD5: <hostType> like INetworkNode {
            @display("p=275,1625;i=device/device");
        }
}
[Config Wireless01]
description = Militart Based WSN Model
network = WirelessA
sim-time-limit = 5s

*.BaseStation.networkLayer.arpType = "GlobalARP"
*.SubStation*.networkLayer.arpType = "GlobalARP"
*.SensorNode**.networkLayer.arpType = "GlobalARP"

*.BaseStation.wlan[0].typename = "WirelessNic"
*.BaseStation.wlan[0].radioType = "IdealRadio"
*.BaseStation.wlan[0].macType = "CsmaCaMac"
*.BaseStation.wlan[0].mac.useAck = true
#*.BaseStation.wlan[0].mac.fullDuplex = false
*.BaseStation.wlan[0].radio.transmitter.communicationRange = 1300m
*.BaseStation.wlan[0].radio.receiver.ignoreInterference = true
*.BaseStation.wlan[0].radio.displayCommunicationRange = true
*.BaseStation.**.bitrate = 10Mbps
*.BaseStation.wlan[0].radio.energyConsumerType = "StateBasedEnergyConsumer"
*.BaseStation.wlan[0].radio.energyConsumer.offPowerConsumption = -1mW
*.BaseStation.wlan[0].radio.energyConsumer.sleepPowerConsumption = 0mW
*.BaseStation.wlan[0].radio.energyConsumer.switchingPowerConsumption = 1mW
*.BaseStation.wlan[0].radio.energyConsumer.receiverIdlePowerConsumption = 2mW
*.BaseStation.wlan[0].radio.energyConsumer.receiverBusyPowerConsumption = 5mW
*.BaseStation.wlan[0].radio.energyConsumer.receiverReceivingPowerConsumption = 10mW
*.BaseStation.wlan[0].radio.energyConsumer.transmitterIdlePowerConsumption = 2mW
*.BaseStation.wlan[0].radio.energyConsumer.transmitterTransmittingPowerConsumption = 100mW
*.BaseStation.energyStorageType = "IdealEnergyStorage"

*.SubStation*.wlan[0].typename = "WirelessNic"
*.SubStation*.wlan[0].radioType = "IdealRadio"
*.SubStation*.wlan[0].macType = "CsmaCaMac"
*.SubStation*.wlan[0].mac.useAck = true
#*.SubStation*.wlan[0].mac.fullDuplex = true
*.SubStation*.wlan[0].radio.transmitter.communicationRange = 600m
*.SubStation*.wlan[0].radio.receiver.ignoreInterference = true
*.SubStation*.wlan[0].radio.displayCommunicationRange = true
*.SubStation*.**.bitrate = 5Mbps
*.SubStation*.wlan[0].radio.energyConsumerType = "StateBasedEnergyConsumer"
*.SubStation*.wlan[0].radio.energyConsumer.offPowerConsumption = -1mW
*.SubStation*.wlan[0].radio.energyConsumer.sleepPowerConsumption = 0mW
*.SubStation*.wlan[0].radio.energyConsumer.switchingPowerConsumption = 1mW
*.SubStation*.wlan[0].radio.energyConsumer.receiverIdlePowerConsumption = 2mW
*.SubStation*.wlan[0].radio.energyConsumer.receiverBusyPowerConsumption = 5mW
*.SubStation*.wlan[0].radio.energyConsumer.receiverReceivingPowerConsumption = 10mW
*.SubStation*.wlan[0].radio.energyConsumer.transmitterIdlePowerConsumption = 2mW
*.SubStation*.wlan[0].radio.energyConsumer.transmitterTransmittingPowerConsumption = 100mW
*.SubStation*.energyStorageType = "IdealEnergyStorage"

*.SensorNode**.wlan[0].typename = "WirelessNic"
*.SensorNode**.wlan[0].radioType = "IdealRadio"
*.SensorNode**.wlan[0].macType = "CsmaCaMac"
*.SensorNode**.wlan[0].mac.useAck = true
#*.SensorNode**.wlan[0].mac.fullDuplex = true
*.SensorNode**.wlan[0].radio.transmitter.communicationRange = 250m
*.SensorNode**.wlan[0].radio.displayCommunicationRange = true
*.SensorNode**.wlan[0].radio.receiver.ignoreInterference = true
*.SensorNode**.**.bitrate = 1Mbps
*.SensorNode**.wlan[0].radio.energyConsumerType = "StateBasedEnergyConsumer"
*.SensorNode**.wlan[0].radio.energyConsumer.offPowerConsumption = -1mW
*.SensorNode**.wlan[0].radio.energyConsumer.sleepPowerConsumption = 0mW
*.SensorNode**.wlan[0].radio.energyConsumer.switchingPowerConsumption = 1mW
*.SensorNode**.wlan[0].radio.energyConsumer.receiverIdlePowerConsumption = 2mW
*.SensorNode**.wlan[0].radio.energyConsumer.receiverBusyPowerConsumption = 5mW
*.SensorNode**.wlan[0].radio.energyConsumer.receiverReceivingPowerConsumption = 10mW
*.SensorNode**.wlan[0].radio.energyConsumer.transmitterIdlePowerConsumption = 2mW
*.SensorNode**.wlan[0].radio.energyConsumer.transmitterTransmittingPowerConsumption = 100mW
*.SensorNode**.energyStorageType = "IdealEnergyStorage"

*.configurator.addStaticRoutes = false
*.hostType = "AODVRouter"
*.visualizer.dataLinkVisualizer.packetNameFilter = "AODV*"
*.visualizer.mediumVisualizer.displaySignals = true

*.SensorNodeA1.numUdpApps = 1
*.SensorNodeA1.udpApp[0].typename = "UDPBasicApp"
*.SensorNodeA1.udpApp[0].destAddresses = "SubStationA"
*.SensorNodeA1.udpApp[0].destPort = 5000
*.SensorNodeA1.udpApp[0].messageLength = 1000B
*.SensorNodeA1.udpApp[0].sendInterval = exponential(12ms)
*.SensorNodeA1.udpApp[0].packetName = "UDPData"
*.SubStationA.numUdpApps = 1
*.SubStationA.udpApp[0].typename = "UDPSink"
*.SubStationA.udpApp[0].localPort = 5000

这里创建了网络,但当我尝试将数据包从SensorNodeA1发送到SubStationA时,在模拟过程中,数据包从SensorNodeA1发送到所有节点。我应该如何将数据包从一个节点发送到另一个节点?我还想记录并绘制随时间发送的数据包和每个节点的能量消耗图。我还是OMNet++的新手,因此如果有人能指导我,这将很有帮助

您知道,在无线场景中,消息总是在无线媒体上“广播”,因此消息会发送到无线电范围内的所有接收器。 根据您的无线无线电媒体型号,它还可能到达干扰范围内的接收器,以计算干扰级别。 无线通信中没有“单播”,它是一种共享的媒体,如果每个人都在同一频率上,知道调制方式等,那么每个人都可以接收到所有信息

“单播”或“多播”只能在更高级别上启用,例如通过寻址,就像使用目标地址“SubStationA”一样。 检查接收数据包的其他节点的输出,它们是真的在应用层接收数据包,还是由于不同的目的地地址而在MAC层丢弃数据包? 同样,如果使用某种转发或路由协议,节点可能会转发数据包

至于统计记录,请查看有关此复杂零件的信息

大多数现有的INET仿真模型都已经包含了各种统计信息,因此,一旦启用了所需的统计信息(通过
omnetpp.ini
文件),就可以查看创建的结果文件(标量或矢量,具体取决于要记录的数据类型-再次)并使用附带的分析工具过滤数据和打印图表

如果您的统计数据尚未包括在内,您可以手动添加它们,这并不复杂。根据您的代码,我想您已经阅读了INET无线教程-步骤8-无线消费建模(),因此只需按照教程进行操作,也许还可以添加关于统计信息的教程部分()