可视化工具VOFA数据格式介绍

news2024/9/22 5:36:55

目录

概述

1 认识VOFA

1.1 VOFA特点

 1.2 应用简介

2 数据格式介绍

2.1 FireWater格式

2.2 JustFloat格式


概述

本文主要介绍使用可视化工具VOFA打印数据的方法,该工具可以支持字符串类型和float类型的数据可视化操作,使用者只需按照协议要求填充数据即可。笔者通过具体的案例介绍这两类数据的协议格式,并实现其代码。

1 认识VOFA

软件下载地址:

https://www.vofa.plus/

打开页面如下:

1.1 VOFA特点

  • 平台支持:WindowsLinuxMacOS
  • 接口支持:串口(超高波特率,稳定支持)、网口(TCP客户端/服务端,UDP);
  • 协议支持:协议为插件,已开源,人人可编写。目前已支持CSV风格的字符串协议,和十六进制浮点数组形式的字节流协议;
  • 控件支持:控件为插件,已开源,人人可编写。目前已支持波形图、按钮、状态灯、图片、滑动条、3D立方控件(可更换模型)等;
    • 2维度与3维,一个也不能拉下;
    • 自主研发的波形控件,支持每通道百万采样点的绘制,性能强劲;
    • 自主研发的波形控件,无缝嵌入了实时直方统计点数可设置的傅里叶变换,可以使用VOFA+进行数据分析。
  • 传统字节流收发调试功能依然支持;
  • 拖拽方式添加控件,交互流畅自然;
  • 快捷的命令、参数绑定系统,发送指令同样优雅。

 1.2 应用简介

数据引擎,选择数据格式:

JustFloat: 数据类型为float 格式,每个数据占4个byte

FireWater:  字符串格式

RawData:  数据流格式,此时该工具仅仅被作为串口工具使用

串口参数:

配置串口工作的参数,包括端口号和波特率

2 数据格式介绍

2.1 FireWater格式

数据格式

  • any和冒号可以为空,但换行(\n)不可省略;
  • any不可以为"image",这个前缀用于解析图片数据;
  • 此处\n为换行,并非指字符斜杠+字符n;
  • \n也可以为\n\r,或\r\n。
"<any>:ch0,ch1,ch2,...,chN\n"

使用printf函数为例,定义一个数组vallist[10],打印数据方法如下:

    printf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d \r\n", 
            vallist[0],vallist[1],
            vallist[2],vallist[3],
            vallist[4],vallist[5],
            vallist[6],vallist[7],
            vallist[8],vallist[9]);

2.2 JustFloat格式

数据以float的格式发送,每个数据四个字节,数据帧尾以0x7f80000作为结束字节。小端模式其可以被表示为:

{ 0x00, 0x00, 0x80, 0x7f }

#define CH_COUNT <N>
struct Frame {
    float ch_data[CH_COUNT];
    unsigned char tail[4]{0x00, 0x00, 0x80, 0x7f};
};

使用范例如下:
定义一个float类型的数组,使用串口发送数据

void sendJustFloat( void )
{
    float justFloatbuff[10];
    
    for( int i = 0 ; i < 10; i++ )
    {
         justFloatbuff[i] = sin((i+1)*t);
    }

     //发送数据
    Debug_PrintfJustFloat((uint8_t*)justFloatbuff, sizeof(float)*10); 
}


void Debug_PrintfJustFloat( const uint8_t *pData, uint16_t Size )
{
    uint8_t tail [4] = {0x00, 0x00, 0x80, 0x7f};
    
   // send data packet 
   // PRINTWAVE_TX( pData, Size);
   // PRINTWAVE_TX( tail, 4);
    
    HAL_UART_Transmit( &huart2, pData, Size, 1000);
//    if(HAL_UART_Transmit_DMA(&huart2, (uint8_t*)pData, Size)!= HAL_OK)
//    {
//        /* Transfer error in transmission process */
//        Error_Handler();
//    }

     // 发送数据帧尾的数据包
    
     HAL_UART_Transmit( &huart2, tail, 4, 1000);
//    if(HAL_UART_Transmit_DMA(&huart2, (uint8_t*)tail, 4)!= HAL_OK)
//    {
//        /* Transfer error in transmission process */
//        Error_Handler();
//    }
}  

