哈 哈利波特 Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-27 #1 运行程序,接收数据,错误的数据 关闭程序,打开Windows的超级终端,接收数据 关闭超级终端,打开我的程序,接收数据,正确的数据 这是为什么啊?
哈 哈利波特 Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-27 #2 运行程序,接收数据,错误的数据 关闭程序,打开Windows的超级终端,接收数据 关闭超级终端,打开我的程序,接收数据,正确的数据 这是为什么啊?
M maxim88 Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-27 #3 你的一帧数据有多少字节,SPCOMM靠帧间隔时间来确定一帧数据的接收完成,要是不间断的向SPCOMM发送数据也许会有你说的问题。
B blueline0451 Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-27 #4 不全??是部分数据丢失,还是一桢没有接收完整呀..????
哈 哈利波特 Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-27 #5 是部分数据丢失 数据来自一个文本文件,有28行 每行有50个字符
B blueline0451 Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-27 #6 http://www.delphibbs.com/delphibbs/dispq.asp?lid=3071598
A agamem Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-28 #7 9600波特率一秒只能往缓冲里面写入1200多个字节! 波特率/8=每秒接收字节数 所以,不管你的帧有多大,都要符合这个规律! 解决的方法是自己加一个缓冲处理: 开一个大队列,将收到的数据入队列! 判断收到完整的帧后,处理队列!
9600波特率一秒只能往缓冲里面写入1200多个字节! 波特率/8=每秒接收字节数 所以,不管你的帧有多大,都要符合这个规律! 解决的方法是自己加一个缓冲处理: 开一个大队列,将收到的数据入队列! 判断收到完整的帧后,处理队列!
M maxim88 Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-28 #8 楼上说法不太对吧,波特率定了,每秒向缓冲区里写入的最大数据量也就定了,不可能超出。 测试一下,如果只在数据帧长度大于缓冲区长度时丢数据,那就是缓冲区溢出了。
F fsh8205-1 Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-28 #9 不错楼主说的问题我也遇到过,已经解决了,但是已经很久了.如果可以的话你把你的代码发过来看看,看我能不能帮上你的忙.gfansenhua@163.com
范 范森华 Unregistered / Unconfirmed GUEST, unregistred user! 2005-07-28 #11 哦,这个问题可以大家讨论一下的,我开个群一起研究吧.QQ群号:2000202
M maxim88 Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-01 #12 这两天做了一个数据量比较大的,一帧数据10K左右,未发现丢数据,是分几次收完的,缓冲区满会触发接收事件,所以缓冲区溢出的可能也不大。 但是我发现了一个问题也许和你的情况一样。 我把几次接收的数据放到MEMO里,最后数MEMO的数据长度,总长度就会少。 如果把几次BufferLength的值累加数据就是完全正确的长度,所以问题出在MEMO上,与SPCOMM无关,具体原因还没时间细查,可能是某些字符被MEMO认做了控制字符。
这两天做了一个数据量比较大的,一帧数据10K左右,未发现丢数据,是分几次收完的,缓冲区满会触发接收事件,所以缓冲区溢出的可能也不大。 但是我发现了一个问题也许和你的情况一样。 我把几次接收的数据放到MEMO里,最后数MEMO的数据长度,总长度就会少。 如果把几次BufferLength的值累加数据就是完全正确的长度,所以问题出在MEMO上,与SPCOMM无关,具体原因还没时间细查,可能是某些字符被MEMO认做了控制字符。
B butcool Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-09 #13 调整SPCOMM的等待时间,可以解决问题 outputtimeout和inputtimeout的值!
C chenybin Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-09 #14 应该不会,你光读应该没有问题的,可能是你的读写没有协调好,我的做法是把读入的数据全部都放到一个字符串里面,然后另外一个对象去处理这个字符串,处理一些截取一些,然后决定是否发送回去等等,
A AsleepAnge Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-25 #15 是不是特定字符丢失?比如每遇到12就丢失?
J janker Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-26 #17 我用COMPORT做过测试,在ONRXCHAR事件下第一次读,只能读到8个字节。先不读,延迟一定时间再读,就可以全部读到了。 如果不用ONRXCHAR事件,这样: WRITE。。。 DELAY。。。这里延迟一定时间 READ。。。
我用COMPORT做过测试,在ONRXCHAR事件下第一次读,只能读到8个字节。先不读,延迟一定时间再读,就可以全部读到了。 如果不用ONRXCHAR事件,这样: WRITE。。。 DELAY。。。这里延迟一定时间 READ。。。