是否可以计算(获取)静脉中车辆的方向(通过可追踪性)?我想知道两辆车是否朝相反的方向行驶。我想我可以通过这个方法做到这一点(如果它们朝着同一个方向移动,它们落在同一象限,如果朝相反方向移动,它们落在相反的象限),但我不确定这是否正确。
(子问题:另外,getAngleRad()返回的确切值是什么
对于每个象限?您是正确的:getangelrad()以弧度返回车辆的航向(从-pi到,但不包括+pi)。值0表示车辆向东行驶;pi/2的值表示它正在向北行驶;等等
在构建新的OMNeT++项目的过程中,我遇到了以下错误:
out/clang debug//myUdp.o:(.rdata[\u ZTI5myUdp]+0x10):未定义对“inet::ApplicationBase的类型信息”的引用。
我已经配置了INETreference(选中项目“myUdp”->Properties->Project reference->INET复选框)
这是INET Makemake配置:和
这是我的项目(myUdp)的Makemake配置:和
< P> 和C++代码
我有一个包含复合模块的网络。一个子模块应该是由参数numberOfBuildings定义的x次创建。即建筑物子模块
在.ned文件中,我将默认值设置为1,但在.ini文件中,该值随后被11覆盖
Network.ned
network Network
{
utility: Utility {
@display("p=71,117");
}
energyDistrict: EnergyDistrict {
假设在无线wifi网络中,有15个多接口节点,每个节点有3个接口,每个节点希望同时为三个目标节点发送数据。
如何在omnet++中实现这种方法?
通道选择在omnet++中是否自动进行
我正在使用omnetpp构建一个面向过程的离散事件模拟,在这里,我通过编程方式(而不是使用ned)连接组件。为此,我在我的一个模块中创建了一个inout通道,但我希望获得inout通道的输出端口,以便可以通过connect方法在应用程序中连接它。我该怎么做
感谢从inout门获取输出端口,可以使用gate()方法将$o添加到门名称。例如,如果inout门具有名称lowerLayer,则将使用以下命令返回输出部分:
cGate *gate = gate("lowerLayer$o");
参考资料
我有两个Omnet++项目A和B。A目前需要B。是否可以以某种方式将B声明为A的一个功能,这样我就可以打开和关闭它?我希望有单独的项目,因为B可以在其他项目中重用。我在A中使用了一个新的.oppFrices文件添加了一个特性,而在C++代码中添加了相应的IFDEF语句。目前,我正在处理ned文件:
import namespaceB.B;
network Network
{
parameters:
[...]
bool bDisabled = default(false);
submodules
首先,我分享我的操作和错误报告
我的行动:
1.我将以下代码添加到TraCIDemo11p.cc文件中:
std::string edgeId ="1i";
traciVehicle->moveToXY(edgeId, 0,mobility->getCurrentPosition().x+2,mobility->getCurrentPosition().y,mobility->getAngleRad());
2.我将以下代码添加到TraCICommandInterf
我正在为车辆网络开发一种路由算法
但是,某些冲突有时会阻止重新发送消息
我想知道,当发生碰撞时,如果启用了任何功能,它是否会自动中继消息?或者我应该在MyVeinsApp.cc中的路由算法中处理消息重传,从WAVE MAC层提取必要的资源?还是简单地更改所使用的回退
我的问题与此旧链接中描述的问题类似:
当我发送必须转发的消息时,我定义了如下退避:
backoff = uniform(0.01,0.001);
sendDelayedDown(frame->dup(), backoff)
否。Veines演示仅展示了如何实现(故意)无意义的信息传播协议。Veines是一个通用框架,在他的演示中,它展示了如何实现无意义的信息传播协议。但是,它使用本机抑制技术,没有任何优化。每辆车只中继一个单一事件消息,没有重复
有关抑制技术的更多详细信息:
也可以试试这个。这是一个静脉的延伸,允许真实模拟排(即自动跟车)系统。它具有真实的车辆动力学和几个巡航控制模型,允许分析控制系统、大规模和混合场景,以及网络协议和协作机动
在两个节点之间的通信过程中,如何分析静脉中的路径损失。我查看了模拟模块文件,发现使用了简单的路径损耗模块,但我不知道如何使用该模块来累积路径损耗结果。我是否必须添加单独的统计数据来提取路径损耗结果?路径损耗是一种通信现象。如果你想分析它,你必须看看量化其影响的指标
打个比方,如果有人从远处叫你的名字,你可能听不到,因为信号功率(声音的振幅)因距离而衰减
例如,您可以查看decider80211p中的recvPower,或者查看mac1609_4中记录的更高级别的统计信息
标签: Omnet++
veinstraffic-simulation
我想在VANET中模拟攻击,所以我使用了SUMO和OMNETPP,但在SUMO中,当汽车到达路径末端时,汽车消失,我需要它在整个模拟过程中停留在地图中,以便在OLSR协议中完成特定的攻击。
如何在整个模拟过程中保持车辆在地图中?有几种方法可以延长车辆在网络中的时间,SUMO甚至有一个非常相关的常见问题解答
它提到了使用重路由,重路由可以作为附加元素放置在路线末端的网络中,或者使用randomTrips.py脚本和--intermediate选项调整车辆的路线,以生成更多通过路线的点。这两种解决方
何时以及为什么显示此警告-
“Makefile autodeps:不明确的包含(找到多个匹配的文件)”如果在项目中有两个同名的.h文件,但在不同的目录中,并且在.cc文件中,您只包含它们,而不包含路径前缀(即#include“filename.h”),则AutoDepende脚本将抛出此消息。依赖项生成器无法确定要包含两个文件中的哪个文件。您的项目可能包含多个同名文件。很难预测将使用哪个文件。该项目不包含多个同名文件。这是因为我在我的项目中复制了静脉的src文件夹吗?虽然项目确实不同。根据您的回
我需要实现基于TDMA和FDMA的时隙分配协议。我已经为TDMA插槽分配编写了代码,但对FDMA部分非常困惑。
请有人帮我写一个简单场景的FDMA代码。其中两个节点使用全双工无线电并在两个不同频率上工作。如果节点1需要与节点2通信,则节点2必须将其频率转换为节点1的频率。
我还没有用过收音机。在TDMA部分,我使用senddirect发送消息。
请帮助我了解FDMA的代码?您必须在一台主机中使用多个无线电。一个好的起点是inet pathexamples/manetrouting/multira
我想得到纹理中粒子边的车道数
我实现了getLaneNumber(EdgeId)TraCI命令,如中所示。我的实施是:
int32_t TraCICommandInterface::Road::getLaneNumber(){
return traci->genericGetInt(CMD_GET_EDGE_VARIABLE, roadId, VAR_LANE_INDEX,
RESPONSE_GET_EDGE_VARIABLE);
}
但是,我得到了以下错误:
TraCI服务器报告执行
正如问题所暗示的,我想在一个离散的(100m x 100m)空间中移动我的AdhocHost。也就是说,例如,假设节点位于(0,0)m,然后它等待一秒钟,然后它“传送”到(0,1)m,而不跨越两个位置之间的距离。我可以怎么做?编写移动模型。将实际整数坐标存储为状态。创建每秒触发的计时器事件,并在该事件上根据规则修改坐标。您可以从头开始,也可以以固定移动模块为例
关于INET中的移动性模型:下面是我如何使用小技巧实现的。
我的机动性模型基于拖拉机机动性
从类TractorMobility扩展之后,
在Omnet++的Inet中,如何根据以dbm为单位的传输功率计算以米为单位的传输范围?
Inet 4.2是否支持此问题?
如果否,如何更改Inet 4.2以支持它?传输的成功不仅取决于传输功率,还取决于接收器灵敏度、衰减、使用的错误模型、发送器/接收器天线配置等。您无法直接计算与给定传输功率的距离
至于第二个问题:是的,一旦配置了上述所有参数,INET就不会出现模型接收错误。根据您对传输建模的准确程度,有各种模型(复杂度)。如果您正在对更高级别的概念(即路由等)进行建模,而不关心低级别的细节,
我需要帮助将cMessage转换为cPacket类型的MsgData
My MsgData是我创建的邮件:
packet MsgData {
string origem;
int cont;
double payload;
double timestamp;
}
我使用了static_cast函数,但它不起作用。我试着使用dynamic_cast,但效果不太好
我的代码:
void UdpTrafficRedirect::retransmitDataMessa
我安装了Omnet++4.4.2,还有Castalia。现在我在cCompoundModule中遇到一个错误。请帮助我找到此错误的解决方案:
在网络设置过程中,模块(cCompundModule)序列号(id=1)中出现错误:未找到类坐标节点-可能其代码未链接到中,或者该类未注册到Register\u Class(),或者模块和通道具有Define\u module()/Define\u Channel()
嗯,是的,我已经附上了我的设计图像和需要运行的.Ned文件。我需要运行videosens
目前,我正在使用Omnet++(网络模拟器),我知道如何关闭标量和向量记录,但如何对直方图进行同样的操作(关闭直方图记录)
我试图关闭直方图的相关标量,但没有成功
#### Histogram name ####
"Delays for 1st Copy"
#### In order to turn of scalars recording we use this command ####
**.scalar-name.scalar-recording = true
#### So i
我需要计算Mac层中的通道空闲时间。我使用Veines-4a2。Veines 4.3的WLAN MAC模块(如4a2)输出一个名为的totalBusyTime,它为您提供模拟过程中信道繁忙的累计秒数
因此,如果您的模拟运行100秒,并且totalBusyTime给您一个30秒的值,您将知道MAC层在70秒(100秒中)内检测到信道空闲
请注意,这不能与WLAN PHY scalarbusyTime混淆,它为您提供了一个非常不同的信道繁忙程度度量(0%表示始终空闲,100%表示始终有一帧可能受到干
我知道如何将a车的信息发送到b车或rsu。但我需要发送信号灯。发送消息和发送信标有什么不同。我看不到任何信号。我应该如何发送呢?从根本上说,信标只是一种重复的广播信息,在发送者附近携带一些普遍感兴趣的信息。您可以通过让应用程序每隔一段时间调用其sendDown方法来实现这一点
你可以在中找到一些这样做的示例代码。你能更详细地解释一下你想实现什么吗?你说你想发送一个灯塔,但同时又问那是什么,我很困惑……我是说我怎么能发送一个灯塔?是否有任何函数或方法用于此任务,或者我是否应该创建一个函数或方法。我
我正在使用omnetpp 5.6.2和inet 4.2.0以及一些自行编写的代码来模拟泛洪算法,并将它们与简单的泛洪算法进行比较。为此,我使用从3x3到9x9的主机网格进行了参数研究。然而,当我设置了一个批处理执行,它运行所有三种算法,所有网格和不同数量的相邻节点加上随机数生成器的五种不同种子,结果文件开始变得混乱
我正在使用以下参数自行运行模拟:
路由:多点中继
节点间距:700米
网格大小:8x8
种子集:0
我正在测量发送的帧和最后一个接收帧的节点之间的最大延迟,考虑到每个节点以0到15m
每次我想使用OMNET++模拟器时,我都会运行mingwenve,然后./configure,然后执行“make”命令,大约需要40分钟才能完成。有没有办法减少这一时间。因为每次执行“make”命令时,我必须等待大约40分钟。OMNeT++模拟器应该只配置和构建一次(即运行make)。之后,您应该只构建自己的模型,而不是整个OMNeT++模拟器
至于时间。MinGW的API仿真和Windows文件系统IO速度使得构建OMNeT++(以及您自己的模型)的速度非常慢(与其他Alaternative相
我正在进行一个项目,RSU向其范围内的车辆发送信标。当车辆接收到该信标时,它应将其id发送回RSU。我制作了一个自定义消息文件,其中仅包含车辆id。这就是我现在处理信标的方式
void MyVeinsApp::onBSM(DemoSafetyMessage* bsm)
{
findHost()->getDisplayString().setTagArg("i", 1, "green");
if(sentMessage==false){
我构建了一个非常简单的网络(类似于TicToc示例)。我的问题是,当我更改其中一个已定义类的.cc文件时,这些更改在运行模拟时不适用。具体来说,我已经更改了消息的字符串名称,但没有任何效果
当我回到TicToc示例,并在.cc文件中执行类似的更改时,该更改应用得非常好
我觉得问题在于构建make文件等。有没有办法从头开始构建项目?在每次新模拟之前,通过删除源文件夹中创建的.exe文件来解决问题。显然,我的计算机无法在模拟过程中自动删除当前的.exe文件,因此我必须手动删除
我已将2个cPackets msg文件定义为:
packet MyLinkFrame {
int f1;
int f2;
}
及
然后在我的模拟中,一个网络节点接收到链路层帧MyLinkFrame,它封装了IPv4ARPTotf
然后,在接收网络节点上,我创建一个新的ARP应答包,类型为IPv4ARPTotf,如下所示:
if(check_for_validity(static_cast<IPv4ARPTotf *>(MyLinkFrame->decapsul
我正在使用Omnet++和Inet 3.4.0,我正在尝试模拟功耗,并在能量耗尽后使节点死亡。我尝试了IdealEnergySource模型和SimpleEnergyStorage。但我不知道在哪里保存能源的参数。我尝试了SimpleEnergyStorage.cc,但找不到
比您提前来自INET的Wireless08教程使用了IdealEnergyStorage,它具有无限的能量。因此,在这种情况下,节点永远不会死。
要对实际消费进行建模,可以使用SimpleEnergyStorage。在om
我不知道这个问题听起来会是什么样子,但我相信这是问科学问题的最好地方
我正在尝试为INET模块创建一个cc omnet++源文件。就像我们在简单模块中所做的那样,我们简单地用cSimpleModule继承该类,然后给出Initialize和handleMessage方法的实现。我尝试创建一个cc源文件,然后通过StandaredHost继承它,并声明了initialize和handleMessge两个方法,但它不起作用
我想知道这样做的正确方法
我想实现的是,我想为每个模块创建一个源文件,当我可
我在做一个场景,一开始有一条路线,然后分成3条,然后再合并成1条。我把车停在第一车道,第二辆车也停了下来,第三辆车在中间车道重新行驶,第四辆开往队列,第五辆重新驶出,第六辆开往队列,第七辆重新驶出……为什么会这样?我不明白该在哪里更改这个“平衡”或“阈值”。有什么建议吗?Vives 4.6示例应用程序的行为如下:
如果车辆已停止(并一直在行驶)且尚未发送警告信息,则会发送包含其当前道路的信息()
如果车辆收到警告信息,它将尝试通过道路网找到一条新路线,以避开该道路();此外,如果尚未发送警告消
如何将Velse4.7.1中的TrafficLight节点与自定义应用程序一起使用
我尝试以与添加RSU节点相同的方式添加trafficlight节点,即:
import org.car2x.veins.nodes.Scenario;
import org.car2x.veins.nodes.TrafficLight;
network EV_Scenario3 extends Scenario
{
@display("bgb=844,629");
submodules:
这是实现网络层的基本模型,其行为类似于交换机
第37行有个错误。控制台打印Ned语法错误
OMNeT++IDE告诉我:语法错误、意外的门、预期的'}'-NED语法问题
我不明白为什么会出现这个错误,也不知道该怎么做来修复它
导入inet.linklayer.ieee802154.Ieee802154Mac;
导入inet.physicalayer.ieee802154.bitlevel.Ieee802154UwbIrRadio;
//将应用程序保持在Mac层的模块。
模块节点
{
子模块:
通讯
我正试图从.ini文件中获取一个值,以便在模拟中运行,但它将不起作用
我已经努力在中编写了一个值,而且效果很好。但是使用这个变量是行不通的
.cc文件
.ini文件
packGen.ned文件
当类似于0.1的值替换scheduleAtdistro+simTime中的distro时,msg;第行,模拟时间会增加,但当尝试使用distro变量时,模拟时间不会增加。在初始化中,您将参数IATDribution的值分配到局部变量distro中。您可能已经将变量distro声明为PacketGen类的成
我希望模拟中的节点使用AODV协议将数据包路由到RSU(我不希望数据包被广播),我知道AODV是在inet中实现的,但我不知道如何在模拟中使用inet模型。
我在工作区中添加了inet4和VELINES\u inet VELINES子项目,但我不知道下一步要做什么,我正在使用:
Veins5 Inet4 OMNET-5.5.1
有人能帮我吗?通过将Veners 5.0及其Veners\u inet子项目添加到inet模拟中(在IDE中:只需将两者导入到您的工作区,然后根据模拟的需要标记这些项目)
我正在使用Omnet++5.3、Velse4.7.1和Sumo0.32.0。我想在相扑中设置边缘的权重。读了一些书之后,我意识到traci在python版本中有一个名为seteffort的函数。在omnet++版本中,我找不到类似的函数来设置traci中的权重。为完成任务所提供的任何帮助都将受到感谢。谢谢大家! 当然可以通过添加新方法来扩展静脉,以遵循已经存在的代码
但是,您提到的特定方法可能不是一个好主意:它旨在改变网络中每辆车对它的感知方式。您可能更感兴趣的是改变只有一辆车选择路线的方式
NED文件:
package arptest;
import inet.networklayer.arp.ipv4.Arp;
import inet.networklayer.common.InterfaceTable;
import inet.networklayer.configurator.ipv4.Ipv4NetworkConfigurator;
import inet.networklayer.contract.INetworkLayer;
import inet.networkla
我从两周前开始使用OMNET++,一切都很好,直到几分钟前我运行了一个模拟,模拟Tkenv窗口不再出现
你知道这个错误吗
谢谢Tkenv将上次使用的窗口布局存储在包含模拟的目录中的“.tkenvrc”文件中。也许删除此文件(从而恢复默认布局)会有所帮助。了解进入此阶段所采取的步骤顺序会很有帮助,这样使用OMNET++的人可以复制它,并查看它是否也发生在他们的设置中。我选择了一个随机网络,例如tictoc one,我进入omnetpp.ini文件并运行模拟。Tkenv GUI的小图标出现在工具栏中
我想知道如何在Velse2.0下正确设置一个节点的传输范围,我认为我做得对,但恐怕是错的
因此,我需要澄清一下*.ini文件中定义的参数:
*.connectionManager.pMax = 24.34mW # =>>> parameters to set the max interference distance by the global manager module
*.connectionManager.sat = -80dBm # =>>> p
几个小时以来,我一直在尝试使用排队库建立一个由源、队列和接收器组成的简单网络,请帮助查看queuenet和queueiglibext项目。他们正在做你想做的事
在ubuntu下,模拟城市场景所需的硬件配置是什么(我会买一台笔记本电脑),由一个覆盖400平方公里的24小时移动数据集(使用OMNT++、Veines和SUMO)表示。这是一个大型模拟。。。但模拟时间将取决于同时运行的车辆数量
我的最低建议:
内存:8GB
处理器:4核
SSD而不是HD(这有很大的不同…)
在omnet++5.6.1中构建Lte时,我有以下错误:,
注意(Inet内置且工作正常)
In file included from apps/alert/AlertSender.cc:11:
./apps/alert/AlertSender.h:15:10: fatal error: 'inet/transportlayer/contract/udp/UDPSocket.h' file not found
#include "inet/transportlayer/contract
我使用以下元素运行了一个模拟:
2个开关(直接连接)
2个接入点(每个交换机连接一个)
2台无线定制主机(每个接入点无线连接一台)
干扰已被禁用。标量无线电媒介。Ieee80211无线接口。我使用了简单的STA管理,它负责关联等。我已经确认一切都在运行,我的代码中没有任何错误(我已经完成了所有的工作)。数据包通过工作站无线电发送出去。但是由于某些原因,接入点和第二个无线主机上的无线电台没有接收数据包。当我的模拟正在运行时,接收无线设备上显示的控制台中的这条消息是错误的唯一提示:
“开始接收:
我正在创建一个随机生成的网络,其中节点将在询问其他节点是否已经知道更新后发送更新消息。当前更新状态仍然是预定义的。运行模拟时,我收到以下错误消息:
send()/sendDelayed(): Gate index 1048576 out of range when accessing vector gate 'out[]' with size 1 -- in module (Sg1) Simplegossip1.node[2] (id=4), at t=0s event #1
这是我的密码:
模拟时间过后,车辆离开模拟场景。我想在离开场景后重新输入相同的车辆,使用相同的先前ID和静脉中的信息。是否有办法在同一车辆退出场景后重新使用该车辆。您不应重新插入已离开模拟的车辆,因为这意味着您要将整个车辆复制到另一个位置。这将使VANET应用程序行为不正确,因为同一辆车突然位于不同的位置
如果你想获得更多的流量,我建议你切换到另一个相扑场景(更大,也接近真实流量)
或者,您可以直接更改现有的SUMO模拟,例如,增加插入的车辆数量,或更改车辆的行为(通过更改SUMO输入,即,在带有纹理的示例模拟
我已经创建了自己的场景,现在我需要检索场景中每辆车的平均速度和二氧化碳等气体排放量等车辆值。有人能详细地向我解释一下如何做到这一点吗?有需要实现的代码吗?如果是,在哪个文件中?我已经浏览了相扑的TraCI维基,但没有解释如何实现这一点。任何帮助对我都是很有价值的。
使用:SUMO 0.32和Omnet++5.3我使用的是旧版本的Velse,但可能仍然是相同的方式
事实上,正如你所说的,提示在可追踪性文件中。看看“Velse\modules\mobility\traci\”中的“TraciMobi
我正在使用omnetpp-5.4.1、Veines-4.7.1、sumo-0.30.0。我将通过Veines中的RSU进行模糊聚类。我在Veines/modules/application/traci中创建了一个名为FCM的新模块,继承了TraCIDemo11p,并在其中编写了聚类代码。
因为我想要RSU启动集群,所以在工作开始时,我使用TraCIDemoRSU11p中的initialize方法调用FMC中的方法
void TraCIDemoRSU11p::initialize(int
我使用的是OMNET5.0、SUMO-0.25.0和VELERS-4.4。当车辆收到信息时;翁达塔被称为。我可以使用mobility->getExternalId获取当前车辆的外部ID;但是我如何知道wsm消息发送者的外部ID呢
用于初始化的代码:
void TraCIDemo11p::initialize(int stage) {
BaseWaveApplLayer::initialize(stage);
if (stage == 0) {
mobility =
我试图实现在上提供的模拟。
我正在使用自述文件中推荐的omnet 5.0和inet 3.4。
我正在使用Velse4.5和Sumo0.29.0,并在Windows10上工作。
因此,当将所有这些集成在一起时,没有出现错误,但是当模拟Simule中存在的模式4和模式4验证时,我得到了向量和标量文件的错误。
我附上截图。
请帮我做这个
如果您正在使用Brian's code 1.1.0版中包含的omnetpp.ini文件,您的OMNeT++模拟将尝试使用一个在您的计算机上无效的文件名写入其结果
我使用OMNeT++-4.6、sumo-0.22.0和venves-4a2
在我的模拟中,我需要所有节点在离开模拟时发送消息到它们的目的地,在我的例子中,它们是RSU。问题在于,所有节点都在finish()函数中发送消息,但RSU没有接收到这些消息,因为每个节点都应该等待,然后才能访问通道,然后通道就会被破坏
我需要让每个节点在离开模拟时等待,直到接收到来自目的地的ACK。然后,当它收到所有发送消息的所有ACK时,它可以被销毁
那么,如何强制finish()函数中的每个节点等待确认呢?我需要一个
今天早些时候,我试图使用OMNeT++,但无法运行任何模拟。我尝试了许多模型模拟,但它们在初始化期间开始挂在同一个位置。我删除并重新安装了OMNeT++,但问题仍然存在。因此,即使在Windows10V1903机器上重新安装了OMNeT++v5.5.1,我也无法运行任何模拟。这是我在遵循所有OMNeT++安装步骤后直接运行Aloha示例模拟可执行文件时看到的:
Qtenv模拟窗口启动了,但它完全是空白的,我无法真正关注它,这让我相信Qt有问题。此时程序将无限期挂起。OMNeT++是使用conf
在这里,我首先安装了omnet++然后安装了INET,现在在VANET中集成它们时出现以下错误:
使模式=全部释放
cd src&/usr/bin/make
make[1]:输入目录“/c/Users/Shriya Bhat/Downloads/VANETProject master/VANETProject master/src”
MSGC:vanetsim/routing/aodvwr/AODVWRControlPackets.msg
错误:无法读取Bhat/Downloads/venves
1 2 3 4 5 6 ...
下一页 最后一页 共 22 页