#cyphal #uavcan #uav #can

no-std canadensis_core

Cyphal实现:常用定义

6个版本

0.3.0 2023年3月30日
0.2.3 2022年10月18日
0.2.2 2022年4月12日
0.2.1 2021年11月6日
0.1.0 2021年7月11日

#1128嵌入式开发

Download history 26/week @ 2024-03-11 28/week @ 2024-03-18 38/week @ 2024-03-25 54/week @ 2024-04-01 21/week @ 2024-04-08 65/week @ 2024-04-15 34/week @ 2024-04-22 19/week @ 2024-04-29 22/week @ 2024-05-06 22/week @ 2024-05-13 27/week @ 2024-05-20 14/week @ 2024-05-27 24/week @ 2024-06-03 27/week @ 2024-06-10 27/week @ 2024-06-17 39/week @ 2024-06-24

117 每月下载量
9 个crate中使用 (直接使用7个)

MIT/Apache

71KB
1.5K SLoC

Canadensis:Cyphal实现

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

这是一个独立的项目,与Cyphal联盟无关。

子模块说明

此仓库使用子模块用于公共受控数据类型。当克隆时,请使用git clone --recursive。如果您已使用非递归选项克隆了仓库,请运行git submodule init然后运行git submodule update。否则,某些测试将失败。

已发布的crate

crate 描述
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 (文档) 从内联和/或外部DSDL文件生成Rust数据类型和序列化代码的过程宏

其他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:

此库提供了其他canadensis crate使用的类型。

依赖关系

~2.5MB
~53K SLoC