#cyphal #uavcan #uav #can #distributed-computing

canadensis_linux

Canadensis (Cyphal) 的 Linux SocketCAN 兼容性

5 个不稳定版本

0.3.0 2023年3月31日
0.2.2 2022年10月18日
0.2.1 2022年4月12日
0.2.0 2021年10月31日
0.1.0 2021年7月11日

#13 in #uavcan

46 每月下载量
用于 canadensis

MIT/Apache

235KB
5K SLoC

Canadensis:Cyphal 实现

本项目实现了(大部分)Cyphal(之前称为 UAVCAN v1.0)。正如 Cyphal 网站所述,“Cyphal 是一种基于现代网络标准(以太网、CAN FD 等)的开放技术,用于实时车内分布式计算和通信。它被创建来解决下一代智能车辆(有人和无人驾驶飞机、宇宙飞船、机器人、汽车等)车载数据分布和确定性计算的问题。”

这是一个独立的项目,与 Cyphal 协会无关。

子模块说明

此仓库使用子模块来存储 公共规范数据类型。在克隆时,请使用 git clone --recursive。如果您已使用无递归选项克隆了仓库,请运行 git submodule init 后跟 git submodule update。否则,某些测试将失败。

已发布软件包

软件包 描述
canadensis (文档) 包含所有核心传输无关功能的库
canadensis_data_types (文档) 对应于 Cyphal 公共规范数据类型 的 Rust 类型
canadensis_can (文档) Cyphal/CAN 传输
canadensis_bxcan (文档) bxCAN 嵌入式 CAN 控制器的兼容性
canadensis_linux (文档) Linux SocketCAN接口兼容性
canadensis_serial (文档) 实验性Cyphal/串行传输
canadensis_udp (文档) 实验性Cyphal/UDP传输
canadensis_pnp_client (文档) 用于即插即用节点ID分配的客户端库
canadensis_crc (文档) 访问软件镜像的CRC
canadensis_write_crc (文档) 一个用于计算和写入软件镜像CRC的工具,用于与canadensis_crc一起使用
canadensis_codegen_rust (文档) 一个生成Rust数据类型和序列化代码的DSDL处理器
canadensis_macro (文档) 一个生成Rust数据类型和序列化代码的过程宏,从内联和/或外部DSDL文件生成

其他crate(如canadensis_bit_length_setcanadensis_corecanadensis_derive_register_blockcanadensis_dsdl_frontendcanadensis_dsdl_parsercanadensis_encodingcanadensis_filter_config)在不同的地方被重新导出,因此您通常不需要直接依赖它们。

状态

此代码旨在符合Cyphal规范的1.0-beta版本。

大部分功能正常工作。一些部分尚未完成

  • 有一些测试,但可能在尚未测试的区域中存在一些错误。
  • 可以减少动态内存分配的数量,或者至少更好地记录。
  • 需要更好的文档

原则

  • 在嵌入式设备上运行
  • 使用动态内存分配,但仅在必要时
  • 支持Cyphal/CAN(经典CAN和CAN FD)
  • 支持Cyphal/串行和Cyphal/UDP(这些传输尚未完全指定,但canadensis实现与发布时的pycyphal兼容)

许可证

根据您的选择,许可方式为以下之一

贡献

除非您明确表示,否则根据Apache-2.0许可证定义,您提交的任何有意包含在作品中的贡献都应双许可,如上所述,没有额外的条款或条件。


lib.rs:

使用SocketCAN接口在Linux上运行Cyphal节点的实用工具

依赖关系

~4.5MB
~102K SLoC