Omnet++ INET wlan[0]中的无线嵌套主机。无线电:“0”;已开始接收:未尝试“;

Omnet++ INET wlan[0]中的无线嵌套主机。无线电:“0”;已开始接收:未尝试“;,omnet++,inet,Omnet++,Inet,我使用以下元素运行了一个模拟: 2个开关(直接连接) 2个接入点(每个交换机连接一个) 2台无线定制主机(每个接入点无线连接一台) 干扰已被禁用。标量无线电媒介。Ieee80211无线接口。我使用了简单的STA管理,它负责关联等。我已经确认一切都在运行,我的代码中没有任何错误(我已经完成了所有的工作)。数据包通过工作站无线电发送出去。但是由于某些原因,接入点和第二个无线主机上的无线电台没有接收数据包。当我的模拟正在运行时,接收无线设备上显示的控制台中的这条消息是错误的唯一提示: “开始接收:

我使用以下元素运行了一个模拟:

  • 2个开关(直接连接)
  • 2个接入点(每个交换机连接一个)
  • 2台无线定制主机(每个接入点无线连接一台)
干扰已被禁用。标量无线电媒介。Ieee80211无线接口。我使用了简单的STA管理,它负责关联等。我已经确认一切都在运行,我的代码中没有任何错误(我已经完成了所有的工作)。数据包通过工作站无线电发送出去。但是由于某些原因,接入点和第二个无线主机上的无线电台没有接收数据包。当我的模拟正在运行时,接收无线设备上显示的控制台中的这条消息是错误的唯一提示:
“开始接收:未尝试”

在OMNET++5.4.1上工作,运行INET v4.1.0(加上嵌套框架)。
有人知道如何让我的收音机接收信号吗

NED文件:

package nesting.simulations.examples;

import ned.DatarateChannel;
import nesting.node.ethernet.VlanEtherHostQ;
import nesting.node.ethernet.VlanEtherHostSched;
import nesting.node.ethernet.VlanEtherSwitchPreemptable;
import inet.visualizer.contract.IIntegratedVisualizer;
import inet.networklayer.configurator.ipv4.Ipv4NetworkConfigurator;
import inet.node.wireless.AccessPoint;
import inet.physicallayer.contract.packetlevel.IRadioMedium;

network Case1Scenario
{
    parameters:
        @display("bgb=650,500;bgg=100,1,grey95");
        @figure[title](type=label; pos=0,-1; anchor=sw; color=darkblue);
        
        @figure[rcvdPkText](type=indicatorText; pos=380,20; anchor=w; font=,18; textFormat="packets received: %g"; initialValue=0);
        @statistic[packetReceived](source=backupServer.trafGenApp[0].packetReceived; record=figure(count); targetFigure=rcvdPkText);
        
    types:
        channel C extends DatarateChannel
        {
            delay = 0.1us;
            datarate = 1Gbps;
        }
    submodules:
        visualizer: <default("IntegratedCanvasVisualizer")> like IIntegratedVisualizer if hasVisualizer() {
            parameters:
                @display("p=100,300;is=s");
        }
        configurator: Ipv4NetworkConfigurator {
            parameters:
                @display("p=100,100;is=s");
                config = xml("<config><interface hosts='*' address='145.236.x.x' netmask='255.255.0.0'/></config>");
        }
        switchA: VlanEtherSwitchPreemptable {
            parameters:
                @display("p=188,127");
            gates:
                ethg[4];
        }
        switchB: VlanEtherSwitchPreemptable {
            parameters:
                @display("p=327,127");
            gates:
                ethg[3];
        }
        accessPoint1: AccessPoint {
            parameters:
                @display("p=115,127");
        }
        accessPoint2: AccessPoint {
            parameters:
                @display("p=400,127");
        }
        radioMedium: <default("Ieee80211ScalarRadioMedium")> like IRadioMedium {
            @display("p=446,100");
        }
        workstation1: VlanEtherHostQ {
            @display("p=79,62");
        }
        backupServer: VlanEtherHostQ {
            @display("p=446,54");
        }
        
    connections allowunconnected:
        switchA.ethg[3] <--> C <--> switchB.ethg[2];
        accessPoint1.ethg++ <--> C <--> switchA.ethg[1];
        accessPoint2.ethg++ <--> C <--> switchB.ethg[1];
}

一位INET开发人员向我指出,我开始研究影响是否尝试接收信号的一些因素。我追查到了电源。起初我认为这是传输能力,但另一组嵌套开发人员的眼睛帮助我指出了这一行代码:

“计算是否可以监听:最大功率=0.01 pW,能量检测=3.16228 pW->监听不可能”

他提到,只有当maxPower>=energyDetection(inet/physicalayer/base/packetlevel/FlatReceiverBase.cc第60行)时,接收才起作用

