3个版本

0.2.5 2024年2月4日
0.2.4 2024年1月26日
0.2.3 2022年10月12日

#223嵌入式开发

MIT 许可证

30KB
390

wake-rs

crates.io docs.rs MIT licensed

wake-rs 是一个用Rust编写的编码/解码唤醒协议的库。

Wake 是一个高度优化的串行通信协议,适用于 微控制器。它基于SLIP协议 (https://datatracker.ietf.org/doc/html/rfc1055)。

debug_print

主要特性

  • 独特的起始符号
  • 7位寻址(可选)
  • CRC(8或16位)
  • 低开销

该协议不支持

  • 错误纠正
  • 压缩

帧结构

Frame structure

集成

有许多针对特定架构的实现

  • MCS-51
  • AVR
  • STM32
  • x86

在许多语言中

  • C
  • C++
  • C#
  • Python
  • Rust

示例

  1. 演示 - 基本用法
  2. 串行 - 如何与串行端口一起使用
  3. 继电器屏蔽 - 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许可证下发布。

无运行时依赖项