本文整理自网络,侵删。
program ModTest;{$APPTYPE CONSOLE}
usesSysUtils,CPort,Windows,SyncObjs;
varComPort: TComPort;Events: TComEvents;Answer, Data: string;Step: Integer;Event: TEvent;
function CtrlHandler(CtrlType: LongWord): Boolean;beginEvent.SetEvent;Result := True;end;
beginEvent := TEvent.Create(nil, True, False, '');SetConsoleCtrlHandler(@CtrlHandler, True);tryComPort := TComPort.Create(nil);tryif ParamCount > 0 thenComPort.Port := ParamStr(1)elseComPort.Port := 'COM1';ComPort.Events := [];ComPort.FlowControl.ControlDTR := dtrEnable;ComPort.FlowControl.ControlRTS := rtsEnable;ComPort.Open; // open portComPort.WriteStr('AT'#13#10); // send test commandAnswer := '';Step := 0;repeatEvents := [evRxChar];ComPort.WaitForEvent(Events, Event.Handle, 5000); // wait for charachtersif evRxChar in Events thenbeginComPort.ReadStr(Data, ComPort.InputCount);Answer := Answer + Data;if Pos('OK', Answer) > 0 thenBreak;end;Inc(Step)until (Events = []) or (Step = 20);if Pos('OK', Answer) > 0 thenWriteLn('Modem found on ' + ComPort.Port)elseWriteLn('Modem NOT found on ' + ComPort.Port);finallyComPort.Free;end;excepton E: Exception doWriteLn('Error: ' + E.Message);end;Event.Free;end.
相关阅读 >>
更多相关阅读请进入《Delphi》频道 >>