%description:

This is a test for APSKDimensionalRadio interference handling.
The first signal is stronger than the reception threshold.
The second signal is weaker than the reception threshold.
The second signal is too weak to cause bit errors.
The first signal is expected to be received correctly.

%file: test.ned

import inet.networklayer.configurator.ipv4.IPv4NetworkConfigurator;
import inet.node.inet.WirelessHost;
import inet.physicallayer.apskradio.packetlevel.APSKDimensionalRadioMedium;

network Test
{
    submodules:
        radioMedium: APSKDimensionalRadioMedium;
        configurator: IPv4NetworkConfigurator;
        hostSender1: WirelessHost;
        hostSender2: WirelessHost;
        hostReceiver: WirelessHost;
}

%inifile: omnetpp.ini

[General]
network = Test
sim-time-limit = 500us
record-eventlog = true
ned-path = .;../../../../src

#omnetpp 5.0 - 5.1 compatibility:
eventlog-file = "${resultdir}/${configname}-${runnumber}.elog"
output-scalar-file = "${resultdir}/${configname}-${runnumber}.sca"
output-vector-file = "${resultdir}/${configname}-${runnumber}.vec"
snapshot-file = "${resultdir}/${configname}-${runnumber}.sna"

**.arpType = "GlobalARP"

**.mobility.constraintAreaMinZ = 0m
**.mobility.constraintAreaMinX = 0m
**.mobility.constraintAreaMinY = 0m
**.mobility.constraintAreaMaxX = 1000m
**.mobility.constraintAreaMaxY = 1000m
**.mobility.constraintAreaMaxZ = 0m
**.mobility.initFromDisplayString = false
**.mobility.initialY = 500m
**.mobility.initialZ = 0m
*.host*.mobilityType = "StationaryMobility"
*.hostSender1.mobility.initialX = 200m
*.hostSender2.mobility.initialX = 800m
*.hostReceiver.mobility.initialX = 400m

# radio medium
*.radioMedium.backgroundNoise.power = -110dBm

# nic
*.host*.wlan[*].typename = "IdealWirelessNic"
*.host*.wlan[*].bitrate = 2Mbps
*.host*.wlan[*].mac.headerLength = 10B
*.host*.wlan[*].mac.fullDuplex = false
*.host*.wlan[*].radioType = "APSKDimensionalRadio"
*.host*.wlan[*].radio.transmitter.bitrate = 2Mbps
*.host*.wlan[*].radio.transmitter.preambleDuration = 0s
*.host*.wlan[*].radio.transmitter.headerBitLength = 100b
*.host*.wlan[*].radio.carrierFrequency = 2.4GHz
*.host*.wlan[*].radio.bandwidth = 2MHz
*.host*.wlan[*].radio.receiver.energyDetection = -90dBm
*.host*.wlan[*].radio.receiver.sensitivity = -80dBm
*.host*.wlan[*].radio.receiver.snirThreshold = 10dB
*.hostSender1.wlan[*].radio.transmitter.power = 100mW
*.hostSender2.wlan[*].radio.transmitter.power = 10mW
*.hostReceiver.wlan[*].radio.transmitter.power = 0W

# ping app
*.hostSender*.numPingApps = 1
*.hostSender*.pingApp[0].count = 1
*.hostSender*.pingApp[0].printPing = true
*.hostSender*.pingApp[0].destAddr = "hostReceiver"
*.hostSender*.pingApp[0].startTime = 0s

%contains: results/General-0.elog
Changing radio reception state from IDLE to RECEIVING.
%contains: results/General-0.elog
Changing radio reception state from RECEIVING to BUSY.
%contains: results/General-0.elog
Passing up contained packet `ping0' to higher layer
%contains: results/General-0.elog
Sending datagram (inet::IPv4Datagram)ping0-reply with destination = 10.0.0.1
%#--------------------------------------------------------------------------------------------------------------
%not-contains: stdout
undisposed object:
%not-contains: stdout
-- check module destructor
%#--------------------------------------------------------------------------------------------------------------
