我的一个判断串口接受数据超时的函数,主要是判断在一秒钟之内接受缓冲区是否接受到数据。
function CommunicationThread.ReadCommStatues : Boolean;
var
st : int64;
ret : Integer;
begin
ret := sio_iqueue(WhichPort);
st := GetTickCount + 1000;
while ((ret<=0) and (GetTickCount < st)) do
ret := sio_iqueue(WhichPort);
if ret <= 0 then
ReadCommStatues := False
else
ReadCommStatues := True;
end;