从静脉4.7.1获取车辆价值

时间:2019-03-31 05:42:21

标签: omnet++ veins

我已经创建了自己的静脉方案,现在我需要检索该方案中各个车辆的车辆值,例如平均速度和气体排放量(如CO2)。有人可以详细向我解释如何实现吗?需要执行任何代码吗?如果是,在哪个文件中?我已经浏览了SUMO的TraCI Wiki,但是没有解释如何实现。任何帮助对我来说都是非常有价值的。 使用:SUMO 0.32和Omnet ++ 5.3

1 个答案:

答案 0 :(得分:1)

我使用的是旧版本的静脉,但可能仍然是相同的方式。

的确,正如您所说的,提示位于TraciMobility文件中。看一下“ veins \ modules \ mobility \ traci \”中的“ TraciMobility.cc”和“ TraciMobility.h”。您可以找出在模拟运行期间已初始化并维护的变量(double totalCO2Emission)。该变量被记录为标量。我不确定如何获得它的价值(因为我也是新手)。但是,还有另一种获取总CO2排放的方法:

  • 在“ TraciMobility.h”中为此添加方法。
        virtual double getTotalCO2Emission() const {
            return totalCO2Emission;
        }
  • 现在关于您要从哪里获取CO2值的确切位置的问题与您有关,因为您可能“想”将其添加到“ TraCIDemo11p.cc”中(如果收到特定消息?),如果在接收消息时,然后将其添加到“ TraCIDemo11p :: onWSM”函数中:
double test = mobility->getTotalCO2Emission();

或仅将其打印为类似事件:

EV << "Test the CO2 emission: " << mobility->getTotalCO2Emission() << endl;

因此,每当车辆收到消息时,它将在模拟屏幕(如果不是cmd)中显示当前的二氧化碳排放量。

如有任何事情,请随时提及。

最诚挚的问候,