#uavcan #dsdl #can #parser #data-structures #nom

dsdl_parser

用于在uavcan上传输时的DSDL(数据结构描述语言)nom解析器

5个版本

使用旧的Rust 2015

0.1.3 2017年11月20日
0.1.2 2017年11月8日
0.1.1 2017年11月8日
0.1.0 2017年11月8日
0.0.1 2017年10月19日

#24 in #uavcan

21 每月下载量
用于 dsdl_compiler

Apache-2.0/MIT

99KB
2K SLoC

DSDL解析器

用于uavcan的DSDL(数据结构描述语言)解析器

DSDL

DSDL定义了uavcan传输的数据类型。有关DSDL的完整描述,请参阅规范

示例

解析DSDL目录

use dsdl_parser::DSDL;

assert!(DSDL::read("tests/dsdl/uavcan").is_ok());

解析单个文件

use dsdl_parser::DSDL;

assert!(DSDL::read("tests/dsdl/uavcan/protocol/341.NodeStatus.uavcan").is_ok());

显示文件

use dsdl_parser::DSDL;

let dsdl = DSDL::read("./tests/dsdl/uavcan/").unwrap();

println!("{}", dsdl.get_file("uavcan.protocol.GetNodeInfo").unwrap());

计算数据类型签名

use dsdl_parser::DSDL;

let dsdl = DSDL::read("./tests/dsdl/uavcan/").unwrap();

assert_eq!(dsdl.data_type_signature("uavcan.protocol.GetNodeInfo").unwrap(), 0xee468a8121c46a9e);

许可证

根据您的选择,许可如下:

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的任何有意提交的工作内容,都应作为上述双重许可,而不附加任何额外条款或条件。

依赖关系

~1.5MB
~25K SLoC