首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vb 串口接收 文件 保存解决办法

2012-03-13 
vb 串口接收 文件 保存需求接收下位机发送的数据(不会间断)PC端收取 并保存到文件至128MB(不用考虑数据丢

vb 串口接收 文件 保存
需求 接收下位机发送的数据(不会间断) PC端收取 并保存到文件至128MB(不用考虑数据丢失问题,数据本身是随机数)
问题 可以接收到数据 但是达不到要求的大小 程序就没反应了 调试时却可以进入oncomm事件  
想问 需要怎么样设置接收缓冲区及输出缓冲区的大小,以及每次输出字符个数,还有引发oncomm事件的字节数
  我的设置是接收缓冲区512 输出缓冲区256 每次输出128 触发事件64/32/16/8都试过 数值有问题吗? 需要把缓冲区再设大一点么? 缓冲区可以每次清空么? 我设置清空之后 就一直收不到数据了 

另 追加存入到文件使用的是open xx文件as#1 seek#1 lof(1)+1 put #1,,buf (实验下来 这个步骤没有问题,最大存到2GB) 但是效率上有没有更高的方法?

[解决办法]
有许多种可能引起错误,无法猜。
[解决办法]
建议LZ尽量使用MSComm控件的缺省属性设置,例:
InBufferSize 属性,InBufferSize 是指整个接收缓冲区的大小。缺省值是 1024 字节。
OutBufferSize 属性,OutBufferSize 指整个传输缓冲区的大小:缺省值是 512 字节。
这是基于现在的电脑内存与DOS下的内存4096KB相比是大大增加了.
InputLen 属性,InputLen 属性的缺省值是 0。设置 InputLen 为 0 时,使用 Input 将使 MSComm 控件读取接收缓冲区中全部的内容。

此外LZ你的COM口如果是USB转RS232口的话,较容易出现COM口假死现象.


[解决办法]

探讨
目前是com口 不过之后可能会使用到USB转RS232 关于假死的问题 谢谢ls兄弟提醒 另: 是不是我不设置InBufferSize OutBufferSize的值 它就是默认值呢? 目前的 问题已经解决了 收的到数据 只是数据存入文件不是很快 而且如果停留在文件所在位置 xp只会显示打开文件夹那个时刻文件的大小 需要F5刷新 才能实时获得文件当前的大小 而之前由于我不刷新 导致以为文件未存入

[解决办法]
尽量不要用OnComm事件,有时会产生意想不到的错误,用TIMER定时接收数据.
[解决办法]
创建一个数据库,把接收来得数据一条一条的插入数据库文件,当数据库文件达到128M时,再生成一个数据库文件即可。
[解决办法]
帮顶咯

热点排行