使用spcomm发送大量数据时,怎样保证前面的数据不被后面的数据冲掉?! -------大侠们都到哪里去了?!-------来吧英雄!!! (20分)

  • 主题发起人 主题发起人 cjh_xf
  • 开始时间 开始时间
C

cjh_xf

Unregistered / Unconfirmed
GUEST, unregistred user!
我用了如下方法:
for ...
begin
Comm1.WriteCommData(Pchar(Str),Length(Str));
While not SendDataEmpty do
sleep(1);
end;
 
在spcomm控件中是fsenddataempty可是我引用是只能引用senddataempty,不只为什么。
 
听说使用OnSendDataEmpty可是我不知道具体怎么用。
 
我没有用过spcomm,只用过mscomm,我的理解,
一、增大接收缓存区;
二、定义握手协议,在丢失数据时让发送方重发数据。

另外,使用单独的线程处理,RS232速度本来就不快,以现在机器的配置,只要不是程序没有
响应,应该不会处理不过来。
 
我是要做发送数据的,不知道怎么去清空缓冲区!
 
在spcomm中确实有判断数据发送空的指令的,不过不够准确!
用api解决了,不过依然谢谢dirk的热心,分给你了!
 
后退
顶部