4 个版本

0.1.4 2022年4月1日
0.1.3 2021年9月30日
0.1.2 2021年9月29日
0.1.1 2021年9月29日

#1252编码

Apache-2.0

31KB
578

Crates.io Package docs.rs

Rust DLE 编码器

此编码器为串行数据提供简单的 ASCII 传输层。它使用 C0 和 C1 ASCII 控制字符来实现这一点。您可以在这里找到 C++ 实现,以及在 这里找到 Python 实现。

编码模式

转义模式

编码流以 STX 标记开始,以 ETX 标记结束。流中的 STX 和 ETX 出现被转义并内部编码,以便接收端可以简单地检查 STX 和 ETX 标记作为帧分隔符。当使用 DLE 编码的包的严格字符接收时,STX 可以用来通知读取器实际数据将开始到达,而 ETX 可以用来通知读取器数据已结束。

示例

[0, STX, DLE] -> [STX, 0, 0, DLE, STX + 0x40, DLE, DLE, ETX]

非转义模式

编码流以 DLE STX 开始,以 DLE ETX 结束。流中的所有 DLE 出现都使用 DLE 转义。如果接收方检测到 DLE 字符,则需要读取下一个字符以确定是否检测到帧的开始(STX)或结束(ETX)。

示例

[0, STX, DLE] -> [DLE, STX, 0, DLE, STX, DLE, DLE, DLE, ETX]

无运行时依赖