#ascii #传输 #解码 #传输层 #dle

已删除 rs-dle-encoder

Rust 的 DLE ASCII 编码器和传输层

0.1.0 2021 年 9 月 29 日

#52 in #传输层

Apache-2.0

24KB
437

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]

无运行时依赖