Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 28 additions & 1 deletion src/meme.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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<std::string> list = libsumo_meme_vehicleids(id);
PyObject* ids;
ids = PyList_New(0);
for(std::vector<std::string>::iterator it = list.begin(); it!=list.end(); ++it )
{
PyList_Append(ids,PyString_FromString((*it).c_str()));
}
return ids;
PYSUMO_EXCEPTION_END
}
4 changes: 4 additions & 0 deletions src/pysumo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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"},
Expand Down
10 changes: 9 additions & 1 deletion src/pysumo.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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);
Expand All @@ -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);
pysumo_lane_onLaneVehicles(PyObject *self, PyObject *args);
8 changes: 8 additions & 0 deletions src/simulation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
10 changes: 10 additions & 0 deletions src/vehicle.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down