Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [sumo-user] Running simulation and getting vehicle information independently

If you want to share a single traci connection between two threads you must handle the locking yourself.
Alternatively, you can connect two clients with seperate processes. See http://sumo.dlr.de/wiki/TraCI#SUMO_startup (--num-clients)

regards,
Jakob

Am Fr., 7. Dez. 2018 um 10:30 Uhr schrieb Muktadir R Chowdhury (mrchwdhr) <mrchwdhr@xxxxxxxxxxx>:

I have the following Traci Client program.


#include <iostream>

#include <stdlib.h>

#include <string>

#include "TraCIAPI.h"


class Client : public TraCIAPI {

public:

    Client() {};

    ~Client() {};

};


int main(int argc, char* argv[]) {

    Client client;

    int order = atoi(argv[1]);


    client.connect("localhost", 47000);


    std::cout << "run 5 steps ...\n";


    TraCIAPI::VehicleScope vehicleScope(client);


    while(true ) {

        client.simulationStep();

        libsumo::TraCIPosition pos = vehicleScope.getPosition(std::to_string(order));

        std::cout << pos.x << ", " << pos.y  << std::endl;

    }


    std::cout << "time in ms: " << client.simulation.getCurrentTime() << "\n";

    client.close();

}


Here in the while() loop I am advancing the simulation and getting vehicle information. My question is, is it possible to advance the simulation in one place (like in another thread) and get vehicle position in another place ?


-Muktadir

_______________________________________________
sumo-user mailing list
sumo-user@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/sumo-user

Back to the top