如何解决如何使用 Inet4.0 在 Omnet++ (5.6.2) 上模拟 Zigbee 协议?
简介
我正在尝试在空中网络中模拟一个简单的 zigbee 通信。 Omnet++ 已经有一个仅定义物理层和 MAC 层的 IEEE 802.15.4 标准示例。我认为为了创建 Zigbee 网络,我应该定义网络层和应用层。
问题陈述
话虽如此,我目前正在修改 IEEE 802.15.4 代码。我有一个协调器、路由器和一个终端设备。我希望(协调器和路由器)和(路由器和终端设备)相互交换数据包(双向)。我得到的结果不是我所期望的。
我认为我的可视化代码和 xml 星形拓扑文件有问题。我是 omnet++ 的新手,所以我不太确定我应该如何解决这个问题。
.ned 文件
package zigbee_test.simulations.zigbee_attempt;
import inet.networklayer.configurator.ipv4.Ipv4NetworkConfigurator;
import inet.physicallayer.ieee802154.packetlevel.Ieee802154NarrowbandScalarRadioMedium; //All wireless simulations in INET need a radio medium module. This module represents the shared physical medium where communication takes place.
import inet.node.ethernet.Eth100M; //It is responsible for taking signal propagation,attenuation,interference,and other physical phenomena into account.
import inet.physicallayer.apskradio.packetlevel.ApskScalarRadioMedium;
import inet.physicallayer.ieee802154.bitlevel.Ieee802154UwbIrRadioMedium;
import inet.node.inet.SensorNode;
import inet.node.inet.StandardHost;
import inet.node.inet.WirelessHost;
import inet.visualizer.integrated.IntegratedCanvasVisualizer;
import inet.visualizer.integrated.IntegratedMultiVisualizer;
import inet.visualizer.integrated.IntegratedVisualizer;
//
// Todo auto-generated type
//
network Zigbee
{
parameters:
@display("bgb=600,600");
//gates:
//inout port[];
submodules:
configurator: Ipv4NetworkConfigurator { //assigns IP address to all nodes
@display("p=526.688,164.288");
}
radioMedium: Ieee802154NarrowbandScalarRadioMedium { //it is the shared physical medium
@display("p=509.776,33.824");
}
coordinator: SensorNode { //SensorNode is suited for 802.11 but can be changed to 802.15 in ini file
@display("p=405.888,446.96;i=misc/sensor;is=l");
}
router: SensorNode {
@display("p=216.232,283.88;i=misc/sensor;is=l");
}
enddevice: SensorNode {
@display("p=134.088,247.64;i=misc/drone;is=l");
}
visualizer: IntegratedMultiVisualizer {
@display("p=509.776,91.808");
}
//visualizer: IntegratedCanvasVisualizer {
//@display("p=498.904,64.024");
//}
//connections:
//coordinator.port++ <--> {datarate=100Mbps;} <--> router.port++;
}
.ini 文件
[Config Zigbee]
description = Simple sim with a coordinator,router and end device communicating with zigbee protocol
network = Zigbee
sim-time-limit = 40s
**.arp.typename = "GlobalArp" #Global address resolution (ipv4 or ipv6)
**.netmaskRoutes = "" #keeps the routing table modules from adding netmask routes to the routing tables. Netmask routes mean that nodes with the same netmask but
#different IP addresses should reach each other directly. These routes are also added by the configurator,so netmaskRoutes is turned off to avoid duplicate routes.
*.radioMedium.backgroundNoise.power = -110dBm
*.configurator.config = xmldoc("startopology.xml")
*.configurator.addStaticRoutes = false #This is the main switch that turns on automatically filling routing tables.
#When this setting is turned off,only routes specified in the XML configuration are added,and all the following parameters are ignored.
################################################################# MAC layer ########################################################################################
############ Coordinator Configuration
*.coordinator.numApps = 1 #number of application layers
*.coordinator.app[*].typename = "UdpBasicApp"
*.coordinator.app[*].destAddresses = "router"
*.coordinator.app[*].destPort = 1000
*.coordinator.app[*].sendInterval = 0.125s
*.coordinator.app[*].startTime = exponential(1s)
*.coordinator.app[*].messageLength = 10Byte
*.coordinator.app[*].packetName = "CoordinatorData"
############ Router Configuration
*.router.numApps = 1 #number of application layers
*.router.app[*].typename = "UdpBasicApp"
*.router.app[*].destAddresses = "enddevice coordinator"
*.router.app[*].destPort = 1000
*.router.app[*].sendInterval = 1s
*.router.app[*].startTime = uniform(0s,1s)
*.router.app[*].messageLength = 10Byte
*.router.app[*].packetName = "RouterData"
############ End device Configuration
*.enddevice.numApps = 1 #number of application layers
*.enddevice.app[*].typename = "UdpBasicApp"
*.enddevice.app[*].destAddresses = "router"
*.enddevice.app[*].destPort = 1000
*.enddevice.app[*].sendInterval = 1s
*.enddevice.app[*].startTime = uniform(0s,1s)
*.enddevice.app[*].messageLength = 10Byte
*.enddevice.app[*].packetName = "EnddeviceData"
##############Visualizer Configuration
**.radio.displayCommunicationRange = true
# routing table visualization
*.visualizer.*.routingTableVisualizer[0].displayRoutingTables = false
*.visualizer.*.routingTableVisualizer[0].displayRoutesIndividually = false
*.visualizer.*.routingTableVisualizer[0].lineshift = 0
*.visualizer.*.routingTableVisualizer[0].displayLabels = false
# interface table visualization
*.visualizer.*.interfaceTableVisualizer[0].displayInterfaceTables = false
# data link visualization
*.visualizer.*.numDataLinkVisualizers = 2
*.visualizer.*.dataLinkVisualizer[*].displayLinks = true
*.visualizer.*.dataLinkVisualizer[0].nodeFilter = "coordinator or router"
*.visualizer.*.dataLinkVisualizer[1].*Color = "blue"
*.visualizer.*.dataLinkVisualizer[1].nodeFilter = "router or enddevice"
# statistic visualization
*.visualizer.*.numStatisticVisualizers = 2
*.visualizer.*.statisticVisualizer[*].zIndex = 1
*.visualizer.*.statisticVisualizer[0].displayStatistics = true
*.visualizer.*.statisticVisualizer[0].signalName = "packetSent"
*.visualizer.*.statisticVisualizer[0].statisticExpression = "count"
*.visualizer.*.statisticVisualizer[0].sourceFilter = "**.coordinator.udp **.router.udp **.enddevice.udp"
*.visualizer.*.statisticVisualizer[0].format = "sent: %v pks"
*.visualizer.*.statisticVisualizer[1].displayStatistics = true
*.visualizer.*.statisticVisualizer[1].signalName = "packetReceived"
*.visualizer.*.statisticVisualizer[1].statisticExpression = "count"
*.visualizer.*.statisticVisualizer[1].sourceFilter = "**.coordinator.udp **.router.udp **.enddevice.udp"
*.visualizer.*.statisticVisualizer[1].format = "rcvd: %v pks"
starttopology.xml
<config>
<interface hosts="coordinator" address="10.0.0.1" netmask="255.255.x.x"/>
<interface hosts="**" address="10.0.x.x" netmask="255.255.x.x"/>
<route hosts="coordinator" interface="wlan0" destination="*" gateway="*"/>
<route hosts="router enddevice*" destination="*" gateway="10.0.0.1"/>
</config>
任何帮助将不胜感激。谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。