纸飞机调试助手文档 ComAssistant Docs

开始使用

欢迎使用纸飞机调试助手

纸飞机调试助手 ComAssistant 是面向嵌入式、硬件调试、协议验证和自动化测试场景的串口、网络、HID 调试工具。它的核心目标是让数据收发、查看、过滤、绘图、记录和自动化处理尽可能集中在一个工作台里完成。

如果你是第一次使用,建议先完成以下路径:

  • 阅读 下载与链接,获取软件、购买入口和账户入口。
  • 根据设备类型选择通信模式:串口、网络、HID 或终端模式。
  • 完成一次基础收发测试,确认端口、波特率、IP、端口号或 HID 参数正确。
  • 根据数据类型选择显示、过滤、高亮、自动应答、绘图或记录功能。
  • 适合场景

  • 串口调试:调试 MCU、传感器、模组、仪器设备和自定义串口协议。
  • 网络调试:调试 TCP 客户端、TCP 服务端、UDP 数据收发。
  • HID 调试:调试自定义 HID 设备的数据交换。
  • 数据观察:对接收区内容进行高亮、过滤、分窗、HEX 查看和长期记录。
  • 数据可视化:将文本、CSV、STAMP、CUSTOM、EasyHex、ModbusRTU 等数据绘制成曲线。
  • 自动化协作:通过 Lua、自动应答和 MCP 能力,把重复调试流程交给脚本或 AI agent。
  • 亮点功能

  • 多通信模式:串口、TCP、UDP、HID 和终端模式可覆盖多数设备调试场景。
  • 多窗口绘图:支持按协议把不同数据流拆分到不同曲线窗口中观察。
  • 文本工作流增强:支持关键词高亮、自定义高亮、数据过滤、自动应答和命令面板。
  • 数据安全:支持实时记录、多格式导出、意外断电数据保障和 24 小时运行模式。
  • AI 友好文档:文档按目录组织,Markdown 可直接访问,便于 AI agent 检索和引用。
  • 待补充:软件主界面总览截图

    > 本文为 AI 辅助生成内容

    阅读全文 →

    下载与链接

  • 官网主页:https://www.comassistant.cn
  • 最新版本下载:https://io.comassistant.cn/latest
  • 旧版本下载:https://io.comassistant.cn/
  • 文档主页:https://doc.comassistant.cn/
  • 淘宝购买链接:https://inhowe.taobao.com/
  • 在线账户门户:https://www.comassistant.cn/login/portal/login.php
  • 离线账户授权注册(仅电脑无法联网时使用):https://www.comassistant.cn/authorize/auth.html
  • 发布记录:https://www.comassistant.cn/request/ReleaseNote.html
  • > 本文为 AI 辅助生成内容

    阅读全文 →

    通信模式选择

    串口调试功能

    功能介绍

    串口调试是纸飞机调试助手最常用的通信模式,适合 MCU、USB 转串口模块、传感器、仪器仪表、蓝牙串口模块和自定义嵌入式设备调试。

    串口模式下,纸飞机通过串口号和波特率打开设备,接收区显示设备返回的数据,发送区用于向设备发送文本或 HEX 数据。协议、绘图、过滤、分窗、自动应答、命令面板、Lua 和 MCP 等功能都可以工作在串口通信之上。

    基本操作

    待补充:串口参数和打开串口按钮截图

  • 功能 -> 通信模式 中选择 串口调试模式
  • 点击串口下拉框或刷新按钮,扫描当前可用串口。
  • 选择目标串口,例如 COM3COM12
  • 设置波特率,例如 115200921600
  • 点击 打开串口
  • 打开成功后,发送区可发送数据,接收区会显示设备返回内容。
  • 调试结束后点击 关闭串口
  • 如果只检测到一个空闲串口,并且开启了 自动打开串口,软件可以尝试自动打开该串口。多个串口存在时,软件会优先尝试恢复上次使用的串口选择。

    串口列表状态

    待补充:串口列表状态截图

    串口列表中会显示串口号、占用状态、设备描述和厂商信息。常见状态包括:

  • IDLE:当前看起来空闲,通常可以打开。
  • BUSY:可能被其它软件占用。
  • IGNORE:部分蓝牙串口扫描可能导致卡顿,软件会降低这类串口的自动检测优先级。
  • 如果点击串口下拉框感觉卡顿,可以在设置中使用 禁用串口忙检测。禁用后扫描速度可能更快,但列表中对占用状态的判断会减少。

    串口参数

    常用参数包括:

  • 波特率:通信速率,必须和下位机一致。
  • 数据位:常见为 8 位。
  • 停止位:常见为 1 位。
  • 校验:常见为 None;如果设备要求奇校验或偶校验,需要保持一致。
  • 流控:常见为 None;只有设备明确要求 RTS/CTS 或 XON/XOFF 时再开启。
  • DTR / RTS:部分设备会用作复位、下载或模式切换信号,按设备说明设置。
  • 串口设置 中还包含硬件接收缓冲。该设置错误可能导致丢数据、无响应或响应慢,通常不建议自行修改,除非你明确知道驱动和设备需要怎样的缓冲策略。

    待补充:串口高级参数设置截图

    发送数据

    串口发送区支持文本发送和 HEX 发送:

  • 文本发送:按当前编码把字符发送出去,适合 AT 指令、日志命令、文本协议。
  • HEX 发送:按十六进制字节解释输入内容,适合二进制协议。
  • 示例:

    AT+RST
    AA 55 01 00 FF

    如果设备命令要求换行,确认回车样式和追加换行设置是否正确。Windows 风格通常是 \r\n,Unix 风格通常是 \n

    待补充:串口发送选项截图

    接收与显示

    接收区可以按文本显示,也可以使用 HEX 显示查看原始字节。遇到乱码或协议解析异常时,建议先切到 HEX 视图确认设备实际发了什么。

    串口接收的数据可以继续进入这些工作流:

  • 关键词高亮和自定义高亮。
  • 数据过滤。
  • TEXT / STAMP / CUSTOM 等协议分窗。
  • CSV / TEXT / STAMP / EasyHex / ModbusRTU 等协议绘图。
  • 实时数据记录和多格式导出。
  • Lua 数据处理和自动应答。
  • 常见问题

    串口打开失败怎么办?

    软件打开失败时通常会提示检查以下事项:

  • 线缆是否松动。
  • 是否选择了正确的串口设备。
  • 该串口是否被其它程序占用。
  • 是否设置了过高的波特率。
  • 当前系统账户是否有串口读写权限。
  • USB 转串口设备异常时,可以尝试重新插拔、换 USB 口、换线、重装驱动或关闭其它串口工具。

    为什么收到的数据乱码?

    先确认波特率、数据位、停止位、校验位是否和设备一致。再确认文本编码是否匹配。如果仍不确定,打开 HEX 显示查看原始字节。

    CP210x 开启流控后异常怎么办?

    软件对部分 2023 年后的 CP210x 驱动有提示:如果软件开启流控后出现崩溃或异常,可尝试卸载并降级 CP210x 驱动,或关闭软件流控。

    > 本文为 AI 辅助生成内容

    阅读全文 →

    网络调试功能

    功能介绍

    在功能按钮的通信模式下,可以切换纸飞机调试助手的通信模式,我们可以切换到网络通信模式(通信模式和协议无关,协议支持在任何通信模式下工作):

    在这里插入图片描述 纸飞机支持TCP服务器、TCP客户端、UDP等3种网络调试模式:

    在这里插入图片描述

    TCP 服务器

    服务器模式下,需要先创建服务器再让客户端去连接,这里纸飞机作为服务器,所以先配置纸飞机的参数,首先选择监听地址(找到本机IP地址),然后填写监听端口,接着创建服务器。同时,我们使用另一个网络调试助手作为客户端进行连接演示,填写好远程主机和端口号(也就是纸飞机所创建的监听地址和监听端口),就可以进行连接了。 在这里插入图片描述 纸飞机作为服务器模式时,支持连接多个客户端,如果需要给不同的客户端发送消息,在“当前连接”里选择对应的客户端即可。

    TCP 客户端

    在这里网络调试助手作为服务器,纸飞机调试助手作为客户端,首先建立服务器,然后纸飞机填写目标地址和目标端口(也就是服务器的IP和端口)就可以进行连接了。 在这里插入图片描述

    UDP通信

    UDP模式下,仍然只需要地址和端口匹配即可通信

    阅读全文 →

    HID调试功能

    功能介绍

    在功能——通信模式下可切换HID通信: HID 通信模式入口

    下拉列表可以显示所有的HID设备,但只有自定义HID设备才能通信 HID 设备列表

    若感觉到收到/发出的字节异常(多字节或者缺失字节),通常是报告ID和首字节被解析为该包数据长度导致的,可以尝试进行设置: HID 报告 ID 和数据长度设置

    发送报告ID通常的选择为留空,或者填0,或者填1。

    若对端发了报告ID过来,纸飞机可勾选剔除该报告ID,这样数据接收区就只有纯粹的不含报告ID的数据。

    同理,由于HID是固定包长传输,不足的补0,所以有的设备会把首字节视作数据长度,纸飞机也可进行对应处理。

    阅读全文 →

    终端模式

    功能介绍和演示

    纸飞机支持终端模式,通常用于串口终端,所用协议标准为VT100,支持VT100的颜色控制协议。在功能按钮里即可激活该功能

    在这里插入图片描述 开启后,发送区将会隐藏,任何键盘输入会被直接发送出去,显示区为可交互区域。

    在这里插入图片描述

    我们可以使用树莓派的串口进行测试

    阅读全文 →

    协议、绘图与分窗

    协议的选择和推荐

    协议的选择和推荐

    纸飞机调试助手支持多种协议绘图,主要分为两个大类:文本类协议和十六进制类。文本类协议可阅读性好是主要推荐的协议大类。点击协议小标题即可跳转阅读详细教程

    一、文本类协议

    文本协议最大的优点就是可阅读性好,所见即所得,如果有问题能很快的发现。但是缺点是通常不带校验,理论上是存在因误码导致的解析错误的问题,同时数据的精度取决于你转换时保留的位数

    TEXT协议(最推荐)

  • 特点:支持多窗口绘图、支持文本分窗,协议不含时间信息,由PC收到数据时自动打戳,时间精确度一般
  • 缺点:需要下位机适配协议,需要一定的程序开发基础
  • CUSTOM协议(最方便)

  • 特点:万能文本协议、几乎能解析任意文本数据并绘图,完全不需要修改下位机的代码
  • 缺点:对于多窗口的支持性比TEXT协议要一般
  • CSV协议(最简单)

  • 特点:简单易用,属于广泛使用的标准,如Excel、Arduino等软件都能支持。
  • 缺点:不支持多窗口
  • STAMP协议(仅需要严格时间信息时使用)

  • 特点:支持多窗口绘图、支持文本分窗、含时间信息
  • 缺点:需要下位机适配协议,需要一定的程序开发基础,需要额外适配时间信息
  • 二、十六进制协议(非文本协议)

    十六进制协议的优点数据精度高,传输效率高,缺点就是可阅读性差,软件没有按预期行为绘图时需要对着数据流和协议一个字节一个字节的人工分析,很是麻烦。笔者认为调试阶段最重要的是方便、易于沟通,而文本协议一目了然的特点最为合适,因此除非有不得不用的原因,笔者十分不推荐大家使用,尤其是需要咨询绘图功能为什么没有按预期设想工作的时候,因为笔者也很难去帮你人工解码。

    EasyHex

  • 特点:简单易用,支持多种数据类型,精度能够达到理论标准
  • 缺点:不带校验,数据误码后会解析失败,导致曲线会有异常点
  • ModbusRTU

  • 特点:广泛使用的国际标准,带CRC校验,误码数据会被检测出来并丢弃。数据进度
  • 缺点:CRC使用有一定门槛,出现问题分析起来,需要对着数据流解码,分析起来较为麻烦。但是我们提供了现成的CRC计算源码和校验工具,来方便大家使用。
  • 三、协议选择分支图

    我们也准备了一个协议选择分支图,用户可以根据自己的情况,确认适合自己的协议 协议选择推荐

    阅读全文 →

    常用绘图操作

    功能演示

    轴范围调整

    快速调整:

  • 鼠标放在对应的轴上,滚轮操作将会调整鼠标所在的轴
  • 鼠标在画布上,滚轮操作将会同时调整X和Y轴
  • 鼠标在画布上,按住x按键,用滚轮可以调整X轴
  • 鼠标在画布上,按住v按键,用滚轮可以调整Y轴
  • 精确调整

  • 双击轴即可精确调整范围
  • 注意:Y轴默认开启了自动轴范围,若要人工调整Y轴请先关闭该功能

    在这里插入图片描述

    轴名字重命名

    双击轴名字即可快速重命名

    在这里插入图片描述

    曲线的选择

    单击曲线即可选中曲线,选中的曲线在图例中会被框住,这样方便我们对曲线进行单独的控制,比如右键曲线进行隐藏

    在这里插入图片描述

    曲线(图例)重命名

  • 双击图例即可快速曲线重命名,适用于简单使用的场合
  • 在这里插入图片描述

  • 预设曲线重命名,适用于多窗口,频繁且固定使用的场合
  • 在这里插入图片描述 可参考阅读预设曲线名称 的详细介绍

    曲线丢失(寻找)

    如果发现X轴在刷新,但是看不到曲线,说明曲线在画布外,可右键画布,快速寻找曲线,将其放置到画布内

    在这里插入图片描述

    注意:寻找曲线功能,不会修改X轴范围,如果你的X轴范围过大或者过小,仍然有可能看不到曲线

    曲线线型切换

    右键画布即可更改线型

    在这里插入图片描述

    隐藏/删除曲线

    选择曲线后,可以通过右键进行隐藏或删除,注意曲线被删除后,数据也会丢失

    在这里插入图片描述

  • 按住Ctrl按键,单击曲线,可快速隐藏曲线
  • 选中曲线后,按下del键,亦可删除曲线
  • 多窗口显示

    双击窗口标题即可将窗口独立显示出来,这样就可以同时显示多个绘图窗口

    在这里插入图片描述 在这里插入图片描述 注意

  • 默认绘图窗口不支持独立显示,必须在主界面内
  • 子窗口叉掉后会回到选项卡里,但是选项卡里的窗口叉掉后,数据将会丢失
  • 清空时删除窗口

    通常情况下,为避免绘图配置丢失,软件不会主动删除窗口,但是如果你觉得太多了影响美观但是人工删除觉得麻烦,可以勾选该功能,这样按下清空按钮后,多余窗口将会被自动删除。

    在这里插入图片描述

    辅助线与曲线标注

    快速开关辅助线

    首先需要右键图像,在辅助线设置里检查辅助线是否已经打开 文档截图 01 打开后双击屏幕任意地方即可显示辅助线,双击一次出现第一个辅助点,再双击一次出现第二个辅助点,再双击一次辅助点小时,辅助点也可以拖动到曲线上,会自动吸合。 文档截图 02 若勾选多通道曲线标准,则辅助点吸合到曲线上时会一并显示其他曲线的数值 文档截图 03

    GPU绘图

    打开GPU绘图可以显著提升软件流畅性,但是兼容性可能会有所下降,部分显卡甚至会蓝屏,大家按需要开启

    在这里插入图片描述

    另外对于笔记本用户,开启高性能模式或者接上电源也能显著改善卡顿现象。

    阅读全文 →

    默认绘图窗口的概念

    问题背景

    纸飞机调试助手支持多窗口绘图,比如[[04-多窗口绘图-文本数据-text协议]] 所介绍和展示的。但是其实在多窗口模式下,每一个绘图窗口都可以独立控制绘图参数,如果需要一个个修改参数未免太过麻烦。

    问题解法

    纸飞机引入了默认绘图窗口的概念,所有新创建的窗口属性都继承自这个默认绘图窗口,这样我们只需要事先设置好默认窗口的绘图属性,那么后续新的绘图窗口将可以保持一样的设置。

    打开绘图器的第一个空白绘图窗口就是我们的默认绘图窗口,我们可以通过右键图像进行参数调整

    在这里插入图片描述 当然,我们也可以更换默认绘图窗口: 文档截图 01

    阅读全文 →

    多窗口绘图(TEXT协议)

    适用场合

    TEXT协议适用于需要多窗口绘图、不需要精确时间信息、支持文本数据的场合

    TEXT协议介绍

    TEXT协议是纸飞机设计的简易文本协议,具有实现简单、可读性好、拓展性强的特点,支持多窗口绘图和数据分窗的功能。TEXT协议格式如下:

    {title}string

    其中:

  • title是自定义的英文标题,你可以取任何你喜欢的title,通常我喜欢按照功能来取名
  • string是你想要打印的英文内容,注意这是一个换行符(0x0A)结尾的字符串,当string为逗号分隔数字时(如1,2,3,4)纸飞机便可以自动地进行绘图
  • 绘图演示

    首先我们要确保软件选择了正确的协议,打开数据可视化,并打开串口 在这里插入图片描述 让我们看一下示例数据,以下数据就是纸飞机串口工具接收到的数据

    // 注意:每行数据后都有一个不可见字符换行符(\n)结尾
    {plotter}1,2,3
    {plotter}4,5,6

    这组数据可以这样理解:

  • 第一行是一组名为plotter的数据包,数据包的内容是1,2,3,分别代表了3根曲线的一组点;
  • 第二行又是一组名为plotter的数据包,数据包的内容是4,5,6,分别代表了3根曲线的一组点;
  • 所以plotter的数据包,包含了3条曲线,每条曲线都有2个数据点
  • 绘图结果如下 在这里插入图片描述

    多窗口绘图

    上一节我们实现了单窗口绘图,这一节演示一下多窗口绘图,这在多任务工作时非常有用。利用协议中的title属性就可以轻松实现。示例数据如下

    {voltage}1,2
    {current}3,4
    {voltage}5,6
    {current}7,8

    这组数据展示了两组数据,分别是voltage和current,纸飞机可以自动识别出不同的title,并显示在不同的窗口 在这里插入图片描述 双击窗口标题即可快速独立显示窗口 在这里插入图片描述

    阅读全文 →

    任意文本数据绘图(CUSTOM自定义万能文本协议)

    CUSTOM协议介绍

    协议如名,CUSTOM协议具有极强的自定义性和广泛适应性,可以对绝大部分的文本数据进行绘图,几乎可认为是万能文本协议。

    您只需要充分理解以下几句话,就可以理解CUSTOM协议的工作原理,并快速上手:

  • CUSTOM协议提取包含关键词每一行数据
  • CUSTOM协议从每一行数据中提取全部数字
  • 您需要指定哪些数字作为X轴,哪些数字作为Y轴
  • 所以说,对于用户只需要两个步骤:指定关键词以及指定XY轴是哪些。 在大部分常见场景,我们甚至可以忽略关键词和X轴。接下来,我带大家演示几种常见的用法

    绘图演示(Demo_A)

    我们先看一个简单的日志数据作为一个例子

    adcChannel1 rawValue 11 value 11.5v
    adcChannel1 rawValue 12 value 12.5v
    adcChannel1 rawValue 13 value 13.5v
    adcChannel1 rawValue 14 value 14.5v

    可以看出这是一组非常规律的日志,是一个递增的时间戳,每次增加0.1秒,通道1的ADC模块采集到的原始数据从11增加到14,对应转换后的数据是11.5~14.5v。现在我们需要把rawValue和value的数据绘制成曲线。

    现在重新回忆一下CUSTOM协议的介绍:

  • CUSTOM协议提取包含关键词的一行数据:关键词的选择指导思想是能唯一的筛选出我们需要的数据,比如value,因为所有我们需要的数据行都包含由于这个单词,但这个日志比较特殊,每一行数据我们都需要,所以不需要筛选,这样可以将关键词留空,纸飞机默认提取所有的数据行。
  • CUSTOM协议从每一行数据中提取全部数字:以第一行为例,全部数字包括0.1、1、11、11.5
  • 您需要指定哪些数字作为X轴,哪些数字作为Y轴:结合第二步,我们只需要第三、第四列的数据,也就是11、11.5,抛弃第一、二列数据
  • 接下来,打开绘图器,并选择CUSTOM协议 在这里插入图片描述 软件会有一个交互弹窗页面 在这里插入图片描述 点击OK后,我们便可以把这组示例数据发送给纸飞机,纸飞机在收到数据后会自动绘图 在这里插入图片描述

    绘图演示(Demo_B)

    在上一节demo的基础上,我们并多加一个ADC通道2的数据

    adcChannel1 rawValue 11 value 11.5v
    adcChannel2 rawValue 12 value 12.5v
    adcChannel1 rawValue 13 value 13.5v
    adcChannel2 rawValue 14 value 14.5v
    adcChannel1 rawValue 15 value 15.5v
    adcChannel2 rawValue 16 value 16.5v
    adcChannel1 rawValue 17 value 17.5v
    adcChannel2 rawValue 18 value 18.5v

    我们想看通道1和通道2的数据,并使用demo中的时间戳作为X轴。 此时,只需要在关键词中输入Channel1|Channel2,指定X轴使用第一列的数据即可,配置如下 在这里插入图片描述 (备注:如果只需要看通道1的数据,关键词填入Channel1即可) 绘图结果如下 在这里插入图片描述 相比与前面的例子,本节额外引入了关键词、关键词的正则匹配、指定X轴3个新的概念供读者理解。

    其他:

  • 对于标准时间格式数据,比如20:08:00.123会被提取为3列数据20、08、00.123
  • adc0channel1中的0也会被提取为1个数字
  • 从前面的例子可以发现,CUSTOM协议建议只使用1个关键词,如果关键词有多个,利用正则匹配也能支持多窗口绘图但是要求不同关键词的行都具有相同的格式特征,就是在减少适用范围。
  • 阅读全文 →

    简易文本数据绘图(CSV协议)

    适用场合

    CSV格式广泛应用于各场合,易于阅读且易于理解,但功能比较单薄,适用于只需要简单绘图且支持文本数据的场合。

    CSV协议介绍

    CSV 文件是一种纯文本文件,用于存储表格形式数据,其中每一行代表一行数据,该行中的每个字段都用逗号分隔。

    CSV 文件简单易用,使其成为在不同程序、数据库和电子表格之间交换数据的流行选择。导出后的CSV文件可以使用文本编辑器直接打开,可以使用Excel文件打开,也可以加载到纸飞机调试助手里去解析绘图。

    CSV协议格式如下:

    value, value, ..., value
    value, value, ..., value

    value是文本形式的数字,每一列代表1条曲线,这里有3条曲线,每条曲线含有2个数据点

    绘图演示

    首先我们要确保软件选择了正确的协议,打开数据可视化,并打开串口 在这里插入图片描述

    让我们看一下示例数据,以下数据就是纸飞机串口工具接收到的数据

    // 注意:每行数据后都有一个不可见字符换行符(\n)结尾
    1,2,3
    4,5,6

    每一列代表1条曲线,这里有3条曲线,每条曲线含有2个数据点,比如曲线1的数据点分别是1和4。

    绘图结果如下 在这里插入图片描述

    阅读全文 →

    多窗口绘图(STAMP协议)

    适用场合

    STAMP协议适用于需要由下位机来指定X轴或者时间信息的场合

    STAMP协议介绍

    STAMP协议是[[04-多窗口绘图-文本数据-text协议]]的拓展,读者朋友可以跳转阅读,相比于TEXT协议,STAMP协议可以由下位机来指定X轴,大多数情况下X轴用来填充系统运行时间,用于数据和时间对齐有较高要求的场合。STAMP协议格式如下:

    {title}string

    其中:

  • 对于同一个title,不同行的stamp一定是递增的实数数据
  • title是自定义的英文标题,你可以取任何你喜欢的title,通常我喜欢按照功能来取名
  • string是你想要打印的英文内容,注意这是一个换行符(0x0A)结尾的字符串,当string为逗号分隔数字时(如1,2,3,4)纸飞机便可以自动地进行绘图
  • 绘图演示

    首先我们要确保软件选择了正确的协议,打开数据可视化,并打开串口 在这里插入图片描述

    让我们看一下示例数据,以下数据就是纸飞机串口工具接收到的数据

    // 注意:每行数据后都有一个不可见字符换行符(\n)结尾
    {plotter}1,2,3
    {plotter}4,5,6

    这组数据可以这样理解:

  • 第一行是一组名为plotter的数据包,时间信息是0.2,数据包的内容是1,2,3,分别代表了3根曲线的一组点;
  • 第二行又是一组名为plotter的数据包,时间信息是0.4,数据包的内容是4,5,6,分别代表了3根曲线的一组点;
  • 所以这个示例数据里,plotter数据包里包含了3条曲线,每条曲线都有2个数据点
  • 绘图结果如下 在这里插入图片描述

    多窗口绘图

    上一节我们实现了单窗口绘图,这一节演示一下多窗口绘图,这在多任务工作时非常有用。利用协议中的title属性就可以轻松实现。示例数据如下

    {voltage}1,2
    {current}3,4
    {voltage}5,6
    {current}7,8

    这组数据展示了两组数据,分别是voltage和current,纸飞机可以自动识别出不同的title,并显示在不同的窗口 在这里插入图片描述

    双击窗口标题即可快速独立显示窗口 在这里插入图片描述

    注意:时间戳禁止出现回滚,如果回滚必须清空一下曲线,否则曲线绘制也会回滚!!

    阅读全文 →

    单窗口绘图(EasyHex协议)

    适用场合

    EasyHex协议使用十六进制传输,支持多种不同的协议,为了确保足够简单,没有使用校验,因此适用于对传输效率有一定要求,但是可以接收一定程度数据乱码的场合

    协议介绍

    EasyHex协议由两部分组成:数据 + 帧尾

  • 数据部分就是你要绘制曲线的十六进制数据内容,支持INT8/UINT8、INT16/UINT16、INT32/UINT32、FLOAT32等8种数据类型。
  • 帧尾用来表示一个数据包的结束,是一个固定的十六进制常量,不同的数据类型对应不同的帧尾
  • 以下是不同数据类型所对应的帧尾:

    | 数据类型 | 帧尾 | | --- | --- | | UINT8 | 0xFF | | --- | --- | | UINT16 | 0xFFFF | | --- | --- | | UINT32 | 0xFFFFFFFF | | --- | --- | | INT8 | 0x80 | | --- | --- | | INT16 | 0x8000 | | --- | --- | | INT32 | 0x80000000 | | --- | --- | | FLOAT32 | 0xFFFFFFFF | | --- | --- |

    由于使用十六进制传输,数据和帧尾都需要特别关注字节序(大小端)的问题,否则解析一定出错。

    特别注意:受协议限制,帧尾会占用一个数值,导致实际可表示的数据范围会变小。举例:

  • UINT8可以表示0 ~ 256的数据,但是0xFF(256)被帧尾占用,所以UINT8只能表示0 ~ 255的数据范围,如果你的数据出现了256,将会被软件误识别为帧尾导致解析出错,此时您应该选用UINT16的数据类型。
  • 类似地,INT8受这个限制,0x80(-128)被帧尾占用,所以只能表示 -127 ~ 127的数据范围
  • FLOAT32协议比较特殊,0xFFFFFFFF在浮点标准里属于一个非法的数据,所以不会受影响。
  • 绘图演示

    首先我们要确保软件选择了正确的协议,打开数据可视化,并打开串口 在这里插入图片描述

    假设,下位机有2个INT16类型的数据要绘图,数据字节序是小端发送的。那么我们应该按照这些信息设置好纸飞机的参数 在这里插入图片描述 继续假设两个数据分别为300(0x012C)和500(0x01F4),那么小端形式下正确的数据流应该是

    | 数据1 | 数据2 | 帧尾 | | --- | --- | --- | | 0x2C 0x01 | 0xF4 0x01 | 0x00 0x80 | | --- | --- | --- |

    绘图结果应该如下 在这里插入图片描述 如果是大端模式,则数据流应该如下

    | 数据1 | 数据2 | 帧尾 | | --- | --- | --- | | 0x01 0x2C | 0x01 0xF4 | 0x80 0x00 | | --- | --- | --- |

    在这里插入图片描述 对于其他的数据类型,只需要确认好字节序,并选择好对应的数据类型和帧尾即可。

    多窗口绘图

    EasyHex协议不支持多窗口绘图,如有需要,请参阅 [[09-多窗口绘图-十六进制数据-modbusrtu协议]]

    阅读全文 →

    多窗口绘图(ModbusRTU协议)

    适用场合

    ModbusRTU属于业界标准,支持CRC校验、且是十六进制传输。因此适用于对端已经支持ModbusRTU、或者要求数据能够可靠高效传输和存储,并且不在意数据可阅读性的场合。

    协议介绍

    纸飞机也支持符合业界标准的ModbusRTU协议,但是只支持功能码03应答帧的协议格式。大多情况,对端设备可能需要收到请求帧,才会返回应答帧给纸飞机,所以这里将请求帧和应答帧的格式都列举出来。

    请求帧协议格式如下:

    | 功能定义 | 地址码 | 功能码 | 起始地址 | 数据长度 | 校验低位 | 校验高位 | | --- | --- | --- | --- | --- | --- | --- | | 数据长度 | 1字节 | 1字节 | 2字节 | 2字节 | 1字节 | 1字节 | | --- | --- | --- | --- | --- | --- | --- |

    应答帧协议格式如下:

    | 功能定义 | 地址码 | 功能码 | 数据长度 | 数据内容 | 校验低位 | 校验高位 | | --- | --- | --- | --- | --- | --- | --- | | 数据长度 | 1字节 | 1字节 | 1字节 | n字节 | 1字节 | 1字节 | | --- | --- | --- | --- | --- | --- | --- |

    注意:

  • 纸飞机只是按照协议格式进行解析,并不限制功能码和地址码具体是多少,因此这两个字段你可以从0x00~0xFF里任意选择,只要你的对端设备能够支持。
  • 数据内容中的n字节数据就是要绘制曲线的数据,可以有多个数据代表多个曲线,但是同一时间只能有同一个数据类型。比如
  • 数据长度 = 数据类型所占用字节 x 数据个数

  • 不支持诸如1条int8类型+1条float类型的数据组合,因为不是同一个数据类型
  • 数据转换为十六进制数据流发送时,是有大小端(字节序)的概念,低位数据先发送还是高位数据先发送一定要搞清楚,并在软件上选择好,否则解析一定出问题
  • 绘图演示

    首先我们要确保软件选择了正确的协议,打开数据可视化,并打开串口 在这里插入图片描述

    假设,下位机发来了2个int16类型的数据要绘图,数据部分是大端发送的,地址码为0x01,功能码为0x03。那么我们应该按照这些信息设置好纸飞机的参数 在这里插入图片描述

    如果数据内容部分的第一个数据是300(0x012C),第二个数据是500(0x01f4),那么字节流应该如下:

    | 功能定义 | 地址码 | 功能码 | 数据长度 | 数据内容 | 校验低位 | 校验高位 | | --- | --- | --- | --- | --- | --- | --- | | 数据长度 | 1字节 | 1字节 | 1字节 | n字节 | 1字节 | 1字节 | | --- | --- | --- | --- | --- | --- | --- | | 数据举例 | 0x01 | 0x03 | 0x04 | 0x01 0x2c 0x01 0xf4 | 0x3A | 0x11 | | --- | --- | --- | --- | --- | --- | --- |

    绘图结果应该如下: 在这里插入图片描述

    多窗口绘图

    上一个节(最后一个图片)我们已经看到,纸飞机在解析出曲线后会自动的创建一个“ADDR:01 FUNC:03”的绘图窗口,这里分别对应的是地址码和功能码,所以我们只需要使用不同的地址码或者功能码,就可以让纸飞机自动的完成多窗口绘图的功能。这里不再演示。

    如何计算CRC

    如何在纸飞机上计算CRC

    纸飞机提供了CRC校验工具可供用户快速验证CRC结果,打开功能——工具箱——数据校验工具即可。 在这里插入图片描述 打开数据校验工具后,选择对应的计算模型即可,纸飞机支持MD5、SHA、CRC、SUM、ADD、XOR等数十种计算模型,这里我们选择CRC16-MODBUS即可。随后输入要计算的数据即可自动算出对应的CRC。 在这里插入图片描述

    如何在下位机上计算CRC

    在我们提供的软件压缩包里,自带了计算CRC-MODBUS的源代码,仅1个头文件,将其添加进你的工程即可,非常简单,此处不再展开,目录结构如下:

  • ComAssistant_MSVC.zip
  • 绘图教程 绘图示例数据 部分协议的C语言示例代码.zip 部分协议的C语言示例代码 protocol_demo_code 1.非文本协议(十六进制数据) ModbusRTU

    阅读全文 →

    文本数据分窗(CUSTOM万能文本协议)

    协议介绍

    协议如名,CUSTOM协议具有极强的自定义性和广泛适应性,可以对绝大部分的文本数据进行分窗提取,几乎可认为是万能文本协议。

    您只需要充分理解:CUSTOM协议提取包含关键词的每一行数据并将其显示到新的文本窗口中即可完成分窗,如果您需要使用CUSTOM协议绘图,可参阅 [[05-多窗口绘图-文本数据-custom协议(万能文本协议)]]

    多窗口分窗演示

    首先我们要确保软件选择了正确的协议 在这里插入图片描述

    打开了数据分窗功能,并打开串口 在这里插入图片描述

    让我们看一下示例数据,假定以下数据就是纸飞机串口工具接收到的数据

    // 注意:每行数据后都有一个不可见字符换行符(\n)结尾
    {voltage}1,2
    {current}the current is 3.4mA
    {voltage}5,6
    {current}the current is 7.8mA

    场景:我们不考虑绘图,只需要将包含voltage和current的数据分开来。

    在选中协议后,会弹出一个交互窗口,我们只需要输入关键词voltage|current即可,配置如下:

    在这里插入图片描述

    分窗结果如下: 文档截图 01

    阅读全文 →

    文本数据分窗(TEXT协议)

    适用场合

    TEXT协议适用于需要多任务、数据需要分类提取、不需要精确时间信息、支持文本数据的场合

    协议介绍

    TEXT协议是纸飞机设计的简易文本协议,具有实现简单、可读性好、拓展性强的特点,支持多窗口绘图和数据分窗的功能。TEXT协议格式如下:

    {title}string

    其中:

  • title是自定义的英文标题,你可以取任何你喜欢的title,通常我喜欢按照功能来取名
  • string是你想要打印的英文内容,注意这是一个换行符(0x0A)结尾的字符串,软件会自动将string内容统一放置到名为title的接收窗口中,同时当string为逗号分隔数字时(如1,2,3,4)纸飞机便可以自动地进行绘图
  • 多窗口分窗演示

    首先我们要确保软件选择了正确的协议 在这里插入图片描述

    打开了数据分窗功能,并打开串口 在这里插入图片描述

    让我们看一下示例数据,假定以下数据就是纸飞机串口工具接收到的数据

    // 注意:每行数据后都有一个不可见字符换行符(\n)结尾
    {plotter}0,1,2
    {adc}voltage=6, current=7
    {plotter}3,4,5
    {adc}voltage=8, current=9

    这组数据可以这样理解:

  • 第一、三行的数据包的title为plotter,string分别为0,1,2和3,4,5。根据规则"当string为逗号分隔数字时,软件会自动绘图",所以这两行数据会被纸飞机绘图
  • 第二、四行的数据包为adc,数据包的内容分别为voltage=4, current=5和voltage=8, current=9,不满足"逗号分隔数字"的绘图规则,所以不会被绘图,但是分窗功能对string的形式没有要求,这两行数据可以被分窗
  • 分窗结果如下: 文档截图 01

    阅读全文 →

    文本数据分窗(STAMP协议)

    STAMP协议适用场合

    STAMP协议适用于需要由下位机来指定时间信息的场合

    STAMP 协议介绍

    STAMP协议是[[04-多窗口绘图-文本数据-text协议]]的拓展,相比于TEXT协议,STAMP协议可以由下位机来指定X轴,大多数情况下X轴用来填充系统运行时间,用于数据和时间对齐有较高要求的场合。STAMP协议格式如下:

    {title}string

    其中:

  • 对于同一个title,不同行的stamp一定是递增的实数数据
  • title是自定义的英文标题,你可以取任何你喜欢的title,通常我喜欢按照功能来取名
  • string是你想要打印的英文内容,注意这是一个换行符(0x0A)结尾的字符串,当string为逗号分隔数字时(如1,2,3,4)纸飞机便可以自动地进行绘图
  • 多窗口分窗演示

    首先我们要确保软件选择了正确的协议 在这里插入图片描述

    打开了数据分窗功能,并打开串口 在这里插入图片描述

    让我们看一下示例数据,假定以下数据就是纸飞机串口工具接收到的数据

    // 注意:每行数据后都有一个不可见字符换行符(\n)结尾
    {voltage}1,2
    {current}the current is 3.4mA
    {voltage}5,6
    {current}the current is 7.8mA

    这组数据可以这样理解:

  • 第一、三行的数据包的title为voltage,string分别为1,2和4,5。根据规则"当string为逗号分隔数字时,软件会自动绘图",所以这两行数据会被纸飞机绘图
  • 第二、四行的数据包为current,数据包的内容分别为the current is 3.4mA和the current is 7.8mA,不满足"逗号分隔数字"的绘图规则,所以不会被绘图,但是分窗功能对string的形式没有要求,这两行数据可以被分窗
  • 分窗结果如下: 文档截图 01

    阅读全文 →

    文本数据工作流增强

    hexview十六进制视图

    概述

    十六进制视图用于同时观察数据的字节值和文本含义,适合分析不可见字符、二进制协议、校验字段、帧头帧尾和编码问题。

    普通文本视图更适合阅读日志,十六进制视图更适合确认“设备到底发了哪些字节”。当你遇到换行异常、乱码、协议解析失败、CRC 校验错误时,建议优先切换到十六进制视图检查原始字节。

    操作步骤

  • 建立通信连接并接收一段数据。
  • 打开 HEX 显示或 HEX 视图。
  • 对照左侧字节值和右侧文本显示,检查帧结构。
  • 关注协议帧头、长度、命令字、数据区、校验位和帧尾。
  • 如果需要复制分析,可把数据导出后用文本编辑器或十六进制编辑器打开。
  • hexview十六进制视图-01

    典型用途

  • 确认换行符是 0D 0A0A 还是其它组合。
  • 检查文本 1 和十六进制 0x01 是否混淆。
  • 分析 ModbusRTU、EasyHex 或自定义二进制协议。
  • 查找不可见字符、乱码和编码问题。
  • 比对上位机发送数据与下位机实际收到的数据。
  • 常见问题

    为什么文本看起来一样,但设备响应不同?

    可能是不可见字符不同,例如多了空格、回车、换行或 00 字节。使用十六进制视图可以直接看到差异。

    什么时候应该使用十六进制视图?

    当你调试二进制协议、校验失败、乱码、换行异常、设备无响应时,都建议打开十六进制视图。

    阅读全文 →

    关键词高亮和自定义高亮

    关键词高亮

    为了用户能够阅读日志方便,纸飞机调试助手支持关键词高亮,可在如下路径打开

    在这里插入图片描述 默认的高亮效果对数字、特殊字符、字符串、常见错误单词、常见成功类单词、时间戳等信息做了高亮,效果如下:

    在这里插入图片描述 在这里插入图片描述

    自定义关键词高亮

    除了纸飞机调试助手默认的关键词高亮,我们也可以设置自定义高亮,来更好的满足不同的调试需求,通过以下路径即可打开

    在这里插入图片描述

    打开后将会弹出一个交互界面,在这里可以指定关键词所对应的颜色,我们按照规则进行配置即可。

    在这里插入图片描述

    阅读全文 →

    命令面板

    概述

    待补充:命令面板整体截图

    命令面板用于保存、整理和重复发送常用命令。它既可以作为普通“历史命令列表”使用,也可以把一组初始化、读取状态、参数设置、异常测试等步骤整理成分组命令,减少重复输入。

    命令面板中的一行命令由“注释”和“命令内容”组成。内置教程里使用 CMD_1 | 命令内容 的形式说明规则:竖线左侧是注释,右侧是实际发送内容。右击命令或空白处可以配置命令或查看教程,双击命令发送命令,双击组名展开或收起。

    基本操作

    待补充:命令编辑窗口截图

  • 在菜单栏的功能——命令面板,打开该功能。
  • 右击空白处或已有命令,新增命令或新增分组。
  • 为命令填写注释、发送内容和发送模式。
  • 发送模式可以选择 自动HEXTEXT
  • 双击命令发送;双击组名展开或收起。
  • Ctrl + 双击命令可编辑命令,Ctrl + 双击组名可编辑组。
  • 命令列表支持拖拽排序。
  • 自动 模式会根据内容判断发送格式:内容符合 HEX 格式时按 HEX 发送,否则按文本发送。HEX 内容不要写 0x 前缀,建议用空格分隔字节,例如 AA 55 01 00.

    分组命令

    分组适合把一组需要按顺序执行的命令放在一起,例如:

  • 01-进入配置
  • 02-读取参数
  • 03-写入参数
  • 04-保存并重启
  • 组内命令可以设置发送间隔。发送整组时,纸飞机会按组内顺序依次发送,并在命令之间等待对应间隔。需要长时间循环执行时,可以使用分组循环发送;需要停止时使用停止发送入口。

    占位符

    占位符主要用于自由工作区控件绑定命令面板命令。控件触发命令时,纸飞机会把控件当前值替换进命令内容。

    TEXT 模式常用占位符:

  • %d:按整数写入控件值。
  • %2d%02d:按指定宽度格式化整数。
  • %f%.1f%8.2f:按浮点格式写入控件值。
  • %x%02x%X:按十六进制文本写入控件值。
  • %ID:写入指令名称。
  • HEX 模式常用占位符:

  • %LE:把控件值按小端字节序写入。
  • %BE:把控件值按大端字节序写入。
  • %ID:写入指令 ID。
  • %%:在 HEX 命令中表示字面量 %
  • %LE%BE 的字节宽度由控件量程和数据类型决定,不代表固定 1 字节。如果控件绑定的是浮点值,会按浮点值写入;如果绑定的是整数值,会按整数值写入。

    示例

    TEXT 命令示例:

    set_pwm:%d
    set_voltage:%.2f
    read:%ID

    HEX 命令示例:

    AA 55 %ID %LE CC
    AA 55 %ID %BE CC

    当自由工作区滑块当前值为 300,并绑定 HEX 命令 AA 55 %ID %LE CC 时,%ID 会替换为该控件配置的指令 ID,%LE 会替换为控件值的小端字节。

    与 AI / MCP 自动化

    MCP 中命令面板按树结构暴露,根级行号使用 row,组内命令使用 cmd_index。AI agent 可以读取命令树、创建分组、添加命令、调整顺序、发送单条命令或发送整组命令。

    自动化时建议遵守以下规则:

  • 需要模拟用户点击命令时,使用命令面板发送接口。
  • 需要直接发一包数据时,使用设备直发接口。
  • 需要先把内容放到发送区再按发送按钮时,使用发送区接口和发送按钮接口。
  • 对擦除、恢复出厂、写入永久参数等危险命令,命令注释里应明确写出风险。
  • 常见问题

    为什么命令点击后设备没有反应?

    先检查通信连接是否打开,再检查发送模式、换行符、HEX 格式和设备当前状态。自动模式下,如果内容刚好符合 HEX 格式,纸飞机会按 HEX 发送。

    命令会自动录入吗?

    发送过的命令会自动录入命令面板,可在面板下方关闭自动录入或通过 MCP 的命令面板控制接口暂停自动录入。

    分组命令会跟随配置保存吗?

    建议配合配置工程文件使用。这样不同项目可以保留独立命令集,避免把 A 项目的参数命令误发给 B 项目。

    > 本文为 AI 辅助生成内容

    阅读全文 →

    filter数据过滤

    概述

    数据过滤用于从接收数据中筛选出你关心的内容,适合日志量大、协议输出频繁、只想观察某些关键字或某类数据帧的场景。

    过滤不会改变设备真实发送的数据,它只影响软件中的显示和观察方式。常见用法包括:

  • 只显示包含某个关键字的日志行。
  • 排除无关的心跳、状态刷新或重复输出。
  • 配合关键词高亮快速定位错误、告警、成功状态。
  • 配合数据分窗,把不同类型的数据拆到不同窗口中观察。
  • 操作步骤

  • 先建立通信连接,并确认接收区可以正常显示数据。
  • 打开过滤相关功能入口,进入过滤配置界面。
  • 输入需要保留或排除的关键字。
  • 根据数据格式选择普通文本匹配或正则匹配。
  • 返回接收区观察过滤效果。
  • 如果过滤条件过严导致没有输出,先简化关键字,再逐步增加规则。
  • filter数据过滤-01

    使用建议

  • 过滤条件建议从简单关键字开始,例如 ERRORWARNadcvoltage
  • 如果数据中包含时间戳,过滤关键字应尽量避开时间部分。
  • 正则表达式适合处理格式稳定的数据,但不建议一开始就使用复杂表达式。
  • 对于需要长期观察的数据,建议同时开启实时记录,避免过滤视图遗漏原始数据。
  • 常见问题

    过滤后没有任何数据怎么办?

    先确认原始接收区是否有数据。如果原始数据正常,说明过滤条件没有命中。可以先删除过滤条件,再逐个添加关键字。

    过滤会影响保存的原始数据吗?

    不会。过滤通常是显示层功能,原始数据仍可通过原始记录或导出功能保存。

    过滤和数据分窗有什么区别?

    过滤强调“保留或隐藏内容”,数据分窗强调“把不同内容分到不同窗口”。两者可以组合使用。

    阅读全文 →

    可视化数据工作流增强

    数值显示器及四则运算

    适用场合

    如果希望将数据用表格的形式展现出来,可以使用数值显示器的功能,如果希望对数据进行修改,则可以使用四则运算功能

    功能介绍

    数值显示器可视化功能列表的一个子功能,可以将协议提取到的最新数据用表格的形式展现出来。 在这里插入图片描述

    数值显示的数据源和曲线绘图的数据源完全一致:都是从协议中解析出来的。只要能绘图,数值显示器就一定能正常工作,所以协议的介绍这里不再重复进行,可参阅协议选择和介绍

    接下来,解释一下表头的含义:

    名称:就是曲线的名称,两者是绑定的。 差分:开启后将显示当前数据和上一个数据的差值,常用于曲线的动态变化性能判断,输入y或者yes即可开启,输入n或者no即可关闭。 表达式:通过表达式可以对数据进行计算,支持四则运算,计算结果将会同步影响曲线值。@n表示第n根曲线 最新数值:曲线的最后一个数据

    这里以TEXT协议为例子,测试数据如下

    {plotter}1,100
    {plotter}2,101
    {plotter}1,100
    {plotter}2,101
    {plotter}1,100
    {plotter}2,101
    ...

    从数据可以看出,曲线1在1和2直接跳动,曲线2在100和101跳动,但是绘制到图像上仍然像一条直线

    在这里插入图片描述 这是因为Y轴的跨度太大了,对于0 ~ 100的Y轴跨度是很难看出0 ~ 1的变化的,这时我们可以使用四则运算将第二个曲线减去100

    在这里插入图片描述

    可以看出,收到的原始数据没有变化,但是经过四则运算,曲线2被缩小了,这个时候再重新调整一下Y轴即可方便观察到曲线的变化情况

    在这里插入图片描述 灵活一点,数值显示器还支持其他常用的表达式:

  • 绝对值:abs(@n)
  • m次幂运算:@n**m
  • 开根号:sqrt(@n)
  • 乘除法:@n/x或者@n*y
  • 多曲线:@n + @m
  • 假定我们的数据为
  • {plotter}-1,3,4,100,5
    {plotter}-1,3,4,100,5
    {plotter}-1,3,4,100,5
    ...

    示例如下:

    在这里插入图片描述

    阅读全文 →

    预设曲线名称

    功能背景

    纸飞机支持多窗口多曲线绘图,每个窗口多达16条曲线,每个曲线都有不同的含义,有效的命名管理变得十分重要,否则大家将搞不清楚哪个曲线代表什么含义。预设曲线名称就是为了解决这个问题。

    使用介绍

    预设曲线名称可在数据可视化里打开,操作路径如下 在这里插入图片描述 打开后将会弹出一个配置界面,在这个页面可以提前设置好不同窗口下不同曲线的名称。 在这里插入图片描述 这里有2个概念:预设场景和配置内容。 配置内容:描述了哪一个窗口的第几条曲线应该是什么名称,1个配置里可以描述多个窗口和曲线的名称。 预设场景:预设场景其实就是多个配置,让我们在不同的场景下快速切换不同的配置,避免重新描述配置,费时费力。

    配置内容

    语法规则为:

    窗口名称, 曲线1的名称, 曲线2的名称, ... , 曲线n的名称

    注意是用英文逗号进行分隔,如果有多个窗口,可增加新的一行,比如

    窗口1名称, 曲线1的名称, 曲线2的名称, ... , 曲线n的名称
    窗口2名称, 曲线1的名称, 曲线2的名称, ... , 曲线n的名称

    偷懒技巧:我们可以忽略某些曲线的命名,让系统使用默认的名字,比如我们只需要对第1、3条曲线命名,其余统统由系统自动命名,那么配置参考如下

    窗口名称, 曲线1名称,,曲线3名称

    注意观察这个配置有2个细节:

  • 存在2个连续的英文逗号,这样子就可忽略这个命名,由软件自动分配
  • 曲线命名只命名了2条,但是软件支持16条,后面没写的部分全部由软件自动分配
  • 预设场景

    软件支持5个预设场景,可进行选择切换

    使用演示

    假定plotter窗口有6条曲线,但是我们希望对plotter窗口的曲线1和曲线3命名,配置如下 在这里插入图片描述 绘图结果如下 在这里插入图片描述

    阅读全文 →

    图像调试

    概述

    图像调试用于接收和显示图像类数据流,适合摄像头、视觉传感器、图像压缩模块、图像算法中间结果等场景。它和普通文本接收区不同,关注的是“把一帧图像完整解析出来并显示”。

    纸飞机的图像数据包由“帧头 + 帧数据段”组成。帧头用于定位数据包,帧数据段可以承载图像、曲线或文本数据。帧头校验和包校验均使用满足 ModbusRTU 风格的 CRC 校验规则。

    待补充:图像调试入口截图

    适合场景

  • MCU 或 SoC 输出灰度图、RGB565、RGB555、JPG 等图像帧。
  • 调试摄像头采集链路,确认图像是否错位、花屏、截断或颜色异常。
  • 观察图像算法的中间结果,例如二值图、边缘图、ROI 区域。
  • 在自由工作区中把图像卡片与曲线、数值显示器放在同一屏。
  • 数据格式

    图像传输建议使用软件随附示例中的 Unify 协议文件,例如 unify_protocol.cunify_protocol.hmodbus_crc.h。下位机只需要按示例构造帧头,再紧跟符合图像类型的帧数据即可。

    典型流程:

  • 下位机准备一帧图像数据。
  • 根据图像格式、宽度、高度和数据长度构造帧头。
  • 计算帧头校验和数据校验。
  • 先发送帧头,再发送图像数据段。
  • 纸飞机收到完整帧后解析并刷新图像窗口。
  • 如果使用自由工作区图像卡片,图像数据仍来自协议解析链路;工作区只负责把结果展示在布局中。

    操作步骤

  • 在纸飞机中打开图像调试窗口或包含图像卡片的自由工作区。
  • 确认当前协议和下位机发送格式匹配。
  • 下位机按 Unify 图像帧格式发送测试帧。
  • 观察图像是否完整、方向是否正确、颜色是否正常。
  • 如果需要长期观察,可结合实时记录或外部脚本保存图像输入源。
  • 待补充:图像窗口预览截图

    注意事项

  • 图像传输带宽消耗较大,优先使用网络通信;低波特率串口只适合小图或低帧率。
  • 图像帧必须完整发送,缺少帧头、长度不匹配或 CRC 错误都会导致解析失败。
  • 花屏通常和宽高、像素格式、字节序或帧截断有关。
  • JPG 数据要保证编码完整;RGB565、RGB555、GRAY8 等原始格式要保证像素数量与宽高一致。
  • 如果同时开启大量曲线、分窗和图像刷新,建议关注 CPU、内存和通信吞吐。
  • MCP 自动化

    MCP 暴露了图像调试设置和状态查询能力,例如读取图像调试状态、设置窗口 ID、匹配窗口、保存路径、记录帧率和录制开关。AI agent 可以用这些接口确认图像调试是否开启、当前是否在录制,以及图像窗口是否收到数据。

    > 本文为 AI 辅助生成内容

    阅读全文 →

    自由工作区

    概述

    待补充:自由工作区整体布局截图

    自由工作区用于把多个可视化控件放在同一个可拖拽布局中,适合做项目专用的调试面板。你可以把数值、滑块、按钮、开关、选择框、曲线和图像卡片组合在一起,把“看数据”和“发控制命令”放到同一个工作台。

    工作区控件大体分为两类:

  • 显示类控件:绑定接收数据,用于显示通道值、曲线、图像或状态文本。
  • 控制类控件:绑定指令或命令面板命令,用于向设备发送控制数据。
  • 控件如何绑定数据

    待补充:控件数据绑定配置截图

    显示类控件通常通过“通道组”和“通道编号”绑定数据。通道组对应协议解析出来的一组数据来源,通道编号对应这组数据里的第几个值。

    例如下位机持续发送三路数据:

    {motor}1200,24.5,0.8

    如果协议把 motor 作为一个窗口或通道组,那么:

  • 通道编号 1 可绑定转速 1200
  • 通道编号 2 可绑定电压 24.5
  • 通道编号 3 可绑定电流 0.8
  • 文本控件支持在文本内容中使用 %1%2 等占位符展示多个编号。例如配置编号序列为 1,2,3,文本写成:

    转速:%1 rpm
    电压:%2 V
    电流:%3 A

    控件刷新时会把 %1%2%3 替换为当前通道值。

    控件发送数据格式

    控制类控件可以按两种方式发送数据:协议发送和绑定命令面板。

    协议发送模式下,控件按自身配置生成一包数据:

  • 未勾选 Unify 时,发送 TEXT 协议格式文本行。
  • 勾选 Unify 时,发送符合 Unify 协议的二进制包。
  • Unify 工作区控制包的数据段为 5 字节:

    byte0: 指令 ID
    byte1..byte4: 控件值,小端序

    整数控件会构造 WORKSPACE_INT32_TO_DEVICE 数据包,浮点控件会构造 WORKSPACE_FLOAT_TO_DEVICE 数据包。帧头包含数据类型、窗口 ID、序号、数据长度、数据校验和帧头校验。

    TEXT 协议模式更适合人眼可读控制命令,例如:

    {workspace}set_pwm:300

    Unify 模式更适合下位机按二进制协议稳定解析,尤其是控件较多、需要指令 ID 区分来源时。

    绑定命令面板命令

    待补充:绑定命令面板命令截图

    绑定命令面板时,工作区控件本身不直接构造协议包,而是等同于点击命令面板中的某条命令或某个命令组。配置窗口里可以从下拉框选择:

  • 根级命令。
  • 某个分组。
  • 某个分组内的具体命令。
  • 如果绑定的是分组,触发控件时会按命令面板的组内顺序发送。绑定目标失效时,控件会显示绑定异常提示,需要重新选择命令或命令组。

    命令内容可以使用占位符读取控件当前值:

    set_pwm:%d
    set_voltage:%.2f
    AA 55 %ID %LE CC
    AA 55 %ID %BE CC

    TEXT 模式下 %ID 表示指令名称;HEX 模式下 %ID 表示指令 ID。%LE%BE 用于把控件当前值按小端或大端写入 HEX 命令。

    推荐工作流

  • 先完成普通通信和协议解析,确认接收区或绘图窗口已经能看到正确数据。
  • 新建自由工作区,添加需要的显示控件。
  • 为显示控件配置通道组和通道编号。
  • 添加按钮、滑块、开关等控制控件。
  • 简单控制用协议发送;复杂流程或已有命令复用用命令面板绑定。
  • 保存配置工程文件,避免项目切换后丢失布局和绑定关系。
  • 注意事项

  • 指令 ID 建议保持唯一,避免下位机无法区分控件来源。
  • 绑定命令面板时,先在命令面板里单独验证命令可用,再绑定到控件。
  • 工作区布局和命令集都适合随配置工程文件保存。
  • 长时间运行时,工作区曲线点数会受 24 小时运行模式限制,以降低内存占用。
  • > 本文为 AI 辅助生成内容

    阅读全文 →

    AI与自动化

    通过MCP让AI控制软件

    概述

    纸飞机调试助手内置本地 Control HTTP API,并通过 MCP 服务把这些能力暴露给 Cursor 等支持 MCP 的 AI 客户端。它不是单纯的“文档问答”,而是让 AI agent 在本机受控访问纸飞机:查询串口、切换通信模式、打开设备、收发数据、读取窗口文本、管理命令面板、操作自由工作区、查询绘图数据等。

    本地 Control API 默认关闭,需要用户主动开启;服务仅监听本机地址,并使用 Bearer Token 鉴权。

    启用方式

    待补充:MCP 服务设置截图

    常规方式:

  • 打开纸飞机调试助手。
  • 完成授权验证。
  • 进入 设置 -> MCP 服务设置
  • 勾选 启用本地 MCP HTTP 服务
  • 记录服务地址和 Device ID。Device ID 用作 Bearer Token。
  • 释放并部署 MCP Python 服务。
  • 在 AI 客户端的 MCP 配置中填写 Python MCP 服务和环境变量。
  • 部署完成后在功能菜单下启用MCP HTTP服务
  • AI 客户端配置要点

    待补充:AI 客户端 MCP 配置截图

    MCP 服务需要知道两个环境变量:

    COMASSISTANT_URL=http://127.0.0.1:17340
    COMASSISTANT_TOKEN=<软件中显示的 Device ID>

    推荐先做健康检查:

  • diag_ping_comassistant()(或 GET /v1/health):确认纸飞机 Control API 可访问。
  • diag_ping_mcp 仍可通过 mcp_invoke 调用(冷工具),仅返回 MCP Python 进程身份,一般不单独使用。

    如果 MCP 客户端能启动但工具报错,优先检查 COMASSISTANT_URLCOMASSISTANT_TOKEN、软件是否已授权、MCP HTTP 服务是否已启用。

    可自动化的功能

    MCP 能力覆盖以下常见场景:

  • 通信:串口列表、串口打开/关闭、网络连接/断开、HID 打开/关闭。
  • 收发:直发数据、读取接收缓冲、点击发送按钮、读写发送区。
  • 显示:HEX 显示、HEX 发送、文本编码、回车风格、窗口文本读取。
  • 协议:读取当前协议、切换绘图协议、获取协议说明。
  • 命令面板:读取命令树、创建组、添加命令、移动命令、发送单条或整组。
  • 可视化:绘图窗口、曲线数据、数值显示器、频谱图、图像调试状态。
  • 工作区:列出工作区、创建控件、移动控件、更新控件、读取网格信息。
  • 文件与记录:文件发送、实时数据记录、保存原始数据、保存显示数据。
  • 应用控制:窗口置顶、标题后缀、调试日志、24 小时运行模式。
  • 使用边界

    AI agent 操作硬件时要区分三类发送方式:

  • device_send(data, format):直接向设备发数据,不经过发送区 UI。
  • send_area_set(text) + send_button():写入发送区,再模拟点击发送按钮。
  • command_panel_send_command() / command_panel_send_group():模拟命令面板发送。
  • 需要复现用户界面行为时,优先选择 UI 对应接口;需要精确发一包数据时,选择直发接口。不要把三者混用,否则容易出现 HEX 发送状态、换行规则或命令面板延时与预期不一致。

    安全建议

  • Control API 只应暴露在本机,不要映射到公网。
  • 不要把 Device ID / Bearer Token 写进公开仓库。
  • AI 修改 Lua 脚本前,应先读取脚本头部说明,不要删除内置绑定函数。
  • 长时间自动化测试建议开启实时数据记录,并确认输出目录空间充足。
  • 常见问题

    为什么菜单里的 MCP 服务是灰色或不可用?

    MCP HTTP 服务需要授权后使用。先完成在线账户登录或离线授权验证,再打开 MCP 服务设置。

    AI 报 HTTP 502,浏览器打开健康接口却是 unauthorized?

  • 浏览器裸访问 /v1/health 得到 {"ok":false,"error":"unauthorized"} 表示 HTTP 服务已在听(401),不是服务挂了。
  • 纸飞机 不会返回 502;AI/MCP 看到的 502 多半是 Token/代理/端口问题。
  • 让 AI 调用热工具 diag_connectivity()(或先 diag_ping_comassistant),按返回的 cause / next_steps 排查。
  • 核对 MCP 环境变量 COMASSISTANT_TOKEN 是否等于设置里的 Device ID,改完后重启 MCP。
  • MCP 和 Lua 怎么分工?

    Lua 更适合在纸飞机内部处理收发钩子、过滤、自动应答等实时逻辑;MCP 更适合让外部 AI agent 编排调试流程、读写配置、查询状态和整理数据。

    > 本文为 AI 辅助生成内容

    阅读全文 →

    Lua数据处理

    Lua介绍

    Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

    功能介绍

    纸飞机通过集成Lua脚本,可以在不损失性能的情况下,更灵活的让用户自定义的处理数据。这在曲线滤波、文本数据更换(增删改)等场合下特别适用。同时,经过笔者评估,Lua的学习并不难,因为大多数情况下,我们还是只用到了常见的那几个Lua语法。 把本文喂给AI,可让AI直接帮你写Lua脚本

    功能演示

    功能使能

    我们可通过以下路径打开Lua功能 在这里插入图片描述 打开后,纸飞机会自动在软件目录下新建:

  • 快速教程文件:lua_quick_manual.html
  • Lua脚本文件:ComAssistant.lua
  • 脚本日志文件:ComAssistant.lua.log
  • 在这里插入图片描述 在这里插入图片描述

    快速教程文件

    Luau快速教程文件是笔者为方便降低大家学习Lua的门槛,亲自整理的一个文档,只覆盖了常用的Lua语法,大约只需要翻6次屏幕就可以阅读完,用浏览器即可打开,这里不再展开赘述

    在这里插入图片描述

    Lua脚本文件

    该文件是整个功能的核心,里面主要是内置了一些预定义函数和预定义变量,纸飞机会调用这些函数或变量。

    --[[
    
        # Lua教程:纸飞机在软件目录下释放了简短的入门教程文件,您也可以访问https://www.runoob.com/lua/lua-tutorial.html进行系统的学习
        # 所有下划线__开头的变量会被纸飞机调用:
            不可修改/删除名字和值;
        # 所有下划线__开头的函数会被纸飞机调用:
            不可修改、删除函数名称;
            不可修改参数顺序、个数
            不可修改返回值类型、个数;
            但你可修改函数内部的实现,也可以添加自定义的函数
        # 任何语法错误会导致脚本整体失效,请认真检查您的脚本
        # 本文件的编码格式约定为UTF-8,使用LF作为换行符
    --]]
    
    -- 脚本文件版本
    __version = 1
    
    -- 函数功能:初始化函数,打开Lua功能后会执行一次
    function __init()
        io.output(io.open('ComAssistant.lua.log', 'a'))   -- 重定向输出到文件,用于调试
    end
    
    -- 函数功能:反初始化函数,关闭Lua功能后会执行一次
    function __deinit()
        io.close()
    end
    
    -- 函数功能:该函数打印调试日志,日志会被打印到ComAssistant.lua.log文件
    function print(data)
        io.write(os.date("%Y-%m-%d %H:%M:%S ") .. data .. "\n")
        io.flush()
    end
    
    -- 函数功能:该函数实现自动应答功能
    -- 输入参数data:纸飞机收到的原始数据
    -- 返回参数:当ackData不为空时,纸飞机会将它发送出去
    function __auto_reply(data)
        ackData = ""
        return ackData
    end
    
    -- 函数功能:该函数对发送的数据进行处理
    -- 输入参数data:纸飞机计划发送出去的数据
    -- 返回参数:纸飞机即将发送出去的数据
    function __before_send(data)
        return data
    end
    
    -- 函数功能:该函数对即将显示到绘图器上的数据进行处理
    -- 输入参数window: 当前数据所属的窗口,类型为字符串
    -- 输入参数data:即将显示到绘图器窗口的曲线数据,类型为数组
    -- 返回参数:纸飞机将使用返回的数据显示到绘图器上,类型为数组
    function __before_plotter_window(window, data)
        return data
    end
    
    -- 函数功能:该函数对即将显示到频谱仪上的数据进行处理
    -- 输入参数window: 当前数据所属的窗口,类型为字符串
    -- 输入参数data:即将显示到频谱仪的曲线数据,类型为数组
    -- 返回参数:纸飞机将使用返回的数据进行FFT运算,类型为数组
    function __before_fft_window(window, data)
        return data
    end
    
    -- 函数功能:该函数对即将显示到过滤器上的数据进行处理
    -- 输入参数window: 当前数据所属的窗口,类型为字符串
    -- 输入参数data:即将显示到过滤器窗口的一行数据,类型为字符串
    -- 返回参数:纸飞机将使用返回的数据显示到过滤器上,类型为字符串
    function __before_filter_window(window, data)
        return data
    end
    
    -- 函数功能:该函数对即将显示到数据分窗器上的数据进行处理
    -- 输入参数window: 当前数据所属的窗口,类型为字符串
    -- 输入参数data:即将显示到数据分窗窗口的一行数据,类型为字符串
    -- 返回参数:纸飞机将使用返回的数据显示到数据分窗器上,类型为字符串
    function __before_spliter_window(window, data)
        return data
    end

    用户需要理解这段代码,但简单来讲,其实就是对应的功能在显示前额外执行了一个钩子函数,方便我们对数据进行预处理,大概数据流图如下:

    数据接收 ---> 数据提取/解析 ---> lua脚本 ---> 数据显示

    假设我们要对[[04-filter数据过滤]]的数据增加前缀HELLO_PREFIX:,那么其对应的脚本钩子函数为

    __before_filter_window,我们可以重新修改其实现

    -- 函数功能:该函数对即将显示到过滤器上的数据进行处理
    -- 输入参数window: 当前数据所属的窗口,类型为字符串
    -- 输入参数data:即将显示到过滤器窗口的一行数据,类型为字符串
    -- 返回参数:纸飞机将使用返回的数据显示到过滤器上,类型为字符串
    function __before_filter_window(window, data)
    	-- 使用两个点..来进行字符串拼接
        return "HELLO_PREFIX:"..data
    end

    那么Lua处理效果如下

    在这里插入图片描述 在这里插入图片描述

    可以看到,main窗口收到的数据是没有HELLO_PREFIX:信息的,但是filter窗口会多出这么一个数据,正是Lua脚本在起作用。

    阅读全文 →

    自动应答功能

    功能介绍

    纸飞机串口调试助手支持在收到特定的数据后,自动回复(发送)数据给对端设备。

    功能演示

    首先打开该功能 在这里插入图片描述 随后,软件会弹出一个交互界面 在这里插入图片描述 可以看出,配置项有3列数据

  • 数据形式:每行可单独选择 Text(文本)或 Hex(十六进制,字节间用空格分开);同一配置表可混合两种形式
  • 匹配数据:纸飞机发现数据可以匹配上时,将会发送应答包的数据
  • 应答数据:同上
  • 表格显示与编辑:

  • 非编辑态:内容不超过 2 行时完整显示;超过 2 行时只显示前 2 行,第 3 行显示 ...(悬停可看全文)
  • 编辑态(双击单元格):行高按「内容行数 + 1」增长,最多 5 行,再多可用滚动条浏览
  • 在空白区域右键即可快速添加新一行的自动应答配置。导入配置前若表格已有内容会要求确认,确认后整表替换;导入/确定时会对 Hex 行做格式校验,非法行会丢弃并提示。也可通过导出功能备份当前配置。

    在这里插入图片描述

    如果是十六进制数据匹配,则配置参考如下:

    在这里插入图片描述 自动应答功能支持多行数据,因此要特别注意换行符的格式设置要和对端一致,参考配置如下:

    在这里插入图片描述 如果是中文数据,则必须要关注编码规则,参考配置如下:

    在这里插入图片描述

    测试效果如下:

    在这里插入图片描述

    注意事项:

  • 多条应答配置请不要有包含的关系,否则可能会有不确定性问题,比如:
  • 第一个配置参数:匹配:123,应答:456;

  • 第二个配置参数:匹配:1,应答:7;
  • 阅读全文 →

    常见自动化场景

    概述

    自动化的目标是减少重复点击、重复输入和重复判断。纸飞机调试助手中常见的自动化能力包括自动应答、Lua 数据处理、命令面板、实时记录、数据导出,以及面向 AI agent 的 MCP 工作流。

    不同自动化方式适合不同层级:

  • 自动应答:适合收到固定内容后返回固定响应。
  • 命令面板:适合人工触发的常用命令。
  • Lua:适合对收发数据做预处理、追加前缀、过滤、转换和日志记录。
  • MCP:适合让 AI agent 根据文档和上下文辅助分析与编排。
  • 操作步骤

  • 先明确自动化目标:减少输入、自动回复、自动转换、自动记录,还是自动分析。
  • 判断触发条件:人工点击、收到某段数据、定时记录、文件导出或 AI 指令。
  • 选择合适工具:
  • - 固定命令优先使用分组命令集。 - 固定回复优先使用自动应答。 - 数据改写和钩子逻辑优先使用 Lua。 - 复杂分析和报告整理可使用 AI agent。

  • 用小数据先测试,确认不会误发危险命令。
  • 保存配置工程文件,便于后续复用。
  • 示例场景

    自动回复设备握手

    当设备发送 READYLOGIN 或自定义握手字段时,可以配置自动应答,返回固定确认命令。

    给日志追加前缀

    当不同窗口或不同数据源需要区分时,可以使用 Lua 在显示前给数据追加前缀。

    自动整理调试报告

    将实时记录文件、导出的曲线数据和关键日志交给 AI agent,总结复现步骤、异常现象和可能原因。

    常见问题

    自动化会不会误操作设备?

    有可能。任何会发送命令、写参数、升级固件或擦除数据的自动化,都应先在安全环境中测试。

    自动应答和 Lua 应该怎么选?

    固定输入对应固定输出时用自动应答;需要计算、改写、判断或调用多个钩子时用 Lua。

    自动化配置如何复用?

    建议与配置工程文件一起保存,并在文件名中写明项目、设备和用途。

    > 本文为 AI 辅助生成内容

    阅读全文 →

    数据存储与安全

    多格式数据导出

    功能介绍和演示

    纸飞机调试助手支持数据导出功能,纸飞机调试助手的数据概念包括:原始数据、显示数据、曲线数据等。

  • 原始数据:纸飞机收到的未经任何处理的数据;
  • 显示数据:显示在界面上的数据,包括软件上显示的时间戳,不可见的非文本字符会被剔除;
  • 曲线数据:各个绘图窗口里的数据;
  • 在文件按钮下,即可按需要将数据导出

    在这里插入图片描述

    对于原始数据,导出的文件格式为DAT,可用文本编辑器或者十六进制编辑器打开。 对于显示数据,导出的文件格式为TXT,可用文本编辑器打开。 对于曲线数据,导出的文件格式为XLSX、CSV、TXT、MAT,可用Excel、文本编辑器、Matlab等软件打开。

    曲线数据也支持复制图片到剪贴板,方便快速移动到Word等富文本文档中

    在这里插入图片描述

    由于纸飞机调试助手支持多窗口,所以也支持指定窗口导出和全部窗口导出。

    阅读全文 →

    24小时运行模式

    概述

    24 小时运行模式用于长时间无人值守调试。开启后,纸飞机会限制部分组件的缓存上限,定期裁剪接收、发送、显示和绘图相关缓存,以降低内存持续增长的风险。

    该模式适合长时间稳定性测试、老化测试、环境测试、现场值守记录等场景。它的目标是“让软件更适合长时间挂着跑”,不是“自动保存所有数据”。

    开启方式

    待补充:24小时运行模式入口截图

    在软件中打开 功能 -> 24小时运行。开启时软件会提示:

  • 该功能将限制各组件缓存上限以控制内存占用,适合长时间无人值守运行。
  • 如需保存数据,建议搭配实时数据记录使用,避免数据保存不完整。
  • 确认后,状态栏会显示 24 小时运行状态。关闭该模式后,主绘图器和工作区曲线的点数限制会恢复。

    模式影响

    开启后会进行这些限制:

  • 限制主绘图器最大点数。
  • 限制自由工作区曲线图最大点数。
  • 定期裁剪接收缓冲和发送缓冲。
  • 定期裁剪主接收区显示文本。
  • 定期裁剪数据分窗和过滤窗口显示文本。
  • 降低长时间运行时内存持续上涨的概率。
  • 由于旧数据会被裁剪,界面上不一定能保留完整历史。需要完整数据时必须同时使用实时数据记录或导出功能。

    建议搭配

  • 开启 03-实时数据记录仪,把原始数据、显示数据或曲线数据写入磁盘。
  • 保存配置工程文件,保证通信参数、协议、工作区和命令面板可复现。
  • 对长期测试设置清晰的文件目录,避免记录文件和截图混在一起。
  • 关闭不必要的数据分窗、过滤窗口和高频图像刷新,减少内存和 CPU 压力。
  • 注意事项

  • 24 小时运行模式会控制内存,但不会替代数据记录。
  • 开启数据分窗和过滤会增加内存消耗,长时间运行时只保留必要窗口。
  • 大量曲线、高刷新率图像、低性能电脑或远程桌面环境都可能影响稳定性。
  • 测试前先短时间试跑,确认通信、记录路径和磁盘空间都正常。
  • 如果需要 AI agent 自动启停,可通过 MCP 的 run_24hour_get() / run_24hour_set(enabled) 操作。
  • 常见问题

    开启后历史数据为什么变少了?

    这是预期行为。24 小时运行模式会裁剪缓存和显示内容来控制内存。需要完整历史请开启实时数据记录。

    开启后曲线点数为什么被限制?

    为了避免曲线点无限增长导致内存和绘图压力过大。关闭 24 小时运行模式后,曲线点数限制会恢复。

    能不能只靠这个模式保存长期测试数据?

    不能。它负责降低长时间运行风险,不负责完整落盘。长期测试建议同时开启实时数据记录。

    > 本文为 AI 辅助生成内容

    阅读全文 →

    实时数据记录仪

    功能介绍

    纸飞机调试助手支持实时存储数据的功能,定时将收到的数据存储到硬盘里,这里的数据包括:原始数据、显示数据、曲线数据等。

  • 原始数据:纸飞机收到的未经任何处理的数据,存储为DAT格式文件,可以使用文本编辑器或者十六进制编辑器打开;
  • 显示数据:显示在界面上的数据,比如软件上显示的时间戳会被记录在显示数据里、不可见的非文本字符不会被记录在显示数据里,存储为TXT格式文件,可以使用文本编辑器打开;
  • 曲线数据:各个绘图窗口里的数据,软件会默认给每一个数据点添加时间戳(注意它和发送按钮旁边的时间戳功能无关),存储为CSV格式文件,可以使用文本编辑器或者Excel打开;
  • 功能演示

    根据自己需要,打开对应的功能 在这里插入图片描述 在端口未打开的时候,你可以选择一个文件夹存储记录的日志,在端口已经打开的情况,纸飞机调试助手会自动在程序所在路径新建一个目录用于存储日志。

    配置完成后,纸飞机收到任何数据,都会将其实时写入硬盘里,如下图 在这里插入图片描述

    main-rawdata.dat就是原始数据

    main-showdata.txt就是显示

    filter.txt就是filter窗口里的数据

    plotter.csv就是plotter绘图窗口里的数据

    README.txt是一个文本说明文档

    阅读全文 →

    意外断电数据保障

    功能介绍

    纸飞机串口调试助手十分在意用户数据的安全,因此纸飞机会定时将收到的数据写入到软件所在目录下的Recovery文件里。一旦发生电脑意外断电,或者软件在非正常模式下退出,硬盘都会存储一份刚刚收到的数据,用户可以自由的选择将其丢弃还是备份。

    功能演示

    当软件正常工作时,会生成一个Recovery文件临时存储收到的数据 在这里插入图片描述 若软件非正常行为退出(如突然断电),在下次启动软件时,软件会提示我们如何处理该文件,我们可以选择备份文件,或者丢弃。 在这里插入图片描述

    阅读全文 →

    其他特色功能

    配置工程文件

    功能介绍

    配置工程文件其实就是配置文件的重命名,这样纸飞机调试助手就可以通过不同的配置文件来快速切换成不同的工作模式。

    功能演示

    首先,需要保存一个配置工程文件

    在这里插入图片描述

    保存后将会生成一个zfj后缀的文件 在这里插入图片描述

    这个文件会默认绑定到纸飞机调试助手,双击即可自动使用打开

    阅读全文 →

    自定义软件标题后缀

    功能介绍

    纸飞机支持用户自定义设置软件标题,这样通过标题就可以快速知道其目的。

    通过以下路径即可自定义后缀

    在这里插入图片描述

    效果如下

    在这里插入图片描述

    注意 后缀名是存储在配置文件里的,如果需要多开文件,需要将软件复制在不同目录下以避免多个软件访问同一个配置文件,造成配置被覆盖。或者可以使用[[01-配置工程文件]]功能。

    阅读全文 →

    购买与支持

    试用与授权

    纸飞机调试助手支持试用、在线账户授权和离线账户授权。请先充分试用,确认功能和账户类型符合需求后再授权。

    在线账户和离线账户的区别

    在线账户适合电脑可以联网、并且希望账号随电脑切换使用的场景。在线账户授权与订单绑定,使用时需要联网。

    离线账户适合电脑长期离线、现场网络受限、内网设备或涉密环境。离线账户授权与电脑绑定,授权后使用通常不需要网络,但授权变更仍需要联网或通过其他电脑辅助。

    注意:

  • 在线账户和离线账户不互通。
  • 买错账户类型时,请勿授权,先申请退款重买。
  • 订单一旦完成授权,通常不再处理退款请求。
  • 离线账户不可随意更换电脑;更换电脑前需要在原电脑上联网解除授权。
  • 在线账户授权步骤

    待补充:在线账户授权界面截图

  • 打开纸飞机调试助手。
  • 在授权账户引导中选择 我是在线账户
  • 点击"账户管理"按钮,在弹出的网页下方找到"立即注册"(或直接访问链接:https://www.comassistant.cn/login/portal/register.php)。
  • 使用注册的账户在软件内进行登录
  • 软件联网校验通过后,授权状态会更新为已授权。
  • 登录纸飞机在线账户管理门户:https://www.comassistant.cn/login/portal/register.php 注册纸飞机在线账户:https://www.comassistant.cn/login/portal/login.php

    离线账户授权步骤

    待补充:离线账户授权界面截图

  • 打开纸飞机调试助手。
  • 在授权账户引导中选择 我是离线账户
  • 在授权窗口中确认或切换到离线授权模式。
  • 填写订单号和邮箱。
  • 点击 授权即可
  • 授权验证通过后,按提示重启纸飞机使配置生效。
  • 注意:离线账户只是平时使用不需要联网,但授权状态的更新(如授权、解除授权、更换电脑)仍然需要网络。

    完全无网络电脑怎么办

    如果目标电脑不能联网,可以在目标电脑上打开离线授权窗口,复制机器码、订单号等信息,通过 U 盘或其他受控方式带到可联网电脑,在离线授权页面获取授权码,再把授权码带回目标电脑粘贴到软件中完成授权。

    请优先使用复制粘贴,不要手工输入长机器码或授权码。机器码数量不足时,先点击 刷新机器码 后再重试。

    离线授权页面地址为 https://www.comassistant.cn/authorize/auth.html

    授权前确认

    点击授权时,软件会要求输入 YES 进行二次确认。请确认你已经了解:

  • 应充分试用后再授权。
  • 授权后不再接受退款申请。
  • 离线账户订单号会和电脑绑定,短期内无法更换电脑。
  • 授权并非永久,有效期以下单信息为准。
  • 更换电脑前需要在原电脑上联网解除授权。
  • 常见问题

    在线账户和离线账户可以互相切换吗?

    不互通。购买前请确认使用场景。买错且尚未授权时,建议先退款重买。

    离线授权失败怎么办?

    检查订单号、邮箱、机器码和授权码是否复制完整,确认没有使用错误账户类型生成授权码。机器码数量不足时点击 刷新机器码 后重试。

    为什么提示机器码数量太少?

    机器码越完整,授权状态越稳定。软件会在机器码数量不足时提示风险,建议先刷新机器码,再决定是否继续授权。

    换电脑后怎么办?

    在线账户通常更适合切换电脑。离线账户换电脑前需要在原电脑上联网解除授权,然后再到新电脑授权。

    > 本文为 AI 辅助生成内容

    阅读全文 →

    反馈与支持

    概述

    如果在使用纸飞机调试助手时遇到问题,可以先通过文档、常见问题和更新日志确认是否已有解决方案。反馈问题时,请尽量提供可复现的信息,这会显著提高定位效率。

    有效反馈通常包括:

  • 软件版本号。
  • 操作系统版本。
  • 使用的通信模式:串口、TCP、UDP、HID 或终端模式。
  • 设备参数:串口号、波特率、IP、端口、协议类型等。
  • 复现步骤。
  • 期望结果和实际结果。
  • 截图、日志、导出的数据文件或配置工程文件。
  • 操作步骤

  • 先阅读对应功能文档和 03-常见问题
  • 确认使用的是最新版本,必要时通过 下载与链接 获取新版本。
  • 准备复现步骤和必要附件。
  • 如果涉及账号或授权问题,准备购买信息、账户类型和授权方式。
  • 通过官网、购买渠道或作者提供的支持入口反馈。
  • 反馈模板

    软件版本:
    操作系统:
    通信模式:
    设备或协议:
    问题现象:
    复现步骤:
    期望结果:
    已尝试操作:
    附件说明:

    常见问题

    只发一句“不能用”可以定位吗?

    很难。请至少提供软件版本、操作步骤、截图和数据样例。

    反馈前需要更新到最新版吗?

    建议先更新。很多问题可能已经在新版本中修复。

    涉及隐私的数据可以发吗?

    建议先脱敏。删除客户名称、账号、密钥、设备唯一编号等敏感内容后再反馈。

    > 本文为 AI 辅助生成内容

    阅读全文 →

    常见问题

    概述

    本文汇总纸飞机调试助手常见使用问题。具体功能的详细说明请优先查看左侧目录中的专题文档。

    通信连接

    串口打不开怎么办?

    检查串口是否被其它软件占用,确认串口号正确,并检查 USB 转串口驱动是否正常。必要时拔插设备后重新选择串口。

    网络连接失败怎么办?

    检查本机 IP、远程 IP、端口号、防火墙和服务端是否已经启动。TCP 客户端需要连接到已存在的服务端,TCP 服务端需要先监听端口。

    HID 设备找不到怎么办?

    确认设备枚举正常,检查 VID、PID、接口号和驱动状态。部分设备需要重新插拔或切换工作模式。HID 下拉列表可能显示很多设备,但只有自定义 HID 设备适合通信调试。

    数据显示

    为什么看到乱码?

    可能是编码、波特率、数据格式或显示方式不匹配。先打开十六进制视图确认原始字节,再判断是文本编码问题还是通信参数问题。中文乱码时重点检查编码规则。

    为什么出现多次换行?

    检查回车样式。Windows 风格通常是 \r\n,Unix 风格通常是 \n。如果设备已经发送换行,而发送区或显示设置又追加了换行,就可能出现多次换行。

    文本发送和 HEX 发送有什么区别?

    文本发送会把输入内容按字符编码发送;HEX 发送会把输入内容按十六进制字节解释。调试 TEXT、STAMP、ASCII、CSV 等文本协议时,通常不要勾选 HEX 显示和 HEX 发送。

    过滤后数据不见了怎么办?

    先清空过滤条件,确认原始接收正常。再逐个添加关键词,避免规则过严。长时间记录数据时,如果不需要过滤结果,建议关闭过滤窗口以减少资源占用。

    绘图与协议

    应该选哪个绘图协议?

    文本日志优先考虑 TEXT、CSV、STAMP 或 CUSTOM;二进制数据可考虑 EasyHex 或 ModbusRTU。详细建议见 协议的选择和推荐

    曲线没有显示怎么办?

    检查协议格式、数据分隔符、换行符、窗口名和数值列是否符合协议要求。先用文档中的示例数据测试,再替换成自己的数据。

    TEXT 协议和 STAMP 协议有什么区别?

    TEXT 协议由电脑收到数据时自动打时间;STAMP 协议由下位机在数据中提供计数戳或时间戳,更适合对时序有明确要求的绘图。

    ModbusRTU 可以解析请求帧吗?

    纸飞机主要解析符合 03 / 04 功能码应答帧风格的数据并绘图。请求帧可用命令面板发送,接收绘图通常看设备返回的应答帧。

    文件与数据安全

    长时间运行如何保存数据?

    建议开启实时数据记录,并定期检查磁盘空间。对于关键测试,也可以保存配置工程文件,确保环境可复现。

    24 小时运行模式是不是自动保存?

    不是。24 小时运行模式主要限制缓存和绘图点数,降低长时间运行时的内存压力。需要完整数据请搭配实时数据记录。

    意外断电后数据还能找回吗?

    软件提供意外断电数据保障能力。重新打开软件后,根据提示选择恢复或丢弃临时数据。重要测试仍建议实时记录到磁盘。

    保存原始数据和保存显示数据有什么区别?

    保存原始数据会尽量保留收到的原始字节;保存显示数据保存的是界面上看到的内容,可能包含时间戳,也可能丢失不可见字符。需要重新解析或复盘协议时优先保存原始数据。

    操作排查顺序

    遇到问题时建议按这个顺序排查:

  • 确认软件版本。
  • 确认通信参数。
  • 确认原始数据是否正常。
  • 切换到十六进制视图查看原始字节。
  • 暂时关闭过滤、高亮、自动应答和脚本。
  • 使用文档示例数据验证功能本身。
  • 保存截图、日志和配置后反馈问题。
  • 授权与支持

    试用期内可以绘图吗?

    可以。软件授权确认窗口也会提示:应充分试用后再授权,试用期内未授权也可绘图。

    授权后可以退款吗?

    授权确认时会提示:授权后不再接受退款申请。请先确认账户类型和功能需求,再完成授权。

    换电脑前需要注意什么?

    离线账户通常和电脑绑定,更换电脑前需要在原电脑上联网解除授权。在线账户更适合需要在多台电脑之间切换的场景。

    文档里没有我的问题怎么办?

    请查看相关功能章节,或按 02-反馈与支持 中的模板整理信息后反馈。

    > 本文为 AI 辅助生成内容

    阅读全文 →

    更新日志

    概述

    更新日志用于了解软件版本变化、功能新增、问题修复和兼容性调整。遇到异常时,建议先确认自己使用的版本是否较旧,再查看发布记录中是否已有相关修复。

    在线发布记录入口:

  • https://www.comassistant.cn/request/ReleaseNote.html
  • 操作步骤

  • 打开软件,查看当前版本号。
  • 打开发布记录页面,确认是否有更新版本。
  • 阅读新版本的新增功能、修复项和注意事项。
  • 如果当前问题已在新版修复,下载最新版本并重新验证。
  • 更新前建议备份配置工程文件和重要数据。
  • 建议关注的内容

  • 通信相关修复:串口、网络、HID、终端模式。
  • 数据显示修复:HEX 显示、关键词高亮、过滤、分窗。
  • 绘图相关修复:协议解析、曲线显示、窗口管理。
  • 数据安全修复:实时记录、导出、断电恢复。
  • 授权相关调整:在线账户、离线账户、设备授权。
  • 常见问题

    是否必须总是使用最新版?

    如果当前版本稳定且满足需求,可以继续使用;如果遇到问题,建议先升级到最新版验证。

    更新会覆盖配置吗?

    正常情况下不应覆盖用户配置,但重要项目建议先备份配置工程文件。

    旧版本在哪里下载?

    可参考 下载与链接 中的旧版本下载入口。

    > 本文为 AI 辅助生成内容

    阅读全文 →