Q&A

  • ComPort 예제프로그램 사용시 Data Read 문제
*델파이 6.0에서 ComPort 3.0 을 설치했습니다...
  거기에 보면 ComExample 이라는 예제 프로그램이 있어서 연결하여 테스트 하는데
  Read가 잘 되지 않는데 왜 그런지요?

*테스트 환경
  컴1(노트북,XP,USB SerialPort) - 팩스모뎀 --------- 팩스모뎀-컴2

*이상현상
  컴1(노트북)에서 데이타를 보내면 정상적으로 컴2 에 Display 되는데,
  컴2에서 컴1(노트북)으로 데이타를 보내면 화면에 나타나지 안습니다.
  전화걸기나 다른 모뎀의 명령어를 보내면 정상적으로 RxChar 이벤가 발생하여
  컴1과 컴2의 Memo에 정산적으로 Display 가 되는데 그냥 문자는
  컴1에서 보내면 정상적으로 컴2에 나타나는데,
  컴2에서 보내명 컴1에 스트링값이 나타나지 않습니다...
  고수님의 가르침 부탁드립니다.
  
<!--CodeS-->
procedure TForm1.Button_OpenClick(Sender: TObject);
begin
  if ComPort.Connected then
    ComPort.Close
  else
    ComPort.Open;
end;

procedure TForm1.Button_SettingsClick(Sender: TObject);
begin
  ComPort.ShowSetupDialog;
end;

procedure TForm1.Button_SendClick(Sender: TObject);
var
  Str: String;
begin
  Str := Edit_Data.Text;
  if NewLine_CB.Checked then
    Str := Str + #13#10;
  ComPort.WriteStr(Str);
end;

procedure TForm1.ComPortOpen(Sender: TObject);
begin
  Button_Open.Caption := 'Close';
end;

procedure TForm1.ComPortClose(Sender: TObject);
begin
  if Button_Open <> nil then
    Button_Open.Caption := 'Open';
end;

procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer);
var
  Str: String;
begin
  ComPort.ReadStr(Str, Count);
  Memo.Text := Memo.Text + Str;
end;

procedure TForm1.Bt_LoadClick(Sender: TObject);
begin
  ComPort.LoadSettings(stRegistry, 'HKEY_LOCAL_MACHINE\Software\Dejan');
//  ComPort.LoadSettings(stIniFile, 'e:\Test.ini');
end;

procedure TForm1.Bt_StoreClick(Sender: TObject);
begin
//  ComPort.StoreSettings(stIniFile, 'e:\Test.ini');
  ComPort.StoreSettings(stRegistry, 'HKEY_LOCAL_MACHINE\Software\Dejan');
end;

end.

<!--CodeE-->
1  COMMENTS
  • Profile
    홍미자 2005.06.11 18:00
    TComFlowControl.ControlDTR 과  TComFlowControl.ControlRTS 를  rtsEnable  로 변경하니 양쪽에서
    데이타 주고 받는것이 가능하던군요.
    근데 제가 통신에 왕초보라서 그러는데요,

    TComFlowControl 의 의미를 모르겠습니다.
    어떻게 상호 작용을 하는지?
    글구 TComFolwControl.FlowControl 의 값을 어떤때 어떻게 setting 하는지 궁금합니다.