# 协议的选择和推荐

## 协议的选择和推荐

纸飞机调试助手支持多种协议绘图，主要分为两个大类：文本类协议和十六进制类。文本类协议可阅读性好是主要推荐的协议大类。**点击协议小标题即可跳转阅读详细教程**

### 一、文本类协议

文本协议最大的优点就是可阅读性好，所见即所得，如果有问题能很快的发现。但是缺点是通常不带校验，理论上是存在因误码导致的解析错误的问题，同时数据的精度取决于你转换时保留的位数

#### TEXT协议（最推荐）

- 特点：支持多窗口绘图、支持文本分窗，协议不含时间信息，由PC收到数据时自动打戳，时间精确度一般
- 缺点：需要下位机适配协议，需要一定的程序开发基础

#### CUSTOM协议（最方便）

- 特点：万能文本协议、几乎能解析任意文本数据并绘图，完全不需要修改下位机的代码
- 缺点：对于多窗口的支持性比TEXT协议要一般

#### CSV协议（最简单）

- 特点：简单易用，属于广泛使用的标准，如Excel、Arduino等软件都能支持。
- 缺点：不支持多窗口

#### STAMP协议（仅需要严格时间信息时使用）

- 特点：支持多窗口绘图、支持文本分窗、含时间信息
- 缺点：需要下位机适配协议，需要一定的程序开发基础，需要额外适配时间信息

### 二、十六进制协议（非文本协议）

十六进制协议的优点数据精度高，传输效率高，缺点就是可阅读性差，软件没有按预期行为绘图时需要对着数据流和协议一个字节一个字节的人工分析，很是麻烦。笔者认为调试阶段最重要的是方便、易于沟通，而文本协议一目了然的特点最为合适，因此除非有不得不用的原因，笔者十分**不推荐**大家使用，尤其是需要咨询绘图功能为什么没有按预期设想工作的时候，因为笔者也很难去帮你人工解码。

#### EasyHex

- 特点：简单易用，支持多种数据类型，精度能够达到理论标准
- 缺点：不带校验，数据误码后会解析失败，导致曲线会有异常点

#### ModbusRTU

- 特点：广泛使用的国际标准，带CRC校验，误码数据会被检测出来并丢弃。数据进度
- 缺点：CRC使用有一定门槛，出现问题分析起来，需要对着数据流解码，分析起来较为麻烦。但是我们提供了现成的CRC计算源码和校验工具，来方便大家使用。

### 三、协议选择分支图

我们也准备了一个协议选择分支图，用户可以根据自己的情况，确认适合自己的协议
![协议选择推荐](attachments/协议的选择和推荐/协议选择推荐.png)