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

一个关于字符串读的通信协议

[复制链接]
发表于 2009-5-8 21:08:18 | 显示全部楼层 |阅读模式
有个问题请教各位:我用两台电脑仿真数据发送和接受,发送端按照协议封装好数据并向接收端发送,当接收端收到字符串后,按照协议再解释,解释时由于接收字符串要识别出字头,所以,我设计了如下的协议程序,但是存在的问题是,实际情况中,收到的的字符未必一次能收全,比如,当字符串bb 66 3256 5563 2333间隔时间比较长传到接收端时,即第一次收到bb 66 3256,长度小于18,被舍去,第二次收到5563 2333,没有字头也被舍去了,但事实上这就出错了,并没有解释出bb 66 3256 5563 2333这个字符串,我想用寄存器存放长度小于18时的数据,下一次数据传过来时并入到寄存器,这样长度可能就够了,导师提示我和数据结构中的链表功能比较相似,有点糊涂,请高人指点下,附图
发表于 2009-5-8 22:05:29 | 显示全部楼层
定长读。如何?
回复 顶

使用道具 举报

发表于 2009-5-8 22:05:47 | 显示全部楼层
意思是,每次读相等长度的数据回来。
回复 顶

使用道具 举报

 楼主| 发表于 2009-5-8 22:10:49 | 显示全部楼层
不行啊,导师说考虑实际情况时,数据发送可能不是一下子就发完的,一百次发送中可能只有一次正确,但这一次发送如果是分两次读出来的,那就必须把第一次读的存起来,和第二次的一并读才行,这一点我亟待解决 3# user110
回复 顶

使用道具 举报

发表于 2009-5-8 22:20:52 | 显示全部楼层
读回来即压入队列queue。后面慢慢一节节弹出。
回复 顶

使用道具 举报

发表于 2009-5-8 22:20:57 | 显示全部楼层
回复 顶

使用道具 举报

 楼主| 发表于 2009-5-8 23:49:43 | 显示全部楼层
额,是这个理,不过我对队列不太清楚啊,也是刚学这软件,那请问labview中怎么使用队列啊,可否画个图演示下{:5_403:} 6# 老头子
回复 顶

使用道具 举报

 楼主| 发表于 2009-5-9 10:25:45 | 显示全部楼层
回复 顶

使用道具 举报

发表于 2009-5-9 21:08:02 | 显示全部楼层
慢慢看看这个论坛的学习文件,你会收获很多
回复 顶

使用道具 举报

发表于 2009-5-9 21:08:05 | 显示全部楼层
慢慢看看这个论坛的学习文件,你会收获很多
回复 顶

使用道具 举报

发表于 2009-5-9 21:10:12 | 显示全部楼层
8# weiquji
真没办法你就用C语言写一段队列的功能,把它嵌进去
回复 顶

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-9-29 14:54 , Processed in 0.044753 second(s), 7 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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