为什么叫VOFA+?#
Volt/伏特、Ohm/欧姆、Fala/法拉、Ampere/安培,是电气领域的基础单位,与他们的发明者——4位电子物理学领域的科学巨人,分别同名。
他们的首字母共同构成了VOFA+的名字,作者想向大家传达VOFA+的愿景——在与电气打交道的领域里,如自动化、嵌入式、物联网、机器人等,都能看到VOFA+的身影。同时寓意每一位使用VOFA+的工程师,都可以站在巨人的肩膀上不断创新和探索。
设计理念#
人们为了建立与计算机交互的渠道,发明了命令行,但由于使用命令行要求人们像机器一样思考和发送指令,只有少数专家才能顺畅使用。 直到人们发明了图形界面,以一种感官动物习以为常的操作逻辑,才让更多人有充分发挥计算机优势的能力,推动了人类社会进入了信息时代。
在嵌入式硬件的调试中,尽管效率低下,工程师们还是十年如一日地使用着串口助手、超级终端这种命令行风格的数据收发工具,对硬件进行调试。
以下几个原因限制了硬件工程师在调试中使用图形界面:
- 对于硬件IO,直接输出字节流,编程难度最低;
- 如果使用功能相近的行业专用上位机来进行图形化,需要处理复杂的协议;
- 为了一个临时的调试需求,开发专用上位机,工作量大,得不偿失;
- 工程师同时懂硬件、又懂软件,可遇不可求。
VOFA+致力于降低图形化调试的门槛:
- 保留了传统字节流调试助手风格的数据收发功能,以应对非图形化调试需求;
- 通过直观极简的协议设计和方便快捷的命令绑定,硬件工程师无需处理复杂的协议逻辑,只需以面向串口助手的编程方式,就能获得强大的数据可视化、数据分析、使用控件发送指令的能力;
- 拥有一个可裁剪的系统,"丰俭由人"。通过添加控件的方式,工程师可以定制一个无限丰富的调试界面;也可以仅仅使用极简的字节流收发界面,无须担忧系统占用繁重;
- 拥有一个开放、开源的插件系统:
- 用户可以定制符合自己需求的协议和控件;
- 通过开源社区的力量,VOFA+的调试生态可以不断发展繁荣。
VOFA+特点概览#
- 平台支持:Windows、Linux、MacOS;
- 接口支持:串口(超高波特率,稳定支持)、网口(TCP客户端/服务端,UDP);
- 协议支持:协议为插件,已开源,人人可编写。目前已支持CSV风格的字符串协议,和十六进制浮点数组形式的字节流协议;
- 控件支持:控件为插件,已开源,人人可编写。目前已支持波形图、按钮、状态灯、图片、滑动条、3D立方控件(可更换模型)等;
- 2维度与3维,一个也不能拉下;
- 自主研发的波形控件,支持每通道百万采样点的绘制,性能强劲;
- 自主研发的波形控件,无缝嵌入了实时直方统计和点数可设置的傅里叶变换,可以使用VOFA+进行数据分析。
- 传统字节流收发调试功能依然支持;
- 拖拽方式添加控件,交互流畅自然;
- 快捷的命令、参数绑定系统,发送指令同样优雅。
快速开始
本文目标
本文以FireWater协议为例,教你快速开始第一次波形绘制,让你知道在VOFA+里绘制波形是多么容易的一件事情。
关于协议引擎,您需要注意:
- 不同协议,字节流收发区打印文本的情况有所不同;
- 如果您只是想将本软件当成串口助手使用,选择RawData协议,可以保证接收到什么打印什么;
- 请前往 协议引擎章节查看各协议详情。
绘图步骤#
1. 选择调试方式,并设置好参数#
2. 选择firewater协议引擎#
3. 发送数据#
以Arduino的代码为例:
void setup()
{
Serial.begin(115200);
}
float t = 0;
void loop()
{
t += 0.1;
Serial.print("d: %f, %f\n", sin(t), sin(2*t));
delay(100);
}
协议详情
关于协议的详细信息,请前往 协议引擎 章节查看。
4. 添加波形控件并绑定数据#
- 从控件栏拖出波形图;
- 右键菜单→绑定Y轴;
- 保证绿色条拖动到最右,这样波形图显示的才是最新的数据;
- 点击Auto,保证Y轴量程落在波形最大最小值范围内。