Skip to content
Snippets Groups Projects
Commit 454bb4af authored by florent's avatar florent
Browse files

Re-inforce type checking.

     * src/dynamic-graph-py.cc,
     * src/dynamic_graph/__init__.py: plug now takes to signals as arguments
parent bb74a44d
No related branches found
No related tags found
No related merge requests found
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include <dynamic-graph/exception-factory.h> #include <dynamic-graph/exception-factory.h>
#include <dynamic-graph/interpreter-helper.h> #include <dynamic-graph/interpreter-helper.h>
#include <dynamic-graph/functions.h> #include <dynamic-graph/functions.h>
#include <dynamic-graph/signal-base.h>
namespace dynamicgraph { namespace dynamicgraph {
namespace python { namespace python {
...@@ -44,21 +45,31 @@ namespace dynamicgraph { ...@@ -44,21 +45,31 @@ namespace dynamicgraph {
PyObject* PyObject*
plug(PyObject* self, PyObject* args) plug(PyObject* self, PyObject* args)
{ {
char* objIn = NULL; PyObject* objOut = NULL;
char* objOut = NULL; PyObject* objIn = NULL;
char* sigIn = NULL; void* pObjOut;
char* sigOut = NULL; void* pObjIn;
if (!PyArg_ParseTuple(args,"ssss", &objOut, &sigOut, &objIn, &sigIn))
if (!PyArg_ParseTuple(args,"OO", &objOut, &objIn))
return NULL;
if (!PyCObject_Check(objOut))
return NULL;
if (!PyCObject_Check(objIn))
return NULL; return NULL;
pObjIn = PyCObject_AsVoidPtr(objIn);
SignalBase<int>* signalIn = (SignalBase<int>*)pObjIn;
pObjOut = PyCObject_AsVoidPtr(objOut);
SignalBase<int>* signalOut = (SignalBase<int>*)pObjOut;
std::ostringstream os; std::ostringstream os;
try { try {
interpreter.cmdPlug(objOut, sigOut, objIn, sigIn, os); signalIn->plug(signalOut);
} catch (std::exception& exc) { } catch (std::exception& exc) {
PyErr_SetString(error, exc.what()); PyErr_SetString(error, exc.what());
return NULL; return NULL;
} }
return Py_BuildValue(""); return Py_BuildValue("");
} }
......
...@@ -10,9 +10,6 @@ import re ...@@ -10,9 +10,6 @@ import re
def plug (signalOut, signalIn) : def plug (signalOut, signalIn) :
""" """
Plug an output signal into an input signal Plug an output signal into an input signal
syntax is plug ("entityIn.signalIn", "entityOut.signalOut")
""" """
# get signals and entities # get signals and entities
[eOut, sOut] = re.split("\.", signalOut) w_plug(signalOut.object, signalIn.object)
[eIn, sIn] = re.split("\.", signalIn)
w_plug(eOut, sOut, eIn, sIn)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment