跳到主要内容

控制器插件工程

目录结构

主要分为三方库,配置文件,使用示例,主体代码src和xcore api

example
├──3rdparty/
├──config/
├──examples/  
├──src/
├──xcore_api/
├──CMakeLists.txt
└──README.md

三方库3rdparty

主要包括使用到的三方库:g3log,jsoncpp,gtest等。
插件只需要用到三方库的头文件即可,为了方便用户单独使用三方库,提供了对应的lib包,用户可自 行link对应库构成可执行程序单独运行。
后面会介绍下常用的log库和json库的使用。

config目录

该目录下所有的文件都会打包到插件的二进制数据中。通过cmrc接口可以直接读取文件。

    CMRC_DECLARE(cmrc_config);  
auto cmrc_fs = cmrc::cmrc_config::get_filesystem();
    // conf_data目录下所有的json文件
    auto file_path = "cmrc_config/conf_data/" + dir_in_conf_data;
    for (auto&& entry : cmrc_fs.iterate_directory(file_path)) {
        Json::Value root;
        auto json_file = cmrc_fs.open(file_path + entry.filename());
        auto json_str = std::string(json_file.begin(), json_file.end());
        xcore_api::utils::LoadFromStringAPI(root,json_str);
        ret[dir_in_conf_data + entry.filename()] = root;
    }

examples目录

包含了插件的使用例子,用户可参考这些例子了解api的使用方式。
example_launch是这些例子的入口。

src目录

插件程序代码的主体,用户可将自行编写的程序放入到此目录。
目前内置了launch模块作为插件的入口程序。
用户可在这个目录下添加自己的实现逻辑。

xcore_api目录

控制器封装出来的接口,用户可通过这些接口使用控制器的功能。