cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 3313|回复: 15

【求助】如何刷新数据

[复制链接]
发表于 2009-11-7 20:52:54 | 显示全部楼层 |阅读模式
本帖最后由 skyhasmoon 于 2009-11-15 09:17 编辑

我从串口读出的数据包括一些协议的数据,并把字符转换为十进制数字,那么应该如何把这些协议的数据除去呢?比如说我接收来的数据是*010012#*010023#*010034#,怎样在截取之后使数据变成0012(空格)0023(空格)0034的字符串显示呢?
10# summu
再次感谢楼上的仁兄,不过您用的版本太高,我这用的是8.5……
另外还有一个问题,就是这个程序的输出是个数组,如何把这个数组的每一项变成数值并及时的显示呢?比如说我接收到的数据中每秒钟每个数组 ...
skyhasmoon 发表于 2009-11-11 22:15
可是如果加显示控件,就是显示数组,想要看最新的数据就要一个一个翻,怎样能用数值显示控件来刷新数据呢?
skyhasmoon 发表于 2009-11-14 21:25
发表于 2009-11-7 23:50:28 | 显示全部楼层
我做的称重仪表通讯实验:

数据格式:
ST,NT,+1234.57kg回车换行

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2009-11-8 08:48:13 | 显示全部楼层
先谢谢楼上解答。
可是,如果我是接受很长的数据,并且通信协议的前缀有很多种(从*01到*07),这样是否也能完成工作并把所有数据分配到各个相应的字符串显示中呢?
 楼主| 发表于 2009-11-8 10:22:06 | 显示全部楼层
本帖最后由 skyhasmoon 于 2009-11-8 10:24 编辑

就是说:比如我接受到一个字符串(比如*01代表电流,*02代表位移,*03代表速度)*010012#*020034#*030056#*010078#*02009A#*0300BC#*0100DE#*0200F0#*030012#……(后面还有很多很多数据,而且也不一定就是按照先*01,再*02,再*03这样的顺序接收),然后我需要在接受的电流字符串上显示0012 0078 00DE……,位移字符串上显示0034 009A 00F0……,速度字符串上显示0056 00BC 0012……,然后再把这些字符串转化成十进制数值连接到波形上,这样要用什么方法做呢?
发表于 2009-11-8 14:07:58 | 显示全部楼层

看看这样是否可以?当然,这只是我的愚见,或许还有大虾有更好的方案。
 楼主| 发表于 2009-11-9 17:39:19 | 显示全部楼层
谢谢楼上的仁兄,这种方法确实在截取字符串上是可行的。
但是用这种方法的话如果输入*010012#*010034#*010056#*010078#*01009A#*0100BC#*0100DE#*0100F0#*010012#……(就是全是*01协议的)这样的数据,是可以画出波形的,但是不知道为什么时间轴左端一直是0;而如果输入)*010012#*020034#*030056#*010078#*02009A#*0300BC#*0100DE#*0200F0#*030012#……(各个协议数据交叉的)那么输入到波形图上的结果是时间轴是从-1到1,没有波形,Y轴的坐标一直在变,就相当于一直在0时刻显示很多离散的点,而不能连成波形。下面是我按照楼上给的图写的程序,只写了*01的分类,输入第二个数据时就会产生离散的点的情况。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2009-11-9 23:17:40 | 显示全部楼层
6# skyhasmoon

你说的第一个问题:是因为在while循环外已近设置好了波形数组为0的这个初始值。

第二个问题: 你的vi中的条件循环中的,01的“波形数组”和“索引”在条件循环执行其它条件分支的时候,要保持上次的数组,也就是说要在其他分支中把01的“波形数组”和“索引”的输入和输出连接起来,这也是为什么要使用移位寄存器。
发表于 2009-11-9 23:31:55 | 显示全部楼层
当然你可以用反馈节点代替移位寄存器,这样程序图看上去比较简洁些。
 楼主| 发表于 2009-11-10 10:48:24 | 显示全部楼层
8# summu
再次感谢楼上的仁兄,波形可以画出来的,不过还是有一个问题,就是时间轴左端还是总是保持是0,这样时间长了之后就很难在细致的观察波形了,不知道怎样才能让波形图的左端保持变化,这样就可以清晰地观察最近一段时间的波形显示了。(我把while循环外面的初始条件去掉后也没有用……
附带改进程序,做了*01和*02两个部分,输入*01和*02的交错数据,显示波形良好,但是时间轴左端一直为零的问题没有解决。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2009-11-10 23:06:57 | 显示全部楼层
这样的话,程序就更简单了,请查看附件。如果要仔细查看波形,可以使用波形图表的“图形工具”

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 发表于 2009-11-11 22:15:45 | 显示全部楼层
10# summu
再次感谢楼上的仁兄,不过您用的版本太高,我这用的是8.5……
另外还有一个问题,就是这个程序的输出是个数组,如何把这个数组的每一项变成数值并及时的显示呢?比如说我接收到的数据中每秒钟每个数组里就会增加一组数据,比如说是10,20,30,40……而我希望在这些数据输入到波形的同时还能及时的在一个数值显示控件中及时显示出来,即第一秒钟是10,第二秒变成20,第三秒变成30,第四秒变成40……我把数组转化成字符串再转化回数值发现不对,所以还请你再帮个忙,谢谢!
 楼主| 发表于 2009-11-12 18:25:21 | 显示全部楼层
本帖最后由 skyhasmoon 于 2009-11-12 20:18 编辑

先自己顶下……
还有一个问题,就是如果我用串口接收数据,然后输出到波形图上,怎么样才能用一个按钮实现波形的暂停和恢复呢?
 楼主| 发表于 2009-11-14 18:36:03 | 显示全部楼层
顶上去,求求各位大侠帮帮忙啊!!!
发表于 2009-11-14 19:32:13 | 显示全部楼层
看一下这个图片吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2009-11-14 19:34:15 | 显示全部楼层
如果要实时显示当前数值的话,在条件结构中加一个数据显示控件就好了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2024-5-19 15:55 , Processed in 0.561920 second(s), 5 queries , Gzip On, File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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