从Veins 4.7.1中检索车辆价值

问题描述 投票:1回答:1

我已经创建了自己的静脉情景,现在我需要检索车辆值,例如平均速度和气体排放,如场景中每辆车的二氧化碳排放量。有人可以向我详细解释如何实现这一目标吗?任何需要实现的代码?如果是,在哪个文件?我已经浏览了SUMO的TraCI维基,但没有解释如何实现这一点。任何帮助对我都很有价值。使用:SUMO 0.32和Omnet ++ 5.3

omnet++ veins
1个回答
1
投票

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

实际上,正如您所说,提示位于TraciMobility文件中。看一下“veins \ modules \ mobility \ traci \”中的“TraciMobility.cc”和“TraciMobility.h”。您可以确定在模拟运行时期间初始化并维护了一个变量(double totalCO2Emission)。变量是记录器作为标量。我不知道如何获得它的价值(因为我也是静脉)。然而,还有另一种方法来获得总CO 2排放,这将是:

  • 在“TraciMobility.h”中为其添加方法。
        virtual double getTotalCO2Emission() const {
            return totalCO2Emission;
        }
  • 现在问题是关于检索二氧化碳值的确切位置的问题,因为它来自车辆然后您“可能想”将其添加到“TraCIDemo11p.cc”(如果您收到特定消息?),如果在消息接收,然后在“TraCIDemo11p :: onWSM”函数中添加:
double test = mobility->getTotalCO2Emission();

或者只是将其打印为以下事件:

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

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

如果有的话,请随意提及。

最好的祝福,

© www.soinside.com 2019 - 2024. All rights reserved.