#command #builder #at #no-std

no-std at-commands

Rust的AT命令构建器和解析器 #![no_std]

10个版本

0.5.4 2023年9月18日
0.5.3 2022年11月9日
0.5.2 2022年7月27日
0.5.1 2022年3月2日
0.2.1 2020年5月20日

753算法

Download history 65/week @ 2024-03-11 56/week @ 2024-03-18 111/week @ 2024-03-25 92/week @ 2024-04-01 92/week @ 2024-04-08 95/week @ 2024-04-15 65/week @ 2024-04-22 102/week @ 2024-04-29 73/week @ 2024-05-06 57/week @ 2024-05-13 51/week @ 2024-05-20 31/week @ 2024-05-27 47/week @ 2024-06-03 113/week @ 2024-06-10 62/week @ 2024-06-17 54/week @ 2024-06-24

每月277 次下载
用于 5 crate

MIT/Apache

48KB
1K SLoC

AT命令构建器和解析器 for Rust #![no_std] crates.io 文档

此crate可用于高效构建和解析AT命令风格的短信。

欢迎提供帮助!对新的功能、效率改进和API改进感兴趣。

用法

构建器

use at_commands::builder::CommandBuilder;

let mut buffer = [0; 128];

// Make a query command
let result = CommandBuilder::create_query(&mut buffer, true)
    .named("+MYQUERY")
    .finish()
    .unwrap();

// Buffer now contains "AT+MYQUERY?"
// Copy or DMA the resulting slice to the device.

// Make a set command
let result = CommandBuilder::create_set(&mut buffer, false)
    .named("+MYSET")
    .with_int_parameter(42)
    .finish()
    .unwrap();

// Buffer now contains "+MYSET=42"
// Copy or DMA the resulting slice to the device.

解析器

use at_commands::parser::CommandParser;

let (x, y, z) = CommandParser::parse(b"+SYSGPIOREAD:654,\"true\",-65154\r\nOK\r\n")
    .expect_identifier(b"+SYSGPIOREAD:")
    .expect_int_parameter()
    .expect_string_parameter()
    .expect_int_parameter()
    .expect_identifier(b"\r\nOK\r\n")
    .finish() 
    .unwrap();

// x = 654
// y = "true"
// z = -65154

许可证

根据您的选择,许可协议为以下之一

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的,您提交的任何有意包含在作品中的贡献,将按上述方式双重许可,而不附加任何额外的条款或条件。

依赖项

~160KB