# test_ecal **Repository Path**: posstar/test_ecal ## Basic Information - **Project Name**: test_ecal - **Description**: No description available - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-07 - **Last Updated**: 2026-04-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # test_ecal Eclipse eCAL 发布/订阅示例项目,演示如何使用 eCAL 进行消息发布和订阅。 ## 软件架构 - **eCAL**: Eclipse eCAL 中间件(通过 CMake ExternalProject 自动构建,不修改源码) - **protobuf**: Google Protocol Buffers 消息序列化 - **conan**: C++ 包管理器 ## 前置要求 - CMake >= 3.10 - C++17 兼容编译器 - Python 3 (用于 conan) - conan 2.x - Git ## 构建说明 ### 1. 安装 conan ```bash pip install conan conan profile detect ``` ### 2. 初始化子模块(可选) 首次构建时会自动初始化 eCAL 子模块。也可以手动初始化: ```bash git submodule update --init --depth=1 ``` ### 3. 安装项目依赖 ```bash conan install conanfile.txt \ --output-folder=build/Debug \ --build=missing \ --settings=build_type=Debug ``` ### 4. 构建项目 ```bash mkdir build_test && cd build_test cmake .. -DCMAKE_BUILD_TYPE=Debug cmake --build . --parallel ``` 首次构建时会自动: 1. 初始化 eCAL 的必需子模块(ecaludp、tcp_pubsub、protozero、tclap、recycle) 2. 使用 conan 安装 eCAL 的第三方依赖(protobuf、spdlog、asio) 3. 编译 eCAL 核心库(通过 CMake ExternalProject,不修改 eCAL 源码) 4. 编译示例程序 ## 使用说明 ### 运行示例 ```bash # 字符串发布/订阅 ./test-ecal-string [publisher|subscriber|both] [topic_name] # Protobuf 发布/订阅 ./test-ecal-protobuf [publisher|subscriber|both] [topic_name] # Zero-Copy 发布/订阅 ./test-ecal-zerocopy [publisher|subscriber|both] [topic_name] ``` ### 示例命令 ```bash # 同时运行发布者和订阅者(测试模式) ./test-ecal-protobuf both person_topic ``` ## 目录结构 ``` test_ecal/ ├── CMakeLists.txt # 项目构建配置 ├── cmake/ │ └── BuildECAL.cmake # eCAL 外部构建配置 ├── conanfile.txt # Conan 依赖配置 ├── examples/ # 示例代码 │ ├── simple_pubsub/ # 字符串发布/订阅 │ ├── simple_pubsub_protobuf/ # Protobuf 发布/订阅 │ └── simple_pubsub_zero_copy/# Zero-Copy 发布/订阅 └── thirdparty/ └── ecal/ # eCAL 源码(git submodule,只读) ``` ## eCAL 编译选项 eCAL 使用最小化配置编译,通过 CMake 参数传递(不修改源码): | 选项 | 值 | 说明 | |------|-----|------| | ECAL_USE_PROTOBUF | ON | 启用 Protobuf 支持 | | ECAL_USE_HDF5 | OFF | 禁用 HDF5 | | ECAL_USE_QT | OFF | 禁用 Qt | | ECAL_BUILD_APPS | OFF | 不编译应用程序 | | ECAL_BUILD_SAMPLES | OFF | 不编译示例 | | ECAL_BUILD_TESTS | OFF | 不编译测试 | | ECAL_BUILD_C_BINDING | ON | 编译 C 绑定 | ## 依赖 所有依赖通过 conan 管理,无需 apt 安装: | 依赖 | 版本 | 来源 | |------|------|------| | protobuf | 5.27.0 | conan | | spdlog | 1.17.0 | conan | | boost | 1.90.0 | conan | | asio | 1.32.0 | conan | ## 许可证 Apache License 2.0