这是故事,
我有一个运行车辆模拟器的Visual C ++代码。模拟器以矢量形式捕获车辆的状态,并且可以从键盘或手动(通过代码)接收控制输入(例如,转向角,踏板)。我的目标是自动化车辆控制,但是,我已经用Python实现了控件类。
我想从C ++代码输入车辆的状态到python类,其中进行了一些处理。然后,python类应输出相应的控件输入,由C ++代码接收。
有没有简单的方法来实现这一目标?我已经阅读了类似的帖子,但对我来说都没有。
我想到的一种方法是使用文件,这两个类读取和写入一个文件,从中获取车辆状态和控制输入,然而,这可能会有繁琐的同步问题!
流水线操作也是可行的,但看起来非常复杂,除非你能提供一个很好的简单解决方案:):)
底线是,我希望C ++类和python类在彼此之间交换数据的同时运行。
提前致谢!
答案 0 :(得分:1)
您可以使用Boost::Python来包装C ++代码。
答案 1 :(得分:1)
如果你需要同时运行这两个程序,那么没有简单的方法可以做到这一点,你必须在两个独立的进程之间实现异步通信机制。
实现此目的的一种方法是使用套接字。这样,如果需要,您的控制器和C ++应用程序可以在不同的机器上运行。
在C ++方面,您可以将应用程序基于boost::asio
来读取来自Python控件应用程序的消息并发送响应。见:Boost Asio
对于python方面,请参阅:Python sockets HowTo
注意:
boost::python
将允许您从Python调用C ++,从C ++调用Python。
SWIG
也可用于包装C ++类,以便可以从Python调用它们。
答案 2 :(得分:0)
您可以尝试ctypes
(see here)吗?
要从C ++调用python中的东西,可以使用Python API。