#cyphal #uavcan #size #data #canadensis #length #bit

canadensis_bit_length_set

用于在处理Cyphal数据结构描述语言文件时计算数据类型大小的位长度集类型

4个版本

0.3.1 2022年10月18日
0.3.0 2022年4月12日
0.2.1 2021年11月6日
0.2.0 2021年10月31日

#1242 in 数据结构


3 个crate中使用(2个直接使用)

MIT/Apache

29KB
445

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许可证定义的,您有意提交的工作的任何贡献都应按照上述方式双重许可,不附加任何额外条款或条件。

依赖关系

~630KB
~12K SLoC