5个版本
| 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.2.0 | 2021年10月31日 | 
#3 in #canadensis
在 3 个crate中使用 (通过 canadensis_dsdl_frontend)
55KB
 1K  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(文档) | 用于与 canadensis_crc一起使用的计算和写入软件映像CRC的工具 | 
| canadensis_codegen_rust(文档) | 生成Rust数据类型和序列化代码的DSDL处理器 | 
| canadensis_macro(文档) | 从内联和/或外部DSDL文件生成Rust数据类型和序列化代码的过程宏 | 
其他crate(例如canadensis_bit_length_set、canadensis_core、canadensis_derive_register_block、canadensis_dsdl_frontend、canadensis_dsdl_parser、canadensis_encoding和canadensis_filter_config)在不同的地方被重导出,因此您通常不需要直接依赖它们。
状态
此代码旨在符合Cyphal规范版本1.0-beta。
大部分功能正常工作。一些部分不完整
- 有一些测试,但未测试的区域可能存在一些错误。
- 可以减少动态内存分配的数量,或者至少可以更好地记录。
- 需要更好的文档
原则
- 在嵌入式设备上运行
- 使用动态内存分配,但仅在必要时
- 支持Cyphal/CAN(经典CAN和CAN FD)
- 支持Cyphal/串行和Cyphal/UDP(这些传输尚未完全指定,但在发布时,canadensis实现与pycyphal兼容)
许可证
以下任一许可证下发布
- Apache许可证,版本2.0(《LICENSE-APACHE》或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(《LICENSE-MIT》或https://open-source.org.cn/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则任何旨在包含在您的工作中的贡献(根据Apache-2.0许可证定义),均应按上述方式双授权,无需任何额外条款或条件。
lib.rs:
此库解析Cyphal数据结构定义语言(DSDL)文件。
依赖项
~3.5MB
~72K SLoC