# CommLib **Repository Path**: capsliu/commlib ## Basic Information - **Project Name**: CommLib - **Description**: CommLib(Communication Library)是适应机载设备业务要求的分布式通信组件。其提供如下功能: 支持板内应用间通信 支持板间应用间通信 支持定时器 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-27 - **Last Updated**: 2024-12-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 工程目录结构 (非源码可跳过) . ├── 3rd 第三方库 ├── CMakeLists.txt 编译cmake ├── commlib commlib主代码 ├── device device设备代码 ├── docs 文档 ├── foundation 基础库 ├── include 头文件 ├── localdata 共享内存 ├── logger 日志 ├── package.sh device打包脚本 ├── python python接口 ├── tests 测试脚本 ├── toolchain.cmake 交叉编译说明 ├── install.sh 一键编译出包脚本 ├── README README ├── start.sh device service └── utest 单元测试 ### 编译 (非源码可跳过) 1. 通过一键编译出包脚本进行编译(推荐) ./install.sh (x86) ./install.sh --tools=<交叉编译工具绝对路径> (arm交叉编译) 2.单独编译 2.1 标准编译(x86) mkdir build cd build cmake .. make make install 2.2 交叉编译步骤(arm) 2.2.1 编译工具下载路径 https://gitlab.com/firefly-linux/prebuilts/gcc/linux-x86/aarch64/gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu 2.2.2 将上诉脚本替换为当前工具路径 2.2.3 替换系统环境 export LD_LIBRARY_PATH=<交叉编译工具路径>/lib:$LD_LIBRARY_PATH 2.2.4 在工程根目录下执行 cmake -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake -B build 2.2.5 编译 cd build && make 2.2.6 验证,找到生成的库文件,file xxx查看文件属性 ### 一键编译出包目录 1. CommLib_v1.0.2目录结构 . ├── docs 相关文档 ├── example 用例 ├── include 头文件 ├── lib 库文件 └── README README 2.1 Device_v1.0.2目录结构 . ├── bin device_app ├── config 配置文件 ├── docs 文档 ├── lib 库文件 ├── README README ├── start.sh 启动脚本 └── tests 测试文件 2.2 device启动脚本使用说明 2.2.1 启动 ./start.sh -f 2.2.2 参数说明 -f 后接配置文件,配置文件为同级目录下config内容,不同配置文件说明如下 (1) -f config/acc3a_port.conf acc3a型号实际配置文件 (2) -f config/acc3a_simulation_port.conf acc3a型号模拟测试(多播)配置文件 (3) -f config/mmd1a_port.conf : mmd1a型号实际配置文件 (4) -f config/mmd1a_simulation_port.conf mmd1a型号模拟测试(多播)配置文件 2.2.3 启动说明 device_app为系统service服务启动,开机自启。 2.2.4 日志存放 device最新日志软连接为/OPT/DEVICE/log/device.INFO,其余日志查看/OPT/DEVICE/log下log文件 2.2.5 注意事项!!! (1)服务启动二进制、相关库等依赖当前文件夹下目录结构,除config下配置文件可改动外其余结构等保持不变 (2)如需移动文件位置,可以将文件夹全部移动后重新执行start脚本 (3)修改服务配置文件,或切换配置文件,重新执行start.sh即可 ### 共享内存读取大数据使用说明 (详细代码示例查看CommLib_V1.02/example/shm_example_project中代码和注释) 1 准备工作 (1)添加CommLib_v1.0.2目录结构中将头文件 CommLib_V1.01/include/localdata/include/local_data.h (2)添加CommLib_v1.0.2目录结构中库文件 CommLib_V1.01/lib/liblocaldata.so 2. 设置读取共享内存topic std::string topic = "my-topic-msg"; 3.创建消息回调子类,自定义NotifyData接口,该接口参数时读取到的共享内存中的数据 4.调用local::data::Reader::Get()接口触发共享内存读取 5.设置延时或自定义线程,保持读取状态 6.释放数据读取 ### 端口收发数据特性说明 1.支持RS422 2.支持UDP 3.支持组播 4.支持PCIE 5.支持TCP