因此,我开始改变我的无线接收主机中的接收器能量检测(默认值-85dBm),使其小于我的无线媒体的背景噪声功率(默认值-110dBm)。然后我用另一种方法,将我的功率增加到-40dBm,同时使能量检测常数保持在-85dBm。两者都导致了这样的结果:接收主机发生了更改,不再发出关于“接收已开始:未尝试”的警告!后来我确实遇到了一个问题,我的访问点没有经过争用阶段,但这仍然是一个进步
[General]
network = Case1Scenario

record-eventlog = false 
debug-on-errors = true
result-dir = results_case1
sim-time-limit = 1s

# debug
**.displayAddresses = true
**.verbose = true

# MAC Addresses
**.workstation1.wlan[*].address = "00-00-00-00-00-02"
**.backupServer.wlan[*].address = "00-00-00-00-00-05"

# access point configuration
**.accessPoint1.wlan[0].address = "00-00-00-00-00-06"
**.accessPoint2.wlan[0].address = "00-00-00-00-00-07"

# workstation 1 is associated with AP1
**.workstation*.wlan[0].mgmt.accessPointAddress = "00-00-00-00-00-06"

# robotic arm and backup server are associated with AP2
**.backupServer.wlan[0].mgmt.accessPointAddress = "00-00-00-00-00-07"

# use simplified ieee802.11 management (no association, authentication etc.)
**.workstation*.wlan[*].mgmt.typename = "Ieee80211MgmtStaSimplified"
**.backupServer.wlan[*].mgmt.typename = "Ieee80211MgmtStaSimplified"
**.accessPoint*.wlan[*].mgmt.typename = "Ieee80211MgmtApSimplified"

# Switches
**.switch*.processingDelay.delay = 5us
**.filteringDatabase.database = xmldoc("xml/TestScenarioRouting.xml", "/filteringDatabases/")

**.switchA.eth[3].queue.gateController.initialSchedule = xmldoc("xml/TestScenarioSchedule_AllOpen.xml", "/schedules/switch[@name='switchA']/port[@id='3']/schedule")
**.switchB.eth[1].queue.gateController.initialSchedule = xmldoc("xml/TestScenarioSchedule_AllOpen.xml", "/schedules/switch[@name='switchB']/port[@id='1']/schedule")
**.switch*.eth[*].queue.gateController.enableHoldAndRelease = false
**.switch*.eth[*].queue.numberOfQueues = 8
**.switch*.eth[*].queue.tsAlgorithms[0].typename = "StrictPriority"
**.switch*.eth[*].queue.tsAlgorithms[1].typename = "StrictPriority"
**.switch*.eth[*].queue.tsAlgorithms[2].typename = "StrictPriority"
**.switch*.eth[*].queue.tsAlgorithms[3].typename = "StrictPriority"
**.switch*.eth[*].queue.tsAlgorithms[4].typename = "StrictPriority"
**.switch*.eth[*].queue.tsAlgorithms[5].typename = "StrictPriority"
**.switch*.eth[*].queue.tsAlgorithms[6].typename = "StrictPriority"
**.switch*.eth[*].queue.tsAlgorithms[7].typename = "StrictPriority"
**.switch*.eth[*].queue.queues[0].expressQueue = true
**.switch*.eth[*].queue.queues[1].expressQueue = true
**.switch*.eth[*].queue.queues[2].expressQueue = true
**.switch*.eth[*].queue.queues[3].expressQueue = true
**.switch*.eth[*].queue.queues[4].expressQueue = true
**.switch*.eth[*].queue.queues[5].expressQueue = true
**.switch*.eth[*].queue.queues[6].expressQueue = true
**.switch*.eth[*].queue.queues[7].expressQueue = true

**.queues[*].bufferCapacity = 363360b

**.switchA.eth[3].mac.enablePreemptingFrames = false

# Workstations
**.workstation*.trafGenApp.destAddress = "00-00-00-00-00-05"
**.workstation*.trafGenApp.packetLength = 1500Byte-4Byte # MTU-Size - VLAN-Tag-Size
**.workstation*.trafGenApp.sendInterval = 12us
**.workstation*.trafGenApp.vlanTagEnabled = true
**.workstation1.trafGenApp.pcp = 6

# Backup Server
**.backupServer.trafGenApp.numPacketsPerBurst = 0
**.backupServer.trafGenApp.sendInterval = 1ms
**.backupServer.trafGenApp.packetLength = 100B

**.bandName = "5 GHz (40 MHz)"
**.opMode = "ac"
**.wlan[*].radio.antenna.numAntennas = 8 #maximum number of streams for 802.11ac is 8
**.bitrate = 1Gbps

# Modelling interference and communication
**.radioMedium.analogModel.ignorePartialInterference = true

**.visualizer.mediumVisualizer.packetFilter = "" # to handle an "implicit chunk serialization" error