diff --git a/src/dynamic-graph-py.cc b/src/dynamic-graph-py.cc index bf70bbafcb170d6df7e3757b6ad62a10f53b3a82..00a576ddf218b312fb3d7137dabde0306dc10764 100644 --- a/src/dynamic-graph-py.cc +++ b/src/dynamic-graph-py.cc @@ -29,6 +29,7 @@ namespace dynamicgraph { namespace signalBase { extern PyObject* create(PyObject* self, PyObject* args); extern PyObject* getTime(PyObject* self, PyObject* args); + extern PyObject* setTime(PyObject* self, PyObject* args); extern PyObject* getName(PyObject* self, PyObject* args); extern PyObject* display(PyObject* self, PyObject* args); extern PyObject* getValue(PyObject* self, PyObject* args); @@ -147,6 +148,8 @@ static PyMethodDef dynamicGraphMethods[] = { "create a SignalBase C++ object"}, {"signal_base_get_time", dynamicgraph::python::signalBase::getTime, METH_VARARGS, "Get time of a SignalBase"}, + {"signal_base_set_time", dynamicgraph::python::signalBase::setTime, + METH_VARARGS, "Set time of a SignalBase"}, {"signal_base_get_name", dynamicgraph::python::signalBase::getName, METH_VARARGS, "Get the name of a signal"}, {"signal_base_display", dynamicgraph::python::signalBase::display, diff --git a/src/dynamic_graph/signal_base.py b/src/dynamic_graph/signal_base.py index 7661b8d1155d77ed9927c8eef27368be94c9cca3..08e48320f206920313e1b3cc8d63a2c939089eba 100644 --- a/src/dynamic_graph/signal_base.py +++ b/src/dynamic_graph/signal_base.py @@ -167,6 +167,16 @@ class SignalBase (object) : """ return wrap.signal_base_get_time(self.obj) + @time.setter + def time(self, val) : + """ + Set Time of signal + + Input: + - an integer + """ + return wrap.signal_base_set_time(self.obj, val) + @property def value(self) : """ diff --git a/src/signal-base-py.cc b/src/signal-base-py.cc index dc5d5e145479e43ef88245c55dbcfddf1ecd5484..08b61e105c7d0cb99136a7f923f1f30b75142195 100644 --- a/src/signal-base-py.cc +++ b/src/signal-base-py.cc @@ -77,6 +77,25 @@ namespace dynamicgraph { return Py_BuildValue("i", time); } + PyObject* setTime(PyObject* /*self*/, PyObject* args) + { + void* pointer = NULL; + PyObject* object = NULL; + int time; + if (!PyArg_ParseTuple(args,"Oi", &object, &time)) + return NULL; + if (!PyCObject_Check(object)) { + PyErr_SetString(error, "object should be a C object"); + return NULL; + } + + pointer = PyCObject_AsVoidPtr(object); + SignalBase<int>* obj = (SignalBase<int>*)pointer; + + obj->setTime(time); + return Py_BuildValue(""); + } + PyObject* display(PyObject* /*self*/, PyObject* args) { void* pointer = NULL;