控制器插件工程
目录结构
主要分为三方库,配置文件,使用示例,主体代码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目录
控制器封装出来的接口,用户可通过这些接口使用控制器的功能。