想弄明白labview数据拆包与一般程序如C,delphi的区别
各位朋友,我在编写LabVIEW程序时遇到一些疑问我要实现的功能是对从串口读出的数据(多个不同的数据)进行拆包,如温度,电压,电流三个数据,它们下位机协议为#01温度*
#02电压*,#03电流*
在C里面,我只需对sbuf进行判断,利用case 语句,就不必知道从串口发过来数据的顺序到底是三个哪个为先,都可以拆包
但是在LabVIEW里面我试验过两种方法,一是匹配,截取,字符串的方法
一种利用截取数组的方法,两种方法必须知道串口发送的数据哪个先,哪个后才可以,否则不正确
不知在LabVIEW里面,假若不知道顺序,能不能像C语言一样很灵活地判断呢,不知哪位高人能够帮忙指点一下,不胜感谢!! 在单片机中,每收一次有一个中断,所以不会乱!任意字符均可以接收到!如果在单片机中还有其他工作,并且用扫描的形式来读,一样会乱的!因为它只有一个字节缓冲,随时会被覆盖!LABVIEW中如果缓冲区开小了,数据量也大,也会出现这样的问题! LABVIEW中可以将读取的放在队列里面,再判断是不是相应的数据开始,然后再处理,咱们论坛有一个例子的,可以看一下! 串口通信中数据篡位的彻底解决办法:队列缓冲数据!附程序!
http://www.cpubbs.com/bbs/viewthread.php?tid=63745&fromuid=19 极力谢谢版主的指导,谢谢
页:
[1]