首页 > 解决方案 > Castalia WBAN application | Getting Throughput

问题描述

I want to get a comparison between the throughput for bybassrouting and Multiringrouting for WBAN network based on BaselineMAC and then draw a plot for comparison.

I have added the following in the .ini file


[General]

include ../Parameters/Castalia.ini

sim-time-limit = 100s

#include ../Parameters/SensorDevice/Accelerometer.ini

#SN.physicalProcessName = "CarsPhysicalProcess"
#SN.physicalProcess[*].car_interarrival = 5 #every 5 mins a car will move


SN.wirelessChannel.pathLossMapFile = "../Parameters/WirelessChannel/BANmodels/pathLossMap.txt"
SN.wirelessChannel.temporalModelParametersFile = "../Parameters/WirelessChannel/BANmodels/TemporalModel.txt"

SN.node[*].Communication.Radio.RadioParametersFile = "../Parameters/Radio/BANRadio.txt"
SN.node[*].Communication.Radio.symbolsForRSSI = 16
SN.node[*].Communication.Radio.TxOutputPower = "-15dBm"


#------------------------------------------------------------------
SN.node[*].ApplicationName = "BridgeTest"
SN.node[*].Application.collectTraceInfo = true
SN.node[0].Application.isSink = true
SN.node[*].Application.startupDelay = 1     #wait for 1sec before starting sending packets
SN.node[0].Application.latencyHistogramMax = 600
SN.node[0].Application.latencyHistogramBuckets = 30
SN.node[3].Application.packet_rate = 5
SN.field_x = 100
SN.field_y = 20
SN.deployment = "[0]->center;[1..18]->6x3"
SN.numNodes = 19
#------------------------------------------------------------------
SN.physicalProcess[0].point1_x_coord = 0
SN.physicalProcess[0].point1_y_coord = 10
SN.physicalProcess[0].point2_x_coord = 100
SN.physicalProcess[0].point2_y_coord = 10
#------------------------------------------------------------------


#------------------------------------------------------------------
SN.node[*].Communication.MACProtocolName = "BaselineBANMac"
SN.node[*].Communication.MAC.phyDataRate = 1024
SN.node[0].Communication.MAC.isHub = true
SN.node[*].Communication.MAC.macBufferSize = 48
#------------------------------------------------------------------

[Config myRouting]
SN.node[*].Communication.RoutingProtocolName = "MultipathRingsRouting"
SN.node[*].Application.reportDestination = "0"

[Config noRouting]
SN.node[*].Communication.RoutingProtocolName = "BypassRouting"
SN.node[*].Application.reportDestination = "0"

I don't know how can I have the throughput for these routing.

this application (BridgeTest) contains the output named Reprogram reception Application output for BridgeTest

Please help me with the command to have the throughput test comparison. Note: I tried using SN.node[*].ApplicationName = "ThroughputTest" and it gave me an error as it is not defining isSink Variable

标签: omnet++

解决方案


首先,最好清楚准确地了解您想要测量的内容和目的。您是否有真正的问题,或者这只是您在 Castalia 的学习经历的一部分?我之所以问,是因为“测量不同路由协议的吞吐量”是一个相当模糊的陈述,尤其是当其中一个协议是 BypassRouting 时,这意味着没有路由!我在这里假设这是您与 Castalia 的学习之旅的一部分,您只是在玩模拟器,但如果其他假设很重要,请更新您的问题。

查看 ini 文件,我可以看到您错过了几个重要的事实:

  • 您正在尝试将路由 (MultiPathRings) 与 BaselineBANMAc 一起使用。BaselineBANMAc 仅支持集线器和子节点之间的通信。子节点不能相互通信。因此 BaselineBANMAc 只能用于星型网络拓扑。没有多跳。当然,您可以使用另一个允许所有节点之间通信的 MAC。例如 TMAC 或 TunableMAC。

  • BridgeTest 应用程序执行某种应用程序级别的路由(基本上是根据一些简单的规则重新广播它接收到的数据包)。因此,使用路由模块进行测试并不是一个好的应用程序。您应该阅读手册(第 3.6.2 节)并检查 BridgeTest 应用程序的代码,以更好地了解其功能。

  • BridgeTest 应用程序使用两种数据包:1) 报告从 18 个传感节点流向接收节点的数据包(主要是传感数据),以及 2) 重新编程从接收节点流向传感节点的数据包。它们具有不同的特征(它们创建的频率和创建的数据量)

  • 您已经注释掉了物理过程线,基本上没有物理过程。这意味着没有任何东西可以感知,因此不会有从感知节点到接收节点的报告数据包(我上面提到的第一种数据包)。不确定这是否是故意的。

我建议您重新审视您想要实现的目标以及您想要测试的确切模拟场景是什么(除了您在问题开头写的模糊陈述之外)。研究您认为与实现目标相关的不同部分/模块,欢迎您在这里提出更多问题。


推荐阅读