omnet++ - 是否可以在 omnet++/Veins 项目中使用 RInside 以受益于丰富的 R 功能

标签 omnet++ veins rinside

我正在学习 R 并学习了这个名为 RInside 的软件包它提供了 c++ 类来调用嵌入式 R 解释器。根据 this blogpost 配置后,我能够运行一些给出的示例并在 Omnet++ eclipse IDE 中使用提供的 makefile。我们如何将它与 say veins 集成(veins 已经在顶级目录和 src 目录中自动生成了 makefile)? Rinside 需要 GCC 工具链,我认为这是 OMNeT++ 中的默认工具链。

根据我目前所学,这些是选项:

  1. Omnet++ 用户手册说我们可以为某些源目录使用自定义生成文件。因此,将 RInside 代码保存在一个源文件夹和一个单独的 makefile 中,并从 veins 顶级 makefile 调用此 makefile。我尝试了这两种方法:
    1. 从 RInside 示例和 makefile 中复制一些源文件,并更改 IDE 中的构建属性以从构建中排除此文件夹
    2. 还为此目录使用了自定义生成文件选项。但到目前为止还没有成功。可能是我做得不对。
  2. 使用 Rinside 实现所有功能并使其成为一个库(静态/共享)。在静脉中使用这个库。

到目前为止,有没有人尝试将它与基于 omnet++/veins 的项目一起使用?有谁知道是否值得尝试?欢迎任何其他建议。

我正在使用 Ubuntu 16.04 LTS 64 位。

最佳答案

你真的想在 OMNeT++ 中使用 R,还是想做结果/数据分析?


结果分析

您能否提供一些关于您尝试做什么/为什么尝试在 OMNeT++ 中使用 R 而不是在模拟完成后执行后处理步骤的信息?一般来说,我建议将后处理与模拟分开进行,使用 OMNeT++ 中的统计数据收集库在结果中生成相关数据,并使用 R 处理这些数据。您可以找到一些与 Plexe 一起使用的示例。 ,用于 CACC 应用程序的基于 VEINS 的模拟器,在 this repository 中.我个人更喜欢使用 python 进行后处理,但如果您已经熟悉 R,那么我建议您看看它。


与 VEINS 集成

如果您真的想这样做,我会在您的问题中推荐第二种方法,即简单地动态链接到 RInside 库作为系统库并将它们指定为依赖项。这基本上是让事情正常运行的最简单方法。

但是,如果出于某种原因你想明确地链接到库,你应该知道 VEINS 的构建过程依赖于 configure script包含在发行版中。它与普通 C++ 程序不同的工作方式是 OMNeT++ 模拟应该使用 OMNeT++ 提供的 opp_makemake 工具来构建:这正是 VEINS 的配置脚本所做的。如果您想在构建过程中包含其他库路径,最简单的方法是使用 ./configure --include PATH/TO/RINSIDE/HEADERS 创建一个 makefile。更多细节请引用脚本源码

关于omnet++ - 是否可以在 omnet++/Veins 项目中使用 RInside 以受益于丰富的 R 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48800099/

相关文章:

python - Omnet++简单模块C++代码中python嵌入式代码中的Segmentation fault错误

qt5 - 配置: error: Qtenv cannot find qmake in omnet++ installation

c++ - OMNeT++:对 `typeinfo for inet::IMobility' 的 undefined reference

OMNeT++ 和 Veins 稳态车辆密度

omnet++ - 如何在 t > 0 时开始静脉模拟

linux - 在 Linux 上用 g++ 编译 RInside 程序

omnet++ - 遵循两个不同应用层的汽车

c++ - 使用 TraCIDemo11p 定期发送消息

oop - 将 RInside 的 'R' 实例作为类/方法之间的参数传递

c++ - 当我在 C++ 程序中包含 RInside header 时,如何让链接器工作?