1个不稳定版本
0.1.0 | 2023年3月30日 |
---|
#22 in #uavcan
在3个crate中使用 (直接使用2个)
86KB
2K 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/Serial传输 |
canadensis_udp (文档) |
实验性Cyphal/UDP传输 |
canadensis_pnp_client (文档) |
用于即插即用节点ID分配的客户端库 |
canadensis_crc (文档) |
访问软件镜像CRC |
canadensis_write_crc (文档) |
一个用于计算和写入软件镜像CRC的工具,用于与canadensis_crc 一起使用 |
canadensis_codegen_rust (文档) |
一个DSDL处理器,可以生成Rust数据类型和序列化代码 |
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/Serial和Cyphal/UDP(这些传输尚未完全指定,但canadensis实现与发布时的
pycyphal
兼容)
许可证
以下任一许可证下授权
- Apache许可证2.0版本(LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT或http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交的工作中的任何贡献,都应以上述双重许可证方式授权,不附加任何额外条款或条件。
依赖项
~3.5MB
~65K SLoC