首先,如果这不是解决这个问题的正确论坛,我深表歉意。我正试图在OMNeT/INET中实现两种tcp拥塞控制算法
第一个是TCP-FIT,我在上找到了它的伪代码。
另一个是TCP Illinois,我在上找到了它的linux实现
我无法理解如何在这两种机制中实现一些变量和方法,我将非常感谢您的帮助。也欢迎对变量类型提供一些帮助
简言之,对于TCP-FIT:
epoch\u开始和更新\u epoch(我理解epoch可以是RTT的同义词)
α(值)
是什么
RTT_cnt计算是否正确(在recei
当我运行命令启动SUMO时,它会在端口9999上打印侦听,并直接开始打印:
Handling connection from 127.0.0.1 on port 63825
Got Traci message of length 1347375952
Got Traci command of length 31
Got Traci command 0x2f
Aborting on error:Expected CMD-FILE_SEND(0x75),but got 0x2f
在omnetpp的示例中,我更改了alpha的值,并尝试分析丢失的数据包总数,但alpha的值不同
即使SNIR丢失的数据包保持为零,数据包丢失也保持为零。有人能帮我吗?我刚刚试着运行Velse4A2附带的示例场景。除了您之外,我还看到丢失的数据包(许多节点为0,但某些节点高达14)。您收集统计数据的方式可能有问题
对于Velse 3.0,统计数据非常相似(尽管由于无线电模型的变化,明显不完全相同):
我刚刚尝试运行Velse4A2附带的示例场景。除了您之外,我还看到丢失的数据包(许多节点为0
在无线节点的接口元素级别:
我知道当模块接收到消息时,模拟内核会调用handleMessage()。
当在两个单个或多个无线节点之间建立物理无线链路以调用它们进行通信时,是否有类似的功能?如果没有这样的函数,我如何生成它?
谢谢没有物理无线链接。无线电传输的数据包可能在另一端接收,也可能不在另一端接收。物理无线链路只是在低层通信之上的抽象层
你认为什么时候存在物理无线链路?两个对等方何时交换数据?只有一种方式或数据应该以两种方式传输?node1如何知道node2收到了发送的数据?它应该等待确认吗
我在stackoverflow上遇到了一些代码来获取RSSI。
但是,只提供了一些代码,因此我编写了如下代码来检查结果。然而,这是否正常获得了RSSI,这是值得怀疑的
RSU.h
RSU.cc
// If received some message from other node
double rssi = check_and_cast<DeciderResult80211*>(check_and_cast<PhyToMacControlInfo*>(wsm ->
我正在windows环境中安装Omnet++4.6版本。但是在发出“make”命令时,我得到了以下错误。有人能帮我把这个处理掉吗
制造
制造模式=释放
0[main]make 10976 child\u info\u fork::abort:E:\omnetpp-4.6\tools\win32\usr\bin\msys-gmp-10.dll:加载到其他地址:父(0x150000)!=子(0x8A0000)
make:fork:Resource暂时不可用为什么要安装4.6而不是最新版本?我正在编写
我正在使用即时静脉5.0-alpha2 i1。在Velse_hetvnet上执行测试程序时,显示以下错误:
veins:~/src/veins_hetvnet/examples/veins_hetvnet% ./run -d -u Cmdenv | grep "HetVNetDemoApp::handleMessage"
./run: 25: exec: ../../run: not found
zsh: exit 127 ./run -d -u cmdenv |
zsh: exit 1 g
我想做一个模拟,这样节点1就有机会根据给定的概率向节点2或节点3发送消息,节点2也应该这样做。然而,如果节点3在任何时候接收到消息,则该消息被删除。我试着自己做,但它并没有按照我的计划工作。Out1是到节点1或2的输出,而Out2是到节点3的输出。当消息从节点1开始并首先到达节点3时,消息将被正确删除,但其他时候,消息将立即弹出,表示没有更多事件,模拟已完成。我附加了我节点的cc文件,我确信其他连接和内容都是正确的。任何建议都将不胜感激,我对omnet++还是很陌生。谢谢
#include "n
我已经声明了Define_模块(venves::TraCIDateDissemination),并使用了提供的各种建议,但再次出现此错误。欢迎提出任何建议。请帮忙
我查了一下手册-
7.12.3 Class Registration
You should also use the Register_Class() macro to register the new class. It is used by the createOne() factory function, which can
我尝试创建一个包含两个节点的简单场景,一个是服务器,另一个是客户端。我用路由器无线连接了两个节点。我使用最简单的无线媒体型号UnitDiskRadioMedia。我在两个节点上运行FTP应用程序。如果我没有向**.propagation.propagationSpeed添加一个较低的值,则会出现以下错误
已发送时从上层接收到帧。-模块内(inet::physicallayer::UnitDiskRadio)
我的问题是,在不增加传播速度的情况下,我需要从我的场景中添加或删除什么才能工作
我选择U
在omnet++中的Velines\u inet示例中,我只需要将消息(事故)发送给一些车辆,而不是所有车辆,这意味着我不想在广播中发送消息,但我想在我选择的模拟时间将其发送给特定车辆?有人知道怎么做吗?我想知道是否应该更改VeinsineSampleApplication.cc中的代码??也许我必须改变sendPacket方法,但我不知道怎么做!我花了几天的时间试图更改目标地址,我使用了senddirect()函数,我添加了门,但我得到了很多错误!你能帮帮我吗
以下是示例中与我的问题相关的代码
我正在使用inet和Velines\u inet实现vanet模拟我需要在模拟中使用RSU,因此我将RSU Velines模块添加到我的网络中,并为应用程序a创建了一个从VeinsInetApplicationBase继承的模块,但当我运行模拟时,出现以下错误:
Submodule appl: No module type named 'rsuApp' found that implements module interface org.car2x.veins.base.modules.IBas
我在OMNET++中找到了以下代码
void Mac::sendDataPacket()
{
nbTxDataPackets++;
if (currentTxFrame == nullptr)
popTxQueue();
auto packet = currentTxFrame->dup();
const auto& hdr = packet->peekAtFront<MacHeaderBase>();
la
我是omnet++新手,发现了一些困难。我的代码还可以,但问题是g++并且在路径中找不到gcc。我不知道为什么会出现这个问题。提前谢谢。
由于我没有足够的代表发表评论,我将在这里回复
首先(显然)首先,您确定您的计算机上安装了gcc/g++编译器套件吗?如果未安装,则IDE无法找到它们。
尝试安装它们,然后重新启动IDE
另外,如果您已经使用了IDE的首选项,请确保按照此处建议的默认值重新启动:从OMNeT++主目录键入omnetpp,然后不要关闭控制台。所有需要的路径都将正确设置(指向gcc和
在项目中,我必须使用自定义信标消息。它需要的参数与WaveShortMessage中的参数不同。我定义了.msg文件并能够生成_m.cc和_m.h文件。为了在TraCIDemo11p中使用自定义消息,我考虑在onBeacon()函数中将WSM对象参数替换为自定义消息的对象参数。但这不起作用,因为BaseWaveApplLayer也只使用了WSM对象
因此,我创建了另一个MyAppLayer.ned,其内容与TraCIDemo11p.ned的内容相同,除了“sendwileparking”参数(我
我无法从OMNeT中的模块发出一些信号。特别是,我的一个模块有一系列信号要发射,比如:
simsignal_t* signalInputInterarrivalTime;
...
signalInputInterarrivalTime = new simsignal_t[N];
然后IregisterSignal数组中具有不同名称的每个元素。
这种方法是可行的,但是在我的.ned文件中,我必须使用尽可能多的@statistic行作为数组的最大大小。当然,这不是最好的方法,因为它既不具有参数性,
我目前正在模拟AODV路由,对包封装/去封装感到非常困惑。
在UDPBasicAPP.CC中,有一个名为packetName的变量来定义数据包的名称(从INI文件定义)
因此,一旦数据包通过AODVRouting.CC,它就被封装:
void AODVRouting::receiveSignal(cComponent *source, simsignal_t signalID, cObject *obj, cObject *details)
{
cPacket *frame = check_a
我正在学习omnet++来模拟网络。packeage.ned中的代码如下所示:
package helloworld.simulations;
import inet.networklayer.configurator.ipv4.FlatNetworkConfigurator;
import inet.node.inet.Router;
import inet.node.inet.StandardHost;
@license(LGPL);
ne
我得到了这个错误:
std::ifstream in (par("pathFile"));
尝试:
这并不能回答这个问题。若要评论或要求作者澄清,请在其帖子下方留下评论。-我能够重现@Mohammed Sani提出的错误,我不需要澄清。在OMNeT++中,par()方法返回对cPar对象的引用,在呈现的代码中,该对象不会自动转换为char*。因此,它需要使用stringValue()手动转换为char*。
Multiple markers at this line
- candidat
当使用静脉作为耦合SUMO和omnet++的框架时,如何确定车辆数量?我知道在相扑路线文件中,我们可以在flow标签中输入车辆数量。例如,。在omnetpp.ini文件中,我们还可以通过以下方式配置车辆编号:*.manager.numVehicles=4000。因此,当两者都设置好时,哪一个最终决定了模拟中的车辆数量。还有,有没有办法在SUMO配置文件中设置穿透率?其工作方式是,SUMO路线文件确定车辆行驶的位置,omnetpp.ini文件为TraCIScenarioManager提供参数,后者
我在Velse中使用inet子模块。我正试图编写代码,其中我有一辆车正驶向十字路口。一旦到达十字路口,我希望车辆停下来
我知道如何获得车辆和交叉口的位置。我也知道如何改变车速。
我的问题是,由于车辆的位置将不断变化,我如何编写一个函数,在该函数中,我保持每秒获取车辆的状态,然后将其与交叉点的位置进行比较
我在INET源代码中的.msg文件中做了一些更改。通常,omnet++会自动生成.h和.cc文件。但是,没有一个get文件响应新定义的类成员,而coosresponding set方法是自动生成的。我的修改代码如下
class Ieee80211AckFrame extends Ieee80211OneAddressHeader
{
chunkLength = LENGTH_ACK - B(4);
type = ST_ACK;
bool isArrivedDestination; //
从2.X版到4.X版,我能够通过自己重新实现的cIOutputScalarManager成功地记录标量,这使我能够将所有运行的结果存储在cLongHistogram/cDoubleHistogram类的相同实例中,我重新实现的cIOutputScalarManager在内部使用这些类。我使用OMNeT++进行瞬态分析,因此我需要许多不同运行(大多数情况下为100000次运行)的平均结果来获得所需的绘图,但是在5.X版中,每次运行都会从头开始重新实例化整个cIOutputScalarManager
我正在考虑使用Inet/omnet++来评估我们正在研究的路由算法。因为我是第一次使用这个工具,所以我执行了一些示例并阅读了源代码。
然后我找到了一个例子,它是随inet提供的,/inet/examples/wireless/throughput
问题是我没有得到相同的值
在自述文件中,可以读取:
"Throughput is measured by the "sink" submodule of the AP. It is recorded
into the output scalar fil
标签: Omnet++
veinstraffic-simulationsumo
我使用Omnet++-4.6、sumo-0.22.0和venves-4a2
在我的模拟中,我需要知道在模拟过程中每辆车需要多少时间
所以,我需要知道每辆车离开模拟的时间
我该怎么做呢?当对象被破坏(即离开模拟)时,您可以在每个模块中使用finalize方法来执行代码。在汽车的应用层(例如TraciDemo11p)尝试此操作。当对象被破坏(即离开模拟)时,您可以在每个模块中使用finalize方法来执行代码。在汽车的应用层(例如TraciDemo11p)尝试此操作。不清楚,您没有提供足够的信息来回
在windows 7 64位操作系统上安装omnet++5.0和inet framework的正确方法是什么。我想和他们一起写论文。我的安装一直有问题。在我第一次尝试使用omnet之前,我从未使用过它。我在win7 x64上运行omnet++5.0,没有任何问题
只需在网站上下载windows版本
并按照第2章..\omnetpp-5.0\doc\InstallGuide.pdf中的说明进行操作
如果有任何问题,我建议您以更具体的方式再次询问。我能够解决问题。它来自windows提取工具。我使用
在静脉中,CCH中有4种通路类别,SCH中有4种AC。优先级和AC之间的静态映射在Mac1609\u 4::mapUserPriority()函数中完成
我们如何决定在应用层为消息(信标周期/紧急事件/wsa服务)分配哪个优先级?
是否有定义此优先级分配的标准?。
在下面的示例中,信标消息和WSM消息的优先级均为7
我看过一些论文,它们根据信息内容分配优先级。对于快速模拟,如果我们分配信标(6)、紧急情况(7)和wsa(5)或更低的优先级,是否可以。紧急信息应该比信标信息更优先吗?如果我们像这样
我正在omnet++上开发一个路由协议,我需要获得连接强度或RSSI,以便做出决策。
如何在节点之间的omnet++模拟中获得无线连接的信号强度?
我已经看过了几个无线电模型的描述,但找不到任何简单的方法来获得连接的强度。我得到的最接近的是无线电模型ApskScalarRadio有minSNIR。这里是“ComputeisReception可能”方法的实现,我使用该方法在一个名为“ApskScalarReceiverNotifier”的派生类中记录信号功率,该派生类扩展了“ApskScalarR
我需要在omnet++中创建一个动态模块,我在omnet指南中找到了一些代码,我对其进行了调整以满足我的需要,但是我在MediumCanvasVisualizer中遇到了一个问题,当我运行模拟时,我得到了下面的错误。也许有一个例子可以帮助我注意到我错在哪里
当我尝试使用相同的步骤创建StandardHost类型的动态模块时,它运行良好。问题是当模块为WirelessHost类型时
非常感谢
无法为“drone.clone.wlan[0]。radio”创建媒体可视化,
因为在中找不到“drone.
我正在模拟一个大型传感器网络,我想知道是否有办法只记录一些模拟结果而不是所有结果。如果是,如何指定要记录的结果。记录少量结果而不是全部结果是否会影响模拟时间?您可以从ini文件中选择
如果.sca文件中的值太多,还可以从浏览数据界面(在该界面中访问所有记录的值)简单地对其进行筛选
在omnetpp.ini中使用矢量记录和标量记录是解决此问题的最简单方法
举个例子。
假设有10台主机,并且记录了LostPackages标量。但是我们只想为主机[2]和主机[3]记录这个标量。因此,我们可以在omne
我想实现一个循环计时器来实现这一点,我使用self-msg做了以下工作:
void rsuApp::initialize(int stage) {
BaseWaveApplLayer::initialize(stage);
if (stage == 0) {
event = new cMessage("event");
EV << "Scheduling first send to t=5.0s\n";
scheduleA
我试图背对背地使用send(),但它产生了一个错误。我对网络模拟软件非常陌生。任何指导都将不胜感激。主要问题是您没有为您的问题提供代码。没有,那只是猜测,所以这是我的。您发送同一数据包两次,这是不可能的。您必须创建数据包的副本(使用dup())并在第二次调用中发送该副本
作为一般建议:在进一步学习OMNeT++编程之前,您应该先学习TicToc教程。您能提供有关您的问题的更多详细信息吗?我试过了,它返回了一个CNonCoyableOwnedObject。代码行显示:cMessage*m1=dup
我想创建一个简单的网络,包括一台服务器和几个客户端,使用omnet++中的DASH技术下载视频块。客户端和服务器之间的连接对我来说不是问题,但我不知道如何在客户端和服务器之间实现DASH技术算法。在omnet++和inet框架中是否有实现此目标的良好实践
从模拟中移除车辆的正确方法是什么?
我想在收到特定BSM时拆卸车辆,如果问题得到缓解,拆卸可能会稍微延迟
我向TraCI添加了一个删除调用
bool TraCICommandInterface::Vehicle::remove() {
TraCIConnection::Result result;
uint8_t variableId = REMOVE;
uint8_t variableType = TYPE_BYTE;
TraCIBuffer buf = tr
如何获取roadid等信息,以便将其用作新字段(例如来自BaseWaveApplLayer.cc的信标消息中的字段)
最好的,
Pavlos有一个类,它为诸如getRoadId()之类的数据提供访问方法
在课堂上,你可以找到一个如何获得这些信息的例子。基本上可以归结为执行以下步骤:
TraCIMobility* mobility = TraCIMobilityAccess().get(getParentModule());
TraCICommandInterface* traci = mobil
omnet++的文档中说,.cc和.h文件是从.msg文件自动生成的。但是,在定义了my.msg文件之后,.cc和.h文件尚未生成。我该怎么办?那么,在编译(构建)过程中,您是否有任何错误?
正如manual所说,消息编译器通常在构建期间自动为您的.msg文件调用。可能是由于生成文件时出错您需要在创建.msg文件后构建/编译代码
从命令行(在linux中)
makefile
make-j
来自OMNeT++IDE(在linux和windows中)
ctrl+b或右键单击项目选择“生成”
它们
当我运行该示例时,我不会可视化erlangen地图的路线和建筑物。我只展示了几何形式,比如正方形、矩形和经过它们的节点。在运行示例时,我需要将erlangen地图的真实照片可视化。
可以这样做吗?OMNeT++和SUMO都可以在运行模拟中显示背景图像。不过,这可能需要大量手动调整才能看起来不错
我正在检查Velses教程,但我有点困惑,我看到教程是针对Windows和Im使用ubuntu的,我设法安装、omnet++、sumo并将Velses导入omnet++中,但当我尝试运行omnetpp.ini时,所有内容都在omnet中打开,但我遇到以下错误:
无法连接到TraCI服务器;错误消息:111:连接失败
拒绝--在模块中(Vives::TraCIScenarioManagerLaunchd)
RSUExampleScenario.manager(id=6),在t=0s时,事件#1
由
旧版本的Vives似乎有这个“sendData”,可以在INI文件中使用,如
*.node[*].appl.sendData=true
我想知道在目前的情况下是否有替代品
多谢各位
我需要找出Inet中的哪些方法最适合以下条件和请求:
当接收到消息或数据包时,应用层中的所有应用程序(如TcpApp、UDPApp、UDPBASICAP等)都以通用方法进行处理。例如,当发送UDPBASICAP数据包时,该数据包将在该函数(方法)中处理。此外,接收TcpApp分组,该分组在该函数(方法)中被处理。我猜函数(方法)在到达所有应用程序之前应该属于公共路径上的一个类(我猜应该在网络层或传输层)
假设omnetpp.ini的一部分是:
*.hostA.numApps = 1
*.host
我执行了现有的mobileIPv6示例,注意到rxpower的返回值在任何地方都等于零
我改变了MN在接入点附近和远处的位置,但RX电源没有任何变化
我想知道的另一件事是:rxpower是否等于RSSI接收信号强度指示器?或者我可以从rxPower获得RSSI
模拟日志的事件:
**事件256 t=0.165239371312 mIPv6Network.MN[0]。wlan[0]。代理IEEE801AGENTSTA,id=127,在selfmsg启动时“cMessage,id=28”
正在启动向
我有一个网络拓扑,其中包括36个lcn。其中一个大约有42个传感器节点。感测数据后,我想将数据发送到gcn。要做到这一点,数据必须将lcn跳到lcn。我使用了门。我只是转发数据包。但我想将数据包直接发送到指定的中继节点。当我键入
send(packet,"lcnIO$", 7);
它通常会给我门大小错误,因为最大门大小是8。如何实现这一点。我的意思是我想从lcn 0直接将数据包发送到lcn 7。两者之间都有对角连接。只能使用send命令通过own门发送具有给定索引的消息。
并没有简单的方法
我正在使用SuMO、OMNeT++和VELINES为VANET实现频谱感知。有了这三个,我相信我可以模拟交通场景。是否也可以仅使用这3个软件包在节点(VANET中的二级用户)内执行频谱感知,或者我是否也需要为认知无线电安装MIXIM
谢谢
ROP < P>你问“是可能的”,你提到了包含仿真模型的C++库。这使得这个问题有点难以回答。是的,您提到的库可以支持您编写符合您描述的模拟
如果您的问题是是否有任何库已经包含实现您描述的功能的代码,那么答案是否定的。您需要自己编写该部分。在提出此问题之前,
我想在Velse中模拟一个简单的场景,当启动模拟工作片刻时,出现以下错误:
Unable to use SimpleObstacleShadowing: No obstacles have been added -- in module (Veins::ObstacleControl) myNet.obstacles (id=2), at t=2.90795546076s, event #103
config.xml文件中的SimpleObstackShadowing模型:
<A
我已尝试使用以下问题()中提供的解决方案,但是,当我尝试更改程序时,出现以下关于tl“n7”不存在的命令“myProgramGreenRed”的错误
交通灯ID为n7、n8和n9,给我带来麻烦的代码是:
tl.setProgram("myProgramGreenRed");
tl.setPhaseIndex(1);
tls.tls.xml文件如下所示
<tls>
<tlLogic id="10" type="static" programID="myProgra
我正在尝试获取车辆id,如下所示:
mobility = TraCIMobilityAccess().get(getParentModule());
assert(mobility);
traci = mobility->getCommandInterface();
traciVehicle = mobility->getVehicleCommandInterface();
cout<< mobility->getExternalId();
mobility=Tr
omnet非常新,但我一直在尝试在StandardHost上设置无线网格。虽然它编译得很好,但当模拟开始时,我得到以下错误:
Mobility position is not a finite number after initialize (x=-nan,y=-nan,z=-nan) -- in module (inet::StationaryMobility) Net.node[0].mobility (id=12), during network initialization
下面是我的
我想访问inet框架中使用移动模型的移动节点的位置和速度。我以前使用MobilityAccess.hlibrary来使用表单中定义的方法
MobilityAccess().get(module)->getCurrentPosition()
此方法适用于inet2.6框架。我需要使用更新版本的inet 3.2.1,但在此版本中MobilityAccess.h库不存在或未移动到其他位置
我检查了inet 3.2.1文件夹,有base文件夹,而不是common文件夹,该文件夹过去位于inet
我正在尝试实现一个用于智能停车模拟的VANET模型。尽管理解了TicToc教程,但要想完全理解TraCIDemo11pp.cc及其相关文件,很难理解每个模块的总体结构以及它们之间的通信
我了解SUMO和OMNETPP是如何并行运行的,OMNETPP的TraCIScenarioManager与TraCI服务器通信,以便与SUMO等交换信息。但我发现很难了解TraCIDemoApp是如何使用的
这个问题很具体,但希望能有一个答案,让我把其余的都弄清楚。任何帮助都将不胜感激
谢谢,
Wesley在Er
我想在Udp基本应用程序中为100个节点的数组设置随机目标
*.host[*].udpApp[0].destAddresses = "host[${intuniform(0,99)}]"
我需要所有源节点选择一个随机目的地并开始发送流量。但omnet++在上述语句中给出了错误。已经试过了
*.host[*].udpApp[0].destAddresses=“host[${0..99}]”但它只是为1次模拟运行的所有节点选择第一个节点。您无法通过这种方式实现目标,因为根据INI文件:
变量以文本
上一页 1 2 3 4 5 6 7 8 9 ...
下一页 最后一页 共 22 页