From 3f37d287ad6e56273187564a2d857961aef6ade8 Mon Sep 17 00:00:00 2001 From: MahmoudNawar Date: Thu, 9 Feb 2017 20:23:48 +0200 Subject: [PATCH 1/3] Update .gitmodules --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index ee1de9df..936c9f6a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "sumo"] path = sumo - url = https://github.com/bstriner/sumo.git + url = https://github.com/MahmoudNawar/sumo.git From 3361ff88a00a3954c4cb0aa0ada4e8eef53590e9 Mon Sep 17 00:00:00 2001 From: Mahmoud Nawar Date: Thu, 9 Feb 2017 21:27:25 +0200 Subject: [PATCH 2/3] add more functionality --- src/meme.cpp | 29 ++++++++++++++++++++++++++++- src/pysumo.cpp | 4 ++++ src/pysumo.h | 10 +++++++++- src/simulation.cpp | 8 ++++++++ src/vehicle.cpp | 10 ++++++++++ 5 files changed, 59 insertions(+), 2 deletions(-) diff --git a/src/meme.cpp b/src/meme.cpp index b85265e6..cdde2f59 100755 --- a/src/meme.cpp +++ b/src/meme.cpp @@ -16,6 +16,33 @@ pysumo_meme_vehiclenumber(PyObject *self, PyObject *args) char* id; if (! PyArg_ParseTuple( args, "s", &id )) return NULL; PYSUMO_EXCEPTION_START - return Py_BuildValue("i", libsumo_meme_vehiclenumber); + return Py_BuildValue("i", libsumo_meme_vehiclenumber(id)); + PYSUMO_EXCEPTION_END +} + +PyObject * +pysumo_meme_vehiclehaltingnumber(PyObject *self, PyObject *args) +{ + char* id; + if (! PyArg_ParseTuple( args, "s", &id )) return NULL; + PYSUMO_EXCEPTION_START + return Py_BuildValue("i", libsumo_meme_vehiclehaltingnumber(id)); + PYSUMO_EXCEPTION_END +} + +PyObject * +pysumo_meme_vehicleids(PyObject *self, PyObject *args) +{ + char* id; + if (! PyArg_ParseTuple( args, "s", &id )) return NULL; + PYSUMO_EXCEPTION_START + std::vector list = libsumo_meme_vehicleids(id); + PyObject* ids; + ids = PyList_New(0); + for(std::vector::iterator it = list.begin(); it!=list.end(); ++it ) + { + PyList_Append(ids,PyString_FromString((*it).c_str())); + } + return ids; PYSUMO_EXCEPTION_END } diff --git a/src/pysumo.cpp b/src/pysumo.cpp index c904b4cf..8b342f87 100755 --- a/src/pysumo.cpp +++ b/src/pysumo.cpp @@ -4,16 +4,20 @@ static PyMethodDef PysumoMethods[] = { {"simulation_start", pysumo_simulation_start, METH_VARARGS, "Start SUMO"}, {"simulation_stop", pysumo_simulation_stop, METH_VARARGS, "Stop SUMO"}, {"simulation_step", pysumo_simulation_step, METH_VARARGS, "Simulate one step"}, +{"simulation_minexpectednumber", pysumo_simulation_minexpectednumber, METH_VARARGS, "Get minmum expected number of vechicles"}, {"inductionloop_meanspeed", pysumo_inductionloop_meanspeed, METH_VARARGS, "Get induction loop mean speed"}, {"inductionloop_vehiclenumber", pysumo_inductionloop_vehiclenumber, METH_VARARGS, "Get induction loop vehicle count"}, {"meme_meanspeed", pysumo_meme_meanspeed, METH_VARARGS, "Get multientry/multiexit mean speed"}, {"meme_vehiclenumber", pysumo_meme_vehiclenumber, METH_VARARGS, "Get multientry/multiexit vehicle number"}, +{"meme_vehiclehaltingnumber", pysumo_meme_vehiclehaltingnumber, METH_VARARGS, "Get multientry/multiexit vehicle halting number"}, +{"meme_vehicleids", pysumo_meme_vehicleids, METH_VARARGS, "Get multientry/multiexit vehicle IDs"}, {"tls_getstate", pysumo_tls_getstate, METH_VARARGS, "Get traffic light state"}, {"tls_setstate", pysumo_tls_setstate, METH_VARARGS, "Set traffic light state"}, {"tls_getControlledLanes", pysumo_tls_getControlledLanes, METH_VARARGS, "get all lanes a traffic light controls"}, {"vehicle_list", pysumo_vehicle_list, METH_VARARGS, "Get list of vehicles"}, {"vehicle_position", pysumo_vehicle_position, METH_VARARGS, "Get vehicle position"}, {"vehicle_speed", pysumo_vehicle_speed, METH_VARARGS, "Get vehicle speed"}, +{"vehicle_waitingtime", pysumo_vehicle_waitingtime, METH_VARARGS, "Get vehicle waiting time"}, {"vehicle_positions", pysumo_vehicle_positions, METH_VARARGS, "Get list of vehicle positions"}, {"vehicle_speeds", pysumo_vehicle_speeds, METH_VARARGS, "Get list of vehicle speeds"}, {"vehicle_lane_position", pysumo_vehicle_lane_position, METH_VARARGS, "get relative vehicle position in lane, return a distance from the beginning of the lane"}, diff --git a/src/pysumo.h b/src/pysumo.h index d567f0c4..26854f2d 100755 --- a/src/pysumo.h +++ b/src/pysumo.h @@ -18,6 +18,8 @@ pysumo_simulation_stop(PyObject *self, PyObject *args); PyObject * pysumo_simulation_step(PyObject *self, PyObject *args); PyObject * +pysumo_simulation_minexpectednumber(PyObject *self, PyObject *args); +PyObject * pysumo_tls_getstate(PyObject *self, PyObject *args); PyObject * pysumo_tls_setstate(PyObject *self, PyObject *args); @@ -32,12 +34,18 @@ pysumo_meme_meanspeed(PyObject *self, PyObject *args); PyObject * pysumo_meme_vehiclenumber(PyObject *self, PyObject *args); PyObject * +pysumo_meme_vehiclehaltingnumber(PyObject *self, PyObject *args); +PyObject * +pysumo_meme_vehicleids(PyObject *self, PyObject *args); +PyObject * pysumo_vehicle_list(PyObject *self, PyObject *args); PyObject * pysumo_vehicle_position(PyObject *self, PyObject *args); PyObject * pysumo_vehicle_speed(PyObject *self, PyObject *args); PyObject * +pysumo_vehicle_waitingtime(PyObject *self, PyObject *args); +PyObject * pysumo_vehicle_positions(PyObject *self, PyObject *args); PyObject * pysumo_vehicle_speeds(PyObject *self, PyObject *args); @@ -46,4 +54,4 @@ pysumo_vehicle_lane_position(PyObject *self, PyObject *args); PyObject * pysumo_lane_list(PyObject *self, PyObject *args); PyObject * -pysumo_lane_onLaneVehicles(PyObject *self, PyObject *args); \ No newline at end of file +pysumo_lane_onLaneVehicles(PyObject *self, PyObject *args); diff --git a/src/simulation.cpp b/src/simulation.cpp index 7e95c6d6..3d0ef3fb 100755 --- a/src/simulation.cpp +++ b/src/simulation.cpp @@ -46,3 +46,11 @@ pysumo_simulation_step(PyObject *self, PyObject *args) PYSUMO_EXCEPTION_END Py_RETURN_NONE; } + +PyObject * +pysumo_simulation_minexpectednumber(PyObject *self, PyObject *args) +{ + PYSUMO_EXCEPTION_START + return Py_BuildValue("i",libsumo_simulation_minexpectednumber()); + PYSUMO_EXCEPTION_END +} diff --git a/src/vehicle.cpp b/src/vehicle.cpp index e59ebf69..18198884 100755 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -35,6 +35,16 @@ pysumo_vehicle_speed(PyObject *self, PyObject *args) PYSUMO_EXCEPTION_END } +PyObject * +pysumo_vehicle_waitingtime(PyObject *self, PyObject *args) +{ + char* id; + if (! PyArg_ParseTuple( args, "s", &id)) return NULL; + PYSUMO_EXCEPTION_START + return Py_BuildValue("d", libsumo_vehicle_waitingtime(id)); + PYSUMO_EXCEPTION_END +} + PyObject * pysumo_vehicle_positions(PyObject *self, PyObject *args) { From bf3bef3eaacc933344ef3e0217871df915878fee Mon Sep 17 00:00:00 2001 From: MahmoudNawar Date: Sat, 11 Feb 2017 17:34:11 +0200 Subject: [PATCH 3/3] Update .gitmodules update .gitmodules to upstream repository --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index 936c9f6a..ee1de9df 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "sumo"] path = sumo - url = https://github.com/MahmoudNawar/sumo.git + url = https://github.com/bstriner/sumo.git