3个版本
0.2.5 | 2024年2月4日 |
---|---|
0.2.4 | 2024年1月26日 |
0.2.3 | 2022年10月12日 |
#223 在 嵌入式开发
30KB
390 行
wake-rs
wake-rs
是一个用Rust编写的编码/解码唤醒协议的库。
Wake
是一个高度优化的串行通信协议,适用于 微控制器。它基于SLIP协议 (https://datatracker.ietf.org/doc/html/rfc1055)。
主要特性
- 独特的起始符号
- 7位寻址(可选)
- CRC(8或16位)
- 低开销
该协议不支持
错误纠正压缩
帧结构
集成
有许多针对特定架构的实现
- MCS-51
- AVR
- STM32
- x86
在许多语言中
- C
- C++
- C#
- Python
- Rust
示例
- 演示 - 基本用法
- 串行 - 如何与串行端口一起使用
- 继电器屏蔽 - PC <-> 设备通信
快速入门
将其添加到Rust项目中
cargo add systemd-wake
创建、编码和解码数据包
use wake_rs::{Decode, Encode};
fn main() {
let wp = wake_rs::Packet {
address: Some(0x12),
command: 3,
data: Some(vec![0x00, 0xeb]),
};
let encoded = wp.encode().unwrap();
let decoded = encoded.decode();
}
构建库
cargo build --release
构建示例
cargo build --examples
资源
协议描述、库和工具:http://www.leoniv.diod.club/articles/wake/wake.html
待办事项
- 使用此库与微控制器(nostd)一起使用
- 添加流解码器(每次一个字节,带内部缓冲区)
许可证
代码在MIT许可证下发布。