- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经安装了 veins 4.7,并且完成了教程。一切正常。现在我构建了一个更像 DemoBaseApplLayer 的新模块。该模块继承自 BaseAppLayer。在初始化方法中,我调用了一个 dispatchMsg 函数。看起来像下面这样:
根据几个答案,我在析构函数和完成方法中引入了 cancelAndDelete(msg) 。我还添加了 delete(msg) 方法但没有用
dispatchMsg() {
//SignedBSMMessage sgndBSMMsg(location);
char* inputData = signedBSMMessage.CreateBSMMessage(to_CharPtr(this->curPosition.x),
to_CharPtr(this->curPosition.y),
to_CharPtr(this->curSpeed.z ),
to_CharPtr(this->curDirection.z));
cout << "Start dispatchMsg" << endl;
ObuSigndBSM obuSigndBSM("BasicSafetyMessage", 01);
obuSigndBSM.setSignedBsm(inputData);
obuSigndBSM.setMsgLength(signedBSMMessage.getLength());
Coord pos;
traci->getRoadMapPos(pos);
string laneId = std::to_string(pos.z);
obuSigndBSM.setLandId(laneId.c_str());
bsmMessage=&obuSigndBSM;
this->sendDown(bsmMessage);
//delete bsmMessage;
cout << "End dispatchMsg" << endl;
EV_DEBUG << "BSMApp::dispatchMsg end " ;
delete(bsmMessage);
}
但是,我不断收到此异常:
Object BasicSafetyMessage is currently in (omnetpp::cEventHeap)simulation.scheduled-events, it cannot be deleted.
If this error occurs inside omnetpp::cEventHeap, it needs to be changed to call drop() before it can delete that object.
If this error occurs inside omnetpp::cEventHeap's destructor and Basic Safety Message is a class member,
omnetpp::cEventHeap needs to call drop() in the destructor -- in module (Veins::BSMApp) OBUScenerio.node[0].appl (id=7), at t=1s, event #2
我错过了什么?我们将不胜感激。
最佳答案
在调用 this->sendDown(bsmMessage) 之后考虑 OMNeT++ 模拟内核拥有的指针。不要在调用此方法后调用 delete(bsmMessage) - 否则您将在 OMNeT++ 传递事件时删除该事件(想想:关于您要发送的帧的所有信息)。
仅删除指向 OMNeT++ 已提供给您的数据的指针(例如,作为已接收数据的事件),即在处理接收到的帧的方法中。
关于omnet++ - 使用 vein 和 omnet++ 的自定义模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55436991/
我们正在开发一个基于 Veins 框架的应用程序,它需要接收信号的 RSSI 值以及发送方和接收方之间的距离。 我们引用了 VeReMi 项目,它也计算 RSSI 值并将其发送到上层。 我们将我们的模
在 SUMO 中,在使用 DUAROUTER 将 OSM 文件转换为 SUMO 兼容道路网络时,我们可以传递 --routing.algorithm 参数以使用 these 之一(默认为 Dijkst
我是 VEINS 的新手,正在尝试在 MyVeinsApp.cc 中实现加权 p-persistence。该公式中使用了发送节点和接收节点之间的距离。我看到了下面的 2 个函数。 virtual Co
我使用 duarouter 修改了 erlagen.rou.xml 以获得车辆的随机路线。它看起来像这样: ....... 在 VEINS 的原始 erlan
我正在使用 TraCI call将车辆的变道模式设置为0以禁用所有变道: TraCICommandInterface::setLaneChangeMode(0b000000000000); 但是,车辆
我正在为 VANET 运行 VEINS 模拟。有没有办法访问 OMNET++ 中特定时间模拟的汽车总数?(我正在尝试计算汽车之间交换的数据包数量,并且由于我正在广播它,所以我想将发送到的数据包相乘被模
我正在为 VANET 运行 VEINS 模拟。有没有办法访问 OMNET++ 中特定时间模拟的汽车总数?(我正在尝试计算汽车之间交换的数据包数量,并且由于我正在广播它,所以我想将发送到的数据包相乘被模
我正在研究 Veins 4.4 中的评估路由协议(protocol),想知道如何在不对代码进行重大修改以跟踪消息的情况下找到 VEINS 中成功接收的概率。 假设由于 ACK 爆炸和所有 802.11
我是 Veins 的新手,正在尝试实现一种机制来检测之前是否收到过 WSM 数据包。我使用“psid”作为主要变量来识别数据包 - 它是否正确? 这种代码行得通吗? : bool MyVeinsApp
我是 VEINS 的新手。我可以在 Veins 中运行相扑模拟,但不知道如何在汽车之间进行通信或传递消息。有人可以帮忙吗? 最佳答案 Veins 教程中使用的演示场景正是这样做的。您可以在 the V
我想更改 Veins 的默认贴图。我从 OpenStreetMap 进行了 map 提取步骤,并获得了以下文件: lyon.net.xml , lyon.poly.xml , lyon.rou.xml
我想从所有邻居节点连同消息一起累积一种信任值(比如 'theta=',介于 0.5 到 1 之间),然后将累积的消息和信任值发送到其他节点。还需要以 .txt 文件或 cvs 格式制作这些值的日志文件
我已经使用 omnet++ 5.0 和 sumo 0.28 安装了 veins_inet 项目。当我尝试在 veins_example 文件上运行 .ini 时,出现此错误: Error in the
我已经安装了 veins 4.7,并且完成了教程。一切正常。现在我构建了一个更像 DemoBaseApplLayer 的新模块。该模块继承自 BaseAppLayer。在初始化方法中,我调用了一个 d
我使用配置为 file 的 SUMO 的 ACTIVITYGEN/DUAROUTER 生成了大量路线 (~90.000+)和不同的持续时间(--duration-d 1, --duration-d 7
我目前正在研究 Veins 4.7.1 上的算法,其中许多车辆和 RSU 正在发送和接收消息。 我现在希望我的 RSU 执行定期计算,无论它是否发送或接收消息。问题是我不知道如何以及在何处在我的 RS
我有一个 VANETs 项目,我使用 veins-2.0-rc2。 在 LinearMobility.cc 类中,我有这段代码, void LinearMobility::initialize(int
也许我错了,但我注意到函数 getSenderPos() 在 4.5+ 版本中已从 WaveShortMessage 移除/移动到 BasicSafetyMessage 对于 4.4 版 - 我使用
我正在尝试在 Veins 4.4 中实现 BSM。为了达到这个目的,我想在 WaveShortMessage.msg 中导入我的 libasn,它们是 C 文件(.c 和 .h),以填充 BSM。 我
我已经使用了 Veins 4.4,模拟正常执行。 但是,我想在图形模式下更改车辆的外观。通过分析代码,我注意到“moduleDisplayString”参数用于执行此操作,但即使使用 OMNeT 的默
我是一名优秀的程序员,十分优秀!