Skip to content

Commit

Permalink
Adapted python code and associated clang wrapper.
Browse files Browse the repository at this point in the history
  • Loading branch information
hannemn committed Dec 6, 2024
1 parent 757a936 commit 30bd570
Show file tree
Hide file tree
Showing 19 changed files with 25 additions and 50 deletions.
5 changes: 2 additions & 3 deletions lang/python/core/ecal/core/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,14 @@

import ecal._ecal_core_py as _ecal

def initialize(args, unit_name):
def initialize(unit_name):
""" initialize eCAL API
:param args: command line argument list (sys.argv)
:param unit_name: instance unit name
:type unit_name: string
"""
return _ecal.initialize(args, unit_name)
return _ecal.initialize(unit_name)


def finalize():
Expand Down
2 changes: 1 addition & 1 deletion lang/python/core/src/ecal_clang.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ const char* ecal_getdate();
*
* @return Zero if succeeded, 1 if already initialized, -1 if failed.
**/
int ecal_initialize(int argc_, char **argv_, const char* unit_name_);
int ecal_initialize(const char* unit_name_);

/**
* @brief Finalize eCAL API.
Expand Down
36 changes: 6 additions & 30 deletions lang/python/core/src/ecal_wrap.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -78,41 +78,17 @@ PyObject* PyAnswerHandle(ECAL_HANDLE handle_)
/****************************************/
PyObject* initialize(PyObject* /*self*/, PyObject* args)
{
PyObject* unit_args; /* python list of command line arguments */
char* unit_name = nullptr; /* unit name */
if (!PyArg_ParseTuple(args, "O!s", &PyList_Type, &unit_args, &unit_name))
char* unit_name = nullptr;
if (!PyArg_ParseTuple(args, "s", &unit_name))
return nullptr;

std::vector<char*> arg_vec_p;
int arg_num = (int)(PyList_Size(unit_args));
for (int i = 0; i < arg_num; ++i)
{
/* grab the string object from the next element of the list */
PyObject* arg_str = PyList_GetItem(unit_args, i);

/* make it a string */
PyObject* arg_ustr = PyUnicode_AsUTF8String(arg_str);
std::string arg = PyBytes_AsString(arg_ustr);

/* and put it into the <char*> argument vector */
#ifdef _WIN32
arg_vec_p.push_back(_strdup(arg.c_str()));
#else
arg_vec_p.push_back(strdup(arg.c_str()));
#endif // _WIN32
}

/* pass arguments to the initialize function */
/* pass argument to the initialize function */
int init{ 0 };
Py_BEGIN_ALLOW_THREADS
init = ecal_initialize(int(arg_vec_p.size()), arg_vec_p.data(), unit_name);
init = ecal_initialize(unit_name);
Py_END_ALLOW_THREADS
PyObject* ret_obj = Py_BuildValue("i", init);

/* free <char*> argument vector */
for(auto arg : arg_vec_p) free(arg);

return(ret_obj);
return(Py_BuildValue("i", init));
}

