es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo obtener el ID del vehículo de SUMO en Veins.

En mi simulación Veins, quiero usar el ID del vehículo SUMO como el ID del vehículo (en lugar de usar el ID del módulo Veins). Intenté diferentes métodos pero no tuve éxito. Intenté obtener el ID de SUMO usando mobility -> getExternalId() en el archivo DemoBaseApplLayer.cc. La compilación fue exitosa pero no se ejecuta. Si uso getParentModule -> getId(), funciona bien. Pero necesito el ID de SUMO y no el ID del módulo para mi trabajo.

¿Hay alguna manera de usar el ID del vehículo SUMO como el ID del vehículo en Veins?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una forma de usar el ID de vehículo de SUMO como el ID del vehículo en Veins. Una forma de hacer esto es utilizando TraCIScenarioManagerAccess para acceder a la simulación de SUMO y obtener el ID de vehículo de SUMO para cada nodo de Veins.

    Para obtener el ID de vehículo de SUMO, puedes utilizar el siguiente código:

    TraCIScenarioManager* traciManager = TraCIScenarioManagerAccess().get();
    std::string sumoId = traciManager->getExternalId(veinsNode);
    

    Aquí, veinsNode es el nodo de Veins del cual quieres obtener el ID de vehículo de SUMO.

    Posteriormente, puedes utilizar sumoId como el ID del vehículo en tu simulación de Veins.

    Ten en cuenta que para utilizar TraCIScenarioManagerAccess, necesitas incluir los siguientes archivos de cabecera en tu código fuente:

    #include "veins/modules/mobility/traci/TraCIScenarioManager.h"
    #include "veins/modules/mobility/traci/TraCIScenarioManagerAccess.h"
    

    Además, debes asegurarte de que has habilitado el soporte de SUMO en tu simulación de Veins y de que has iniciado la simulación de SUMO antes de ejecutar tu simulación de Veins.

Comments are closed.