无法在 OMNeT++ 和 Veins 中打开输出标量文件

Cannot open output scalar file in OMNeT++ and Veins

我正在使用 OMNeT++ 5.5.1、veins 5.0 和 SUMO 1.7.0 来模拟总共有六个车道(每个方向 3 个车道)的高速公路。 我正在用我从 SUMO 生成的不同数量的车辆(例如,50、100、150、200)模拟网络。

当车辆数量为 50 和 100 时模拟运行良好。但是,当我将车辆数量设置为 150 时,出现错误:“Cannot open output scalar file ...”(如下面的屏幕截图所示) .

当车辆(node[84])离开网络时发生错误。

在调试时,我发现这个错误是在 cModule.cccallFinish() 方法中引起的: https://github.com/omnetpp/omnetpp/blob/omnetpp-5.x/src/sim/cmodule.cc#L1428

它抛出一个在此处捕获的异常: https://github.com/omnetpp/omnetpp/blob/omnetpp-5.x/src/sim/cmodule.cc#L1443

任何人都可以建议如何更正吗?非常感谢。

此致,

亚西尔·萨利姆

感谢@ChristophSommer 指出对内存损坏的关注。它帮助我解决了问题。

问题原因:为了记录统计数据,我正在创建一个 csv 文件 (ofstream),我意识到 csv 被所有车辆和 RSU(而不是一个)打开节点),同时仅由一个节点(RSU)关闭流。这是导致问题的原因。

解决方案: 我通过将 ofstream 变量设置为全局变量并仅通过一个节点 (RSU) 打开和关闭 ofstream 文件来修复。