打印数据格式如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2048639.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ stack、queue、priority_queue【介绍、常用接口、模拟实现】

0.容器适配器 0.1什么是适配器 适配器是一种设计模式&#xff0c;该种模式是将一个类的接口转换成客户希望的另外一个接口。 0.2 STL标准库中stack和queue的底层结构 虽然stack和queue中也可以存放元素&#xff0c;但在STL中并没有将其划分在容器的行列&#xff0c;而是将其…

RabbitMQ 消息可靠保障

RabbitMQ 消息可靠保障 消息的可靠性保证生产端到交换机和队列的可靠性保障解决思路A-确认机制解决思路B-备份交换机 MQ 服务器宕机导致消息丢失消费端消息的可靠性保障 消费端限流 消息的可靠性保证 实际项目中 MQ 的流程一般是&#xff1a;生产端把消息路由到交换机&#xf…

树 状 数 组

可差分信息&#xff1a;如果知道部分的信息&#xff0c;用整体的信息和部分的信息就可以求出剩余部分的信息&#xff0c;那么这个信息是可差分的 P3374 【模板】树状数组 1 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include <iostream> #include <vector> u…

【微信小程序】微信小程序开发前的准备

在正式开发微信小程序之前&#xff0c;需要先进行开发前的准备工作&#xff0c;包括&#xff1a; 注册微信小程序开发账号获取微信小程序AppID安装微信开发者工具创建微信小程序项目 一、注册微信小程序开发账号 1. 点击注册按钮 使用浏览器打开 https://mp.weixin.qq.com/…

铁电存储器(FM24W256)I2C读写驱动(3):基于HAL库实现硬件I2C读写

0 参考资料 FM24W256&#xff08;Cypress公司生产&#xff09;数据手册 1 基于HAL库实现硬件I2C读写 1.1 硬件I2C初始化 FM24W256支持最高1MHz的I2C频率&#xff0c;本例也配置为1MHz&#xff0c;相关初始化代码如下&#xff1a; /*** brief 使用硬件I2C的E2P初始化** retur…

【Linux】yum、vim、gcc/g++的使用

目录 一、Linux 软件包管理器 yum 什么是软件包 关于 rzsz 查看软件包★ 如何安装软件★ 如何卸载软件★ Linux 开发工具 二、Linux编译器-vim使用 vim的基本概念 vim的基本操作 vim正常模式命令集 vim末行模式命令集 vim操作总结 如果在vim界面不小心按了Ctrl …

[Meachines] [Medium] solidstate Apache JAMES RCE+POP3邮件泄露+定时任务权限提升

信息收集 IP AddressOpening Ports10.10.10.51TCP:22&#xff0c;25&#xff0c;80&#xff0c;110&#xff0c;119&#xff0c;4555 $ nmap -p- 10.10.10.51 --min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.4p1 Debian 10deb9u…

Processing练习之变换颜色

案例代码如下&#xff1a; import generativedesign.*; import processing.pdf.*; import java.util.Calendar; boolean savePDFfalse; int tileCountX 2; //jianbianshuliang int tileCountY10;//hangshu color[] colorsLeft new color[tileCountY]; color[] colorsRightne…

管道与信号量

一、基本知识 1、管道&#xff0c;是特殊的文件&#xff08;基于内核&#xff08;内存&#xff09;上创建&#xff09;&#xff1b;以前的文件是在硬盘上创建。 2、工作方向 单工&#xff1a;数据方向单一&#xff0c;广播 半双工&#xff1a;同一时刻只能有一个方向&#…

