发 帖  
原厂入驻New
[经验]

适用于多任务场景下的纸飞机调试助手

2021-5-5 00:50:22  840 串口 STM32 上位机 调试 操作系统
分享
3
本帖最后由 inhowe 于 2021-5-5 00:55 编辑

背景
在进行嵌入式开发的时候常常会有很多log要打印,随着程序功能的逐渐复杂,log数量也越来越多,要从万千实时刷新的数据流从找到需要的log信息越来越困难和麻烦,如何改善这一现象,提高开发者的效率?纸飞机调试助手针对这个问题进行了专门的思考和设计,引入了一些想法来尝试解决这类问题。


一、关键字高亮特性
第一个想法就是关键字高亮。在技术快速发展的今天,几乎所有开发者的代码编辑器都支持了关键字高亮,通过不同颜色来强调传达不同的信息,使得开发工作有明显的提效,然而大多数调试助手的文本还依然是最简单的白底黑字,最多可以调一个背景色或者字体,在阅读体验上停留在非常原始的级别。于是纸飞机很自然的引入了关键字高亮特性,可以将数字、字符串、标点符号等信息用不同的颜色来表达。
关键字高亮.jpg
二、数据分窗特性
第二个想法就是数据分窗。我们知道操作系统中引入了多任务的概念,每一个任务完成一个特定的功能,任务之间相对独立,互不干扰,那么很自然的,各个任务之间的log数据也可以是独立的,如果能把各个任务的数据显示在不同的窗口,我们就可以筛掉大部分的信息,专注于我们想要关注(正在调试)的任务的log信息。
数据分窗.gif
三、数据过滤特性
数据分窗是一种方法,但是能不能再简单一点?或者再自由一点?纸飞机也提供了一种解决方案:输入任意英文字符作为关键字,自动提取包含关键字的log数据并显示。这和linux系统下的grep命令非常相似,它可以快速帮助我们从数据流中提取想要的log数据。
数据过滤.gif
四、多窗口绘图特性
既然数据分窗功能可以对文本信息进行分窗显示,那为何不增加一个绘图功能,并同时支持分窗显示呢?这样子我的环境监控任务可以绘制一条温湿度曲线,系统监控任务可以绘制一条CPU负载曲线,二者互不干扰。所以,纸飞机也是支持多窗口绘图的,不仅如此,还支持数值表格化显示和频谱图。因此,你可以利用绘图功能观察数据的变化情况,可以利用数值表格化显示来只观察最新的数据,或者频谱图来观察数据的频域信息。
多窗口绘图.gif
五、其他特性
纸飞机调试助手十分重视改善用户的工作体验,因此还有其他很多特性。比如:
  • 纸飞机是一款串口/网络二合一的调试器,互联网概念已经火了很久了,没有理由不支持网络调试模式对不对;
  • 纸飞机内置了HEX转换小工具,可以实现ascii、hex、和float数据的快速相互转换,此外还有ISP下载工具、ASCII码表、运算优先级表等小工具;
  • 纸飞机支持数据实时记录仪,可以实时记录接收的数据(包括原始数据和解析出来的曲线数据)
  • 纸飞机具有数据恢复机制,不用担心因软件意外崩溃丢失了你的重要数据。(尽管它十分稳定,但是有这么一个机制对你的数据安全总是有好处的)
  • 纸飞机具有多样的数据保存功能:原始数据、显示数据、曲线数据、曲线图片等。
  • 纸飞机有Linux版本,这得感谢QT的跨平台特性。

六、如何使用
要使用数据分窗或者多窗口绘图功能,需要按照一定的协议发送数据给纸飞机。
这个协议叫ASCII协议,因为构成十分简单,是具有下列风格的字符串:





  1. "{title:string}\n"

复制代码

其中:
  • title是自定义的英文标题,纸飞机将根据title建立不同的窗口。
  • string是任意英文数据,这些数据将显示在对应title的窗口下。
  • {}是一堆花括号,而\n是一个换行符,不可以省略。

C语言简单改造printf即可使用,举例:





  1. // 首先定义宏函数简化后续工作
  2. #define    PRINT(title, fmt, ...)    printf("{"#title":"fmt"}\n", __VA_ARGS__)

  3. // 若要绘图可以这样使用(两个曲线显示在plotter窗口)
  4. PRINT(plotter,  "%f,%f",  data1, data2);

  5. // 若要分窗显示可这样使用  (电压数据显示在monitor窗口)
  6. PRINT(monitor,  "voltage is %f V", data1);

复制代码



最后,纸飞机调试助手可以通过这个链接进行下载使用。
http://www.inhowe.com/ComAssistant/Eval.html


评论

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发经验
关闭

站长推荐 上一条 /4 下一条

快速回复 返回顶部 返回列表