智能车制作

标题: 做LABVIEW虚拟示波器,卡在只能单线程的读取数据,求大神指导 [打印本页]

作者: 纷纷扰扰    时间: 2014-9-29 20:02
标题: 做LABVIEW虚拟示波器,卡在只能单线程的读取数据,求大神指导
做LABVIEW虚拟示波器,卡在只能单线程的读取数据,应该是要写通讯协议的,看了        serial_digital_scope v2 虚拟示波器的下位机程序知道了它是用CRC16来通讯的,但是我不理解它上位机是如何把发来的数据有用的提出来。用CRC16一段一段的校验数据?求大神指教,最好能有示波器的上位机程序(任何语言的都行)
作者: Quixote    时间: 2014-9-29 20:43
不懂你啥意思、、一般接收到了、、读取出来就好了、、
所谓协议、、随便写就好了……

作者: allenanswerzq    时间: 2014-9-29 21:32
比如单片机发送ab1234ab5678,上位机判断到ab后,就说明后面有四个字节的数据要读。大概就这个意思吧。
作者: allenanswerzq    时间: 2014-9-29 21:32
说的有点水。你理解理解。一楼的是大神,哈哈哈
作者: 纷纷扰扰    时间: 2014-9-29 21:36
Quixote 发表于 2014-9-29 20:43
不懂你啥意思、、一般接收到了、、读取出来就好了、、
所谓协议、、随便写就好了……

是纠结怎么用LABVIEW把想要的东西拿出来,一次接收多少字节的数据再去判断是不是符合自己写的协议我 也表达不清了

作者: 纷纷扰扰    时间: 2014-9-29 21:42
allenanswerzq 发表于 2014-9-29 21:32
说的有点水。你理解理解。一楼的是大神,哈哈哈

嗯,这个意思我知道,又鼓捣了下,之前的问题貌似解决了。我在弄弄

作者: 旋风麦林    时间: 2014-9-29 23:31
所谓协议。。。随便写可以用就行了。
作者: 天翊    时间: 2014-9-30 10:11

作者: 纷纷扰扰    时间: 2014-9-30 18:32
旋风麦林 发表于 2014-9-29 23:31
所谓协议。。。随便写可以用就行了。

嗯嗯这个我知道,应该是LABVIEW还用不顺,不知道怎么采集多少字节,去除其中的协议部分留下数据(接收的字节大于协议就一定能采集到完整的协议吗?协议也包括顺序吧ABCD,如果是CDAB就不能算协议了吧,我担心采集到这样的数据怎么办)

作者: 何俊    时间: 2014-9-30 18:36
本帖最后由 何俊 于 2014-9-30 18:38 编辑
纷纷扰扰 发表于 2014-9-30 18:32
嗯嗯这个我知道,应该是LABVIEW还用不顺,不知道怎么采集多少字节,去除其中的协议部分留下数据(接收的字 ...

这种情况也要判断的,如果未收满一帧就把这个不完全的一帧和下一帧数据合起来,比如这次接收CDAB,那么下一次接收的就是CDAB(假设一次接收4个字节),那么就把上一帧的AB与下一帧的CDAB合起来变成ABCDAB,然后再把这一帧的AB传给下一次,一直循环下去。

作者: 纷纷扰扰    时间: 2014-9-30 20:15
何俊 发表于 2014-9-30 18:36
这种情况也要判断的,如果未收满一帧就把这个不完全的一帧和下一帧数据合起来,比如这次接收CDAB,那么下一 ...

嗯~所噶,嗯,我自己在弄弄看3Q呐

作者: 纷纷扰扰    时间: 2014-9-30 20:27
何俊 发表于 2014-9-30 18:36
这种情况也要判断的,如果未收满一帧就把这个不完全的一帧和下一帧数据合起来,比如这次接收CDAB,那么下一 ...

这样是不是就和CRC16校验有关了~

作者: 何俊    时间: 2014-9-30 20:59
纷纷扰扰 发表于 2014-9-30 20:27
这样是不是就和CRC16校验有关了~

如果是labview的话,建议还是用帧头帧尾格式就可以了,CRC16可能不行,因为断帧现象太明显。或者帧头+CRC16也行,但是没必要。数据发的不是太多,而且也不快,基本不会错帧。

作者: 纷纷扰扰    时间: 2014-9-30 21:04
何俊 发表于 2014-9-30 20:59
如果是labview的话,建议还是用帧头帧尾格式就可以了,CRC16可能不行,因为断帧现象太明显。或者帧头+CRC ...

嗯,了解了,我试试,3Q呐~~~~

作者: Traveling_light    时间: 2014-10-2 14:25
来此一水,骚年加油




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2