算法【Java】 —— 滑动窗口

滑动窗口 在上一篇文章中&#xff0c;我们了解到了双指针算法&#xff0c;在双指针算法中我们知道了前后指针法&#xff0c;这篇文章就要提到前后指针法的一个经典的使用 —— 滑动窗口&#xff0c;在前后指针法中&#xff0c;我们知道一个指针在前&#xff0c;一个指针在后&a…

Page与自定义Components生命周期

自定义组件 自定义组件一般可以用@component,装饰,在结构体里面用build方法定义UI,或者用@builder装饰一个方法,来作为自定义组件的构造方法 而页面page一般用@Entry,和@component结合起来使用 页面生命周期方法: onPageShow:页面每次显示时触发 onPageHide:页面每次隐藏时…

【LeetCode每日一题】——662.二叉树最大宽度

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 广度优先搜索 二【题目难度】 中等 三【题目编号】 662.二叉树最大宽度 四【题目描述】 给…

《python语言程序设计》2018版第7章第05题几何:正n边形,一个正n边形的边都有同样的长度。角度同样 设计RegularPolygon类

结果和代码 这里只涉及一个办法 方法部分 def main():rX, rY eval(input("Enter regular polygon x and y axis:"))regular_num eval(input("Enter regular number: "))side_long eval(input("Enter side number: "))a exCode07.RegularPol…

C++入门——01类与对象

1.类 1.1.类的引入 C语言中&#xff0c;结构体中只能定义变量&#xff0c;在C中&#xff0c;结构体内不仅可以定义变量&#xff0c;也可以定义函数。 struct Student {void SetStudentInfo(const char* name, const char* gender, int age){strcpy(_name, name);strcpy(_gen…

微信公众号批量上传、发布文章管理系统(Python版)

功能亮点 一键批量操作文章自动排版支持自定义文章数量适用于多号操作支持文章管理、查询、查看支持查询当前状态 适用对象 公众号运营批量文章上传发布矩阵号管理 部分关键代码及步骤 微信公众号后台的设置与开发栏目中的基本配置里获取appid和appsecret。 获取微信公众号…

软件测试 - 测试用例(设计测试用例的思路、万能公式、测试用例设计的方法)

一、测试用例 1.1 概念 测试用例&#xff08; Test Case &#xff09;是为了实施测试而向被测试的系统提供的一组集合&#xff0c;这组集合包含&#xff1a;测试环 境、操作步骤、测试数据、预期结果等要素。 1.2 编写测试用例 1&#xff09;excel 表格编写 笔试题的测试用例…

【Nginx】Nginx 安装(平滑升级和回滚)

一、 Nginx 概述 Nginx 介绍 Nginx &#xff1a; engine X &#xff0c; 2002 年开发&#xff0c;分为社区版和商业版 (nginx plus ) 2019 年 3 月 11 日 F5 Networks 6.7 亿美元的价格收购 Nginx 是免费的、开源的、高性能的 HTTP 和反向代理服务器、邮件代理服务器、以…

路由器VLAN配置(H3C)

路由器VLAN配置&#xff08;H3C&#xff09; 控制页面访问 路由器默认处于192.168.1.1网段&#xff08;可以短按reset重置&#xff09;&#xff0c;如果要直接使用需要设置静态IP处于同一网段&#xff1b; 对路由器进行配置也要将电脑IP手动设置为同一网段&#xff1b; 默…

音频剪辑软件哪个好用?五大音频剪辑软件分享

如果你正打算在家自学视频制作&#xff0c;那么恭喜你&#xff0c;你已经踏上了一段充满魔法与惊喜的旅程&#xff01;不过&#xff0c;别忘了&#xff0c;视频的灵魂不仅仅在于画面&#xff0c;更在于那直击心灵的音效。 想象一下&#xff0c;一个精心剪辑的片段&#xff0c;…