From fe7281de1627ffc94d4436110167e7cce72fa668 Mon Sep 17 00:00:00 2001 From: Mansard <nmansard@laas.fr> Date: Wed, 2 Feb 2011 13:48:24 +0100 Subject: [PATCH] Added display and displayDep in entity and signal. --- src/dynamic-graph-py.cc | 6 +++++- src/dynamic_graph/signal_base.py | 5 +++++ src/signal-base-py.cc | 23 +++++++++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/dynamic-graph-py.cc b/src/dynamic-graph-py.cc index bf70bba..2bb1d9b 100644 --- a/src/dynamic-graph-py.cc +++ b/src/dynamic-graph-py.cc @@ -31,6 +31,7 @@ namespace dynamicgraph { extern PyObject* getTime(PyObject* self, PyObject* args); extern PyObject* getName(PyObject* self, PyObject* args); extern PyObject* display(PyObject* self, PyObject* args); + extern PyObject* displayDependencies(PyObject* self, PyObject* args); extern PyObject* getValue(PyObject* self, PyObject* args); extern PyObject* setValue(PyObject* self, PyObject* args); extern PyObject* recompute(PyObject* self, PyObject* args); @@ -39,6 +40,7 @@ namespace dynamicgraph { namespace entity { extern PyObject* create(PyObject* self, PyObject* args); extern PyObject* display(PyObject* self, PyObject* args); + extern PyObject* display(PyObject* self, PyObject* args); extern PyObject* getName(PyObject* self, PyObject* args); extern PyObject* getSignal(PyObject* self, PyObject* args); extern PyObject* listSignals(PyObject* self, PyObject* args); @@ -151,9 +153,11 @@ static PyMethodDef dynamicGraphMethods[] = { METH_VARARGS, "Get the name of a signal"}, {"signal_base_display", dynamicgraph::python::signalBase::display, METH_VARARGS, "Print the signal in a string"}, + {"signal_base_display_dependencies", dynamicgraph::python::signalBase::displayDependencies, + METH_VARARGS, "Print the signal dependencies in a string"}, {"signal_base_get_value", dynamicgraph::python::signalBase::getValue, METH_VARARGS, "Read the value of a signal"}, - {"signal_base_set_value", dynamicgraph::python::signalBase::setValue, + {"signal_base_set_value", dynamicgraph::python::signalBase::setValue, METH_VARARGS, "Set the value of a signal"}, {"signal_base_recompute", dynamicgraph::python::signalBase::recompute, METH_VARARGS, "Recompute the signal at given time"}, diff --git a/src/dynamic_graph/signal_base.py b/src/dynamic_graph/signal_base.py index 7661b8d..be99a20 100644 --- a/src/dynamic_graph/signal_base.py +++ b/src/dynamic_graph/signal_base.py @@ -222,6 +222,11 @@ class SignalBase (object) : Print signal in a string """ return wrap.signal_base_display(self.obj) + def displayDependencies(self,iter): + """ + Print signal dependencies in a string + """ + return(wrap.signal_base_display_dependencies(self.obj,iter)) # Script short-cuts: don't use this syntaxt in python coding, # use it for debuging online only! diff --git a/src/signal-base-py.cc b/src/signal-base-py.cc index dc5d5e1..23a5001 100644 --- a/src/signal-base-py.cc +++ b/src/signal-base-py.cc @@ -99,6 +99,29 @@ namespace dynamicgraph { return Py_BuildValue("s", oss.str().c_str()); } + PyObject* displayDependencies(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)) + return NULL; + + pointer = PyCObject_AsVoidPtr(object); + SignalBase<int>* obj = (SignalBase<int>*)pointer; + + std::ostringstream oss; + try { + obj->displayDependencies(oss,time); + } catch (std::exception& exc) { + PyErr_SetString(error, exc.what()); + return NULL; + } + return Py_BuildValue("s", oss.str().c_str()); + } + PyObject* getValue(PyObject* /*self*/, PyObject* args) { void* pointer = NULL; -- GitLab