/****************************************/
Expand Down Expand Up @@ -1340,7 +1316,7 @@ PyObject* mon_logging(PyObject* /*self*/, PyObject* /*args*/)
/****************************************/
static PyMethodDef _ecal_methods[] =
{
{"initialize", initialize, METH_VARARGS, "initialize(argv, unit_name)"},
{"initialize", initialize, METH_VARARGS, "initialize(unit_name)"},
{"finalize", finalize, METH_NOARGS, "finalize()"},
{"is_initialized", is_initialized, METH_NOARGS, "is_initialized()"},
{"set_unit_name", set_unit_name, METH_VARARGS, "set_unit_name(unit_name)"},
Expand Down
2 changes: 1 addition & 1 deletion lang/python/samples/core/benchmark/latency_rec.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
def do_run():

# initialize eCAL API
ecal_core.initialize(sys.argv, "py_latency_rec")
ecal_core.initialize("py_latency_rec")

# create publisher/subscriber
pub = ecal_core.publisher('pkg_reply')
Expand Down
2 changes: 1 addition & 1 deletion lang/python/samples/core/benchmark/latency_rec_cb.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
def do_run():

# initialize eCAL API
ecal_core.initialize(sys.argv, "py_latency_rec_cb")
ecal_core.initialize("py_latency_rec_cb")

# create publisher/subscriber
pub = ecal_core.publisher('pkg_reply')
Expand Down
2 changes: 1 addition & 1 deletion lang/python/samples/core/benchmark/latency_snd.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ def do_run(msg_num, msg_size):
if __name__ == "__main__":

# initialize eCAL API
ecal_core.initialize([], "py_latency_snd")
ecal_core.initialize("py_latency_snd")

args = parse_args(sys.argv[1:])
do_run(msg_num=args.runs, msg_size=args.size)
Expand Down
2 changes: 1 addition & 1 deletion lang/python/samples/core/monitoring/monitoring.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def main():
print("eCAL {} ({})\n".format(ecal_core.getversion(), ecal_core.getdate()))

# initialize eCAL API
ecal_core.initialize(sys.argv, "monitoring")
ecal_core.initialize("monitoring")

# initialize eCAL monitoring API
ecal_core.mon_initialize()
Expand Down
2 changes: 1 addition & 1 deletion lang/python/samples/core/monitoring/monitoring_json.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ def main():
print("eCAL {} ({})\n".format(ecal_core.getversion(), ecal_core.getdate()))

# initialize eCAL API
ecal_core.initialize(sys.argv, "monitoring")
ecal_core.initialize("monitoring")

# initialize eCAL monitoring API
ecal_core.mon_initialize()
Expand Down
2 changes: 1 addition & 1 deletion lang/python/samples/core/pubsub/binary_rec.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def main():
print("eCAL {} ({})\n".format(ecal_core.getversion(), ecal_core.getdate()))

# initialize eCAL API
ecal_core.initialize(sys.argv, "py_binary_rec")
ecal_core.initialize("py_binary_rec")

# set process state
ecal_core.set_process_state(1, 1, "I feel good")
Expand Down
2 changes: 1 addition & 1 deletion lang/python/samples/core/pubsub/binary_rec_cb.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def main():
print("eCAL {} ({})\n".format(ecal_core.getversion(), ecal_core.getdate()))

# initialize eCAL API
ecal_core.initialize(sys.argv, "py_binary_rec_cb")
ecal_core.initialize("py_binary_rec_cb")

# set process state
ecal_core.set_process_state(1, 1, "I feel good")
Expand Down
2 changes: 1 addition & 1 deletion lang/python/samples/core/pubsub/binary_snd.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ def main():
print("eCAL {} ({})\n".format(ecal_core.getversion(), ecal_core.getdate()))

# initialize eCAL API
ecal_core.initialize(sys.argv, "py_binary_snd")
ecal_core.initialize("py_binary_snd")

# set process state
ecal_core.set_process_state(1, 1, "I feel good")
Expand Down
2 changes: 1 addition & 1 deletion lang/python/samples/core/pubsub/protobuf_rec.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def main():
print("eCAL {} ({})\n".format(ecal_core.getversion(),ecal_core.getdate()))

# initialize eCAL API
ecal_core.initialize(sys.argv, "py_person_rec")
ecal_core.initialize("py_person_rec")

# set process state
ecal_core.set_process_state(1, 1, "I feel good")
Expand Down
2 changes: 1 addition & 1 deletion lang/python/samples/core/pubsub/protobuf_rec_cb.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ def main():
print("eCAL {} ({})\n".format(ecal_core.getversion(),ecal_core.getdate()))

# initialize eCAL API
ecal_core.initialize(sys.argv, "py_person_rec_cb")
ecal_core.initialize("py_person_rec_cb")

# set process state
ecal_core.set_process_state(1, 1, "I feel good")
Expand Down
2 changes: 1 addition & 1 deletion lang/python/samples/core/pubsub/protobuf_snd.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def main():
print("eCAL {} ({})\n".format(ecal_core.getversion(), ecal_core.getdate()))

# initialize eCAL API
ecal_core.initialize(sys.argv, "py_person_snd")
ecal_core.initialize("py_person_snd")

# set process state
ecal_core.set_process_state(1, 1, "I feel good")
Expand Down
2 changes: 1 addition & 1 deletion lang/python/samples/core/pubsub/string_rec.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def main():
print("eCAL {} ({})\n".format(ecal_core.getversion(), ecal_core.getdate()))

# initialize eCAL API
ecal_core.initialize(sys.argv, "py_minimal_rec")
ecal_core.initialize("py_minimal_rec")

# set process state
ecal_core.set_process_state(1, 1, "I feel good")
Expand Down
2 changes: 1 addition & 1 deletion lang/python/samples/core/pubsub/string_rec_cb.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def main():
print("eCAL {} ({})\n".format(ecal_core.getversion(), ecal_core.getdate()))

# initialize eCAL API
ecal_core.initialize(sys.argv, "py_minimal_rec_cb")
ecal_core.initialize("py_minimal_rec_cb")

# set process state
ecal_core.set_process_state(1, 1, "I feel good")
Expand Down
2 changes: 1 addition & 1 deletion lang/python/samples/core/pubsub/string_snd.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def main():
print("eCAL {} ({})\n".format(ecal_core.getversion(), ecal_core.getdate()))

# initialize eCAL API
ecal_core.initialize(sys.argv, "py_minimal_snd")
ecal_core.initialize("py_minimal_snd")

# set process state
ecal_core.set_process_state(1, 1, "I feel good")
Expand Down
2 changes: 1 addition & 1 deletion lang/python/samples/core/service/minimal_service_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def main():
print("eCAL {} ({})\n".format(ecal_core.getversion(), ecal_core.getdate()))

# initialize eCAL API
ecal_core.initialize(sys.argv, "py_minimal_service_client")
ecal_core.initialize("py_minimal_service_client")

# set process state
ecal_core.set_process_state(1, 1, "I feel good")
Expand Down
2 changes: 1 addition & 1 deletion lang/python/samples/core/service/minimal_service_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def main():
print("eCAL {} ({})\n".format(ecal_core.getversion(), ecal_core.getdate()))

# initialize eCAL API
ecal_core.initialize(sys.argv, "py_minimal_service_server")
ecal_core.initialize("py_minimal_service_server")

# set process state
ecal_core.set_process_state(1, 1, "I feel good")
Expand Down

0 comments on commit 30bd570

Please sign in to comment.