0

这里的故事,

我有一个运行车辆模拟器的 Visual C++ 代码。模拟器以矢量形式捕获车辆的状态,并且可以从键盘或手动(通过代码)接收控制输入(例如转向角、踏板)。我的目标是自动化车辆控制,但是,我已经在 Python 中实现了控制类。

我想将车辆的状态从 C++ 代码输入到 python 类,其中完成了一些处理。然后,python 类应该输出相应的控制输入,以供 C++ 代码接收。

有没有简单的方法来实现这一目标?我读过类似的帖子,但对我来说都不清楚。

我想到的一种方法是使用文件,两个类都读取和写入文件,从中获取车辆状态和控制输入,但是,这可能会带来繁琐的同步问题!

流水线也是可行的,但看起来很复杂,除非你能提供一个很好的简单解决方案:) :)

底线是,我希望 C++ 类和 python 类在相互交换数据的同时同时运行。

提前致谢!

4

3 回答 3

1

You can use Boost::Python to wrap your C++ code.

于 2013-04-12T08:44:33.577 回答
1

如果您需要同时运行这两个程序,那么没有简单的方法可以做到这一点,您必须在两个独立的进程之间实现异步通信机制。

实现此目的的一种方法是使用套接字。这样,如果需要,您的控制器和 C++ 应用程序可以在不同的机器上运行。

在 C++ 方面,您可以让您的应用程序围绕boost::asio 从 Python 控制应用程序读取消息并发送响应。请参阅:提升 Asio

对于 python 方面,请参阅:Python 套接字 HowTo

笔记:

boost::python将允许您从 Python 调用 C++ 和从 C++ 调用 Python。

SWIG也可用于包装 C++ 类,以便可以从 Python 调用它们。

于 2013-04-12T08:51:26.453 回答
0

你能试试吗ctypes见这里)?

要从 C++ 调用 python 中的东西,您可以使用Python API

于 2013-04-12T08:30:50.883 回答