发表于:2005/3/4 15:48:00
#0楼
通讯要求:
目前有一设备与PC通讯,采用异步通讯方式,流控制采用软交握(设备当缓冲区满时发送“19”通知PC停止发送,当缓冲区空出后发送“17”通知PC继续发送);通讯数据为文本信息;开发平台VB6.0。
出现的异常情况:
本人采用的VB6.0写的程序,通过了两种方案,但都遇到了问题;
第一方案:
采用的方式为,Oncomm事件触发发送和停止;当发生事件后,程序接收端口数据,并分析数据,根据数据“17”或“19”来控制发送,若为“19”就将程序置于一死循环,等待“17”的到来,当“17”到来后,跳出循环,继续发送数据。
第二方案:
直接发送,将串口的Handshaking 属性置于软交握
以上两个方案都出现一样的情况(在多设备测试都一样,排除设备问题),正常传输中(也有启停传输现象,证明功能已经实现)突然停止传输,无法再次恢复传输。无任何停的规律,属于随机停止。
分析:
一、估计是串口未收到恢复发送的指令,数据丢失
二、但按照第二方案来讲,无接收数据的功能,全由Mscomm控件来实现,应该没问题。但一样出现停止传输无法恢复现象
大哥,能帮忙解决吗?快!
目前有一设备与PC通讯,采用异步通讯方式,流控制采用软交握(设备当缓冲区满时发送“19”通知PC停止发送,当缓冲区空出后发送“17”通知PC继续发送);通讯数据为文本信息;开发平台VB6.0。
出现的异常情况:
本人采用的VB6.0写的程序,通过了两种方案,但都遇到了问题;
第一方案:
采用的方式为,Oncomm事件触发发送和停止;当发生事件后,程序接收端口数据,并分析数据,根据数据“17”或“19”来控制发送,若为“19”就将程序置于一死循环,等待“17”的到来,当“17”到来后,跳出循环,继续发送数据。
第二方案:
直接发送,将串口的Handshaking 属性置于软交握
以上两个方案都出现一样的情况(在多设备测试都一样,排除设备问题),正常传输中(也有启停传输现象,证明功能已经实现)突然停止传输,无法再次恢复传输。无任何停的规律,属于随机停止。
分析:
一、估计是串口未收到恢复发送的指令,数据丢失
二、但按照第二方案来讲,无接收数据的功能,全由Mscomm控件来实现,应该没问题。但一样出现停止传输无法恢复现象
大哥,能帮忙解决吗?快!