Q&A

  • TVaComm 에서 Output buffer is full... 에러 방지 방법?

안녕하세요..

 

procedure TfrmMain.Button1Click(Sender: TObject);
begin
    while True do
    begin
        if VaComm1.Active then
        begin
            VaComm1.WriteText('0123456789');
            Delay(30);
        end
        else
        begin
            showmessage('Comm is not ready.');
            break;
        end;

        if checkbox1.Checked Then break;
    end;

end;

 

procedure Delay(MSecs: Cardinal);
var
    FirstTickCount: Cardinal;
begin
    FirstTickCount := GetTickCount;

    Repeat
        Application.ProcessMessages;
    until (GetTickCount - FirstTickCount) >= MSecs;
end;

여기서 Button1 을 클릭하면 CommPort 로 데이터를 쏘게 되겠죠..

그러던 중..  PC 에서 Commport 장치가 없어지면(USB to Serial 같은 장치가 강제로 뽑힐 경우 등..)

몇초 후 Output Buffer is Full. Please check Comm status. 라고 팝업창이 뜹니다.

 

이 경우.. 예외처리할 수 있는 방법이 있을까요 ?

Property 를 조절하면 되는지 ?  Event 에서 핸들링이 가능한지 ?

이것저것 해 봐도 잘 안되네요..

 

어떤 방법이 있을지 고민되네요.. 

 

 

1  COMMENTS