4个版本
0.2.2 | 2023年3月31日 |
---|---|
0.2.1 | 2022年4月12日 |
0.2.0 | 2021年10月31日 |
0.1.0 | 2021年7月11日 |
在 #procmacro 中排名 9
每月下载 37 次
在 3 个crate中使用(通过 canadensis)
5KB
67 行
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 (文档) |
生成Rust数据类型和序列化代码的过程宏,从内联和/或外部DSDL文件中生成 |
其他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 License,版本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许可定义的任何有意提交的工作,都将根据上述条款双许可,不附加任何额外条款或条件。
依赖项
~290–750KB
~18K SLoC