# HyCAN **Repository Path**: dlmu-cone/HyCAN ## Basic Information - **Project Name**: HyCAN - **Description**: No description available - **Primary Language**: C++ - **License**: BSD-3-Clause - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-01 - **Last Updated**: 2025-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 现代高性能 Linux C++ CAN通信协议库 ## 亮点 - 基于`epoll`的高并发支持。每秒处理**100k消息**的场景下: - **低CPU占用**:平均 `25%` CPU占用率(基于 AMD Ryzen 7 7840HS CPU ),**无丢帧** - **低延迟**:每条消息平均延迟低至**15us** - [详见InterfaceStressTest](tests/InterfaceStressTest.cpp) - 用户友好的API - 无需外置脚本,库内直接开关`Netlink`上的`CAN/VCAN`接口。 ## 使用场景 - 高实时性需求 - 控制算法依赖 CAN 总线上大量电机的实时反馈帧 - 减少部署复杂度 - 避免每次运行程序前执行脚本手动启动 CAN/VCAN 接口 ## 接入工程 ### 前置依赖 - 构建工具 - CMake ( >= 3.20 ) - 编译器 - GCC ( >= 13 ) 或 Clang ( >= 15 ) - 系统环境 - Linux can 和 vcan 内核模块(通常通过 linux-modules-extra 包提供) - 使用`modprobe`加载内核模块: ```shell sudo modprobe vcan sudo modprobe can ``` ### 从源代码构建 #### 安装依赖 ```shell # Debian系 sudo apt install pkg-config cmake libnl-3-dev libnl-nf-3-dev ``` #### CMake构建 ```shell cmake -S . -B build cmake --build build #可选:安装到系统 sudo cmake --install build ``` ### 使用HyCAN HyCAN支持接入CMake工程。请参考下面的`CMakeLists.txt`示例代码: ```cmake cmake_minimum_required(VERSION 3.20) project(MyConsumerApp) include(FetchContent) # 尝试查找已安装的 HyCAN find_package(HyCAN QUIET) if (NOT HyCAN_FOUND) message(STATUS "本地未找到 HyCAN 包,尝试从 GitHub 获取...") FetchContent_Declare( HyCAN_fetched GIT_REPOSITORY "https://github.com/RoboMaster-DLMU-CONE/HyCAN" GIT_TAG "main" ) FetchContent_MakeAvailable(HyCAN_fetched) else () message(STATUS "已找到 HyCAN 版本 ${HyCAN_VERSION}") endif () add_executable(MyConsumerApp main.cpp) target_link_libraries(MyConsumerApp PRIVATE HyCAN::HyCAN) ``` ## Todo - [ ] 更多示例和测试 - [ ] 封装常用功能的`Device`类 - [ ] 封装常用功能的`Message`类 ## Credit - [libnl](https://github.com/thom311/libnl)