Я использую старую версию вен, но она все еще может быть такой же.
Действительно, как вы сказали, совет находится в файле TraciMobility.Взгляните на «TraciMobility.cc» и «TraciMobility.h», которые находятся в «veins \ modules \ mobility \ traci \».Вы можете выяснить, что существует переменная (double totalCO2Emission), инициализированная и поддерживаемая во время выполнения моделирования.Переменная записывается как скаляр.Я не уверен, как получить его значение (так как я новичок в венах).однако есть другой способ получить totalCO2Emission, который будет:
- Добавить метод для этого в "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) текущее количество выбросов CO2.
Если что-то есть, не стесняйтесь упомянуть об этом.
С уважением,